Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

EXECAUTO MATA103 - Documento de

...

entrada

ProdutoProducto:

Protheus

VersõesVersiones:

Todas

OcorrênciaOcurrencia:

Rotina Automática Rutina automática - MATA103 (Execauto)

AmbienteEntorno:

SIGACOM - Compras

DescriçãoDescripción:Rotina Rutina automática que permite a inclusão la inclusión de documentos entrada em grande quantidadeen gran cantidad.
ParâmetrosParámetros:
NomeDescriçãoConteúdo DefaultOpção desejadaInclusãoClassificaçãoExclusão se Apresenta ou não a Dialog da Rotina em Rotina Automática contendo os Impostos irão sobrepor Parâmetro com os perguntes MTA103 que a rotina automática atualiza em tempo de execução contendo os dados do rateio custoParâmetro Caracter retorno SEFAZ que será gravado no contendo a informação se gera DIRF e os códigos de retenção por imposto contendo informação de Aposentadoria Especial Integração com contendo informação que sera gravada na tabela complementar dos itens da NF se realiza a gravação da Classificação atualização. Uso em Rotina Automática

Nombre

Tipo

Descripción

Contenido estándar

ExpA1

Array

Array

contendo os dados do cabeçalho da Nota Fiscal de Entrada

con los datos del encabezado de la Factura de entrada.


ExpA2

Array

Array

contendo os itens da Nota Fiscal de Entrada

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

Passo Paso a passopaso:

Bloco de código
languagedelphi
themeMidnight
titleDocumento Tipo Normaltipo normal
collapsetrue
#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" FILIALSUCURSAL "6597" MODULOMÓ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)//SeSi forfuera classificaçãoclasificación, devedebe informar la avariable variável LINPOSLINPOS

              aAdd(aItem, {"LINPOS" , "D1_ITEM",  StrZero(nX,4)})  //ou SD1o SD1->D1_ITEM  sesi estiverestuviera posicionadoseleccionado.

         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 contendola ainformación informaçãosi se geragenera DIRF ey oslos códigos de retençãoretención por impostoimpuesto
aAdd( aCodRet, {01, "0297", 1, "..."} )
aAdd( aCodRet, {02, "0297", 1, "IRR"} )
aAdd( aCodRet, {03, "5979", 1, "PIS"} )
aAdd( aCodRet, {04, "5960", 1, "COF"} )
aAdd( aCodRet, {05, "5987", 1, "CSL"} )

// Exemplo Ejemplo para manipularmanejar ola perguntepregunta MTA103
aAdd(aParamAux, {"MV_PAR01", 2}) //-- Mostra¿Muestra LancAsto. ContabilContable? 1 = Sim, 2 = NãoNo
aAdd(aParamAux, {"MV_PAR06", 1}) //-- Contabilizacao¿Contabilidad Onlineonline? 1 = Sim, 2 = NãoNo



//3-InclusãoInclusión / 4-ClassificaçãoClasificación / 5-ExclusãoBorrado
MSExecAuto({|x,y,z,k,a,b| MATA103(x,y,z,,,,k,a,,,b)},aCab,aItens,nOpc,aParamAux,aItensRat,aCodRet)

If !lMsErroAuto
ConOut(" Incluido NF: " + cNum)
Else
MostraErro()
ConOut("Erro¡Error en nala inclusaoinclusión!")
EndIf

ConOut("FimFinal: " + Time())

RESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Tipo Complementotipo complemento
collapsetrue
#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" FILIALSUCURSAL "6597" MODULOMÓ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})

//ItensÍ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




//ImpostosImpuestos (InformarInforme ala referênciareferencia dodel impostoimpuesto, que consta noen el valid dodel campo)

//Para impostosimpuestos de cabeçalhoencabezado informarinforme: referênciareferencia, valor  
aAutoImp := { {"NF_FRETE" ,  10},;
                         {"NF_VALIPI",  15},;
                         {"NF_VALICM",7}}

//Para impostosimpuestos de Itensítems informarinforme: referênciareferencia, valor, número de dala linhalínea
aAdd(aAutoImp, {'IT_BASEICM', 100, 1}) //Base

aAdd(aAutoImp, {'IT_ALIQICM',12,    1}) //PorcentagemPorcentaje Impostoimpuesto

aAdd(aAutoImp, {'IT_VALICM', 12,     1}) //Valor imposto impuesto 




//3-InclusãoInclusión / 4-ClassificaçãoClasificación / 5-ExclusãoBorrado
MSExecAuto({|x,y,z,a,b| MATA103(x,y,z,,a,,,,,)},aCabec,aItens,3,aAutoImp)

If !lMsErroAuto
ConOut(" Incluido NF: " + cNum)
Else
MostraErro()
ConOut("Erro¡Error en nala inclusaoinclusión!")
EndIf

ConOut("Fim: " + Time())

RESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Tipo Normal Vinculado ao Pedido de Comprastipo normal vinculado al pedido de compras
collapsetrue
#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" FILIALSUCURSAL "6597" MODULOMÓ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çalhoEncabezado
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Í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 dodel Pedidopedido de Comprascompras
          aadd(aItens[Len(aItens)], {'D1_ITEMPC ', '0001' ,})  // ItemÍtem dodel Pedidopedido de Comprascompras

         if(nOpc == 4)//SeSi forfuera classificaçãoclasificación, devedebe informar ala variable variável LINPOSLINPOS

              aAdd(aItem, {"LINPOS" , "D1_ITEM",  StrZero(nX,4)})  //ou SD1o SD1->D1_ITEM  sesi estiverestuviera posicionadoseleccionado.

         endIf

Next nX

//3-InclusãoInclusión / 4-ClassificaçãoClasificación / 5-ExclusãoBorrado
MSExecAuto({|x,y,z,k,a,b| MATA103(x,y,z,,,,k,a,,,b)},aCab,aItens,nOpc,aParamAux,aItensRat,aCodRet)

If !lMsErroAuto
ConOut(" IncluidoIncluida NFFact: " + cNum)
Else
MostraErro()
ConOut("Erro¡Error en nala inclusaoinclusión!")
EndIf

ConOut("FimFinal: " + Time())

RESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Tipo Devoluçãotipo devolución
collapsetrue
#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" FILIALSUCURSAL "6597" MODULOMÓ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çalhoEncabezado
aadd(aCab,{"F1_TIPO" ,"D" ,NIL})
aadd(aCab,{"F1_DOC" ,cNum ,NIL})
aadd(aCab,{"F1_SERIE" ,"1 " ,NIL})
aadd(aCab,{"F1_FORNECE" ,"001 " ,NIL})
aadd(aCab,{"F1_LOJA" ,"01" ,NIL})
aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL})
aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL})
aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_ESPECIE" ,"NFE" ,NIL})
aadd(aCab,{"F1_COND" ,"001" ,NIL})
aadd(aCab,{"F1_EST" ,"SP" ,NIL})
aadd(aCab,{"F1_DESCONT" , 0 , Nil})
aadd(aCab,{"F1_SEGURO" , 0 , Nil})
aadd(aCab,{"F1_FRETE" , 0 , Nil})
aadd(aCab,{"F1_MOEDA" , 1 , Nil})
aadd(aCab,{"F1_TXMOEDA" , 1 , Nil})
aadd(aCab,{"F1_STATUS" , "A" , Nil})

//ItensÍ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})  //CasoSi el produtoproducto possuatuviera lote, informarinforme oel numeronú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-InclusãoInclusión / 4-ClassificaçãoClasificación / 5-ExclusãoBorrado
MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc)

If !lMsErroAuto
ConOut(" IncluidoIncluida NFFact: " + cNum)
Else
MostraErro()
ConOut("Erro¡Error en nala inclusaoinclusión!")
EndIf

ConOut("FimFinal: " + Time())

RESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Vincular vincular (SDH)
collapsetrue
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"

User Function EXECSDH()

Local aDadosVin Local aDadosVin :=  {}

Local cDocOri   Local cDocOri   :=  "000130   "
Local cSerOri Local cSerOri    :=  "1  "
Local cForn     Local cForn     :=  "001   "
Local cLoja     Local cLoja     :=  "01"
Local cProduto  Local cProduto  :=  "0001"
Local cSeqOri   Local cSeqOri   :=  ""
Local cNumSeq   Local cNumSeq   :=  ""
Local cDocDef   Local cDocDef   :=  "200001   "
Local cSerDef   Local cSerDef   :=  "1  "
Local cDHOper   Local cDHOper   :=  "1"
Local cCodCli   Local cCodCli   :=  ""
Local cLojaCli  Local cLojaCli  :=  ""
Local cTES      Local cTES      :=  "001"
Local nQuantidadLocal nQuantidad:= 2
Local nOpcX      2
Local nOpcX     := 2  2 //2-Inclui Incluye / 3 3-ExcluiBorrad
Local nRecno    Local nRecno    := 0 0

Private lMsErroAuto Private lMsErroAuto :=  .F.

PREPARE ENVIRONMENT EMPRESA PREPARE ENVIRONMENT EMPRESA "01" FILIAL  SUCURSAL "1001" MODULO  MÓDULO "COM" FUNNAME  FUNNAME "MATA103"

cDocOri     := Padr Padr(cDocOri,TamSX3("DH_DOC")[1])
cSerOri     := Padr Padr(cSerOri,TamSX3("DH_SERIE")[1])
cForn       := Padr Padr(cForn,TamSX3("DH_FORNECE")[1])
cLoja       := Padr Padr(cLoja,TamSX3("DH_LOJAFOR")[1])
cProduto    := Padr Padr(cProduto,TamSX3("DH_PRODUTO")[1])
cSeqOri     := Padr Padr("0001",TamSX3("DH_ITEM")[1])
cDocDef     := Padr Padr(cDocDef,TamSX3("DH_DOC")[1])
cSerDef     := Padr Padr(cSerDef,TamSX3("DH_SERIE")[1])

