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:
Importante
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
Parâmetros do ponto de entrada:
Nome | Tipo | Descrição |
---|---|---|
PARAMIXB[1] | Array of Record | cAlias = Alias |
PARAMIXB[2] | Array of Record | aFiliais = Contendo todas as Filiais selecionadas e não selecionadas da geração do arquivo |
Retorno:
Nome | Tipo | Descrição |
---|---|---|
NIl | Nulo | O retorno deve retornar valor Nulo. |
04. EXEMPLO DE UTILIZAÇÃO
SPEDREGD
#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:
05. DEMAIS INFORMAÇÕES
Sem mais informações.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas