Árvore de páginas

Versões comparadas

Chave

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

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:Fiscal

02. DESCRIÇÃO

Ponto de entrada para inclusão dos registros referentes ao Bloco D350 e registros filhos no SPEDFISCAL, respeitando a hierarquia dos registros conforme Guia pratico.

Abaixo os registros contemplados pelo ponto de entrada:

Image Added

Aviso
titleImportante

Este ponto de Entrada não tem utilidade sobre outros registros de complemento do SPEDFISCAL. 

Caso necessite realizar tratamento em algum registro que seja de complemento de documento fiscal recomendamos o ponto de entrada MATUCOMP em: PE - MATUCOMP - Alterações automáticas de Complemento de Documentos Fiscais

03. ESPECIFICAÇÃO

...

Outras Ações / Ações relacionadas

...

04. EXEMPLO DE UTILIZAÇÃO

Principais Campos e Parâmetros

Parâmetros do ponto de entrada:

Nome

Tipo

Descrição

PARAMIXB[1]Array of RecordcAlias = Alias
PARAMIXB[2]Array of RecordaFiliais = Contendo todas as Filiais selecionadas e não selecionadas da geração do arquivo


Retorno:

NomeTipoDescrição
NIlNulo

O retorno deve retornar valor Nulo.


04. EXEMPLO DE UTILIZAÇÃO

Bloco de código
languagejava
themeMidnight
titleSPEDREGD
linenumberstrue
#include "rwmake.ch"
#include "Topconn.ch"
#include "protheus.ch"
 
User Function SPEDREGD()
Local cAlias    :=  PARAMIXB[1]
Local aFiliais  :=  PARAMIXB[2] // Contem todas as filiais do arquivo

Local nPos      :=  0
Local nPos350   :=  0
Local nPos355   :=  0
Local nPos365   :=  0

Local aRegD350  :=  {}
Local aRegD355  :=  {}
Local aRegD360  :=  {}
Local aRegD365  :=  {}
Local aRegD370  :=  {}
Local aRegD390  :=  {}
 
// REGISTRO D350 EQUIPAMENTO ECF (CÓDIGOS 2E, 13, 14, 15 e 16)
aAdd(aRegD350, {})
nPos := 1
aAdd(aRegD350[nPos], "D350"                    )       //00 - REG       //Tipo do Registro
aAdd(aRegD350[nPos], "2E"                      )       //02 - COD_MOD
aAdd(aRegD350[nPos], "BM MP20"                 )       //03 - ECF_MOD
aAdd(aRegD350[nPos], "BE050975610000050056"    )       //04 - ECF_FAB
aAdd(aRegD350[nPos], Right("013",3)            )       //05 - ECF_CX
 
nPos350 := nPos
 
//Preenchimento do registro 355
 
aAdd(aRegD355, {})
nPos := 1
aAdd(aRegD355[nPos], nPos350       )       //01 - REG
aAdd(aRegD355[nPos], "D355"        )       //01 - REG
aAdd(aRegD355[nPos], '01102010'    )       //02 - DT_DOC
aAdd(aRegD355[nPos], '001'         )       //03 - CRO
aAdd(aRegD355[nPos], '00303'       )       //04 - CRZ
aAdd(aRegD355[nPos], '008056'      )       //05 - NUM_COO_FIN
aAdd(aRegD355[nPos], 0             )       //06 - GT_FIN
aAdd(aRegD355[nPos], 515.68        )       //07 - VL_BRT
 
nPos355:= nPos
 
// Preenchimento do registro 365
 
aAdd(aRegD365, {})
nPos := Len (aRegD365)
aAdd(aRegD365[nPos], nPos355)      //01 - REG
aAdd(aRegD365[nPos], "D365")       //01 - REG
aAdd(aRegD365[nPos], 'I1'  )       //02 - COD_TOT_PAR
aAdd(aRegD365[nPos], 14.40 )       //03 - VLR_ACUM_TOT
aAdd(aRegD365[nPos], '00')         //04 - NR_TOT
aAdd(aRegD365[nPos], "")           //05 - DESCR_NR_TOT
 
nPos365:= nPos
 
//REGISTRO D370: COMPLEMENTO DOS DOCUMENTOS INFORMADOS (CÓDIGOS 13,14, 15 e 16 e 2E)
aAdd(aRegD370, {})
nPos    :=  Len (aRegD370)
aAdd(aRegD370[nPos], nPos365   )   //01 - REG
aAdd(aRegD370[nPos], "D370"    )   //01 - REG
aAdd(aRegD370[nPos], '5201108' )   //02 - COD_MUN
aAdd(aRegD370[nPos], 14.40     )   //03 - VLR PREST SERV
aAdd(aRegD370[nPos], '1'       )   //04 - QTD_BILH
aAdd(aRegD370[nPos], 0         )   //05 - VLR BASE ICMS
aAdd(aRegD370[nPos], 0         )   //06 - VLR ICMS 
 