DbSelectArea("SD1")
SD1->(DbSetOrder(1))
If SD1If SD1->(DbSeek(xFilial("SD1")  + cDocOri + cSerOri + cForn + cLoja + cProduto + cSeqOri))
    cNumSeq := SD1 cDocOri + cSerOri + cForn + cLoja + cProduto + cSeqOri))
    cNumSeq := SD1->D1_NUMSEQ

    If nOpcx     If nOpcx == 3  3 //ExclusaoBorrado
        DbSelectArea("SDH")
        SDH->(DbSetOrder(1))
        If SDH        If SDH->(DbSeek(xFilial("SDH")  + cNumSeq cNumSeq))
            nRecno             nRecno := SDH SDH->(Recno())
        Endif
    Endif

    aAdd(aDadosVin,{'DH_DOC'            , cDocDef                                        cDocDef                                       , Nil Nil})
    aAdd(aDadosVin,{'DH_SERIE'           , cSerDef                                    cSerDef                                   , Nil Nil})
    aAdd(aDadosVin,{'DH_TES'              , cTES                                       cTES                                      , Nil Nil})
    aAdd(aDadosVin,{'DH_FORNECE'    , Padr Padr(cForn,TamSX3("DH_FORNECE")[1])               , Nil Nil})
    aAdd(aDadosVin,{'DH_LOJAFOR'     , Padr Padr(cLoja,TamSX3("DH_LOJAFOR")[1])               , Nil Nil})
    aAdd(aDadosVin,{'DH_PRODUTO'    , Padr Padr(cProduto,TamSX3("DH_PRODUTO")[1])        , Nil Nil})
    aAdd(aDadosVin,{'DH_ITEM'            , cSeqOri        cSeqOri       , Nil Nil})
    aAdd(aDadosVin,{'DH_IDENTNF'     , Padr Padr(cNumSeq,TamSX3("DH_IDENTNF")[1])  , Nil Nil})
    aAdd(aDadosVin,{'DH_TPMOV'       , Padr Padr('1',TamSX3("DH_TPMOV")[1])               , Nil Nil})
    aadd(aDadosVin,{'DH_OPER'           , Padr Padr( cDHOper cDHOper,        TamSX3("DH_OPER")[1]  )  , Nil Nil})
    aAdd(aDadosVin,{'DH_CLIENTE'      , cCodCli                                        cCodCli                                       , Nil Nil})
    aAdd(aDadosVin,{'DH_LOJACLI'      , cLojaCli                                       cLojaCli                                      , Nil Nil})
    aAdd(aDadosVin,{'DH_QUANT'       , nQuantidad                                 nQuantidad                                , Nil Nil})
    aAdd(aDadosVin,{'DH_ITEMCOB'    , StrZero StrZero(1,TamSX3("DH_ITEMCOB")[1]), Nil Nil})
    

    If nOpcx If nOpcx == 3  3 //ExclusãoBorrado
        aAdd(aDadosVin,{'DH_REC_WT'  , nRecno nRecno, Nil Nil})
    Endif

    MSExecAuto({|a,b,c,d,e| NfeDocVin NfeDocVin(a,b,c,d,e)},,,nOpcx,,aDadosVin) 

    If lMsErroAuto     If lMsErroAuto 
        MostraErro()
    Else
        Conout("Inserido VinculoIncluido vínculo:  "  + cDocDef cDocDef)
    Endif
Endif

RESET ENVIRONMENTRESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Coberturacobertura
collapsetrue
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"

#Include "Coverege.ch"




User Function EXECCOB()

Local cDocDef   Local cDocDef   :=  "200001   "
Local cSerDef   Local cSerDef   :=  "1  "
Local cForn     Local cForn     :=  "001   "
Local cLoja     Local cLoja     :=  "01"
Local cProduto  Local cProduto  :=  "0001"
Local nQuantidadLocal nQuantidad:= 2 

Local cDocOri   Local cDocOri   :=  "000130   "
Local cSerOri   Local cSerOri   :=  "1  "
Local cSeqOri   Local cSeqOri   :=  ""
Local cTpMov    Local cTpMov    :=  "1"
Local cCodCli   Local cCodCli   :=  ""
Local cLojCli   Local cLojCli   :=  ""
Local cDHOper   Local cDHOper   :=  "1"
Local aCab103   Local aCab103   :=  {}
Local aDadosCob Local aDadosCob :=  {}
Local cTes      Local cTes      :=  "001"
Local nOpcX     Local nOpcX     := 3  3 //3-Inclui Incluye / 5 5-ExcluiBorra

Private lMsErroAuto Private lMsErroAuto :=  .F.

PREPARE ENVIRONMENT EMPRESA PREPARE ENVIRONMENT EMPRESA "01" FILIAL  SUCURSAL "1001" MODULO  MÓDULO "COM" FUNNAME  FUNNAME "MATA103"

cDocDef     := Padr Padr(cDocDef,TamSX3("DH_DOC")[1])
cSerDef     := Padr Padr(cSerDef,TamSX3("DH_SERIE")[1])
cForn       := Padr Padr(cForn,TamSX3("DH_FORNECE")[1])
cLoja       := Padr Padr(cLoja,TamSX3("DH_LOJAFOR")[1])
cProduto    := Padr Padr(cProduto,TamSX3("DH_PRODUTO")[1])

cDocOri     := Padr Padr(cDocOri,TamSX3("DH_DOC")[1])
cSerOri     := Padr Padr(cSerOri,TamSX3("DH_SERIE")[1])
cSeqOri     := Padr Padr("0001",TamSX3("DH_ITEM")[1])
cCodCli     := Padr Padr(cCodCli,TamSX3("DH_CLIENTE")[1])
cLojCli     := Padr Padr(cLojCli,TamSX3("DH_LOJACLI")[1])
cTpMov      := Padr Padr('1',TamSX3("DH_TPMOV")[1])
cDHOper     := Padr Padr( cDHOper cDHOper,        TamSX3("DH_OPER")[1]  )

