Page tree

MATA250 - Produção

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):


Nome
Tipo
Descrição
Obrigatório Referência

aVetor
Array of Record
Array contendo os campos que serão enviados para a Produção.
X



nOpc
Numérico
Opção escolhida: 3) Inclusão5) Estorno7) Encerramento
X


Descriçã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.

Observações:

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 parâmetro ABREOP pode ser preenchido na rotina automática de Estorno, possibilitando estornar o apontamento da produção e permitindo ao usuário estornar ou não o empenho gerado na SD4.
O parâmetro 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

Para realizar a operação de estorno via Rotina Automática é OBRIGATÓRIO posicionar no registro desejado antes da chamada da MsExecAuto.

Abrangência:

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 ?".

Sintaxe:

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

Retorno:

NIL (Nulo)

Exemplo:
#Include "totvs.ch"
#Include 'Protheus.ch'
#Include "TBICONN.CH"

//--------------------------- INCLUSÃO -----------------------------------------------------------------------------------------------
User Function RMATA250() 
Local aVetor := {}          
Local dData
Local nOpc   := 3 //-Opção de execução da rotina, informado nos parametros quais as opções possiveisl

MsErroAuto := .F.          

RpcSetEnv( "99","01",,,,,,,,,)

dData:=dDataBase
aVetor := {;               {"D3_OP" ,"00000501001  "  ,NIL},;
								{"D3_TM" ,"010" ,NIL}}                                                      

MSExecAuto({|x, y| mata250(x, y)},aVetor, nOpc )  
If lMsErroAuto
    Mostraerro()
Else
    Alert("Ok")
Endif

Return


//--------------------------- 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 := "PROD           "
Local cLocal:= "01"
Local cChave:= ""

lMsErroAuto := .F.

RpcSetEnv( "99","01",,,,,,,,,)
cChave:= xFilial("SD3") + cOp + cCod + cLocal

SD3->(DbSetOrder(1))
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
EndIf

Return