Árvore de páginas

SPED CONTRIBUIÇÕES - CRIAÇÃO DO PONTO DE ENTRADA SPDF120

Linha de Produto:

Microsiga Protheus

Segmento:

Servicos

Módulo:

SIGAFIS - Livros Fiscais

Função:

FISA001

Situação/Requisito:

Solicitação de implementação de ponto de entrada para geração do registro F120 do sped contribuições

Solução/Implementação:

Criação do ponto de entrada SPDF120

Chamados relacionados:

TUGTA1

Versão Expedida: Informe o requisito relacionado.


Ponto de Entrada

Descrição:

Registro F120 Sped Contribuições

Localização:

FISA001

Eventos:

SPDF120

Programa Fonte:

FISA001

Função:

A001F120

Retorno:

Nome

Tipo

Descrição

Obrigatório

SPDF120

 Array

Deve ser criado e alimentado um alias temporário exatamente na seguinte estrutura.

AADD(aStru,{"BEM" ,"C" ,TamSx3("N4_CBASE")[1],0})
AADD(aStru,{"ITEM" ,"C" ,TamSx3("N4_ITEM")[1],0})
AADD(aStru,{"DESCRI" ,"C" ,TamSx3("N1_DESCRIC")[1],0})
AADD(aStru,{"BASE" ,"N" ,013,2})
AADD(aStru,{"VRET" ,"N" ,013,2})
AADD(aStru,{"DTAPR" ,"D" ,008,0})
AADD(aStru,{"NATBCCRED" ,"C" ,002,0})
AADD(aStru,{"INDBEMIMOB" ,"C" ,002,0})
AADD(aStru,{"INDORIGCRD" ,"C" ,001,0})
AADD(aStru,{"INDUTILBEM" ,"C" ,001,0})
AADD(aStru,{"CSTPIS" ,"C" ,002,0})
AADD(aStru,{"VLRBCEXC" ,"N" ,018,2})
AADD(aStru,{"VLRBCPIS" ,"N" ,018,2})
AADD(aStru,{"ALIQPIS" ,"N" ,008,4})
AADD(aStru,{"VLRPIS" ,"N" ,018,2})
AADD(aStru,{"CSTCOFINS" ,"C" ,002,0})
AADD(aStru,{"VLRBCCOFIN" ,"N" ,018,2})
AADD(aStru,{"ALIQCOFINS" ,"N" ,008,4})
AADD(aStru,{"VLRCOFINS" ,"N" ,018,2})
AADD(aStru,{"CODCONTA" ,"C" ,TamSx3("N3_CCONTAB")[1],0})
AADD(aStru,{"CODCCUSTO" ,"C" ,TamSx3("N3_CCUSTO")[1],0})
AADD(aStru,{"DESCBEMIMO" ,"C" ,250,0})
AADD(aStru,{"NOTAFISCAL" ,"C" ,Len(SN1->N1_NFISCAL),0})
AADD(aStru,{"SERIE" ,"C" ,Len(SN1->N1_NSERIE),0})
AADD(aStru,{"FORNECEDOR" ,"C" ,Len(SN1->N1_FORNEC),0})
AADD(aStru,{"LOJA" ,"C" ,Len(SN1->N1_LOJA ),0})
AADD(aStru,{"NUMPRO" ,"C" ,10,0})
AADD(aStru,{"INDPRO" ,"C" ,1,0})

OBS: Os nomenclatura das colunas deve ser exatamente a nomenclatura acima.

O ponto de entrada deve retornar um array de duas posições, onde:

A primeira - É o nome do arquivo de trabalho, retorno da função CriaTrab()

A Segunda - É o alias do arquivo de trabalho.

 

 

 Sim

Exemplo:

#include 'totvs.ch'

user Function SPDF120()
Local aStru := {}
Local aRet := {}
Local cArqAtiv := "ATI"
Local cArqATI := ""
Local dDatade := PARAMIXB[1]  //Parametro passado na chamado do PE - DataDe (Wizard)
Local dDataate := PARAMIXB[2] //Parametro passado na chamado do PE - DataAte (Wizard)