DbSelectArea("SDH")
SDH->(DbSetOrder(2))
If SDHIf SDH->(DbSeek(xFilial('SDH')+cTpMov+cSerDef+cDocDef+cSeqOri+cCodCli+cLojCli+cForn+cLoja+cDHOper))
                            
    aAdd(aCab103,{"F1_DOC"    , cDocDef      cDocDef     , Nil Nil})
    aAdd(aCab103,{"F1_SERIE"  , cSerDef      cSerDef     , Nil Nil})
    aAdd(aCab103,{"F1_TIPO"   ,  "N"         , Nil Nil})
    aAdd(aCab103,{"F1_FORNECE", cForn        cForn       , Nil Nil})
    aAdd(aCab103,{"F1_LOJA"   , cLoja    cLoja   , Nil Nil})
    aAdd(aCab103,{"F1_EMISSAO", dDataBase dDataBase, Nil Nil})
    aAdd(aCab103,{"F1_DTDIGIT", dDataBase dDataBase, Nil Nil})
    aAdd(aCab103,{"F1_FORMUL"  ,  "N"         , Nil Nil})
    aAdd(aCab103,{"F1_ESPECIE",  "NFE"   , Nil Nil})
    aAdd(aCab103,{"F1_COND"   ,  "001"   , Nil Nil})

    aAdd(aDadosCob,Array(CB_MAXCOL))  
                                                                    
    aTail(aDadosCob)[CB_DOC]        := cDocOri cDocOri
    aTail(aDadosCob)[CB_SERIE]      := cSerOri cSerOri
    aTail(aDadosCob)[CB_SEQ]        := cSeqOri cSeqOri
    aTail(aDadosCob)[CB_VLRUNIT]    := 1000 1000
    aTail(aDadosCob)[CB_TES]        := cTes cTes
    aTail(aDadosCob)[CB_REGSDH]     := SDH SDH->(Recno())
    aTail(aDadosCob)[CB_PRODUTO]    := cProduto       cProduto      
    aTail(aDadosCob)[CB_QUANT]      := nQuantidad       nQuantidad      
    aTail(aDadosCob)[CB_BASIPI]     := 0         0        
    aTail(aDadosCob)[CB_TAXIPI]     := 0         0        
    aTail(aDadosCob)[CB_VALIPI]     := 0         0        
    aTail(aDadosCob)[CB_BASICM]     := 0         0        
    aTail(aDadosCob)[CB_TAXICM]     := 0         0        
    aTail(aDadosCob)[CB_VALICM]     := 0         0        
    aTail(aDadosCob)[CB_VALDES]     := 0        0       
    aTail(aDadosCob)[CB_CFOP]       := GetAdvFVal GetAdvFVal("SF4","F4_CF",xFilial("SF4")  + cTes cTes)
    aTail(aDadosCob)[CB_LOCAL]      := GetAdvFVal GetAdvFVal("SB1","B1_LOCPAD",xFilial("SB1")  + cProduto cProduto)

    MSExecAuto({|a,b,c,d,e,f,g| NfeNfeCob NfeNfeCob(a,b,c,d,e,f,g)},,,nOpcX,,aCab103,aDadosCob)
    
    If lMsErroAuto     If lMsErroAuto 
        MostraErro()
    Else
        Conout("Inserido CoberturaInserido Cobertura:  "  + cDocDef cDocDef)
    Endif
Endif

RESET ENVIRONMENTRESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Tipo Normal com Aposentadoria Especial tipo normal con jubilación especial
collapsetrue
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"

User Function EXEC103()

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

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

PREPARE ENVIRONMENT EMPRESA PREPARE ENVIRONMENT EMPRESA "01" FILIAL  SUCURSAL "1001" MODULO  MÓDULO "COM" FUNNAME  FUNNAME "MATA103" 

    If nOpc If nOpc == 3 3
        cNum         cNum := GetSxeNum GetSxeNum("SF1","F1_DOC")   
        SF1->(dbSetOrder(1))        
        While SF1While SF1->(dbSeek(xFilial("SF1")+cNum))            
            ConfirmSX8()            
            cNum cNum := GetSxeNum GetSxeNum("SF1","F1_DOC")       
        EndDo
    Elseif Elseif nOpc nOpc == 5 5
       cNum  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 0 , Nil})
    aadd(aCab,{"F1_DESCONT"  , 0 , Nil 0 , Nil})
    aadd(aCab,{"F1_SEGURO"  , 0 , Nil 0 , Nil})
    aadd(aCab,{"F1_FRETE"  , 0 , Nil 0 , Nil})
    aadd(aCab,{"F1_MOEDA"  , 1 , Nil 1 , Nil})
    aadd(aCab,{"F1_TXMOEDA"  , 1 , Nil 1 , Nil})
    aadd(aCab,{"F1_STATUS"  ,  "A"  , Nil Nil})
    aadd(aCab,{"F1_VOLUME1",0, Nil Nil})
    aadd(aCab,{"F1_PLIQUI",0, Nil Nil})
    aadd(aCab,{"F1_PBRUTO",0, Nil Nil})
    
    For nX     For nX := 1 To 1
        cProd1  1 To 1
        cProd1 :="0001            " 
        
        aItem         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 Next nXnX
    
    If nOpc     If nOpc == 3 3
        aItem         aItem :=  {}
        aAdd(aItensApo, Array Array(2))
        aItensApo[Len(aItensApo)][1]  :=  "0001"
        aItensApo[Len(aItensApo)][2]  :=  {}
    
        aAdd(aItem,  {"DHP_FILIAL"   , xFilial xFilial("DHP")                    , Nil Nil})
        aAdd(aItem,  {"DHP_DOC"      , cNum                               cNum                              , Nil Nil})
        aAdd(aItem,  {"DHP_SERIE"    ,  "1"                               , Nil Nil})
        aAdd(aItem,  {"DHP_FORNECE"  ,  "001   "                          , Nil Nil})
        aAdd(aItem,  {"DHP_LOJA"     ,  "01"                              , Nil Nil})
        aAdd(aItem,  {"DHP_FAIXA1"   , 10                                 10                                , Nil Nil})
        aAdd(aItem,  {"DHP_FAIXA2"   , 20                                 20                                , Nil Nil})
        aAdd(aItem,  {"DHP_FAIXA3"   , 30                                 30                                , Nil Nil})
        aAdd(aItensApo[Len(aItensApo)][2], aClone aClone(aItem))
    Endif
    
    MSExecAuto({|x,y,z,a| MATA103 MATA103(x,y,z,,,,,,,,,a)},aCab,aItens,nOpc,aItensApo)
    
    If     If !lMsErroAuto
        ConOut("    Incluido NF    Incluida Fact:  "  + cNum cNum) 
    Else
        MostraErro()
        ConOut("Erro na inclusao¡Error en la inclusión!")
        Exit
    EndIf
