Tempo aproximado para leitura: 00:10:00min
Dúvida
Como posso criar Rotina Automática MATA103 para documento com Aposentadoria Especial?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Protheus) - Gestão de Compras- Versão 12
Solução
Siga o exemplo abaixo:
//DOCUMENTO TIPO NORMAL COM APOSENTADORIA ESPECIAL
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function EXEC103()
Local aCab := {}
Local aItem := {}
Local aItens := {}
Local aItensApo := {}
Local nOpc := 3
Local cNum := ""
Local nI := 0
Local nX := 0
Local nReg := 1
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM" FUNNAME "MATA103"
If nOpc == 3
cNum := GetSxeNum("SF1","F1_DOC")
SF1->(dbSetOrder(1))
While SF1->(dbSeek(xFilial("SF1")+cNum))
ConfirmSX8()
cNum := GetSxeNum("SF1","F1_DOC")
EndDo
Elseif nOpc == 5
cNum := "000000004"
Endif
aadd(aCab,{"F1_DOC" ,cNum ,NIL})
aadd(aCab,{"F1_SERIE" ,"1 " ,NIL})
aadd(aCab,{"F1_FORNECE" ,"001 " ,NIL})
aadd(aCab,{"F1_LOJA" ,"01" ,NIL})
aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL})
aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL})
aadd(aCab,{"F1_TIPO" ,"N" ,NIL})
aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_ESPECIE" ,"NFE" ,NIL})
aadd(aCab,{"F1_COND" ,"001" ,NIL})
aadd(aCab,{"F1_EST" ,"SP" ,NIL})
aadd(aCab,{"F1_DESPESA" , 0 , Nil})
aadd(aCab,{"F1_DESCONT" , 0 , Nil})
aadd(aCab,{"F1_SEGURO" , 0 , Nil})
aadd(aCab,{"F1_FRETE" , 0 , Nil})
aadd(aCab,{"F1_MOEDA" , 1 , Nil})
aadd(aCab,{"F1_TXMOEDA" , 1 , Nil})
aadd(aCab,{"F1_STATUS" , "A" , Nil})
aadd(aCab,{"F1_VOLUME1",0, Nil})
aadd(aCab,{"F1_PLIQUI",0, Nil})
aadd(aCab,{"F1_PBRUTO",0, Nil})
For nX := 1 To 1
cProd1 :="0001 "
aItem := {}
aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL})
aadd(aItem,{"D1_COD" ,PadR(cProd1,TamSx3("D1_COD")[1]) ,NIL})
aadd(aItem,{"D1_UM" ,"UN" ,NIL})
aadd(aItem,{"D1_LOCAL" ,"01" ,NIL})
aadd(aItem,{"D1_QUANT" ,1 ,NIL})
aadd(aItem,{"D1_VUNIT" ,1000 ,NIL})
aadd(aItem,{"D1_TOTAL" ,1000 ,NIL})
aadd(aItem,{"D1_TES" ,"001" ,NIL})
aAdd(aItens,aItem)
Next nX
If nOpc == 3
aItem := {}
aAdd(aItensApo, Array(2))
aItensApo[Len(aItensApo)][1] := "0001"
aItensApo[Len(aItensApo)][2] := {}
aAdd(aItem, {"DHP_FILIAL" , xFilial("DHP") , Nil})
aAdd(aItem, {"DHP_DOC" , cNum , Nil})
aAdd(aItem, {"DHP_SERIE" , "1" , Nil})
aAdd(aItem, {"DHP_FORNECE" , "001 " , Nil})
aAdd(aItem, {"DHP_LOJA" , "01" , Nil})
aAdd(aItem, {"DHP_FAIXA1" , 10 , Nil})
aAdd(aItem, {"DHP_FAIXA2" , 20 , Nil})
aAdd(aItem, {"DHP_FAIXA3" , 30 , Nil})
aAdd(aItensApo[Len(aItensApo)][2], aClone(aItem))
Endif
MSExecAuto({|x,y,z,a| MATA103(x,y,z,,,,,,,,,a)},aCab,aItens,nOpc,aItensApo)
If !lMsErroAuto
ConOut(" Incluido NF: " + cNum)
Else
MostraErro()
ConOut("Erro na inclusao!")
Exit
EndIf
Next nI
RESET ENVIRONMENT
Return
Saiba Mais:
PCOM12003 - Documento de Entrada (Rotina Automática MATA103 - EXECAUTO)
0 Comentários