Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
MATA250 - Produção
MATA250 - Produção

Função: MATA250 - Produção

Esta rotina possibilita a execução do apontamento de produção, estorno do apontamento de produção e encerramento da ordem de produção, na rotina Produção, de forma automática. 

MATA250 - Produção ( < aVetor>, < nOpc> ) --> Nil


NomeTipoDescriçãoObrigatórioReferência
aVetorArray of RecordArray contendo os campos que serão enviados para a ProduçãoX
nOpcNuméricoOpção escolhida: 3) Inclusão5) Estorno7) EncerramentoX


Nil (Nulo)

O parâmetro AUTPRTOTAL pode ser preenchido na execução da rotina automática de Encerramento, quando o MV_PRODPR0 estiver configurado como 3, para definir se o campo D3_PARCTOT será atualizado com o conteúdo T no encerramento.
Para encerramentos manuais, é apresentada uma pergunta para confirmação ou não da alteração do campo para apropriação de custo.

O parâmetro deve ser preenchido com:

"S" -> Altera o conteúdo do campo D3_PARCTOT para T
"N" -> Não altera o conteúdo do campo D3_PARCTOT, deixando o campo preenchido com P

O parametro ABREOP  pode ser preenchido na rotina automática de Estorno, possibilitanto estornar o apontamento da produção e permitindo ao usuário estornar ou não o empenho gerado na SD4.
O parametro deve ser preenchido como:

"N" -> Estornará o apontamento da produção, porem, não estornará o empenho do SD4
"S" -> Fara o estorno do apontamento e o estorno do empenho gerado no SD4

//InclusãoINCLUSAO User Function RMATA250() Local aVetor := {}          Local dDataLocal nOpc   := 3 //-Opção de execução da rotina, informado nos parametros quais as opções possiveislMsErroAuto := .F.          RpcSetEnv( "99","01",,,,,,,,,)dData:=dDataBaseaVetor := {;                {"D3_OP"		,"00000501001  "  	,NIL},;{"D3_TM"		,"010"				,NIL}}                                                     	MSExecAuto({|x, y| mata250(x, y)},aVetor, nOpc )  If lMsErroAuto    Mostraerro()else    Alert("Ok")EndifReturn     
//Estorno

User Function RMATA250()

Local aVetor := {}
Local nOpc := 5 //-Opção de execução da rotina, informado nos parametros quais as opções possiveis
Local cOp := "00000301001 "
Local cCod := "2396 "
Local cLocal:= "01"
Local cChave:= ""

lMsErroAuto := .F.

 RpcSetEnv( "99","01",,,,,,,,,)
cChave:= xFilial("SD3") + cOp + cCod + cLocal
SD3->(DbSetOrder())
If SD3->(DbSeek(cChave))
While !(SD3->(Eof())) .And. SD3->(D3_FILIAL + D3_OP + D3_COD + D3_LOCAL) == cChave
If SD3->D3_ESTORNO == " "
aVetor := { {"D3_OP" ,cOp ,NIL},;
{"D3_QUANT" ,10 ,NIL},;
{"D3_TM" ,"001" ,NIL}}
MSExecAuto({|x, y| mata250(x, y)},aVetor, nOpc )
If lMsErroAuto
Mostraerro()
Else
Alert("Ok")
Endif
Exit
EndIf
SD3->(DbSkip())
EndDo
EndIfReturn

Protheus 10
Para que o sistema faça a baixa dos empenhos na chamada via ExecAuto, mesmo com o parâmetro Atu. Empenho está igual a Não, deve-se enviar um campo extra no array chamado "ATUEMP", com valor "T".

Quando receber este campo no array, o sistema fará a baixa do empenho, simulando a resposta da pergunta "O tipo de movimento da producao esta configurado para nao atualizar empenhos.No encerramento devem ser atualizados ?"

Exemplo:
aVetor := { ;                

               {"D3_OP"        , "00018001001   " , NIL},;

               {"D3_TM"        , "020"            , NIL},;

               {"D3_QUANT"  , 10               , NIL},;

               {"D3_PERDA"  , 0                , NIL},;

               {"D3_PARCTOT", "T"              , NIL},;

               {"ATUEMP"    , "T"              , NIL};                              

               }