Versões comparadas

Chave

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

EXECAUTO MATA103 -

...

 a SEFAZ)


ProdutoOcorrênciaRotina Automática DescriçãoExemplo da Rotina automática que possui o Código de retorno ParâmetrosNomeDescriçãoConteúdo Default contendo os dados do cabeçalho da Nota Fiscal de Entrada contendo os itens da Nota Fiscal de EntradaOpçã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 Parâmetro 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 impostoPasso a passoCabeçalhoItensSe for classificação deve informar a variável ou SD1 se estiver posicionadoInclusão Classificação Exclusão Incluido NFErro na inclusaoFim

Producto:

Protheus

VersõesVersiones:

Todas

Ocurrencia:

Rutina automática - MATA103 (Execauto)

AmbienteEntorno:

SIGACOM - Compras

Descripción:

Ejemplo de la rutina automática que tiene el código de devolución SEFAZ .

Parámetros:

Nombre

Tipo

Descripción

Contenido estándar

ExpA1

Array

Array

con los datos del encabezado de la Factura de entrada.


ExpA2

Array

Array

con los ítems de la Factura de entrada.


ExpN1

Numérico

Opción deseada: 3-

Inclusión; 4-

Clasificación; 5-

Borrado

3

ExpL1

Lógico

Indica

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

.F.

ExpA3

Array

Array

con los valores de

Impuestos que

sobrescribirán los valores calculados. (Opcional)


ExpA4

Array

Parámetro de uso interno TOTVS.


ExpA5

Array

Parámetro de uso interno TOTVS.


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


Paso a paso

:

//DOCUMENTO TIPO NORMAL

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

User Function EXEC103()

Local aCab := {}
Local aItem := {}
Local aItens := {}
Local aAutoImp := {}
Local aItensRat := {}
Local aCodRet := {}
Local nOpc := 3
Local cNum := ""
Local nX := 0
Local cCODRSEF := '100'


Conout("Inicio: " + Time())

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

PREPARE ENVIRONMENT EMPRESA "32" FILIAL "6597" MODULO "COM"

cNum := GetSxeNum("SF1","F1_DOC")
SF1->(dbSetOrder(1))
While SF1->(dbSeek(xFilial("SF1")+cNum))
ConfirmSX8()
cNum := GetSxeNum("SF1","F1_DOC")
EndDo

//

Encabezado
aadd(aCab,{"F1_TIPO" ,"N" ,NIL})
aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_DOC" ,cNum ,NIL})
aadd(aCab,{"F1_SERIE" ,"1 " ,NIL})
aadd(aCab,{"F1_EMISSAO" ,DDATABASE ,NIL})
aadd(aCab,{"F1_DTDIGIT" ,DDATABASE ,NIL})
aadd(aCab,{"F1_FORNECE" ,"001 " ,NIL})
aadd(aCab,{"F1_LOJA" ,"01" ,NIL})
aadd(aCab,{"F1_ESPECIE" ,"CTE" ,NIL})
aadd(aCab,{"F1_COND" ,"001" ,NIL})
aadd(aCab,{"F1_DESPESA" ,10 ,NIL})
aadd(aCab,{"F1_DESCONT" , 0 ,Nil})
aadd(aCab,{"F1_SEGURO" , 0 ,Nil})
aadd(aCab,{"F1_FRETE" , 0 ,Nil})
aadd(aCab,{"F1_MOEDA" , 1 ,Nil})
aadd(aCab,{"F1_TXMOEDA" , 1 ,Nil})
aadd(aCab,{"F1_STATUS" , "A" ,Nil})

//

Ítems
For nX := 1 To 1
          aItem := {}
          aadd(aItem,{"D1_ITEM" ,StrZero(nX,4) ,NIL})
          aadd(aItem,{"D1_COD" ,PadR("0001",TamSx3("D1_COD")[1]) ,NIL})
          aadd(aItem,{"D1_UM" ,"UN" ,NIL})
          aadd(aItem,{"D1_LOCAL" ,"01" ,NIL})
          aadd(aItem,{"D1_QUANT" ,1 ,NIL})
          aadd(aItem,{"D1_VUNIT" ,7508.33 ,NIL})
          aadd(aItem,{"D1_TOTAL" ,7508.33 ,NIL})
          aadd(aItem,{"D1_TES" ,"001" ,NIL})
          aAdd(aItens,aItem)

         if(nOpc == 4)//

Si fuera clasificación debe informar la variable LINPOS

              aAdd(aItem, {"LINPOS" , "D1_ITEM",  StrZero(nX,4)}) //

o SD1->D1_ITEM 

si estuviera marcado.

         endIf


       aAdd(aItens,aItem)
Next nX

//3-

Inclusión / 4-

Clasificación / 5-

Borrado
MSExecAuto({|x,y,z,k| MATA103(x,y,z,,,,,,,k)},aCab,aItens,nOpc,cCodRSef)

If !lMsErroAuto
ConOut("

Incluir Fact.: " + cNum)
Else
MostraErro()
ConOut("

¡Error en la inclusión!")
EndIf

ConOut("

Final: " + Time())

RESET ENVIRONMENT

Return

ObservaçõesObservaciones:

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