AADD(aStru,{"BEM" ,"C" ,TamSx3("N4_CBASE")[1],0})
AADD(aStru,{"ITEM" ,"C" ,TamSx3("N4_ITEM")[1],0})
AADD(aStru,{"DESCRI" ,"C" ,TamSx3("N1_DESCRIC")[1],0})
AADD(aStru,{"BASE" ,"N" ,013,2})
AADD(aStru,{"VRET" ,"N" ,013,2})
AADD(aStru,{"DTAPR" ,"D" ,008,0})
AADD(aStru,{"NATBCCRED" ,"C" ,002,0})
AADD(aStru,{"INDBEMIMOB" ,"C" ,002,0})
AADD(aStru,{"INDORIGCRD" ,"C" ,001,0})
AADD(aStru,{"INDUTILBEM" ,"C" ,001,0})
AADD(aStru,{"CSTPIS" ,"C" ,002,0})
AADD(aStru,{"VLRBCEXC" ,"N" ,018,2})
AADD(aStru,{"VLRBCPIS" ,"N" ,018,2})
AADD(aStru,{"ALIQPIS" ,"N" ,008,4})
AADD(aStru,{"VLRPIS" ,"N" ,018,2})
AADD(aStru,{"CSTCOFINS" ,"C" ,002,0})
AADD(aStru,{"VLRBCCOFIN" ,"N" ,018,2})
AADD(aStru,{"ALIQCOFINS" ,"N" ,008,4})
AADD(aStru,{"VLRCOFINS" ,"N" ,018,2})
AADD(aStru,{"CODCONTA" ,"C" ,TamSx3("N3_CCONTAB")[1],0})
AADD(aStru,{"CODCCUSTO" ,"C" ,TamSx3("N3_CCUSTO")[1],0})
AADD(aStru,{"DESCBEMIMO" ,"C" ,250,0})
AADD(aStru,{"NOTAFISCAL" ,"C" ,Len(SN1->N1_NFISCAL),0})
AADD(aStru,{"SERIE" ,"C" ,Len(SN1->N1_NSERIE),0})
AADD(aStru,{"FORNECEDOR" ,"C" ,Len(SN1->N1_FORNEC),0})
AADD(aStru,{"LOJA" ,"C" ,Len(SN1->N1_LOJA ),0})
AADD(aStru,{"NUMPRO" ,"C" ,10,0})
AADD(aStru,{"INDPRO" ,"C" ,1,0})

cArqATI := CriaTrab(aStru)
dbUseArea(.T.,__LocalDriver,cArqATI,cArqAtiv)
IndRegua(cArqAtiv,cArqATI,"BEM+ITEM+DTOS(DTAPR)")

AADD(aRet,{cArqATI,cArqAtiv})   //Array de duas posições que será retornado para função A001F120 do FISA001

RecLock(cArqAtiv,.T.)
(cArqAtiv)->BEM := "MEU_BEM"
(cArqAtiv)->ITEM := "MEU_ITEM"
(cArqAtiv)->DESCRI := "MINHA DESCRIÇÃO"
(cArqAtiv)->DTAPR := dDatade 
(cArqAtiv)->NATBCCRED := "01"
(cArqAtiv)->INDBEMIMOB := "15"
(cArqAtiv)->INDORIGCRD := "90"
(cArqAtiv)->INDUTILBEM := "02"
(cArqAtiv)->CSTPIS := "01"
(cArqAtiv)->ALIQPIS := 0.65
(cArqAtiv)->CSTCOFINS := "01"
(cArqAtiv)->ALIQCOFINS := 3
(cArqAtiv)->CODCONTA := "123"
(cArqAtiv)->CODCCUSTO := "123"
(cArqAtiv)->DESCBEMIMO := "DESC_BEM"
(cArqAtiv)->BASE := 1000
(cArqAtiv)->VRET := 18
(cArqAtiv)->VLRBCEXC := 0
(cArqAtiv)->VLRBCPIS := 1000
(cArqAtiv)->VLRPIS := 30
(cArqAtiv)->VLRBCCOFIN := 1000
(cArqAtiv)->VLRCOFINS := 65

(cArqAtiv)->NOTAFISCAL := "000000001"
(cArqAtiv)->SERIE := "1"
(cArqAtiv)->FORNECEDOR := "SP"
(cArqAtiv)->LOJA := "01"
(cArqAtiv)->NUMPRO := "001"
(cArqAtiv)->INDPRO := "01"
MsUnLock()

Return(aRet)