Passo a passo: | Para realizar a geração das ordens de produção por pedido de vendas é possível utilizar a opção Outras Ações → Vendas. Por meio da execução automática, do programa MATA650c, é possível realizar a geração das ordens de produção em lotes. Cada execução da rotina automática, assim como a rotina padrão de geração de ordens de produção por vendas, permite gerar as OPs conforme os parâmetros informados. A execução automática do programa MATA650c recebe 5 parâmetros, sendo obrigatórios apenas os dois últimos, conforme abaixo. - Parâmetro 1 → Apenas compatibilidade (Não preencher);
- Parâmetro 2 → Apenas compatibilidade (Não preencher);
- Parâmetro 3 → Apenas compatibilidade (Não preencher);
- Parâmetro 4 → lAuto, variável lógica que determina que a rotina esta sendo executada via ExecAuto (.T. ou .F.);
- Parâmetro 5 → Array no formato {{MV_PARXX, Conteúdo}} contendo a parametrização para filtragem dos Pedidos de Vendas que devem ser considerados para gerar as Ordens de Produção;
1. Exemplo para inclusão de Ordens de Produção por Pedidos de Vendas: O array com as informações dos filtros, deve seguir o conceito das perguntas do padrão, conforme exemplo abaixo: Identificador | Descrição | Tipo |
---|
MV_PAR01 | Mostra Pedido com OP ? 1- Sim 2- Não | Numérico | MV_PAR02 | Produto Sem Estrutura Gera ? 1- Ordem de Prod. 2- Solic. Compra 3- Nenhum | Numérico | MV_PAR03 | Do Cliente? | Caracter | MV_PAR04 | Até o Cliente? | Caracter | MV_PAR05 | Do Produto? | Caracter | MV_PAR06 | Até o Produto? | Caracter | MV_PAR07 | Da Data de Entrega? | Data | MV_PAR08 | Até a Data de Entrega? | Data | MV_PAR09 | Da TES? | Caracter | MV_PAR10 | Até a TES? | Caracter | MV_PAR11 | Considerar Armazém Padrão? 1- Sim 2- Não | Numérico | MV_PAR12 | Liberar Bloqueio de Crédito? 1- Sim 2- Não | Numérico | MV_PAR13 | Numero Inicial OP? | Caracter | MV_PAR14 | Do Pedido? | Caracter | MV_PAR15 | Até o Pedido? | Caracter | MV_PAR16 | Do Armazém? | Caracter | MV_PAR17 | Até o Armazém? | Caracter | MV_PAR18 | Avalia o Pedido de Venda? 1- Individualmente 2- Agrupadamente | Numérico | MV_PAR19 | Qtd da Geração OPs e SCs? 1- LE Padrão 2- Sem LE 3- LE Somados | Numérico | MV_PAR20 | Mostra apenas PV liber. cred? 1- Sim 2- Não | Numérico | MV_PAR21 | Cons. Saldos de Armazéns? 1- Sim 2- Não | Numérico | MV_PAR22 | Exibe PV c/ Fat. Parcial? 1- Sim 2- Não | Numérico | MV_PAR23 | Avaliar os PVs Priorizando? 1- Num. Pedido 2- Data de Entrega | Numérico | MV_PAR24 | Considera Est. Segurança? 1- Sim 2- Não | Numérico | MV_PAR25 | Considera Qtd Liberada PV? 1- Sim 2- Não | Numérico | MV_PAR26 | Considera Est de Segurança PI? 1- Sim 2- Não | Numérico |
#INCLUDE 'TOTVS.CH'
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'PARMTYPE.CH'
#INCLUDE "RWMAKE.CH"
User Function MyMata650c()
Local lAuto := .T.
Local aParams := {}
Local lMsErroAuto := .F.
// Seta job para empresa e filial desejadas caso não seja chamada via menu do Protheus
If !(Type("cFilAnt") == "C" .and. TCIsConnected())
RPCSetEnv("T1","D MG 01 ",,,'PCP') //https://tdn.totvs.com/x/z-xn
EndIf
aadd(aParams,{"MV_PAR01", 1})//Mostra Pedido com OP ? 1- Sim 2- Nao
aadd(aParams,{"MV_PAR02", 1})//Produto Sem Estrutura Gera ? 1- Ordem de Prod. 2- Solic. Compra 3- Nenhum
aadd(aParams,{"MV_PAR03", " "})//Do Cliente?
aadd(aParams,{"MV_PAR04", "ZZZZZZ"})//Ate o Cliente?
aadd(aParams,{"MV_PAR05", " "})//Do Produto?
aadd(aParams,{"MV_PAR06", "ZZZZZZZZZZZZZZZ"})//Ate o Produto?
aadd(aParams,{"MV_PAR07", CTOD("01/01/2018")})//Da Data de Entrega?
aadd(aParams,{"MV_PAR08", CTOD("30/12/2018")})//Ate a Data de Entrega?
aadd(aParams,{"MV_PAR09", "500"})//Da TES?
aadd(aParams,{"MV_PAR10", "999"})//Ate a TES?
aadd(aParams,{"MV_PAR11", 1})//Considerar Armazem Padrao? 1- Sim 2- Nao
aadd(aParams,{"MV_PAR12", 2})//Liberar Bloqueio de Credito? 1- Sim 2- Nao
aadd(aParams,{"MV_PAR13", " "})//Numero Inicial OP?
aadd(aParams,{"MV_PAR14", "pcp114"})//Do Pedido?
aadd(aParams,{"MV_PAR15", "pcp114"})//Ate o Pedido?
aadd(aParams,{"MV_PAR16", " "})//Do Armazem?
aadd(aParams,{"MV_PAR17", "ZZ"})//Ate o Armazem?
aadd(aParams,{"MV_PAR18", 1})//Avalia o Pedido de Venda? 1- Individualmente 2- Agrupadamente
aadd(aParams,{"MV_PAR19", 1})//Qtd da Geracao OPs e SCs? 1- LE Padrao 2- Sem LE 3- LE Somados
aadd(aParams,{"MV_PAR20", 2})//Mostra apenas PV liber. cred? 1- Sim 2- Nao
aadd(aParams,{"MV_PAR21", 2})//Cons. Saldos de Armazens? 1- Sim 2- Nao
aadd(aParams,{"MV_PAR22", 2})//Exibe PV c/ Fat. Parcial? 1- Sim 2- Nao
aadd(aParams,{"MV_PAR23", 1})//Avaliar os PVs Priorizando? 1- Num. Pedido 2- Data de Entrega
aadd(aParams,{"MV_PAR24", 2})//Considera Est. Seguranca? 1- Sim 2- Nao
aadd(aParams,{"MV_PAR25", 2})//Considera Qtd Liberada PV? 1- Sim 2- Nao
aadd(aParams,{"MV_PAR26", 1})//Considera Est Seguranca PI? 1- Sim 2- Nao
MSExecAuto({|x,y,z,b,c| MATA650C(x,y,z,b,c)},,,,lAuto,aParams)
If lMsErroAuto
Alert("Erro")
MostraErro()
EndIf
Return .T.
|