// Preenchimento do registro 365
aAdd(aRegD365, {})
nPos := Len (aRegD365)
aAdd(aRegD365[nPos], nPos355   )   //01 - REG
aAdd(aRegD365[nPos], "D365"    )   //01 - REG
aAdd(aRegD365[nPos], 'T1700'   )   //02 - COD_TOT_PAR
aAdd(aRegD365[nPos], 501.28    )   //03 - VLR_ACUM_TOT
aAdd(aRegD365[nPos], '00'      )   //04 - NR_TOT
aAdd(aRegD365[nPos], ""        )   //05 - DESCR_NR_TOT
 
nPos365:= nPos
 
//REGISTRO D370: COMPLEMENTO DOS DOCUMENTOS INFORMADOS (CÓDIGOS 13,14, 15 e 16 e 2E)
 
aAdd(aRegD370, {})
nPos    :=  Len (aRegD370)
aAdd(aRegD370[nPos], nPos365   )   //01 - REG
aAdd(aRegD370[nPos], "D370"    )   //01 - REG
aAdd(aRegD370[nPos], '5201108' )   //02 - COD_MUN
aAdd(aRegD370[nPos], 501.28    )   //03 - VLR PREST SERV
aAdd(aRegD370[nPos], '1'       )   //04 - QTD_BILH
aAdd(aRegD370[nPos], 501.28    )   //05 - VLR BASE ICMS
aAdd(aRegD370[nPos], 85.27     )   //06 - VLR ICMS
 
//REGISTRO D390: REGISTRO ANALÍTICO DO MOVIMENTO DIÁRIO (CÓDIGOS 13, 14,15, 16 E 2E).
 
aAdd(aRegD390, {})
nPos :=1
aAdd(aRegD390[nPos], nPos355   )
aAdd(aRegD390[nPos], "D390"    )           //01 - REG
aAdd(aRegD390[nPos], '000'     )           //02 - CST_ITEM
aAdd(aRegD390[nPos], '5357'    )           //03 - CFOP
aAdd(aRegD390[nPos], '17,00'   )           //04 - ALIQ_ICMS
aAdd(aRegD390[nPos], 501.28    )           //05 - VL_OPR
aAdd(aRegD390[nPos], 0         )           //06 - VL_BC_ISSQN
aAdd(aRegD390[nPos], 0         )           //07 - ALIQ_ISSQN
aAdd(aRegD390[nPos], 0         )           //08 - VL_ISSQN
aAdd(aRegD390[nPos], 501.28    )           //09 - VL_BC_ICMS
aAdd(aRegD390[nPos], 85.27     )           //10 - VL_ICMS
aAdd(aRegD390[nPos], ""        )           //11 - COD_OBS
 
//>>>>> segundo dia <<<<<
 
//Preenchimento do registro 355
aAdd(aRegD355, {})
nPos := 2
aAdd(aRegD355[nPos], nPos350       )       //01 - REG
aAdd(aRegD355[nPos], "D355"        )       //01 - REG
aAdd(aRegD355[nPos], '02102010'    )       //02 - DT_DOC
aAdd(aRegD355[nPos], '002'         )       //03 - CRO
aAdd(aRegD355[nPos], '00304'       )       //04 - CRZ
aAdd(aRegD355[nPos], '008888'      )       //05 - NUM_COO_FIN
aAdd(aRegD355[nPos], 0             )       //06 - GT_FIN
aAdd(aRegD355[nPos], 120.00        )       //07 - VL_BRT
 
nPos355:= nPos
 
aAdd(aRegD365, {})
nPos := Len (aRegD365)
aAdd(aRegD365[nPos], nPos355   )   //01 - REG
aAdd(aRegD365[nPos], "D365"    )   //01 - REG
aAdd(aRegD365[nPos], 'I1'      )   //02 - COD_TOT_PAR
aAdd(aRegD365[nPos], 20.00     )   //03 - VLR_ACUM_TOT
aAdd(aRegD365[nPos], '00'      )   //04 - NR_TOT
aAdd(aRegD365[nPos], ""        )   //05 - DESCR_NR_TOT
 
nPos365:= nPos
 
//REGISTRO D370: COMPLEMENTO DOS DOCUMENTOS INFORMADOS (CÓDIGOS 13,14, 15 e 16 e 2E)
aAdd(aRegD370, {})
nPos    :=  Len (aRegD370)
aAdd(aRegD370[nPos], nPos365   )   //01 - REG
aAdd(aRegD370[nPos], "D370"    )   //01 - REG
aAdd(aRegD370[nPos], '5201108' )   //02 - COD_MUN
aAdd(aRegD370[nPos], 20.00     )   //03 - VLR PREST SERV
aAdd(aRegD370[nPos], '1'       )   //04 - QTD_BILH
aAdd(aRegD370[nPos], 0         )   //05 - VLR BASE ICMS
aAdd(aRegD370[nPos], 0         )   //06 - VLR ICMS 
 
