Producto: | Protheus | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Versiones: | Todas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ocurrencia: | Rutina automática - MATA103 (Execauto) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Entorno: | SIGACOM - Compras | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Descripción: | Rutina automática que permite la inclusión de documentos entrada en gran cantidad. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parámetros: |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Paso a paso: |
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" SUCURSAL "6597" MÓDULO "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)//Si fuera clasificación, debe informar la variable LINPOS
aAdd(aItem, {"LINPOS" , "D1_ITEM", StrZero(nX,4)}) //o SD1->D1_ITEM si estuviera seleccionado.
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 con la información si se genera DIRF y los códigos de retención por impuesto
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"} )
// Ejemplo para manejar la pregunta MTA103
aAdd(aParamAux, {"MV_PAR01", 2}) //-- ¿Muestra Asto. Contable? 1 = Sí, 2 = No
aAdd(aParamAux, {"MV_PAR06", 1}) //-- ¿Contabilidad online? 1 = Sí, 2 = No
//3-Inclusión / 4-Clasificación / 5-Borrado
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("¡Error en la inclusión!")
EndIf
ConOut("Final: " + 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" SUCURSAL "6597" MÓDULO "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})
//Ítems
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
//Impuestos (Informe la referencia del impuesto, que consta en el valid del campo)
//Para impuestos de encabezado informe: referencia, valor
aAutoImp := { {"NF_FRETE" , 10},;
{"NF_VALIPI", 15},;
{"NF_VALICM",7}}
//Para impuestos de ítems informe: referencia, valor, número de la línea
aAdd(aAutoImp, {'IT_BASEICM', 100, 1}) //Base
aAdd(aAutoImp, {'IT_ALIQICM',12, 1}) //Porcentaje impuesto
aAdd(aAutoImp, {'IT_VALICM', 12, 1}) //Valor impuesto
//3-Inclusión / 4-Clasificación / 5-Borrado
MSExecAuto({|x,y,z,a,b| MATA103(x,y,z,,a,,,,,)},aCabec,aItens,3,aAutoImp)
If !lMsErroAuto
ConOut(" Incluido NF: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf
ConOut("Fim: " + Time())
RESET ENVIRONMENT
Return
Documento tipo normal vinculado al 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" SUCURSAL "6597" MÓDULO "COM" FUNNAME "MATA103"
cNum := GetSxeNum("SF1","F1_DOC")
SF1->(dbSetOrder(1))
While SF1->(dbSeek(xFilial("SF1")+cNum))
ConfirmSX8()
cNum := GetSxeNum("SF1","F1_DOC")
EndDo
//Encabezado
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})
//Ítems
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 del pedido de compras
aadd(aItens[Len(aItens)], {'D1_ITEMPC ', '0001' ,}) // Ítem del pedido de compras
if(nOpc == 4)//Si fuera clasificación, debe informar la variable LINPOS
aAdd(aItem, {"LINPOS" , "D1_ITEM", StrZero(nX,4)}) //o SD1->D1_ITEM si estuviera seleccionado.
endIf
Next nX
//3-Inclusión / 4-Clasificación / 5-Borrado
MSExecAuto({|x,y,z,k,a,b| MATA103(x,y,z,,,,k,a,,,b)},aCab,aItens,nOpc,aParamAux,aItensRat,aCodRet)
If !lMsErroAuto
ConOut(" Incluida Fact: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf
ConOut("Final: " + Time())
RESET ENVIRONMENT
Return
Documento tipo devolución 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" SUCURSAL "6597" MÓDULO "COM" FUNNAME "MATA103"
cNum := GetSxeNum("SF1","F1_DOC")
SF1->(dbSetOrder(1))
While SF1->(dbSeek(xFilial("SF1")+cNum))
ConfirmSX8()
cNum := GetSxeNum("SF1","F1_DOC")
EndDo
//Encabezado
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})
//Ítems
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}) //Si el producto tuviera lote, informe el número.
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-Inclusión / 4-Clasificación / 5-Borrado
MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc)
If !lMsErroAuto
ConOut(" Incluida Fact: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf
ConOut("Final: " + 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-Incluye / 3-Borrad
Local nRecno := 0
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MÓDULO "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 //Borrado
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 //Borrado
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("Incluido vínculo: " + 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-Incluye / 5-Borra
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MÓDULO "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 con jubilación 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" SUCURSAL "1001" MÓDULO "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(" Incluida Fact: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
Exit
EndIf
Next nI
RESET ENVIRONMENT
Return
Documento devolución - Terceros Expandir origem
User Function EXEC103()
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local cDoc := ""
PRIVATE lMsErroAuto := .F.
ConOut(PadC(OemToAnsi("Prueba de inclusión de NFE DEVOLUCIÓN CON FACTURA DE ORIGEM NFS"),80))
PREPARE ENVIRONMENT EMPRESA "99" SUCURSAL "01" MÓDULO "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 DEVOLUCIÓN
aAdd(aLinha,{"D1_CF" ,"000 " ,Nil})
aAdd(aLinha,{"D1_DOC" ,cDoc ,Nil}) // *
aAdd(aLinha,{"D1_SERIE" ,"000" ,Nil}) // *
aAdd(aLinha,{"D1_EMISSAO",dDataBase ,Nil}) // AGREGUÉ
aadd(aLinha,{"D1_NFORI" ,"000005 " ,Nil}) // factura de origen
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 con éxito! "+cDoc)
Else
ConOut("¡Error en la inclusión!")
mostraerro()
EndIf
ConOut(OemToAnsi("Fim : ")+Time())
RESET ENVIRONMENT
Return(.T.)
Documento mejora - terceros 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" SUCURSAL "1001" MÓDULO "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 DEVOLUCIÓN - 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(" Incluida Fact: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
Exit
EndIf
Next nI
Conout("Inicio: " + cInicio)
ConOut("Fim: " + Time())
RESET ENVIRONMENT
Return
Documento complementario ICMS o 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" SUCURSAL "1001" MÓDULO "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("¡Error en la inclusión!")
Exit
EndIf
Next nI
Conout("Inicio: " + cInicio)
ConOut("Final: " + Time())
RESET ENVIRONMENT
Return
Documento con complemento de ítems de la Fact (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" SUCURSAL "6597" MÓDULO "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})
//Ítems
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 personalizado creado en la nueva tabla complementaria DKD
aAdd(aAuxDKD,aAuxItDKD)
Next nX
//3-Inclusión / 4-Clasificación / 5-Borrado
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("¡Error en la inclusión!")
EndIf
ConOut("Final: " + 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-Incluye / 5-Borra
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "99" SUCURSAL "01" MÓDULO "COM" FUNNAME "MATA103"
If nOpc == 3
// Compra con entrega futura (simple facturación)
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 incluida: " + cNum)
Endif
Endif
/***********************************************************************/
// Documento de entrada representando el envío de la mercadería
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})//Datos para factura de origen
aAdd(aItens,aItem)
Next nX
MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc)
If lMsErroAuto
MostraErro()
Else
Conout("Envío entrega futura incluida: " + cNum1)
Endif
Endif
RESET ENVIRONMENT
Return
Resguardo fiscal - Grabar datos de la clasificación del documento para futura finalización de la clasificación 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" SUCURSAL "D MG 01 " MÓDULO "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 ) // Inclusión factura previa
If !lMsErroAuto
ConOut( "Incluida factura previa: " + 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 //Clasificación
lGrvGF := .T.
MSExecAuto( { |a, b, c, d| MATA103( a, b, c, , , , , , , , , , , , , d ) }, aCab, aItens, nOpc, lGrvGF ) // Realiza la grabación de los datos modificados sin finalizar la clasificación
If !lMsErroAuto
ConOut( "Clasificado documento fiscal: " + cNum )
Else
MostraErro()
ConOut( "¡Error en la inclusión!" )
Exit
EndIf
Else
MostraErro()
ConOut( "¡Error en la inclusión!" )
Exit
EndIf
Next nI
ConOut("Fim: " + Time())
Conout( Replicate( '=', 30 ))
RESET ENVIRONMENT
Return .T.
Inclusión - Entrega por terceros 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" SUCURSAL "D MG 01 " MÓDULO "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 ) // Inclusión factura previa
If !lMsErroAuto
ConOut( "Incluida factura previa: " + 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 //Clasificación
lGrvGF := .T.
MSExecAuto( { |a, b, c, d| MATA103( a, b, c, , , , , , , , , , , , , d ) }, aCab, aItens, nOpc, lGrvGF ) // Realiza la grabación de los datos modificados sin finalizar la clasificación
If !lMsErroAuto
ConOut( "Clasificado documento fiscal: " + cNum )
Else
MostraErro()
ConOut( "¡Error en la inclusión!" )
Exit
EndIf
Else
MostraErro()
ConOut( "¡Error en la inclusión!" )
Exit
EndIf
Next nI
ConOut("Final: " + Time())
Conout( Replicate( '=', 30 ))
RESET ENVIRONMENT
Return .T.
Borrado de Doc de entrada (con apertura de pantalla) 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
Inclusión con alícuota ISS, calculándose por medio del 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" SUCURSAL "D MG 01" MÓDULO "COM" FUNNAME "MATA103"
cNum := GetSxeNum("SF1","F1_DOC")
SF1->(dbSetOrder(1))
While SF1->(dbSeek(xFilial("SF1")+cNum))
ConfirmSX8()
cNum := GetSxeNum("SF1","F1_DOC")
EndDo
//Encabezado
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})
//Ítems
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)
//Impuestos (Informe la referencia del impuesto, que consta en el valid del campo)
//Para impuestos de encabezado informe: referencia, valor
aAutoImp := { {"NF_UFPREISS" , "SP"},;
{"NF_CODMUN", "18800"}}
//3-Inclusión
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("¡Error en la inclusión!")
EndIf
ConOut("Final: " + Time())
RESET ENVIRONMENT
FwFreeArray(aCab)
FwFreeArray(aItem)
FwFreeArray(aAutoImp)
FwFreeArray(aItens)
Return
Documento Tipo Normal - Com Rateio de CC com N itens Expandir origem
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
#Include "Coverage.ch"
User Function EXEC103()
Local aCab := {}
Local aItem := {}
Local aItens := {}
Local aItensRat := {}
Local nOpc := 3
Local cNum := ""
Local cSer := " "
Local cProd1 := "LF005"
Local cProd2 := "LF006"
Local nX := 0
Local nY := 0
Local cInicio := Time()
Private lMsErroAuto := .F.
Private lMsHelpAuto := .F.
Private lTemF1GFE := .F.
PREPARE ENVIRONMENT EMPRESA "T1" SUCURSAL "D MG 01" MÓDULO "COM" FUNNAME "MATA103"
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_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_DOC" ,cNum ,NIL})
aadd(aCab,{"F1_SERIE" ,cSer ,NIL})
aadd(aCab,{"F1_FORNECE" ,"COM002" ,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" ,"EFACT" ,NIL})
aadd(aCab,{"F1_COND" ,"000" ,NIL})
aadd(aCab,{"F1_STATUS" , "A" , Nil})
For nX := 1 To 2
aItem := {}
aadd(aItem,{"D1_ITEM" ,StrZero(nX,TamSx3("D1_ITEM")[1]) ,NIL})
If nX == 1
aadd(aItem,{"D1_COD" ,PadR(cProd1,TamSx3("D1_COD")[1]) ,NIL})
Elseif nX == 2
aadd(aItem,{"D1_COD" ,PadR(cProd2,TamSx3("D1_COD")[1]) ,NIL})
Endif
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(aItem,{"D1_TES" ,"001" ,NIL})
aadd(aItem,{"D1_RATEIO" ,"1" ,NIL})
aAdd(aItens,aItem)
aAdd(aItensRat, Array(2))
aItensRat[Len(aItensRat)][1] := StrZero(nX,TamSx3("D1_ITEM")[1])
aItensRat[Len(aItensRat)][2] := {}
For nY := 1 To 2
aItem := {}
aAdd(aItem, {"DE_FILIAL" , xFilial("SDE") , Nil})
aAdd(aItem, {"DE_ITEM" , StrZero(nY,TamSx3("DE_ITEM")[1]) , Nil})
aAdd(aItem, {"DE_DOC" , cNum , Nil})
aAdd(aItem, {"DE_SERIE" , cSer , Nil})
aAdd(aItem, {"DE_FORNECE" , "COM002" , Nil})
aAdd(aItem, {"DE_LOJA" , "01" , Nil})
aAdd(aItem, {"DE_ITEMNF" , StrZero(nX,TamSx3("D1_ITEM")[1]) , Nil})
If nY == 1
aAdd(aItem, {"DE_PERC" , 60 , Nil})
aAdd(aItem, {"DE_CC" , "CC01" , Nil})
Else
aAdd(aItem, {"DE_PERC" , 40 , Nil})
aAdd(aItem, {"DE_CC" , "01" , Nil})
Endif
aAdd(aItensRat[Len(aItensRat)][2], aClone(aItem))
Next nY
Next nX
MSExecAuto({|x,y,z,a,b| MATA103(x,y,z,a,,,,b)},aCab,aItens,nOpc,.F.,aItensRat)
If !lMsErroAuto
ConOut(" Se incluyó Fact: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf
Conout("Inicio: " + cInicio)
ConOut("Final: " + Time())
Conout("Tiempo: " + ElapTime(cInicio,Time()))
RESET ENVIRONMENT
Return
Documento Tipo Devolução - Classificação utilizando o aAutoImp para modificar as informações de Impostos Expandir origem
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function CSL103()
Local aCab := {}
Local aLinha := {}
Local aItens := {}
Local aParamAux := {}
Local aAutoImp := {}
Local cDoc := "DOCS0D "
Local cSerie := "001"
Local cForn := "CLISUP"
Local cLoja := "01"
Local cDocOrig := "DOCS0B "
Local cSerOrig := "001"
Local cItemOrig := "01 "
Local cTes := "001"
Local cCondPag := "000"
Local nOpc := 4 // CLASIFICACIÓN
Local lTela := .F.
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "T1" SUCURSAL "D MG 01" MÓDULO "COM"
dDataBase := cTod("27/01/2025")
DbSelectArea("SF1")
SF1->(DbSetOrder(1))
SF1->(DbSeek(xFilial("SF1") + cDoc + cSerie + cForn + cLoja ))
aadd(aCab,{"F1_TIPO" , SF1->F1_TIPO , NIL})
aadd(aCab,{"F1_TPCOMPL" , SF1->F1_TPCOMPL , NIL})
aadd(aCab,{"F1_FORMUL" , SF1->F1_FORMUL , 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})
aadd(aCab,{"F1_COND" , cCondPag , NIL})
dbSelectArea("SD1")
SD1->(dbSetOrder(1))
SD1->(DbSeek(xFilial("SD1")+SF1->F1_DOC+SF1->F1_SERIE+SF1->F1_FORNECE+SF1->F1_LOJA))
While SD1->(!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
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" , cTes , NIL})
aadd(aItens,{"D1_NFORI" , cDocOrig , NIL})
aadd(aItens,{"D1_SERIORI", cSerOrig , NIL})
aadd(aItens,{"D1_ITEMORI" , cItemOrig , NIL})
aadd(aItens,{"D1_RATEIO" , SD1->D1_RATEIO , NIL})
if nOpc == 4 //Si fuera clasificación debe informar la variable LINPOS
aAdd(aItens, {"LINPOS" , "D1_ITEM", SD1->D1_ITEM }) //o SD1->D1_ITEM si estuviera seleccionado.
EndIf
aAdd(aLinha,aItens)
aItens := {}
SD1->(dbSkip())
EndDo
//Impuestos (Informe la referencia del impuesto, que consta en el valid del campo)
//Para impuestos de encabezado informe: referencia, valor
aAutoImp := { {"NF_TOTAL" , 1}}
//Para impuestos de Ítems informe: referencia, valor, número de la línea
aAdd(aAutoImp,{"IT_BASEICM", 361.21 , 1}) // Base ICMS
aAdd(aAutoImp,{"IT_ALIQICM", 12 , 1}) // Porcentaje ICMS
aAdd(aAutoImp,{"IT_VALICM" , 43.35 , 1}) // Valor ICMS
aAdd(aAutoImp,{"IT_BASESOL", 480.41 , 1}) // Base ICMS ST
aAdd(aAutoImp,{"IT_ALIQSOL", 12 , 1}) // Porcentaje ICMS
// Ejemplo para manejar la pregunta MTA103
aAdd(aParamAux, {"MV_PAR01", 2}) //-- ¿Muestra Asto. Contable? 1 = Sí, 2 = No
aAdd(aParamAux, {"MV_PAR06", 2}) //-- ¿Contabilidad online? 1 = Sí, 2 = No
//3-Inclusión / 4-Clasificación / 5-Borrado
MSExecAuto({|x,y,z,a,b,c,d| MATA103(x,y,z,a,b,c,d,,,)},aCab,aLinha,nOpc,lTela,aAutoImp,,aParamAux)
If lMsErroAuto
MostraErro()
ConOut("¡Error en la clasificación!")
EndIf
dDataBase := Date()
RESET ENVIRONMENT
Return
Documento Tipo Normal - Inclusão com aAutoImp e informando desconto,despesas,frete e seguro do cabeçalho do documento. Expandir origem
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function INC103IMP()
Local aCab := {}
Local aItens := {}
Local aLinha := {}
Local aParamAux := {}
Local aAutoImp := {}
Local cTipo := "N"
Local cFormul := "N"
Local cDoc := "DOCIMP1"
Local cSerie := "001"
Local cForn := "000001"
Local cLoja := "01"
Local cEspec := "EFACT"
Local cCondPag := "000"
Local cStatus := "A"
Local cProd := "01"
Local cUni := "CX"
Local cLocal := "01"
Local cTes := "001"
Local nX
Local nOpc := 3 // INCLUSIÓN
Local lTela := .F.
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "T1" SUCURSAL "D MG 01" MÓDULO "COM"
dDataBase := cTod("06/02/2025")
//Encabezado
aadd(aCab,{"F1_TIPO" , PadR(cTipo,TamSx3("F1_TIPO")[1]) ,NIL})
aadd(aCab,{"F1_FORMUL" , PadR(cFormul,TamSx3("F1_FORMUL")[1]) ,NIL})
aadd(aCab,{"F1_DOC" , PadR(cDoc,TamSx3("F1_DOC")[1]) ,NIL})
aadd(aCab,{"F1_SERIE" , PadR(cSerie,TamSx3("F1_SERIE")[1]) ,NIL})
aadd(aCab,{"F1_EMISSAO" , dDataBase ,NIL})
aadd(aCab,{"F1_DTDIGIT" , dDataBase ,NIL})
aadd(aCab,{"F1_FORNECE" , PadR(cForn,TamSx3("F1_FORNECE")[1]) ,NIL})
aadd(aCab,{"F1_LOJA" , PadR(cLoja,TamSx3("F1_LOJA")[1]) ,NIL})
aadd(aCab,{"F1_ESPECIE" , PadR(cEspec,TamSx3("F1_ESPECIE")[1]) ,NIL})
aadd(aCab,{"F1_COND" , PadR(cCondPag,TamSx3("F1_COND")[1]) ,NIL})
aadd(aCab,{"F1_MOEDA" , 1 ,Nil})
aadd(aCab,{"F1_TXMOEDA" , 1 ,Nil})
aadd(aCab,{"F1_STATUS" , PadR(cStatus,TamSx3("F1_STATUS")[1]) ,NIL})
For nX := 1 to 1
aLinha := {}
aadd(aLinha,{"D1_DOC" , PadR(cDoc,TamSx3("D1_DOC")[1]) ,NIL})
aadd(aLinha,{"D1_SERIE" , PadR(cSerie,TamSx3("D1_SERIE")[1]) ,NIL})
aadd(aLinha,{"D1_FORNECE" , PadR(cForn,TamSx3("D1_FORNECE")[1]) ,NIL})
aadd(aLinha,{"D1_LOJA" , PadR(cLoja,TamSx3("D1_LOJA")[1]) ,NIL})
aadd(aLinha,{"D1_ITEM" , "0001" ,NIL})
aadd(aLinha,{"D1_COD" , PadR(cProd,TamSx3("D1_COD")[1]) ,NIL})
aadd(aLinha,{"D1_UM" , PadR(cUni,TamSx3("D1_UM")[1]) ,NIL})
aadd(aLinha,{"D1_LOCAL" , PadR(cLocal,TamSx3("D1_LOCAL")[1]) ,NIL})
aadd(aLinha,{"D1_QUANT" , 1 ,NIL})
aadd(aLinha,{"D1_VUNIT" , 100 ,NIL})
aadd(aLinha,{"D1_TOTAL" , 100 ,NIL})
aadd(aLinha,{"D1_TES" , PadR(cTes,TamSx3("D1_TES")[1]) ,NIL})
aAdd(aItens,aLinha)
Next nX
//Impuestos (Informe la referencia del impuesto, que consta en el valid del campo)
//Para impuestos de encabezado informe: referencia, valor
aAutoImp := { {"NF_DESCONTO" , 1 },;
{"NF_DESPESA" , 2 },;
{"NF_FRETE" , 3 },;
{"NF_SEGURO" , 4 }}
//Para impuestos de Ítems informe: referencia, valor, número de la línea
aAdd(aAutoImp,{"IT_BASEICM", 50 , 1}) // Base ICMS
aAdd(aAutoImp,{"IT_ALIQICM", 4 , 1}) // Porcentaje ICMS
aAdd(aAutoImp,{"IT_VALICM" , 2 , 1}) // Valor ICMS
aAdd(aAutoImp,{"IT_BASESOL", 9 , 1}) // Base ICMS ST
aAdd(aAutoImp,{"IT_ALIQSOL", 14 , 1}) // Porcentaje ICMS
// Ejemplo para manejar la pregunta MTA103
aAdd(aParamAux, {"MV_PAR01", 2}) //-- ¿Muestra Asto. Contable? 1 = Sí, 2 = No
aAdd(aParamAux, {"MV_PAR06", 2}) //-- ¿Contabilidad online? 1 = Sí, 2 = No
//3-Inclusión / 4-Clasificación / 5-Borrado
MSExecAuto({|x,y,z,a,b,c,d| MATA103(x,y,z,a,b,c,d,,,)},aCab,aItens,nOpc,lTela,aAutoImp,,aParamAux)
If lMsErroAuto
MostraErro()
ConOut("Error en la inclusión ")
EndIf
dDataBase := Date()
RESET ENVIRONMENT
Return
Documento Tipo Normal - Inclusión con aAutoImp - PIS, COFINS y CSLL Expandir origem
#Include "TOTVS.ch"
#Include "TbiConn.ch"
User Function EXEC103()
Local aCab := {}
Local aItem := {}
Local aItens := {}
Local aAutoImp := {}
Local nOpc := 3 //3-Inclusión / 4-Clasificación / 5-Borrado
Local cNum := ""
Local nX := 0
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
PREPARE ENVIRONMENT EMPRESA "T1" SUCURSAL "D MG 01 " MÓDULO "COM" FUNNAME "MATA103"
cNum := GetSxeNum("SF1","F1_DOC")
DBSelectArea("SF1")
SF1->(dbSetOrder(1))
While SF1->(dbSeek(xFilial("SF1")+cNum))
ConfirmSX8()
cNum := GetSxeNum("SF1","F1_DOC")
EndDo
//Encabezado
aadd(aCab,{"F1_TIPO" ,"N" ,NIL})
aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_DOC" ,cNum ,NIL})
aadd(aCab,{"F1_SERIE" ,PadR("1",TamSx3("F1_SERIE")[1]) ,NIL})
aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL})
aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL})
aadd(aCab,{"F1_FORNECE" ,PadR("110000",TamSx3("F1_FORNECE")[1]) ,NIL})
aadd(aCab,{"F1_LOJA" ,PadR("01",TamSx3("F1_LOJA")[1]) ,NIL})
aadd(aCab,{"F1_ESPECIE" ,PadR("NFE",TamSx3("F1_ESPECIE")[1]) ,NIL})
aadd(aCab,{"F1_COND" ,PadR("000",TamSx3("F1_COND")[1]) ,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})
//Ítems
For nX := 1 To 1
aItem := {}
aadd(aItem,{"D1_ITEM" ,StrZero(nX,TamSx3("D1_ITEM")[1]) ,NIL})
aadd(aItem,{"D1_COD" ,PadR("PRODPCC",TamSx3("D1_COD")[1]) ,NIL})
aadd(aItem,{"D1_UM" ,"UN" ,NIL})
aadd(aItem,{"D1_LOCAL" ,PadR("01",TamSx3("D1_LOCAL")[1]) ,NIL})
aadd(aItem,{"D1_QUANT" ,1 ,NIL})
aadd(aItem,{"D1_VUNIT" ,10000 ,NIL})
aadd(aItem,{"D1_TOTAL" ,10000 ,NIL})
aadd(aItem,{"D1_TES" ,PadR("308",TamSx3("D1_TES")[1]) ,NIL})
aAdd(aItens,aItem)
Next nX
//Impuestos (Informar la referencia del impuesto, que consta en el valid del campo)
//Para impuestos de Ítems informar: referencia, valor, número de la línea
//PIS
aAdd(aAutoImp, {'IT_BASEPIS' ,10000 ,1}) //Base
aAdd(aAutoImp, {'IT_ALIQPIS' ,1.76 ,1}) //Porcentaje impuesto
aAdd(aAutoImp, {'IT_VALPIS' ,176 ,1}) //Valor impuesto
//COFINS
aAdd(aAutoImp, {'IT_BASECOF' ,10000 ,1}) //Base
aAdd(aAutoImp, {'IT_ALIQCOF' ,8.2 ,1}) //Porcentaje impuesto
aAdd(aAutoImp, {'IT_VALCOF' ,820 ,1}) //Valor impuesto
//CSLL
aAdd(aAutoImp, {'IT_BASECSL' ,10000 ,1}) //Base
aAdd(aAutoImp, {'IT_ALIQCSL' ,10 ,1}) //Porcentaje impuesto
aAdd(aAutoImp, {'IT_VALCSL' ,1000 ,1}) //Valor impuesto
MSExecAuto({|x,y,z,a,b| MATA103(x,y,z,,a,,,,,)},aCab,aItens,nOpc,aAutoImp)
If !lMsErroAuto
ConOut(" Incluido NF: " + cNum)
Else
MostraErro()
ConOut("Error en la inclusión")
EndIf
RESET ENVIRONMENT
Return
¡ATENCIÓN! ¡No se olvide de verificar las observaciones! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Observaciones: | En todo PREPARE ENVIRONMENT debe informarse el FUNNAME de la rutina para que no haya problema durante la inclusión/modificación/borrado del documento. Ej.: PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MÓDULO "CON" FUNNAME "MATA103" El parámetro aCodRet que contiene el array con los códigos de retención puede ser referido con uno o más impuestos o con la referencia genérica "..." como aparece en la solapa de impuestos de la factura de entrada. Importante: No se debe utilizar el campo D1_ITEM en el comando "For". El uso de este campo en el array que trae la información de los ítems del documento de entrada, impide la correcta ejecución del Excecauto. Para la opción Clasificación Si la rutina automática de Documentos de entrada(MATA103) fuera activada con la opción 4 = Clasificación, debe necesariamente informar la variable LINPOS, de acuerdo con el siguiente ejemplo: LINPOS aAdd(aLinha, {"LINPOS" , "D1_ITEM", SD1->D1_ITEM})
Para la opción Inclusión Valide la clave EFACT, el usuario tendrá que pasar en el array del encabezado la nomenclatura VLDAMNFE indicando si debe o no realizar la validación de la clave junto con el campo de la clave de la EFACT F1_CHVNFE. LINPOS aadd(aCab,{"F1_CHVNFE" ,"" ,NIL})
aAdd(aCab, {"VLDAMNFE" , "S", Nil})
Para la opción Inclusión Al vincular el pedido de compra al documento, si hubiera necesidad de modificar la cantidad/valor/total, debe informarse en el array de los ítems los campos del pedido (D1_PEDIDO / D1_ITEMPC) antes de los campos de cantidad/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 la opción Inclusión Al vincular el pedido de compra al documento, si hubiera necesidad de modificar la TES, debe informarse en el array de los ítems los campos de pedido (D1_PEDIDO / D1_ITEMPC) antes del 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 la opción Inclusión - Control de numeración con uso de SD9 (MV_TPNRNFS) Al utilizar la opción de Control de numeración con utilización de SD9 (MV_TPNRNFS = 3), por medio de Execauto, siempre debe informarse de acuerdo con el siguiente ejemplo, para que se implemente correctamente la numeración en las tablas SD1, SF1 y SD9. LINPOS aAdd(aCabec,{'F1_FORMUL' ,'S' ,NIL})
No informe el campo F1_DOC. Para más información sobre la secuencia automática utilizando el parámetro MV_TPNRNFS, consulte el siguiente enlace: FAT0049 Control de numeración del documento Para la opción Inclusión Para la opción Inclusión Al utilizar el Formulario propio = "S" y si se enviara el Número del documento / Factura, el sistema acatará el número enviado por el Execauto.
Obs.: Utilice la función NxtSX5Nota para tener la devolución de la numeración del documento Ejemplo: cNumDoc := NxtSX5Nota(cSerie ) LINPOS cSerie := "001"
cNum := NxtSX5Nota(cSerie )
aAdd(aCab,{"F1_DOC" ,cNum ,NIL})
aAdd(aCab,{"F1_SERIE" ,cSerie ,NIL})
Para la opción Inclusión Al utilizar el Formulario propio = "S" y si se enviara el Número del documento / Factura, el sistema acatará el número enviado por el Execauto.
Obs.: Utilice la función NxtSX5Nota para tener la devolución de la numeración del documento Ejemplo: cNumDoc := NxtSX5Nota(cSerie ) LINPOS cSerie := "001"
cNum := NxtSX5Nota(cSerie )
aAdd(aCab,{"F1_DOC" ,cNum ,NIL})
aAdd(aCab,{"F1_SERIE" ,cSerie ,NIL})
Entrega terceros Para escenarios de ExecAuto de Entrega por terceros, el parámetro MV_FORPCNF debe estar activo (MV_FORPCNF = T) y tener previamente registrados los datos de Entrega por terceros (COMA001) configurados. 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 - Envío A continuación, se detallan los parámetros del array AUT_ENTFUT, que deben comunicarse cuando se utiliza el ExecAuto para envío de mercaderías referentes a la entrega Futura. 1° Posición : Documento de simple facturación - 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ícuota ISS - FISA052 Para garantizar el cálculo correcto de la alícuota del ISS relacionada con el registro FISA052 el parámetro MV_ISSXMUN debe estar habilitado, presentamos a continuación un ejemplo sobre cómo informar el Estado/Provincia/Región y el Código del municipio: Aliq ISS - FISA052 aAutoImp := { {"NF_UFPREISS" , "SP"},;
{"NF_CODMUN", "18800"}}
Configurador de tributos La rutina Documento de entrada ya está preparada para que se utilice con el Configurador de tributos.
Por lo tanto, si desea realizar por medio de este, debe informarse lo siguiente: Proveedor, Producto y Cfop (con este puede informarse directamente o informar una TES que contenga el Cfop deseado) 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})
Si se estuviera informando el Cfop directamente, este se priorizará para el cálculo. Array - aAutoImp El array aAutoImp puede completarse con referencias del documento (FACT) o por ítem (ÍT). Para informar la referencia del documento (FACT), son 2 posiciones: 1 - Referencia 2 - Valor Para informar la referencia de los ítems (IT), son 3 posiciones: 1 - Referencia 2 - Valor 3 - Ítem Para facilitar para saber cuál es la referencia fiscal de un campo de SF1 (FACT) o SD1 (ÍT), verificar el campo Valid en la función MaFisRef, donde tendrá el nombre de la referencia fiscal del referido campo. Ejemplos: aAutoImp := { {"NF_UFPREISS" , "SP" },;
{"NF_CODMUN" , "18800"},;
{"IT_PRCUNI" , 50 ,2}}
|