Next nINext nI

RESET ENVIRONMENTRESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Devolução devolución - TerceirosTerceros
collapsetrue
User Function EXEC103()

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

ConOut(PadC(OemToAnsi("TestePrueba de Inclusaoinclusión de NFE DEVOLUCAODEVOLUCIÓN COMCON NOTAFACTURA DE ORIGEM NFS"),80))

PREPARE ENVIRONMENT EMPRESA "99" FILIALSUCURSAL "01" MODULOMÓ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 DEVOLUÇÃODEVOLUCIÓ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}) // ADICIONEIAGREGUÉ
aadd(aLinha,{"D1_NFORI" ,"000005 " ,Nil}) // notafactura de origemorigen
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¡Incluido comcon sucessoéxito! "+cDoc)
Else
ConOut("Erro¡Error en nala inclusaoinclusión!")
mostraerro()
EndIf

ConOut(OemToAnsi("Fim : ")+Time())

RESET ENVIRONMENT

Return(.T.)
Bloco de código
languagedelphi
themeMidnight
titleDocumento Beneficiamento mejora - Terceirosterceros
collapsetrue
#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" FILIALSUCURSAL "1001" MODULOMÓ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 DEVOLUCAODEVOLUCIÓ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("    Incluido Incluida NFFact: " + cNum)  
    Else
        MostraErro()
        ConOut("Erro¡Error en nala inclusaoinclusión!")
        Exit
    EndIf
Next nI

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

RESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Complementar complementario ICMS ou o IPI
collapsetrue
#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" FILIALSUCURSAL "1001" MODULOMÓ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("Erro¡Error en nala inclusaoinclusión!")
        Exit
    EndIf
Next nI

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

RESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento com Complemento de Itens da NF con complemento de ítems de la Fact (DKD)
collapsetrue
#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" FILIALSUCURSAL "6597" MODULOMÓ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})

//ItensÍ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 customizadocreado criadoen nala novanueva tabelatabla complementarcomplementaria DKD
          aAdd(aAuxDKD,aAuxItDKD)


Next nX

//3-InclusãoInclusión / 4-ClassificaçãoClasificación / 5-ExclusãoBorrado

MSExecAuto({|x,y,z,b,a| MATA103(x,y,z,b,,,,,,,,,,,a)},aCab,aItens,nOpc,.F.,aAuxDKD)

If !lMsErroAuto
ConOut(" Incluido NF: " + cNum)
Else
MostraErro()
ConOut("Erro¡Error en nala inclusaoinclusión!")
EndIf

ConOut("FimFinal: " + Time())

RESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleDocumento Entrega Futura entrega futura (DHQ)
collapsetrue
#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-IncluiIncluye / 5-ExcluiBorra

Private lMsErroAuto := .F.




PREPARE ENVIRONMENT EMPRESA "99" FILIALSUCURSAL "01" MODULOMÓDULO "COM" FUNNAME "MATA103"

  If nOpc == 3

// Compra comcon Entregaentrega Futurafutura (simplessimple faturamentofacturació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 Futurafutura incluídaincluida: " + cNum)
    Endif
Endif




/***********************************************************************/

// Documento de Entradaentrada representando el aenvío remessade dala mercadoriamercaderí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})//DadosDatos para notafactura fiscal de origemorigen

        aAdd(aItens,aItem)
    Next nX


   MSExecAuto({|x,y,z| MATA103(x,y,z)},aCab,aItens,nOpc)
    
    If lMsErroAuto 
        MostraErro()
    Else
        Conout("RemessaEnvío Entregaentrega Futurafutura incluida: " + cNum1)
    Endif

Endif
RESET ENVIRONMENT

Return
Bloco de código
languagedelphi
themeMidnight
titleGuarda Fiscal - Gravar Dados da Classificação do Documento para Futura finalização da ClassificaçãoResguardo fiscal - Grabar datos de la clasificación del documento para futura finalización de la clasificación
collapsetrue
#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" FILIALSUCURSAL "D MG 01 " MODULOMÓ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 ) // InclusãoInclusión Préfactura Notaprevia
    
    If !lMsErroAuto 
        ConOut( "IncluidoIncluida Prefactura Notaprevia: " + cNum )
        aItens := {}
        aItem := {}
        aadd( aItem, { "D1_ITEM"    , cItem                                , NIL } )
        aadd( aItem, { "D1_COD"       , PadR(cProd1,TamSx3("D1_COD")[1])  , NIL } )
        aadd( aItem, { "D1_UM"      , "UN"                                , NIL } )
        aadd( aItem, { "D1_LOCAL"      , "01"                              , NIL } )
        aadd( aItem, { "D1_QUANT"     , 10                                  , NIL } )
        aadd( aItem, { "D1_VUNIT"      , 1500                                , NIL } )
        aadd( aItem, { "D1_TOTAL"      , 15000                                , NIL } )
        aadd( aItem, { "D1_TES"       , "001"                             , NIL } )

        aAdd(aItens,aItem)

        nOpc := 4 //ClassificaçãoClasificación
        lGrvGF := .T.

        MSExecAuto( { |a, b, c, d| MATA103( a, b, c, , , , , , , , , , , , , d ) }, aCab, aItens, nOpc, lGrvGF ) // Realiza la agrabación gravaçãode doslos dadosdatos alteradosmodificados semsin finalizar ala Classificaçãoclasificación

        If !lMsErroAuto 
            ConOut( "ClassificadoClasificado Documentodocumento Fiscalfiscal: " + cNum )
        Else
            MostraErro()

            ConOut( "Erro¡Error en nala inclusaoinclusión!" ) 
            Exit
        EndIf
    Else
        MostraErro()

        ConOut( "Erro¡Error en nala inclusaoinclusión!" ) 
        Exit
    EndIf
