- Criado por Diogo Francisco Vieira Saravando, última alteração por Guilherme Alexandre Martins Futro em 23 out, 2024
EXECAUTO MATA103 - Documento de Entrada
Produto: | Protheus | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Versões: | Todas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ocorrência: | Rotina Automática - MATA103 (Execauto) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ambiente: | SIGACOM - Compras | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Descrição: | Rotina automática que permite a inclusão de documentos entrada em grande quantidade. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Parâmetros: |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Passo a passo: |
Documento Tipo Normal Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local aAutoImp := {} Local aItensRat := {} Local aCodRet := {} Local aParamAux := {} Local nOpc := 3 Local cNum := "" Local nI := 0 Local nX := 0 Local nReg := 1 Conout("Inicio: " + Time()) Private lMsErroAuto := .F. Private lMsHelpAuto := .T. PREPARE ENVIRONMENT EMPRESA "32" FILIAL "6597" MODULO "COM" FUNNAME "MATA103" cNum := GetSxeNum("SF1","F1_DOC") SF1->(dbSetOrder(1)) While SF1->(dbSeek(xFilial("SF1")+cNum)) ConfirmSX8() cNum := GetSxeNum("SF1","F1_DOC") EndDo //Cabeçalho aadd(aCab,{"F1_TIPO" ,"N" ,NIL}) aadd(aCab,{"F1_FORMUL" ,"N" ,NIL}) aadd(aCab,{"F1_DOC" ,cNum ,NIL}) aadd(aCab,{"F1_SERIE" ,"1 " ,NIL}) aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL}) aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL}) aadd(aCab,{"F1_FORNECE" ,"001 " ,NIL}) aadd(aCab,{"F1_LOJA" ,"01" ,NIL}) aadd(aCab,{"F1_ESPECIE" ,"CTE" ,NIL}) aadd(aCab,{"F1_COND" ,"001" ,NIL}) aadd(aCab,{"F1_DESPESA" ,10 ,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}) //Itens For nX := 1 To 1 aItem := {} aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL}) aadd(aItem,{"D1_COD" ,PadR("0001",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" ,7508.33 ,NIL}) aadd(aItem,{"D1_TOTAL" ,7508.33 ,NIL}) aadd(aItem,{"D1_TES" ,"001" ,NIL}) aadd(aItem,{"D1_RATEIO" ,"1" ,NIL}) if(nOpc == 4)//Se for classificação deve informar a variável LINPOS aAdd(aItem, {"LINPOS" , "D1_ITEM", StrZero(nX,4)}) //ou SD1->D1_ITEM se estiver posicionado. endIf aAdd(aItens,aItem) Next nX //Rateio de Centro de Custo aItem := {} aAdd(aItensRat, Array(2)) aItensRat[Len(aItensRat)][1] := "0001" aItensRat[Len(aItensRat)][2] := {} aAdd(aItem, {"DE_FILIAL" , xFilial("SDE") , Nil}) aAdd(aItem, {"DE_ITEM" , StrZero(1,TamSx3("DE_ITEM")[1]) , Nil}) aAdd(aItem, {"DE_DOC" , cNum , Nil}) aAdd(aItem, {"DE_SERIE" , "1" , Nil}) aAdd(aItem, {"DE_FORNECE" , "001 " , Nil}) aAdd(aItem, {"DE_LOJA" , "01" , Nil}) aAdd(aItem, {"DE_ITEMNF" , "0001" , Nil}) aAdd(aItem, {"DE_PERC" , 100 , Nil}) aAdd(aItem, {"DE_CC" , "01" , Nil}) aAdd(aItensRat[Len(aItensRat)][2], aClone(aItem)) //Array contendo a informação se gera DIRF e os códigos de retenção por imposto aAdd( aCodRet, {01, "0297", 1, "..."} ) aAdd( aCodRet, {02, "0297", 1, "IRR"} ) aAdd( aCodRet, {03, "5979", 1, "PIS"} ) aAdd( aCodRet, {04, "5960", 1, "COF"} ) aAdd( aCodRet, {05, "5987", 1, "CSL"} ) // Exemplo para manipular o pergunte MTA103 aAdd(aParamAux, {"MV_PAR01", 2}) //-- Mostra Lanc. Contabil? 1 = Sim, 2 = Não aAdd(aParamAux, {"MV_PAR06", 1}) //-- Contabilizacao Online? 1 = Sim, 2 = Não //3-Inclusão / 4-Classificação / 5-Exclusão MSExecAuto({|x,y,z,k,a,b| MATA103(x,y,z,,,,k,a,,,b)},aCab,aItens,nOpc,aParamAux,aItensRat,aCodRet) If !lMsErroAuto ConOut(" Incluido NF: " + cNum) Else MostraErro() ConOut("Erro na inclusao!") EndIf ConOut("Fim: " + Time()) RESET ENVIRONMENT Return
Documento Tipo Complemento Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local nOpc := 3 Local cNum := "" Local nI := 0 Local nX := 0 Conout("Inicio: " + Time()) Private lMsErroAuto := .F. Private lMsHelpAuto := .T. PREPARE ENVIRONMENT EMPRESA "32" FILIAL "6597" MODULO "COM" FUNNAME "MATA103" cNum := GetSxeNum("SF1","F1_DOC") SF1->(dbSetOrder(1)) While SF1->(dbSeek(xFilial("SF1")+cNum)) ConfirmSX8() cNum := GetSxeNum("SF1","F1_DOC") EndDo //Cabeçalho aadd(aCab,{"F1_TIPO" ,"C" ,NIL}) aadd(aCab,{"F1_TPCOMPL" ,"3" ,NIL}) 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_FORMUL" ,"N" ,NIL}) aadd(aCab,{"F1_ESPECIE" ,"CTE" ,NIL}) aadd(aCab,{"F1_COND" ,"001" ,NIL}) aadd(aCab,{"F1_MODAL" ,"01" ,NIL}) aadd(aCab,{"F1_TPFRETE" ,"C" ,NIL}) aadd(aCab,{"F1_TPCTE" ,"N" ,NIL}) aadd(aCab,{"F1_EST" ,"SP" ,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}) //Itens For nX := 1 To 1 aItem := {} aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL}) aadd(aItem,{"D1_COD" ,PadR("0001",TamSx3("D1_COD")[1]) ,NIL}) aadd(aItem,{"D1_UM" ,"UN" ,NIL}) aadd(aItem,{"D1_LOCAL" ,"01" ,NIL}) aadd(aItem,{"D1_VUNIT" ,1000 ,NIL}) aadd(aItem,{"D1_TOTAL" ,1000 ,NIL}) aadd(aItem,{"D1_TES" ,"001" ,NIL}) aadd(aItem,{"D1_NFORI" ,"000009015" ,NIL}) aadd(aItem,{"D1_SERIORI" ,"1 " ,NIL}) aadd(aItem,{"D1_ITEMORI" ,"0001" ,NIL}) aAdd(aItens,aItem) Next nX //Impostos (Informar a referência do imposto, que consta no valid do campo) //Para impostos de cabeçalho informar: referência, valor aAutoImp := { {"NF_FRETE" , 10},; {"NF_VALIPI", 15},; {"NF_VALICM",7}} //Para impostos de Itens informar: referência, valor, número da linha aAdd(aAutoImp, {'IT_BASEICM', 100, 1}) //Base aAdd(aAutoImp, {'IT_ALIQICM',12, 1}) //Porcentagem Imposto aAdd(aAutoImp, {'IT_VALICM', 12, 1}) //Valor imposto //3-Inclusão / 4-Classificação / 5-Exclusão MSExecAuto({|x,y,z,a,b| MATA103(x,y,z,,a,,,,,)},aCabec,aItens,3,aAutoImp) If !lMsErroAuto ConOut(" Incluido NF: " + cNum) Else MostraErro() ConOut("Erro na inclusao!") EndIf ConOut("Fim: " + Time()) RESET ENVIRONMENT Return
Documento Tipo Normal Vinculado ao Pedido de Compras Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local aAutoImp := {} Local aItensRat := {} Local aCodRet := {} Local aParamAux := {} Local nOpc := 3 Local cNum := "" Local nI := 0 Local nX := 0 Local nReg := 1 Conout("Inicio: " + Time()) Private lMsErroAuto := .F. Private lMsHelpAuto := .T. PREPARE ENVIRONMENT EMPRESA "32" FILIAL "6597" MODULO "COM" FUNNAME "MATA103" cNum := GetSxeNum("SF1","F1_DOC") SF1->(dbSetOrder(1)) While SF1->(dbSeek(xFilial("SF1")+cNum)) ConfirmSX8() cNum := GetSxeNum("SF1","F1_DOC") EndDo //Cabeçalho aadd(aCab,{"F1_TIPO" ,"N" ,NIL}) aadd(aCab,{"F1_FORMUL" ,"N" ,NIL}) aadd(aCab,{"F1_DOC" ,cNum ,NIL}) aadd(aCab,{"F1_SERIE" ,"1 " ,NIL}) aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL}) aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL}) aadd(aCab,{"F1_FORNECE" ,"001 " ,NIL}) aadd(aCab,{"F1_LOJA" ,"01" ,NIL}) aadd(aCab,{"F1_ESPECIE" ,"CTE" ,NIL}) aadd(aCab,{"F1_COND" ,"001" ,NIL}) aadd(aCab,{"F1_DESPESA" ,10 ,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}) //Itens For nX := 1 To 1 aItem := {} aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL}) aadd(aItem,{"D1_COD" ,PadR("0001",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" ,7508.33 ,NIL}) aadd(aItem,{"D1_TOTAL" ,7508.33 ,NIL}) aadd(aItem,{"D1_TES" ,"001" ,NIL}) aadd(aItens,aItem) aadd(aItens[Len(aItens)], {'D1_PEDIDO ', '000034' ,}) // Número do Pedido de Compras aadd(aItens[Len(aItens)], {'D1_ITEMPC ', '0001' ,}) // Item do Pedido de Compras if(nOpc == 4)//Se for classificação deve informar a variável LINPOS aAdd(aItem, {"LINPOS" , "D1_ITEM", StrZero(nX,4)}) //ou SD1->D1_ITEM se estiver posicionado. endIf Next nX //3-Inclusão / 4-Classificação / 5-Exclusão MSExecAuto({|x,y,z,k,a,b| MATA103(x,y,z,,,,k,a,,,b)},aCab,aItens,nOpc,aParamAux,aItensRat,aCodRet) If !lMsErroAuto ConOut(" Incluido NF: " + cNum) Else MostraErro() ConOut("Erro na inclusao!") EndIf ConOut("Fim: " + Time()) RESET ENVIRONMENT Return
Documento Tipo Devolução Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local nOpc := 3 Local cNum := "" Local nI := 0 Local nX := 0 Conout("Inicio: " + Time()) Private lMsErroAuto := .F. Private lMsHelpAuto := .T. PREPARE ENVIRONMENT EMPRESA "32" FILIAL "6597" MODULO "COM" FUNNAME "MATA103" cNum := GetSxeNum("SF1","F1_DOC") SF1->(dbSetOrder(1)) While SF1->(dbSeek(xFilial("SF1")+cNum)) ConfirmSX8() cNum := GetSxeNum("SF1","F1_DOC") EndDo //Cabeçalho aadd(aCab,{"F1_TIPO" ,"D" ,NIL}) 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_FORMUL" ,"N" ,NIL}) aadd(aCab,{"F1_ESPECIE" ,"NFE" ,NIL}) aadd(aCab,{"F1_COND" ,"001" ,NIL}) aadd(aCab,{"F1_EST" ,"SP" ,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}) //Itens For nX := 1 To 1 aItem := {} aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL}) aadd(aItem,{"D1_COD" ,PadR("0001",TamSx3("D1_COD")[1]) ,NIL}) aadd(aItem,{"D1_UM" ,"UN" ,NIL}) aadd(aItem,{"D1_LOCAL" ,"01" ,NIL}) aadd(aItem,{"D1_LOTECTL" ,"123456" ,NIL}) //Caso produto possua lote, informar o numero. 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(aItem,{"D1_NFORI" ,"000009015" ,NIL}) aadd(aItem,{"D1_SERIORI" ,"1 " ,NIL}) aadd(aItem,{"D1_ITEMORI" ,"0001" ,NIL}) aAdd(aItens,aItem) Next nX //3-Inclusão / 4-Classificação / 5-Exclusão MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc) If !lMsErroAuto ConOut(" Incluido NF: " + cNum) Else MostraErro() ConOut("Erro na inclusao!") EndIf ConOut("Fim: " + Time()) RESET ENVIRONMENT Return
Documento Vincular (SDH) Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXECSDH() Local aDadosVin := {} Local cDocOri := "000130 " Local cSerOri := "1 " Local cForn := "001 " Local cLoja := "01" Local cProduto := "0001" Local cSeqOri := "" Local cNumSeq := "" Local cDocDef := "200001 " Local cSerDef := "1 " Local cDHOper := "1" Local cCodCli := "" Local cLojaCli := "" Local cTES := "001" Local nQuantidad:= 2 Local nOpcX := 2 //2-Inclui / 3-Exclui Local nRecno := 0 Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM" FUNNAME "MATA103" cDocOri := Padr(cDocOri,TamSX3("DH_DOC")[1]) cSerOri := Padr(cSerOri,TamSX3("DH_SERIE")[1]) cForn := Padr(cForn,TamSX3("DH_FORNECE")[1]) cLoja := Padr(cLoja,TamSX3("DH_LOJAFOR")[1]) cProduto := Padr(cProduto,TamSX3("DH_PRODUTO")[1]) cSeqOri := Padr("0001",TamSX3("DH_ITEM")[1]) cDocDef := Padr(cDocDef,TamSX3("DH_DOC")[1]) cSerDef := Padr(cSerDef,TamSX3("DH_SERIE")[1]) DbSelectArea("SD1") SD1->(DbSetOrder(1)) If SD1->(DbSeek(xFilial("SD1") + cDocOri + cSerOri + cForn + cLoja + cProduto + cSeqOri)) cNumSeq := SD1->D1_NUMSEQ If nOpcx == 3 //Exclusao DbSelectArea("SDH") SDH->(DbSetOrder(1)) If SDH->(DbSeek(xFilial("SDH") + cNumSeq)) nRecno := SDH->(Recno()) Endif Endif aAdd(aDadosVin,{'DH_DOC' , cDocDef , Nil}) aAdd(aDadosVin,{'DH_SERIE' , cSerDef , Nil}) aAdd(aDadosVin,{'DH_TES' , cTES , Nil}) aAdd(aDadosVin,{'DH_FORNECE' , Padr(cForn,TamSX3("DH_FORNECE")[1]) , Nil}) aAdd(aDadosVin,{'DH_LOJAFOR' , Padr(cLoja,TamSX3("DH_LOJAFOR")[1]) , Nil}) aAdd(aDadosVin,{'DH_PRODUTO' , Padr(cProduto,TamSX3("DH_PRODUTO")[1]) , Nil}) aAdd(aDadosVin,{'DH_ITEM' , cSeqOri , Nil}) aAdd(aDadosVin,{'DH_IDENTNF' , Padr(cNumSeq,TamSX3("DH_IDENTNF")[1]) , Nil}) aAdd(aDadosVin,{'DH_TPMOV' , Padr('1',TamSX3("DH_TPMOV")[1]) , Nil}) aadd(aDadosVin,{'DH_OPER' , Padr( cDHOper, TamSX3("DH_OPER")[1] ) , Nil}) aAdd(aDadosVin,{'DH_CLIENTE' , cCodCli , Nil}) aAdd(aDadosVin,{'DH_LOJACLI' , cLojaCli , Nil}) aAdd(aDadosVin,{'DH_QUANT' , nQuantidad , Nil}) aAdd(aDadosVin,{'DH_ITEMCOB' , StrZero(1,TamSX3("DH_ITEMCOB")[1]), Nil}) If nOpcx == 3 //Exclusão aAdd(aDadosVin,{'DH_REC_WT' , nRecno, Nil}) Endif MSExecAuto({|a,b,c,d,e| NfeDocVin(a,b,c,d,e)},,,nOpcx,,aDadosVin) If lMsErroAuto MostraErro() Else Conout("Inserido Vinculo: " + cDocDef) Endif Endif RESET ENVIRONMENT Return
Documento Cobertura Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" #Include "Coverege.ch" User Function EXECCOB() Local cDocDef := "200001 " Local cSerDef := "1 " Local cForn := "001 " Local cLoja := "01" Local cProduto := "0001" Local nQuantidad:= 2 Local cDocOri := "000130 " Local cSerOri := "1 " Local cSeqOri := "" Local cTpMov := "1" Local cCodCli := "" Local cLojCli := "" Local cDHOper := "1" Local aCab103 := {} Local aDadosCob := {} Local cTes := "001" Local nOpcX := 3 //3-Inclui / 5-Exclui Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM" FUNNAME "MATA103" cDocDef := Padr(cDocDef,TamSX3("DH_DOC")[1]) cSerDef := Padr(cSerDef,TamSX3("DH_SERIE")[1]) cForn := Padr(cForn,TamSX3("DH_FORNECE")[1]) cLoja := Padr(cLoja,TamSX3("DH_LOJAFOR")[1]) cProduto := Padr(cProduto,TamSX3("DH_PRODUTO")[1]) cDocOri := Padr(cDocOri,TamSX3("DH_DOC")[1]) cSerOri := Padr(cSerOri,TamSX3("DH_SERIE")[1]) cSeqOri := Padr("0001",TamSX3("DH_ITEM")[1]) cCodCli := Padr(cCodCli,TamSX3("DH_CLIENTE")[1]) cLojCli := Padr(cLojCli,TamSX3("DH_LOJACLI")[1]) cTpMov := Padr('1',TamSX3("DH_TPMOV")[1]) cDHOper := Padr( cDHOper, TamSX3("DH_OPER")[1] ) DbSelectArea("SDH") SDH->(DbSetOrder(2)) If SDH->(DbSeek(xFilial('SDH')+cTpMov+cSerDef+cDocDef+cSeqOri+cCodCli+cLojCli+cForn+cLoja+cDHOper)) aAdd(aCab103,{"F1_DOC" , cDocDef , Nil}) aAdd(aCab103,{"F1_SERIE" , cSerDef , Nil}) aAdd(aCab103,{"F1_TIPO" , "N" , Nil}) aAdd(aCab103,{"F1_FORNECE", cForn , Nil}) aAdd(aCab103,{"F1_LOJA" , cLoja , Nil}) aAdd(aCab103,{"F1_EMISSAO", dDataBase, Nil}) aAdd(aCab103,{"F1_DTDIGIT", dDataBase, Nil}) aAdd(aCab103,{"F1_FORMUL" , "N" , Nil}) aAdd(aCab103,{"F1_ESPECIE", "NFE" , Nil}) aAdd(aCab103,{"F1_COND" , "001" , Nil}) aAdd(aDadosCob,Array(CB_MAXCOL)) aTail(aDadosCob)[CB_DOC] := cDocOri aTail(aDadosCob)[CB_SERIE] := cSerOri aTail(aDadosCob)[CB_SEQ] := cSeqOri aTail(aDadosCob)[CB_VLRUNIT] := 1000 aTail(aDadosCob)[CB_TES] := cTes aTail(aDadosCob)[CB_REGSDH] := SDH->(Recno()) aTail(aDadosCob)[CB_PRODUTO] := cProduto aTail(aDadosCob)[CB_QUANT] := nQuantidad aTail(aDadosCob)[CB_BASIPI] := 0 aTail(aDadosCob)[CB_TAXIPI] := 0 aTail(aDadosCob)[CB_VALIPI] := 0 aTail(aDadosCob)[CB_BASICM] := 0 aTail(aDadosCob)[CB_TAXICM] := 0 aTail(aDadosCob)[CB_VALICM] := 0 aTail(aDadosCob)[CB_VALDES] := 0 aTail(aDadosCob)[CB_CFOP] := GetAdvFVal("SF4","F4_CF",xFilial("SF4") + cTes) aTail(aDadosCob)[CB_LOCAL] := GetAdvFVal("SB1","B1_LOCPAD",xFilial("SB1") + cProduto) MSExecAuto({|a,b,c,d,e,f,g| NfeNfeCob(a,b,c,d,e,f,g)},,,nOpcX,,aCab103,aDadosCob) If lMsErroAuto MostraErro() Else Conout("Inserido Cobertura: " + cDocDef) Endif Endif RESET ENVIRONMENT Return
Documento Tipo Normal com Aposentadoria Especial Expandir origem
#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
Documento Devolução - Terceiros Expandir origem
User Function EXEC103() Local aCabec := {} Local aItens := {} Local aLinha := {} Local cDoc := "" PRIVATE lMsErroAuto := .F. ConOut(PadC(OemToAnsi("Teste de Inclusao de NFE DEVOLUCAO COM NOTA DE ORIGEM NFS"),80)) PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" FUNNAME "MATA103" cDoc := "DEV000002" aCabec := {} aItens := {} aadd(aCabec,{"F1_TIPO" ,"D" }) aadd(aCabec,{"F1_FORMUL" ,"N" }) aadd(aCabec,{"F1_DOC" ,cDoc }) aadd(aCabec,{"F1_SERIE" ,"000" }) aadd(aCabec,{"F1_EMISSAO" ,dDataBase }) aadd(aCabec,{"F1_FORNECE" ,"2 " }) aadd(aCabec,{"F1_LOJA" ,"1 " }) aadd(aCabec,{"F1_ESPECIE" ,"NFE" }) aLinha := {} aadd(aLinha,{"D1_ITEM" ,"001" ,Nil}) aadd(aLinha,{"D1_COD" ,"2 " ,Nil}) aadd(aLinha,{"D1_QUANT" ,1 ,Nil}) aadd(aLinha,{"D1_VUNIT" ,10 ,Nil}) aadd(aLinha,{"D1_TOTAL" ,10 ,Nil}) aadd(aLinha,{"D1_TES" ,"101" ,Nil})//TES DEVOLUÇÃO aAdd(aLinha,{"D1_CF" ,"000 " ,Nil}) aAdd(aLinha,{"D1_DOC" ,cDoc ,Nil}) // * aAdd(aLinha,{"D1_SERIE" ,"000" ,Nil}) // * aAdd(aLinha,{"D1_EMISSAO",dDataBase ,Nil}) // ADICIONEI aadd(aLinha,{"D1_NFORI" ,"000005 " ,Nil}) // nota de origem aadd(aLinha,{"D1_SERIORI","1 " ,Nil}) aadd(aLinha,{"D1_ITEMORI","01" ,Nil}) AAdd(aLinha,{"D1_IDENTB6","000334" ,Nil}) // d2_nunseq aadd(aLinha,{"AUTDELETA" ,"N" ,Nil}) aadd(aItens,aLinha) MSExecAuto({|x,y,z| mata103(x,y,z)},aCabec,aItens,3) If !lMsErroAuto ConOut("Incluido com sucesso! "+cDoc) Else ConOut("Erro na inclusao!") mostraerro() EndIf ConOut(OemToAnsi("Fim : ")+Time()) RESET ENVIRONMENT Return(.T.)
Documento Beneficiamento - Terceiros Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local nOpc := 3 Local cNum := "" Local nI := 0 Local nX := 0 Local nReg := 1 Local cInicio := Time() Private lMsErroAuto := .F. Private lMsHelpAuto := .T. PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM" FUNNAME "MATA103" For nI := 1 To nReg lMsErroAuto := .F. aCab := {} aItem := {} aItens := {} If nOpc == 3 cNum := GetSxeNum("SF1","F1_DOC") SF1->(dbSetOrder(1)) While SF1->(dbSeek(xFilial("SF1")+cNum)) ConfirmSX8() cNum := GetSxeNum("SF1","F1_DOC") EndDo 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" ,"B" ,NIL}) aadd(aCab,{"F1_FORMUL" ,"N" ,NIL}) aadd(aCab,{"F1_ESPECIE" ,"NFE" ,NIL}) aadd(aCab,{"F1_COND" ,"001" ,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" ,"0001" ,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" ,10 ,NIL}) aadd(aItem,{"D1_VUNIT" ,10 ,NIL}) aadd(aItem,{"D1_TOTAL" ,100 ,NIL}) aadd(aItem,{"D1_NFORI" ,"000132 ",NIL}) aadd(aItem,{"D1_SERIORI" ,"1 " ,NIL}) aadd(aItem,{"D1_ITEMORI" ,"01" ,NIL}) aadd(aItem,{"D1_IDENTB6" ,"000755" ,NIL}) aadd(aItem,{"D1_TES" ,"022" ,NIL}) //TES DEVOLUCAO - Poder3 aAdd(aItens,aItem) Next nX /*If nOpc == 3 aItem := {} aAdd(aItensRat, Array(2)) aItensRat[Len(aItensRat)][1] := "0001" aItensRat[Len(aItensRat)][2] := {} aAdd(aItem, {"DE_FILIAL" , xFilial("SDE") , Nil}) aAdd(aItem, {"DE_ITEM" , StrZero(1,TamSx3("DE_ITEM")[1]) , Nil}) aAdd(aItem, {"DE_DOC" , cNum , Nil}) aAdd(aItem, {"DE_SERIE" , "1" , Nil}) aAdd(aItem, {"DE_FORNECE" , "001 " , Nil}) aAdd(aItem, {"DE_LOJA" , "01" , Nil}) aAdd(aItem, {"DE_ITEMNF" , "0001" , Nil}) aAdd(aItem, {"DE_PERC" , 100 , Nil}) aAdd(aItem, {"DE_CC" , "01" , Nil}) aAdd(aItensRat[Len(aItensRat)][2], aClone(aItem)) Endif */ MSExecAuto({|x,y,z,a| MATA103(x,y,z)},aCab,aItens,nOpc) If !lMsErroAuto ConOut(" Incluido NF: " + cNum) Else MostraErro() ConOut("Erro na inclusao!") Exit EndIf Next nI Conout("Inicio: " + cInicio) ConOut("Fim: " + Time()) RESET ENVIRONMENT Return
Documento Complementar ICMS ou IPI Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local nOpc := 3 Local nI := 0 Local nX := 0 Local nReg := 1 Local cInicio := Time() Private lMsErroAuto := .F. Private lMsHelpAuto := .T. PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM" FUNNAME "MATA103" For nI := 1 To nReg lMsErroAuto := .F. aCab := {} aItem := {} aItens := {} If nOpc == 3 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" ,"I" ,NIL}) // I - Complemento ICMS / P - Complemento IPI aadd(aCab,{"F1_FORMUL" ,"S" ,NIL}) aadd(aCab,{"F1_ESPECIE" ,"NFE" ,NIL}) aadd(aCab,{"F1_COND" ,"001" ,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" ,"0001" ,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_VUNIT" ,10 ,NIL}) aadd(aItem,{"D1_TOTAL" ,100 ,NIL}) aadd(aItem,{"D1_NFORI" ,"000132 ",NIL}) aadd(aItem,{"D1_SERIORI" ,"1 " ,NIL}) aadd(aItem,{"D1_ITEMORI" ,"01" ,NIL}) aadd(aItem,{"D1_TES" ,"066" ,NIL}) aAdd(aItens,aItem) Next nX MSExecAuto({|x,y,z,a| MATA103(x,y,z)},aCab,aItens,nOpc) If !lMsErroAuto ConOut(" NF_incluída) Else MostraErro() ConOut("Erro na inclusao!") Exit EndIf Next nI Conout("Inicio: " + cInicio) ConOut("Fim: " + Time()) RESET ENVIRONMENT Return
Documento com Complemento de Itens da NF (DKD) Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local aAutoImp := {} Local aItensRat := {} Local aCodRet := {} Local aParamAux := {} Local nOpc := 3 Local cNum := "" Local nI := 0 Local nX := 0 Local nReg := 1 Local aAuxItDKD := {} Local aAuxDKD := {} Conout("Inicio: " + Time()) Private lMsErroAuto := .F. Private lMsHelpAuto := .T. PREPARE ENVIRONMENT EMPRESA "32" FILIAL "6597" MODULO "COM" FUNNAME "MATA103" cNum := GetSxeNum("SF1","F1_DOC") SF1->(dbSetOrder(1)) While SF1->(dbSeek(xFilial("SF1")+cNum)) ConfirmSX8() cNum := GetSxeNum("SF1","F1_DOC") EndDo //Cabeçalho aadd(aCab,{"F1_TIPO" ,"N" ,NIL}) aadd(aCab,{"F1_FORMUL" ,"N" ,NIL}) aadd(aCab,{"F1_DOC" ,cNum ,NIL}) aadd(aCab,{"F1_SERIE" ,"1 " ,NIL}) aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL}) aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL}) aadd(aCab,{"F1_FORNECE" ,"001 " ,NIL}) aadd(aCab,{"F1_LOJA" ,"01" ,NIL}) aadd(aCab,{"F1_ESPECIE" ,"NFE" ,NIL}) aadd(aCab,{"F1_COND" ,"001" ,NIL}) aadd(aCab,{"F1_MOEDA" , 1 ,Nil}) aadd(aCab,{"F1_TXMOEDA" , 1 ,Nil}) aadd(aCab,{"F1_STATUS" , "A" ,Nil}) //Itens For nX := 1 To 1 aItem := {} aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL}) aadd(aItem,{"D1_COD" ,PadR("0001",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" ,7508.33 ,NIL}) aadd(aItem,{"D1_TOTAL" ,7508.33 ,NIL}) aadd(aItem,{"D1_TES" ,"001" ,NIL}) aAdd(aItens,aItem) aAuxItDKD := {} aadd(aAuxItDKD,{"DKD_ITEM" ,StrZero(nX,TamSx3("D1_ITEM")[1]) ,NIL}) aadd(aAuxItDKD,{"DKD_TSTNUM" ,150 ,NIL}) //Campo customizado criado na nova tabela complementar DKD aAdd(aAuxDKD,aAuxItDKD) Next nX //3-Inclusão / 4-Classificação / 5-Exclusão MSExecAuto({|x,y,z,b,a| MATA103(x,y,z,b,,,,,,,,,,,a)},aCab,aItens,nOpc,.F.,aAuxDKD) If !lMsErroAuto ConOut(" Incluido NF: " + cNum) Else MostraErro() ConOut("Erro na inclusao!") EndIf ConOut("Fim: " + Time()) RESET ENVIRONMENT Return
Documento Entrega Futura (DHQ) Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXECFUT() Local aCab := {} Local cNum := "COM000" Local cNum1 := "COM001" Local aItem := {} Local aItens := {} Local cSerie := "100" Local cFornec := "000005" Local cLoja := "01" Local cEspecie := "NFE " Local cProd1 := "001 " Local nX := 0 Local cTes := "043" Local cPedido := "TIR469" Local nOpc := 3 //3-Inclui / 5-Exclui Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" FUNNAME "MATA103" If nOpc == 3 // Compra com Entrega Futura (simples faturamento) aadd(aCab,{"F1_DOC" ,cNum ,NIL}) aadd(aCab,{"F1_SERIE" ,cSerie ,NIL}) aadd(aCab,{"F1_FORNECE" ,cFornec ,NIL}) aadd(aCab,{"F1_LOJA" ,cLoja ,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" ,cEspecie ,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 :="001 " 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_PEDIDO" ,cPedido,Nil}) aAdd(aItem, {"D1_ITEMPC", "0001",Nil}) aadd(aItem,{"D1_QUANT" ,100 ,NIL}) aadd(aItem,{"D1_VUNIT" ,100 ,NIL}) aadd(aItem,{"D1_TOTAL" ,10000 ,NIL}) aadd(aItem,{"D1_TES" ,cTes ,NIL}) aAdd(aItens,aItem) Next nX MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc) If lMsErroAuto MostraErro() Else Conout("Entrega Futura incluída: " + cNum) Endif Endif /***********************************************************************/ // Documento de Entrada representando a remessa da mercadoria aCab := {} aItem := {} aItens := {} nX := 0 If nOpc == 3 aadd(aCab,{"F1_DOC" ,cNum1 ,NIL}) aadd(aCab,{"F1_SERIE" ,cSerie ,NIL}) aadd(aCab,{"F1_FORNECE" ,cFornec ,NIL}) aadd(aCab,{"F1_LOJA" ,cLoja ,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" ,cEspecie ,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 :="001 " 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" ,50 ,NIL}) aadd(aItem,{"D1_VUNIT" ,100 ,NIL}) aadd(aItem,{"D1_TOTAL" ,5000 ,NIL}) aadd(aItem,{"D1_TES" ,"496" ,NIL}) aadd(aItem,{"AUT_ENTFUT", {cNum,"100","0001",0,"0001",cFornec,cLoja},Nil})//Dados para nota fiscal de origem aAdd(aItens,aItem) Next nX MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc) If lMsErroAuto MostraErro() Else Conout("Remessa Entrega Futura incluida: " + cNum1) Endif Endif RESET ENVIRONMENT Return
Guarda Fiscal - Gravar Dados da Classificação do Documento para Futura finalização da Classificação Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local nOpc := 3 Local cNum := "" Local nI := 0 Local nX := 0 Local nReg := 1 Local cInicio := Time() Private lMsErroAuto := .F. Private lMsHelpAuto := .T. Private lTemF1GFE := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "COM" FUNNAME "MATA103" Conout( Replicate( '=', 30 )) Conout("Inicio: " + cInicio) For nI := 1 To nReg lMsErroAuto := .F. aCab := {} aItem := {} aItens := {} nOpc := 3 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 == 4 .Or. nOpc == 5 cNum := "COMSP137 " EndIf Conout("Documento: " + cNum) aadd( aCab, { "F1_FORMUL" , "N" ,NIL } ) aadd( aCab, { "F1_DOC" , cNum ,NIL } ) aadd( aCab, { "F1_SERIE" , "1 " ,NIL } ) aadd( aCab, { "F1_FORNECE" , "000001" ,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_ESPECIE" , "NFE" ,NIL } ) aadd( aCab, { "F1_COND" , "000" ,NIL } ) cProd1 := "000001" cItem := StrZero(nX,TamSx3("D1_ITEM")[1]) aItem := {} aadd( aItem, { "D1_ITEM" , cItem , 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" , 10 , NIL } ) aadd( aItem, { "D1_VUNIT" , 1000 , NIL } ) aadd( aItem, { "D1_TOTAL" , 10000 , NIL } ) aAdd(aItens,aItem) MSExecAuto( { |x,y,z| MATA140( x, y, z ) }, aCab, aItens, nOpc ) // Inclusão Pré Nota If !lMsErroAuto ConOut( "Incluido Pre Nota: " + cNum ) aItens := {} aItem := {} aadd( aItem, { "D1_ITEM" , cItem , 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" , 10 , NIL } ) aadd( aItem, { "D1_VUNIT" , 1500 , NIL } ) aadd( aItem, { "D1_TOTAL" , 15000 , NIL } ) aadd( aItem, { "D1_TES" , "001" , NIL } ) aAdd(aItens,aItem) nOpc := 4 //Classificação lGrvGF := .T. MSExecAuto( { |a, b, c, d| MATA103( a, b, c, , , , , , , , , , , , , d ) }, aCab, aItens, nOpc, lGrvGF ) // Realiza a gravação dos dados alterados sem finalizar a Classificação If !lMsErroAuto ConOut( "Classificado Documento Fiscal: " + cNum ) Else MostraErro() ConOut( "Erro na inclusao!" ) Exit EndIf Else MostraErro() ConOut( "Erro na inclusao!" ) Exit EndIf Next nI ConOut("Fim: " + Time()) Conout( Replicate( '=', 30 )) RESET ENVIRONMENT Return .T.
Inclusão - Entrega por Terceiros Expandir origem
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC103() Local aCab := {} Local aItem := {} Local aItens := {} Local nOpc := 3 Local cNum := "" Local nI := 0 Local nX := 0 Local nReg := 1 Local cInicio := Time() Private lMsErroAuto := .F. Private lMsHelpAuto := .T. Private lTemF1GFE := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "COM" FUNNAME "MATA103" Conout( Replicate( '=', 30 )) Conout("Inicio: " + cInicio) For nI := 1 To nReg lMsErroAuto := .F. aCab := {} aItem := {} aItens := {} nOpc := 3 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 == 4 .Or. nOpc == 5 cNum := "COMSP137 " EndIf Conout("Documento: " + cNum) aadd( aCab, { "F1_FORMUL" , "N" ,NIL } ) aadd( aCab, { "F1_DOC" , cNum ,NIL } ) aadd( aCab, { "F1_SERIE" , "1 " ,NIL } ) aadd( aCab, { "F1_FORNECE" , "000001" ,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_ESPECIE" , "NFE" ,NIL } ) aadd( aCab, { "F1_COND" , "000" ,NIL } ) cProd1 := "000001" cItem := StrZero(nX,TamSx3("D1_ITEM")[1]) aItem := {} aadd( aItem, { "D1_ITEM" , cItem , 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" , 10 , NIL } ) aadd( aItem, { "D1_VUNIT" , 1000 , NIL } ) aadd( aItem, { "D1_TOTAL" , 10000 , NIL } ) aAdd(aItens,aItem) MSExecAuto( { |x,y,z| MATA140( x, y, z ) }, aCab, aItens, nOpc ) // Inclusão Pré Nota If !lMsErroAuto ConOut( "Incluido Pre Nota: " + cNum ) aItens := {} aItem := {} aadd( aItem, { "D1_ITEM" , cItem , 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" , 10 , NIL } ) aadd( aItem, { "D1_VUNIT" , 1500 , NIL } ) aadd( aItem, { "D1_TOTAL" , 15000 , NIL } ) aadd( aItem, { "D1_TES" , "001" , NIL } ) aAdd(aItens,aItem) nOpc := 4 //Classificação lGrvGF := .T. MSExecAuto( { |a, b, c, d| MATA103( a, b, c, , , , , , , , , , , , , d ) }, aCab, aItens, nOpc, lGrvGF ) // Realiza a gravação dos dados alterados sem finalizar a Classificação If !lMsErroAuto ConOut( "Classificado Documento Fiscal: " + cNum ) Else MostraErro() ConOut( "Erro na inclusao!" ) Exit EndIf Else MostraErro() ConOut( "Erro na inclusao!" ) Exit EndIf Next nI ConOut("Fim: " + Time()) Conout( Replicate( '=', 30 )) RESET ENVIRONMENT Return .T.
Exclusão de Doc de Entrada (com Abertura de Tela) Expandir origem
#INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" User Function EXEC103() Local cNumDoc := "M103CTELA" Local cSerie := "001" Local cForn := "000001" Local cLoja := "01" Local nOpc := 5 Local aCab := {} Local aItens := {} Local aLinha := {} Private lMsErroAuto := .F. DbSelectArea("SF1") SF1->(DbSetOrder(1)) SF1->(DbSeek(xFilial("SF1") + cNumDoc + cSerie + cForn + cLoja )) aadd(aCab,{"F1_TIPO" , "N" ,NIL}) aadd(aCab,{"F1_FORMUL" , "N" ,NIL}) aadd(aCab,{"F1_DOC" , SF1->F1_DOC,NIL}) aadd(aCab,{"F1_SERIE" , SF1->F1_SERIE ,NIL}) aadd(aCab,{"F1_EMISSAO" , dDataBase,NIL}) aadd(aCab,{"F1_DTDIGIT" , dDataBase,NIL}) aadd(aCab,{"F1_FORNECE" , SF1->F1_FORNECE ,NIL}) aadd(aCab,{"F1_LOJA" , SF1->F1_LOJA ,NIL}) aadd(aCab,{"F1_ESPECIE" , SF1->F1_ESPECIE ,NIL}) dbSelectArea("SD1") SD1->(dbSetOrder(1)) SD1->(DbSeek(xFilial("SD1")+SF1->F1_DOC+SF1->F1_SERIE+SF1->F1_FORNECE+SF1->F1_LOJA)) While !Eof() .And. SD1->D1_FILIAL+SD1->D1_DOC+SD1->D1_SERIE+SD1->D1_FORNECE+SD1->D1_LOJA == ; SF1->F1_FILIAL+SF1->F1_DOC+SF1->F1_SERIE+SF1->F1_FORNECE+SF1->F1_LOJA aItens := {} aAdd(aItens,{'D1_DOC',SD1->D1_DOC ,NIL}) aAdd(aItens,{'D1_SERIE',SD1->D1_SERIE ,NIL}) aAdd(aItens,{'D1_FORNECE',SD1->D1_FORNECE,NIL}) aAdd(aItens,{'D1_LOJA',SD1->D1_LOJA ,NIL}) aadd(aItens,{"D1_ITEM",SD1->D1_ITEM ,NIL}) aadd(aItens,{"D1_COD" ,SD1->D1_COD ,NIL}) aadd(aItens,{"D1_UM" ,SD1->D1_UM ,NIL}) aadd(aItens,{"D1_LOCAL",SD1->D1_LOCAL ,NIL}) aadd(aItens,{"D1_QUANT",SD1->D1_QUANT ,NIL}) aadd(aItens,{"D1_VUNIT",SD1->D1_VUNIT ,NIL}) aadd(aItens,{"D1_TOTAL",SD1->D1_TOTAL ,NIL}) aadd(aItens,{"D1_TES" ,SD1->D1_TES ,NIL}) aAdd(aLinha,aItens) SD1->(dbSkip()) EndDo MSExecAuto({|x,y,z,b,a| MATA103(x,y,z,b,,,,,,,,,,,a)},aCab,aLinha,nOpc,.T.,) If lMsErroAuto MostraErro() EndIf Return
Inclusão com alíquota ISS sendo calculado através do FISA052 Expandir origem
#Include "RwMake.ch" #Include "TbiConn.ch" User Function INC103IMP() Local nX As Numeric Local cTipo As Character Local cFormul As Character Local cNum As Character Local cSerie As Character Local cFornec As Character Local cLoja As Character Local cEspecie As Character Local cCondPgt As Character Local cStatus As Character Local cNaturez As Character Local cProd As Character Local cUnid As Character Local cArmz As Character Local cTes As Character Local nQuant As Numeric Local nPrcUnit As Numeric Local nVlTot As Numeric Local aCab As Array Local aItem As Array Local aItens As Array Local aAutoImp As Array Local aItensRat As Array Local aCodRet As Array Local aParamAux As Array Local nOpc As Numeric Private lMsErroAuto As Logical Private lMsHelpAuto As Logical nX := 1 cTipo := "N" cFormul := "N" cSerie := "001" cFornec := "FGFISS" cLoja := "01" cEspecie := "NFS" cCondPgt := "000" cStatus := "A" cNaturez := "014" cProd := "COMSP0000000000000000000000004" cUnid := "UN" cArmz := "01" cTes := "015" nQuant := 10 nPrcUnit := 100 nVlTot := 1000 aCab := {} aItem := {} aItens := {} aAutoImp := {} nOpc := 3 lMsErroAuto := .F. lMsHelpAuto := .T. Conout("Inicio: " + Time()) PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM" FUNNAME "MATA103" cNum := GetSxeNum("SF1","F1_DOC") SF1->(dbSetOrder(1)) While SF1->(dbSeek(xFilial("SF1")+cNum)) ConfirmSX8() cNum := GetSxeNum("SF1","F1_DOC") EndDo //Cabeçalho aCab := {} aadd(aCab,{"F1_TIPO" ,cTipo ,NIL}) aadd(aCab,{"F1_FORMUL" ,cFormul ,NIL}) aadd(aCab,{"F1_DOC" ,cNum ,NIL}) aadd(aCab,{"F1_SERIE" ,cSerie ,NIL}) aadd(aCab,{"F1_EMISSAO" ,dDataBase ,NIL}) aadd(aCab,{"F1_DTDIGIT" ,dDataBase ,NIL}) aadd(aCab,{"F1_FORNECE" ,cFornec ,NIL}) aadd(aCab,{"F1_LOJA" ,cLoja ,NIL}) aadd(aCab,{"F1_ESPECIE" ,cEspecie ,NIL}) aadd(aCab,{"F1_COND" ,cCondPgt ,NIL}) aadd(aCab,{"F1_MOEDA" ,1 ,Nil}) aadd(aCab,{"F1_TXMOEDA" ,1 ,Nil}) aadd(aCab,{"F1_STATUS" ,cStatus ,Nil}) aadd(aCab,{"E2_NATUREZ",PadR(cNaturez,TamSx3("ED_CODIGO")[1]) ,Nil}) //Itens aItem := {} aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL}) aadd(aItem,{"D1_COD" ,PadR(cProd,TamSx3("D1_COD")[1]) ,NIL}) aadd(aItem,{"D1_UM" ,cUnid ,NIL}) aadd(aItem,{"D1_LOCAL" ,cArmz ,NIL}) aadd(aItem,{"D1_QUANT" ,nQuant ,NIL}) aadd(aItem,{"D1_VUNIT" ,nPrcUnit ,NIL}) aadd(aItem,{"D1_TOTAL" ,nVlTot ,NIL}) aadd(aItem,{"D1_TES" ,cTes ,NIL}) aAdd(aItens,aItem) //Impostos (Informar a referência do imposto, que consta no valid do campo) //Para impostos de cabeçalho informar: referência, valor aAutoImp := { {"NF_UFPREISS" , "SP"},; {"NF_CODMUN", "18800"}} //3-Inclusão MSExecAuto({|x,y,z,a,b| MATA103(x,y,z,a,b,,,,,)},aCab,aItens,nOpc,.F.,aAutoImp) aItens := {} If !lMsErroAuto ConOut(" Incluido NF: " + cNum) Else MostraErro() ConOut("Erro na inclusao!") EndIf ConOut("Fim: " + Time()) RESET ENVIRONMENT FwFreeArray(aCab) FwFreeArray(aItem) FwFreeArray(aAutoImp) FwFreeArray(aItens) Return ATENÇÃO! Não se esqueça de conferir as observações! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Observações: | Em todo PREPARE ENVIRONMENT deve-se informar o FUNNAME da rotina, para que não haja problema durante a inclusão/alteração/exclusão do documento. Ex: PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM" FUNNAME "MATA103" O parâmetro aCodRet contendo o array com os códigos de retenção pode ser referenciado com um ou mais impostos ou com a referencia genérica "..." assim como aparece na aba de impostos da nota fiscal de entrada. Importante: Não deve-se utilizar o campo D1_ITEM no comando "For". O uso desse campo no array que trás as informações dos itens do documento de entrada, impede a execução correta do Excecauto. Para opção Classificação Quando a rotina automática de Documentos de Entrada(MATA103) for chamada com a opção 4 = Classificação, deve-se necessariamente informar a variável LINPOS, conforme exemplo abaixo: LINPOS aAdd(aLinha, {"LINPOS" , "D1_ITEM", SD1->D1_ITEM}) Para opção Inclusão Validar chave NFE, o usuário terá que passar no array do cabeçalho a nomenclatura VLDAMNFE indicando se deve ou não fazer a validação da chave juntamente com o campo da chave da NFE F1_CHVNFE. LINPOS aadd(aCab,{"F1_CHVNFE" ,"" ,NIL}) aAdd(aCab, {"VLDAMNFE" , "S", Nil}) Para opção Inclusão Ao vincular pedido de compra ao documento, se houver necessidade de alterar a quantidade/valor/total, deve-se informar no array dos itens os campos de pedido (D1_PEDIDO / D1_ITEMPC) antes do campos de quantidade/valor/total (D1_QUANT / D1_VUNIT / D1_TOTAL) LINPOS aAdd(aItem, {"D1_PEDIDO","000105",Nil}) aAdd(aItem, {"D1_ITEMPC","0001",Nil}) aAdd(aItem, {"D1_QUANT",1,Nil}) aAdd(aItem, {"D1_VUNIT",100,Nil}) aAdd(aItem, {"D1_TOTAL",100,Nil}) Para opção Inclusão Ao vincular pedido de compra ao documento, se houver necessidade de alterar a TES, deve-se informar no array dos itens os campos de pedido (D1_PEDIDO / D1_ITEMPC) antes do campo de TES (D1_TES) LINPOS aAdd(aItem, {"D1_PEDIDO","000105",Nil}) aAdd(aItem, {"D1_ITEMPC","0001",Nil}) aAdd(aItem, {"D1_TES",010,Nil}) Para opção Inclusão - Controle de numeração com uso de SD9 (MV_TPNRNFS) Quando utilizado a opção de Controle de numeração com uso de SD9 (MV_TPNRNFS = 3), através de Execauto, deve-se sempre informar conforme exemplo abaixo, para que seja implementada corretamente a numeração nas tabelas SD1, SF1 e SD9. LINPOS aAdd(aCabec,{'F1_FORMUL' ,'S' ,NIL}) Não informar o campo F1_DOC. Para para informações sobre a sequência automática, utilizando o parâmetro MV_TPNRNFS, consultar o link abaixo: Para opção Inclusão Quando utilizado o Formulário Próprio = "S e caso seja enviado o Número do Documento / Nota Fiscal, sistema irá acatar o número enviado pelo Execauto. Obs: Utilizar função NxtSX5Nota para ter retorno da numeração do documento Exemplo: cNumDoc := NxtSX5Nota(cSerie ) LINPOS cSerie := "001" cNum := NxtSX5Nota(cSerie ) aAdd(aCab,{"F1_DOC" ,cNum ,NIL}) aAdd(aCab,{"F1_SERIE" ,cSerie ,NIL}) Para opção Inclusão Quando utilizado o Formulário Próprio = "S e caso seja enviado o Número do Documento / Nota Fiscal, sistema irá acatar o número enviado pelo Execauto. Obs: Utilizar função NxtSX5Nota para ter retorno da numeração do documento Exemplo: cNumDoc := NxtSX5Nota(cSerie ) LINPOS cSerie := "001" cNum := NxtSX5Nota(cSerie ) aAdd(aCab,{"F1_DOC" ,cNum ,NIL}) aAdd(aCab,{"F1_SERIE" ,cSerie ,NIL}) Entrega Terceiros Para cenários de ExecAuto de Entrega por Terceiros, o parâmetro MV_FORPCNF deverá estar ativo (MV_FORPCNF = T) e possuir previamente cadastrado os dados de Entrega por terceiros (COMA001) configurado. C7_NUM = PCGF01 Parâmetros cSerie := "001" cFornec := "LF009 " cLoja := "00" cNumPC := "PCGF01" aAdd(aCab,{"F1_SERIE" ,cSerie ,NIL}) aAdd(aCab,{"F1_FORNECE" ,cFornec ,NIL}) aAdd(aCab,{"F1_LOJA" , cLoja ,NIL}) aAdd(aItem, {"D1_PEDIDO",cNumPC ,Nil}) aAdd(aItem, {"D1_ITEMPC","0001" ,Nil}) aAdd(aItem, {"D1_TES" ,"001" ,Nil}) Entrega Futura - Remessa Segue detalhamento dos parâmetros do array AUT_ENTFUT que deve ser passado quando utilizado o ExecAuto para remessa de mercadorias referente a entrega Futura. 1° Posição : Documento de Simples Faturamento - DHQ AUT_ENTFUT cDocOrg := "DOCSMPFAT" cSerOrg := "001" cItem := "0001" cFornec := "LF030" cLoja := "00" aAdd(aItem, {"AUT_ENTFUT", {cDocOrg , cSerOrg , cItem , 0 , cItem , cFornec , cLoja},NIL}) Alíquota ISS - FISA052 Para garantir o correto cálculo da alíquota do ISS relacionada ao cadastro FISA052 o parametro MV_ISSXMUN deve estar habilitado, apresentamos a seguir um exemplo de como informar o Estado e o Código do Município: Aliq ISS - FISA052 aAutoImp := { {"NF_UFPREISS" , "SP"},; {"NF_CODMUN", "18800"}} Configurador de Tributos A Rotina de Documento de Entrada já está prepara para ser utilizada com o Configurador de Tributos. Portanto, caso deseje realizar através do mesmo deve ser passados a informação abaixo: Fornecedor,Produto e Cfop (com esse podendo ser informado diretamente ou informando uma TES que contenha o Cfop desejado) aadd(aCab,{"F1_FORNECE" ,"FUT001" ,NIL}) aadd(aCab,{"F1_LOJA" ,"01" ,NIL}) aadd(aItem,{"D1_COD" ,"01" ,NIL}) aadd(aItem,{"D1_TES" ,"001" ,NIL}) aadd(aItem,{"D1_CF" ,"1111" ,NIL}) Caso esteja passando o Cfop diretamente ele será o priorizado para o calculo. |