Linha de Produto: | Protheus | |||||||||||||||||||||||||||||||||
Segmento: | Manufatura | |||||||||||||||||||||||||||||||||
Módulo: | SIGAPCP - Planejamento e Controle da Produção | |||||||||||||||||||||||||||||||||
Parâmetro(s): |
|
| 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 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. "N" -> Estornará o apontamento da produção, porem, não estornará o empenho do 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 |
Sintaxe: | MATA250 - Produção ( < aVetor>, < nOpc> ) --> Nil |
| Retorno: | NIL (Nulo) |
#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()
Rlse
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 |