EXECAUTO MATA103 - Documento de entrada

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 de entrada en gran cantidad.

Parámetros:

Nombre

Tipo

Descripción

Contenido estándar

ExpA1

Array

Array con los datos del encabezado de la Factura de entrada.


ExpA2

Array

Array con los ítems de la Factura de entrada.


ExpN1

Numérico

Opción deseada: 3-Inclusión; 4-Clasificación; 5-Borrado

3

ExpL1

Lógico

Indica si muestra o no la Dialog de la rutina en Rutina automática.

.F.

ExpA3

Array

Array con los valores de Impuestos que sobrescribirán los valores calculados. (Opcional)


ExpA4

Array

Parámetro de uso interno TOTVS.


ExpA5

Array

Array con las preguntas MATA103 que la rutina automática actualiza en tiempo de ejecución.


ExpA6

Array

Array con los datos del prorrateo por centro de costo


ExpL2

Lógico

Parámetro de uso interno TOTVS.


ExpC1

Carácter

Código de devolución Fisco que se grabará en el campo F3_CODRSEF


ExpA7

Array

Array con la información se genera el DIRF y los códigos de retención por impuesto


ExpA8

Array

Array con información de Jubilación especial


ExpA9

Array

Reservado


ExpA10

Array

Array Integración con SIGAPFS


ExpA11

Array

Array con información que se grabará en la tabla complementaria de los ítems de la Factura (DKD)


ExpL3

Lógico

Indica si realiza la grabación de la Clasificación para posterior actualización. Utilización en Rutina automática.

.F.

Paso a paso:

//DOCUMENTO TIPO NORMAL

#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" 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

//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(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 marcado.

         endIf


       aAdd(aItens,aItem)
Next nX