//Preenchimento do registro 365
aAdd(aRegD365, {})
nPos := Len (aRegD365)
aAdd(aRegD365[nPos], nPos355   )   //01 - REG
aAdd(aRegD365[nPos], "D365"    )   //01 - REG
aAdd(aRegD365[nPos], 'T1700'   )   //02 - COD_TOT_PAR
aAdd(aRegD365[nPos], 100.00    )   //03 - VLR_ACUM_TOT
aAdd(aRegD365[nPos], '00'      )   //04 - NR_TOT
aAdd(aRegD365[nPos], ""        )   //05 - DESCR_NR_TOT
 
nPos365:= nPos                           
 
//REGISTRO D370: COMPLEMENTO DOS DOCUMENTOS INFORMADOS (CÓDIGOS 13,14, 15 e 16 e 2E)
aAdd(aRegD370, {})
nPos    :=  Len (aRegD370)
aAdd(aRegD370[nPos], nPos365   )   //01 - REG
aAdd(aRegD370[nPos], "D370"    )   //01 - REG
aAdd(aRegD370[nPos], '5201108' )   //02 - COD_MUN
aAdd(aRegD370[nPos], 100.00    )   //03 - VLR PREST SERV
aAdd(aRegD370[nPos], '1'       )   //04 - QTD_BILH
aAdd(aRegD370[nPos], 100.00    )   //05 - VLR BASE ICMS
aAdd(aRegD370[nPos], 17.00     )   //06 - VLR ICMS
 
//REGISTRO D390: REGISTRO ANALÍTICO DO MOVIMENTO DIÁRIO (CÓDIGOS 13, 14,15, 16 E 2E).
aAdd(aRegD390, {})
nPos := Len (aRegD390)
aAdd(aRegD390[nPos], nPos355   )
aAdd(aRegD390[nPos], "D390"    )           //01 - REG
aAdd(aRegD390[nPos], '000'     )           //02 - CST_ITEM
aAdd(aRegD390[nPos], '8888'    )           //03 - CFOP
aAdd(aRegD390[nPos], '17,00'   )           //04 - ALIQ_ICMS
aAdd(aRegD390[nPos], 100.00    )           //05 - VL_OPR
aAdd(aRegD390[nPos], 0         )           //06 - VL_BC_ISSQN
aAdd(aRegD390[nPos], 0         )           //07 - ALIQ_ISSQN
aAdd(aRegD390[nPos], 0         )           //08 - VL_ISSQN
aAdd(aRegD390[nPos], 100.00    )           //09 - VL_BC_ICMS
aAdd(aRegD390[nPos], 17.00     )           //10 - VL_ICMS
aAdd(aRegD390[nPos], ""        )           //11 - COD_OBS
 
//Gravação dos registros na tabela temporária.
SPEDRegs(cAlias,{aRegD350,aRegD355,aRegD360,{aRegD365,2},{aRegD390,2},{aRegD370,4}})
 
Return 

// Documentação da Function SPEDRegs

/*
Observação: Suponhamos o cabecalho e os itens do documento fiscal, onde o cabecalho é o pai e os itens são os filhos, portanto tenho   
varios itens para um pai. Para que esta função interprete este caso, a primeira posição do registro filho indica a posição do registro pai,    
ou seja, leio a primeira posição do array pai e procuro todos os registros itens que possuem na primeira posição a posição lida do registro   pai.
*/

/* Function SPEDRegs(cAlias,aRegs)

Parâmetros:		cAlias    -> Alias do TRB em processamento para gravar as informacoes
aRegs     -> Array com as informacoes dos registros a serem gravados

Observação: 

1) Os array a serem passados devem seguir a ordem hierarquica de gravação
2) Para os registros que estiverem na sequencia mais nao corresponderem a hierarquia informada, deve ser passado no seguinte formato,Ex: (aReg,2}							
a) O primeiro nivel corresponde ao registro; 							
b) O segundo corresponde ao pai deste registro que nao é o antecessor 

Documentacao da tabela temporaria			
TRB_TPREG",	"C", 	004,		0	//Tipo do Registro	TRB_RELAC",	"C", 	015,		0
//Codigo de relacionamento entre um registro e outro. 
Ex: Para cada C320 tenho um C321, portanto para estes dois registros este codigo deve ser igual e unico.	TRB_FLAG",	"C", 	001,		0	
//Campo utilizado internamente pelo SPED Fiscal, deve ser deixado em branco	TRB_CONT",	"C", 	999,		0	
//Campo com a linha de todo o registro.	TRB_ITEM",	"N", 	005,		0	
//Nao utilizado	Indice desta tabela temporaria	"TRB_TPREG+TRB_RELAC+StrZero (TRB_ITEM, 5, 0)"
*/


O exemplo acima resultará na seguinte saída para o Bloco D:

Image Added

05. DEMAIS INFORMAÇÕES

...

Sem mais informações.