Next nI 


ConOut("Fim: " + Time())
Conout( Replicate( '=', 30 ))

RESET ENVIRONMENT

Return .T.
Bloco de código
languagedelphi
themeMidnight
titleInclusão Inclusión - Entrega por Terceirosterceros
collapsetrue
#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" FILIALSUCURSAL "D MG 01 " MODULOMÓ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 ) // InclusãoInclusión Préfactura Notaprevia
    
    If !lMsErroAuto 
        ConOut( "IncluidoIncluida Prefactura Notaprevia: " + cNum )
        aItens := {}
        aItem := {}
        aadd( aItem, { "D1_ITEM"    , cItem                                , NIL } )
        aadd( aItem, { "D1_COD"       , PadR(cProd1,TamSx3("D1_COD")[1])  , NIL } )
        aadd( aItem, { "D1_UM"      , "UN"                                , NIL } )
        aadd( aItem, { "D1_LOCAL"      , "01"                              , NIL } )
        aadd( aItem, { "D1_QUANT"     , 10                                  , NIL } )
        aadd( aItem, { "D1_VUNIT"      , 1500                                , NIL } )
        aadd( aItem, { "D1_TOTAL"      , 15000                                , NIL } )
        aadd( aItem, { "D1_TES"       , "001"                             , NIL } )

        aAdd(aItens,aItem)

        nOpc := 4 //ClassificaçãoClasificación
        lGrvGF := .T.

        MSExecAuto( { |a, b, c, d| MATA103( a, b, c, , , , , , , , , , , , , d ) }, aCab, aItens, nOpc, lGrvGF ) // Realiza la agrabación gravaçãode doslos dadosdatos alteradosmodificados semsin finalizar ala Classificaçãoclasificación

        If !lMsErroAuto 
            ConOut( "ClassificadoClasificado Documentodocumento Fiscalfiscal: " + cNum )
        Else
            MostraErro()

            ConOut( "Erro¡Error en nala inclusaoinclusión!" ) 
            Exit
        EndIf
    Else
        MostraErro()

        ConOut( "Erro¡Error en nala inclusaoinclusión!" ) 
        Exit
    EndIf
Next nI 


ConOut("FimFinal: " + Time())
Conout( Replicate( '=', 30 ))

RESET ENVIRONMENT

Return .T.
Bloco de código
languagedelphi
themeMidnight
titleExclusão Borrado de Doc de Entrada entrada (com Abertura con apertura de Telapantalla)
collapsetrue
#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
Bloco de código
languagedelphi
themeMidnight
titleInclusão com alíquota ISS sendo calculado através do Inclusión con alícuota ISS, calculándose por medio del FISA052
collapsetrue
#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" FILIALSUCURSAL "D MG 01" MODULOMÓ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çalhoEncabezado
		aCab := {}

		aadd(aCab,{"F1_TIPO"    ,cTipo                                  ,NIL})
		aadd(aCab,{"F1_FORMUL"  ,cFormul                                ,NIL})
		aadd(aCab,{"F1_DOC"     ,cNum                                   ,NIL})
		aadd(aCab,{"F1_SERIE"   ,cSerie                                 ,NIL})
		aadd(aCab,{"F1_EMISSAO" ,dDataBase                              ,NIL})
		aadd(aCab,{"F1_DTDIGIT" ,dDataBase                              ,NIL})
		aadd(aCab,{"F1_FORNECE" ,cFornec                                ,NIL})
		aadd(aCab,{"F1_LOJA"    ,cLoja                                  ,NIL})
		aadd(aCab,{"F1_ESPECIE" ,cEspecie                               ,NIL})
		aadd(aCab,{"F1_COND"    ,cCondPgt                               ,NIL})
		aadd(aCab,{"F1_MOEDA"   ,1                                      ,Nil})
		aadd(aCab,{"F1_TXMOEDA" ,1                                      ,Nil})
		aadd(aCab,{"F1_STATUS" ,cStatus                                 ,Nil})
		aadd(aCab,{"E2_NATUREZ",PadR(cNaturez,TamSx3("ED_CODIGO")[1])   ,Nil})

		//ItensÍ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)

		//ImpostosImpuestos (InformarInforme ala referênciareferencia dodel impostoimpuesto, que consta en noel valid dodel campo)
		//Para impostosimpuestos de cabeçalhoencabezado informarinforme: referênciareferencia, valor 
		aAutoImp := { {"NF_UFPREISS" ,  "SP"},;
						{"NF_CODMUN",  "18800"}}
			
		//3-InclusãoInclusió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("Erro¡Error en nala inclusaoinclusión!")
		EndIf

		ConOut("FimFinal: " + Time())
             
 
    RESET ENVIRONMENT
 
	FwFreeArray(aCab)
	FwFreeArray(aItem)
	FwFreeArray(aAutoImp)
	FwFreeArray(aItens)
 
Return



info
Bloco de código
languagedelphi
themeMidnight
titleATENÇÃO!

Não se esqueça de conferir as observações! 

Documento Tipo Normal - Com Rateio de CC com N itens
collapsetrue
#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
Bloco de código
languagedelphi
themeMidnight
titleDocumento Tipo Devolução - Classificação utilizando o aAutoImp para modificar as informações de Impostos
collapsetrue
#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
Bloco de código
languagedelphi
themeMidnight
titleDocumento Tipo Normal - Inclusão com aAutoImp e informando desconto,despesas,frete e seguro do cabeçalho do documento.
collapsetrue
#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
Bloco de código
languagedelphi
themeMidnight
titleDocumento Tipo Normal - Inclusión con aAutoImp - PIS, COFINS y CSLL
collapsetrue
#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
Informações
title¡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"