//Prorrateo de centro de costo
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 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(" Incluir Fact.: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf

ConOut("Final: " + Time())

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.


//DOCUMENTO TIPO COMPLEMENTO

#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" 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

//Encabezado
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(" Incluir Fact.: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf

ConOut("Final: " + Time())

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.


//DOCUMENTO TIPO NORMAL VINCULADO AL PEDIDO DE COMPRAS

#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" 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

//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 marcado.

         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(" Incluir Fact.: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf

ConOut("Final: " + Time())

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.


//DOCUMENTO TIPO DEVOLUCIÓN

#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" 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

//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(" Incluir Fact.: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf

ConOut("Final: " + Time())

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.


//DOCUMENTO VINCULAR (SDH)

#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-Borra
Local nRecno    := 0

Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "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 //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("Inclusión Vínculo: " + cDocDef)
    Endif
Endif

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.

 

//DOCUMENTO COBERTURA

#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" 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("Incluida cobertura: " + cDocDef)
    Endif
Endif

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.


//DOCUMENTO TIPO NORMAL CON JUBILACIÓN ESPECIAL

#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"

User Function EXEC103()

Local aCab          := {}
Local aItem         := {}
Local aItens        := {}
Local aItensApo     := {}
Local nOpc          := 3
Local cNum          := ""
Local nI            := 0
Local nX            := 0
Local nReg          := 1

Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.

PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "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("    Incluir Fact: " + cNum) 
    Else
        MostraErro()
        ConOut("¡Error en la inclusión!")
        Exit
    EndIf
Next nI

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.

 

//DOCUMENTO DEVOLUCIÓN - Terceros

ADV0050_EXECAUTO MATA103 DEVOLUCIÓN

#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"

User Function EXEC103()

Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local cDoc := ""
PRIVATE lMsErroAuto := .F.

ConOut(PadC(OemToAnsi("Prueba de inclusión de EFACT DEVOLUCION CON FACTURA DE ORIGEN FACTS"),80))

PREPARE ENVIRONMENT EMPRESA "99" SUCURSAL "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 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.)


Por favor, consulte la sección observaciones.


//DOCUMENTO MEJORA - Terceros

#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" 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 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("    Incluir Fact: " + cNum)  
    Else
        MostraErro()
        ConOut("¡Error en la inclusión!")
        Exit
    EndIf
Next nI

Conout("Inicio: " + cInicio)
ConOut("Final: " + Time())

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.


//DOCUMENTO COMPLEMENTO ICMS o IPI

#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" 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("¡Error en la inclusión!")
        Exit
    EndIf
Next nI

Conout("Inicio: " + cInicio)
ConOut("Final: " + Time())

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.

 

//DOCUMENTO CON COMPLEMENTO DE ÍTEMS DE LA FACT (DKD)

#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" 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

//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" ,"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(" Incluir Fact.: " + cNum)
Else
MostraErro()
ConOut("¡Error en la inclusión!")
EndIf

ConOut("Final: " + Time())

RESET ENVIRONMENT

Return


Por favor, consulte la sección observaciones.


//DOCUMENTO ENTREGA FUTURA (DHQ)

#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" MODULO "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

Por favor, consulte la sección observaciones.

 

//PRESERVACIÓN FISCAL - GRABAR DATOS DE LA CLASIFICACIÓN DEL DOCUMENTO PARA FUTURA FINALIZACIÓN DE LA CLASIFICACIÓN

#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 " 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 ) // Inclusión factura previa
    
    If !lMsErroAuto 
        ConOut( "Incluir 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( "Clasificación 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.

Por favor, consulte la sección observaciones.

//ENTREGA POR TERCEROS 

#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 ) // Inclusión factura previa
    
    If !lMsErroAuto 
        ConOut( "Inclusión 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( "Clasificación 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.

Por favor, consulte la sección observaciones.

//BORRADO DE DOCUMENTO DE ENTRADA (SIN APERTURA DE PANTALLA)

#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
 
User Function EXEC103()
 
    Local   nOpc := 5
    Local   aCab        := {}
    Local   aItens      := {}
    Local   aLinha      := {}
    Local   aAuxDKD     := {}

    Private lMsErroAuto := .F.
    
    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM" FUNNAME "MATA103"

    aadd(aCab,{"F1_TIPO" ,"N" ,NIL})
    aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
    aadd(aCab,{"F1_DOC" ,"M103STELA",NIL})
    aadd(aCab,{"F1_SERIE" ,"001" ,NIL})
    aadd(aCab,{"F1_EMISSAO" ,dDataBase,NIL})
    aadd(aCab,{"F1_DTDIGIT" ,dDataBase,NIL})
    aadd(aCab,{"F1_FORNECE" ,"000001" ,NIL})
    aadd(aCab,{"F1_LOJA" ,"01" ,NIL})
    aadd(aCab,{"F1_ESPECIE" ,"NFE" ,NIL})
    aadd(aCab,{"F1_COND" ,"000" ,NIL})
    aAdd(aCab,{"F1_STATUS","A",NIL})
   
    aItens := {}
    aAdd(aItens,{'D1_DOC',"M103STELA",NIL})
    aAdd(aItens,{'D1_SERIE',"0001",NIL})
    aAdd(aItens,{'D1_FORNECE',"000001",NIL})
    aAdd(aItens,{'D1_LOJA',"01",NIL})
    aAdd(aLinha,aItens)  
    
    
    MSExecAuto({|x,y,z,b,a| MATA103(x,y,z,b,,,,,,,,,,,a)},aCab,aLinha,nOpc,.F.,aAuxDKD)
    
    
    If lMsErroAuto
        MostraErro()
    Else
        Alert("Execauto MATA103 de exclusão sem tela executado com sucesso!")
    EndIf
     
    RESET ENVIRONMENT
  
Return

Por favor, consulte la sección observaciones.

//BORRADO DE DOCUMENTO DE ENTRADA (CON APERTURA DE PANTALLA)

#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

Por favor, consulte la sección 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 "COM" FUNNAME "MATA103"

Enlace: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360028078052-MP-ADVPL-Comportamento-da-fun%C3%A7%C3%A3o-FUNNAME-


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. 
Para grabar los códigos de retención es necesario habilitar el parámetro MV_VISDIRF. 

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

Ejemplo: 

Se realizó la inclusión del pedido de Compra (MATA120) siguiente :   

C7_NUM = PCGF01
C7_FORNECEDOR = LF007
C7_LOJA = 00

Registro entrega por tercero (COMA001)
CPW_CODIGO (Código) = LF007
CPW_LOJA (Tienda) = 00

CPX_CODFOR (Proveedor) = LF009
CPX_LOJA (Tienda) = 00
CPX_CODFOR (Proveedor) = LF010
CPX_LOJA (Tienda) = 00

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, el detalla de los parámetros del array AUT_ENTFUT que debe informarse cuando se utilice el ExecAuto para el envío de mercaderías referente a la entrega Futura.
 

1° Situación  : Documento de facturación simple               - DHQ
2° Situación  : Serie del documento de facturación simple - DHQ 
3° Situación  : Ítem del documento de facturación simple  - DHQ 
4° Situación  : No se utiliza, pero por cuenta del legado informar como 0 
5° Situación  : Ítem del documento de envío
6° Situación  : Proveedor 
7° Situación  : Tienda del proveedor 


AUT_ENTFUT
cDocOrg := "DOCSMPFAT"
cSerOrg := "001"
cItem   := "0001"  
cFornec	:= "LF030"
cLoja 	:= "00"

aAdd(aItem, {"AUT_ENTFUT", {cDocOrg , cSerOrg , cItem , 0 , cItem , cFornec , cLoja},NIL})