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 ala variable 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 contendocon la 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 dade la 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 la avariable 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 == 3 If nOpcx == 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 nOpc Elseif 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 customizadopersonalizado creado 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 nota fiscalfactura 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 ala grabació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



Informações
titleATENÇÃO¡ATENCIÓN!

Não ¡No se esqueça de conferir as observaçõesolvide de verificar las observaciones

ObservaçõesObservaciones:

Em En 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.debe informarse el FUNNAME de la rutina para que no haya problema durante la inclusión/modificación/borrado del documento.

Ej.Ex:

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

LinkEnlace:   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 la opción Inclusión - Control de numeración con uso de SD9 (MV_TPNRNFS)

Quando utilizado  a opção de Controle de numeração com uso Al utilizar la opción de Control de numeración con utilización de SD9 (MV_TPNRNFS = 3), através por medio de Execauto, deve-se sempre informar conforme exemplo abaixo, para que seja implementada corretamente a numeração nas tabelas SD1, SF1 e 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})  

Não informar o No informe el campo F1_DOC.

Para para informações sobre a sequência automática, utilizando o parâmetro más información sobre la secuencia automática utilizando el parámetro MV_TPNRNFS, consultar o link abaixoconsulte el siguiente enlace

FAT0049 Controle de Numeração do Documento



Informações
titlePara opção Inclusãola 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 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 documentoUtilice la función NxtSX5Nota para tener la devolución de la numeración del documento

EjemploExemplo:

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})



Informações
titlePara opção Inclusãola 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})
Informações
titleEntrega Terceirosterceros

Para cenários escenarios de ExecAuto de Entrega por Terceirosterceros, o parâmetro el parámetro MV_FORPCNF deverá debe estar ativo activo (MV_FORPCNF = T) e possuir previamente cadastrado os dados y tener previamente registrados los datos de Entrega por terceiros terceros (COMA001) configuradoconfigurados
Exemplo
Ejemplo
Feito a inclusão do
Se realizó la inclusión del pedido de Compra (MATA120) abaixo siguiente:   

C7_NUM = PCGF01
C7_FORNECEDOR = LF007
C7_LOJA = 00
Cadastro Entrega
Registro entrega por terceiro tercero (COMA001)
CPW_CODIGO (Código) = LF007
CPW_LOJA (LojaTienda) = 00

CPX_CODFOR (FornecedorProveedor) = LF009
CPX_LOJA (LojaTienda) = 00
CPX_CODFOR (FornecedorProveedor) = LF010
CPX_LOJA (LojaTienda) = 00


Bloco de código
languagedelphi
titleParâ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})
Informações
iconfalse
titleEntrega Futura futura - RemessaEnvío

A continuación, se detallan los parámetros del Segue detalhamento dos parâmetros do array AUT_ENTFUT que deve ser passado quando utilizado o ExecAuto para remessa de mercadorias referente a , que deben comunicarse cuando se utiliza el ExecAuto para envío de mercaderías referentes a la entrega Futura.
 

Posição  Posición  : Documento de Simples Faturamento  simple facturación               - DHQ
Posição  Posición  : Serie do Documento de Simples Faturamento del documento de simple facturación - DHQ 
Posição  : Item do Documento de Simples Faturamento  Posición  : Ítem del documento de simple facturación  - DHQ 
Posição  : Não utilizado, mas por conta do legado passar Posición  : No se utiliza, pero por cuenta del legado informe como 0 
Posição  : Item do Documento de RemessaPosición  : Ítem del documento de envío
Posição  Posición  : Fornecedor Proveedor 
Posição  : Loja do Fornecedor Posición  : Tienda del proveedor 


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})
Informações
titleAlíquota Alícuota ISS - FISA052

Para garantir o correto cálculo da alíquota do ISS relacionada ao cadastro FISA052 o parametro garantizar el cálculo correcto de la alícuota del ISS relacionada con el registro FISA052 el parámetro MV_ISSXMUN deve debe estar habilitado, apresentamos a seguir um exemplo de como informar o Estado e o Código do Municípiopresentamos 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"}}



Informações
titleConfigurador de Tributos tributos

La rutina A Rotina de Documento de Entrada já entrada ya está prepara para ser utilizada com o preparada para que se utilice con el Configurador de Tributostributos.

 

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 deseadoPortanto, 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"                                 ,NIL}) 
aadd(aItem,{"D1_TES"        ,"001"                               ,NIL})
aadd(aItem,{"D1_CF"         ,"1111"                              ,NIL})
Dica

Caso esteja passando o Cfop diretamente ele será o priorizado para o calculoSi se estuviera informando el Cfop directamente, este se priorizará para el cálculo