Enlace:

Observações:

Em todo PREPARE ENVIRONMENT deve-se informar o FUNNAME da rotina, para que não haja problema durante a inclusão/alteração/exclusão do documento.

Ex:

PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM" FUNNAME "MATA103"

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


O parâmetro aCodRet contendo o array com os códigos de retenção pode ser referenciado com um ou mais impostos ou com a 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 "..." assim como aparece na aba de impostos da nota fiscal en la solapa de impuestos de la factura de entrada. 
Para
gravar os grabar los códigos de retenção é necessário habilitar o parâmetro retención es necesario habilitar el parámetro MV_VISDIRF. 

Informações
titleImportante:

Não deve-No se debe utilizar o el campo D1_ITEM no en el comando "For". O El uso desse de este campo no array que trás as informações dos itens do en el array que trae la información de los ítems del documento de entrada, impede a execução correta do impide la correcta ejecución del Excecauto.

Informações
titlePara opção Classificaçãola opción Clasificación

Si la rutina Quando a rotina automática de Documentos de Entradaentrada(MATA103) for chamada com a opção fuera activada con la opción 4 = Classificação, deve-se necessariamente informar a variável LINPOS, conforme exemplo abaixoClasificación, debe necesariamente informar la variable LINPOS, de acuerdo con el siguiente ejemplo:

Bloco de código
languagedelphi
titleLINPOS
aAdd(aLinha, {"LINPOS"	,		"D1_ITEM",                 SD1->D1_ITEM})
Informações
titlePara opção Inclusãola opción Inclusión

Valide la clave EFACT, el usuario tendrá que pasar en el array del encabezado la nomenclatura VLDAMNFE Validar chave NFE, o usuário terá que passar no array do cabeçalho a nomenclatura VLDAMNFE indicando se deve ou não fazer a validação da chave juntamente com o campo da chave da NFE  indicando si debe o no realizar la validación de la clave junto con el campo de la clave de la EFACT  F1_CHVNFE.

Bloco de código
languagedelphi
titleLINPOS
aadd(aCab,{"F1_CHVNFE"    ,""       ,NIL})
aAdd(aCab, {"VLDAMNFE"	,		"S",                 Nil})
Informações
titlePara opção Inclusãola opción Inclusión

Al vincular el Ao vincular pedido de compra ao al documento, se houver necessidade de alterar a quantidadesi hubiera necesidad de modificar la cantidad/valor/total, deve-se informar no array dos itens os campos de debe informarse en el array de los ítems los campos del pedido (D1_PEDIDO / D1_ITEMPC) antes do de los campos de quantidadecantidad/valor/total (D1_QUANT / D1_VUNIT / D1_TOTAL)

Bloco de código
languagedelphi
titleLINPOS
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})

Informações
titlePara opção Inclusãola opción Inclusión

Al vincular el Ao vincular pedido de compra ao al documento, se houver necessidade de alterar a TES, deve-se informar no array dos itens os si hubiera necesidad de modificar la TES, debe informarse en el array de los ítems los campos de pedido (D1_PEDIDO / D1_ITEMPC) antes do del campo de TES (D1_TES)

Bloco de código
languagedelphi
titleLINPOS
aAdd(aItem, {"D1_PEDIDO","000105",Nil})
aAdd(aItem, {"D1_ITEMPC","0001",Nil})
aAdd(aItem, {"D1_TES",010,Nil})
Informações
titlePara opção Inclusão - Controle de numeração com uso de SD9 (MV_TPNRNFS)
",Nil})
aAdd(aItem, {"D1_ITEMPC","0001",Nil})
aAdd(aItem, {"D1_TES",010,Nil})
Informações
titlePara 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.

Bloco de código
languagedelphi
titleLINPOS
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



opção Inclusão
Informações
titlePara 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 )Quando utilizado  a opção de Controle de numeração com uso de SD9 (MV_TPNRNFS = 3), através de Execauto, deve-se sempre informar conforme exemplo abaixo, para que seja implementada corretamente a numeração nas tabelas SD1, SF1 e SD9.

Bloco de código
languagedelphi
titleLINPOS
cSerie := "001"
cNum   := NxtSX5Nota(cSerie )


aAdd(aCabecaCab,{'"F1_FORMUL'    ,'S'               DOC" ,cNum ,NIL})  

Não informar o campo F1_DOC.

Para para informações sobre a sequência automática, utilizando o parâmetro MV_TPNRNFS, consultar o link abaixo: 
FAT0049 Controle de Numeração do Documento

aAdd(aCab,{"F1_SERIE" ,cSerie ,NIL})



Informações
titlePara
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

Quando utilizado o Formulário Próprio = "S e caso seja enviado o Número do Documento / Nota Fiscal, sistema irá acatar o número enviado pelo Execauto. 

Obs: Utilizar função NxtSX5Nota para ter retorno da numeração do documento

Exemplo

:

cNumDoc := NxtSX5Nota(cSerie )

Bloco de código
languagedelphi
titleLINPOS
cSerie := "001"
cNum   := NxtSX5Nota(cSerie )


aAdd(aCab,{"F1_DOC" ,cNum ,NIL})
aAdd(aCab,{"F1_SERIE" ,cSerie ,NIL})

Quando utilizado o Formulário Próprio = "S e caso seja enviado o Número do Documento / Nota Fiscal, sistema irá acatar o número enviado pelo Execauto. 

Obs: Utilizar função NxtSX5Nota para ter retorno da numeração do documento

Exemplo:

cNumDoc := NxtSX5Nota(cSerie )


Informações
titleEntrega 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

Para opção Inclusão
LINPOS
Bloco de código
languagedelphi
title
Parâmetros
cSerie 	:= "001"
cNum
cFornec	:= "LF009 "
cLoja 	:= "00"
cNumPC  := 
NxtSX5Nota(cSerie )
"PCGF01"

aAdd(aCab,{"F1_SERIE" 	,cSerie 	,NIL})
aAdd(aCab,{"F1_
DOC
FORNECE" ,
cNum
cFornec	,NIL})
aAdd(aCab,{"F1_
SERIE
LOJA" 	,
cSerie
 cLoja 	,NIL})

aAdd(aItem, {"D1_PEDIDO",cNumPC	,Nil})
aAdd(aItem, {"D1_ITEMPC","0001"	,Nil})
aAdd(aItem, {"D1_TES"	,"001"	,Nil})

Segue detalhamento dos parâmetros do array AUT_ENTFUT que deve ser passado quando utilizado o ExecAuto para remessa de mercadorias referente a entrega Futura.
 

1° Posição  : Documento de Simples Faturamento               - DHQ
2° Posição  : Serie do Documento de Simples Faturamento - DHQ 
3° Posição  : Item do Documento de Simples Faturamento  - DHQ 
4° Posição  : Não utilizado, mas por conta do legado passar como 0 
5° Posição  : Item do Documento de Remessa
6° Posição  : Fornecedor 
7° Posição  : Loja do Fornecedor 

Informações
iconfalse
titleEntrega Terceirosfutura - 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
2° Posición  : Serie del documento de simple facturación - DHQ 
3° Posición  : Ítem del documento de simple facturación  - DHQ 
4° Posición  : No se utiliza, pero por cuenta del legado informe como 0 
5° Posición  : Ítem del documento de envío
6° Posición  : Proveedor 
7° Posición  : Tienda del proveedor 


Para cenários de ExecAuto de Entrega por Terceiros, o parâmetro MV_FORPCNF deverá estar ativo (MV_FORPCNF = T) e possuir previamente cadastrado os dados de Entrega por terceiros (COMA001) configurado. 
Exemplo : 
Feito a inclusão do pedido de Compra (MATA120) abaixo :   C7_NUM = PCGF01
C7_FORNECEDOR = LF007
C7_LOJA = 00
Cadastro Entrega por terceiro (COMA001)
CPW_CODIGO (Código) = LF007
CPW_LOJA (Loja) = 00
CPX_CODFOR (Fornecedor) = LF009
CPX_LOJA (Loja) = 00
CPX_CODFOR (Fornecedor) = LF010
CPX_LOJA (Loja) = 00
Bloco de código
languagedelphi
titleParâmetros AUT_ENTFUT
cDocOrg := "DOCSMPFAT"
cSerOrg cSerie 	:= "001"
cFornec	cItem   := "0001"LF009  "
cLoja cFornec	:= "00LF030"
cNumPCcLoja  	:= "PCGF0100"

aAdd(aCabaItem, {"F1AUT_SERIEENTFUT" 	,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})
Informações
iconfalse
titleEntrega Futura - Remessa
Bloco de código
languagedelphi
title AUT_ENTFUT
cDocOrg := "DOCSMPFAT"
cSerOrg := "001"
cItem   := "0001"  
cFornec	:= "LF030"
cLoja 	:= "00"

aAdd(aItem, {"AUT_ENTFUT", {cDocOrg , cSerOrg , cItem , 0 , cItem , cFornec , cLoja},NIL})
, {cDocOrg , cSerOrg , cItem , 0 , cItem , cFornec , cLoja},NIL})
Informações
titleAlí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:


Bloco de código
languagedelphi
titleAliq ISS - FISA052
aAutoImp := { {"NF_UFPREISS" ,  "SP"},;
						{"NF_CODMUN",  "18800"}}



Para garantir o correto cálculo da alíquota do ISS relacionada ao cadastro FISA052 o parametro MV_ISSXMUN deve estar habilitado, apresentamos a seguir um exemplo de como informar o Estado e o Código do Município:

Informações
titleConfigurador 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) 

Bloco de código
languagedelphi
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"         
Informações
titleAlíquota ISS - FISA052
Bloco de código
languagedelphi
titleAliq ISS - FISA052
aAutoImp := { {"NF_UFPREISS" ,  "SP"},;
						{"NF_CODMUN",  "18800"}}
Informações
titleConfigurador de Tributos

A Rotina de Documento de Entrada já está prepara para ser utilizada com o Configurador de Tributos.

Portanto, caso deseje realizar através do mesmo deve ser passados a informação abaixo: Fornecedor,Produto e Cfop (com esse podendo ser informado diretamente ou informando uma TES que contenha o Cfop desejado) 

Bloco de código
languagedelphi
aadd(aCab,{"F1_FORNECE"   ,"FUT001"                     ,NIL})
aadd(aCab,{"F1_LOJA"      ,"01"                  ,NIL}) 

aadd(aItem,{"D1_COD"        ,"01"                    
Dica

Si se estuviera informando el Cfop directamente, este se priorizará para el cálculo. 

Informações
titleArray - 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.

Bloco de código
languagedelphi
titleEjemplos:
aAutoImp := { {"NF_UFPREISS" ,  "SP"   },;
             
,NIL})
 
aadd(aItem,
{"
D1
NF_
TES
CODMUN"   
,  
,
"
001"
18800"},;
              
,NIL}) aadd(aItem,
{"
D1
IT_
CF
PRCUNI"
   
,
"1111"
  50     
,NIL})
Dica
Caso esteja passando o Cfop diretamente ele será o priorizado para o calculo. 
,2}}