Árvore de páginas

Versões comparadas

Chave

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

Índice
excludeIMPORTANTE!


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:Fiscal
Programa:SPEDFISCAL.PRW através de Job
Idiomas:Todos

02. VISÃO GERAL

Encontra-se disponível na rotina de geração do SPED Fiscal um tratamento que o possibilita ser executado via schedule ou JOB, para isso basta passar o conteúdo do Wizard em um array na chamada da função SPEDFISCAL().

...

Aviso
iconfalse
titleImportante

Ao utilizar esse ponto de entrada, as informações do Registro 1400 não serão mais geradas pelo padrão do Protheus, assim como suas respectivas validações, ficando essas por conta do código fonte empregado neste ponto de entrada.

03. ESPECIFICAÇÃO

Na abertura ou preparação do ambiente, deve ser informado a empresa / filial para a qual se deseja realizar a geração do arquivo, e realizada a preparação de todas as tabelas envolvidas no processo manual. 

Quando a chamada da rotina for realizada através de Agendamento do Scheduler, o caminho informado como cRootPath deve corresponder a um diretório válido a partir do diretório RootPath do servidor.

Maiores informações podem ser identificadas no exemplo de utilização.


03. ESPECIFICAÇÃO


Parâmetros de Entrada 

Antes da chamada da função do SPEDFiscal, deverá ser informado Deve ser criado um array com o conteúdo da Wizard em igual correspondência das todas as informações selecionadas ou informadas quando da execução em formato Manual.
Para ficar mais claro,

NomeTipoDescrição
PARAMIXBArray of Record

Deverá ser gerado um array multidimensional conforme exemplo, no qual temos 4 telas de

...

informação no Wizard, sendo separadas por tipo de informação

Primeira Tela - Parâmetros para Geração

Segunda Aba - Identificação do Contribuinte

Terceira Tela - Dados do Contabilista

Quarta Tela - Informações para processamento do Bloco 1000

Para cada uma das telas destacadas acima, será necessário a informação dos parâmetros na sequencia exata quando do preenchimento durante execução da rotina manual.



Aviso
titleAviso

A forma de utilizada desta rotina, bem como o resultado esperado, depende exclusiva dos parâmetros envolvidas e das regras de negócio de cada cliente. Desta forma, ao Exemplo de Utilizado demonstrado abaixo é de exclusiva responsabilidade do cliente.

Sugestão: Uma vez gerado o arquivo manual e mesmo validado com sucesso no PVA, poderá ser validado a geração do mesmo substituindo no exemplo os mesmos parâmetros utilizados quando da execução manual. 

Retorno

Será gerado um arquivo .TXT no caminho informado no parâmetro correspondente ao Diretório do Arquivo Destino, com nome correspondente ao conteúdo informado no parâmetro Nome do Arquivo Destino. com o nome informado no parâmetro 


04

...

[1] = Data de (Data)

[2] = Data até (Data)

[3] = Filial de (Caracter)

[4] = Filial Até (Caracter)

[5] = Lista filiais selecionadas quando utilizado pergunta seleciona filiais = SIM (Array of Record)

[6] = Dados do registro 1400 (Array of Record)

...

titleAviso

...

Retorno

...

Dados do Registro 1400

...

. EXEMPLO DE UTILIZAÇÃO


Bloco de código
languagejava
themeMidnight
firstline1
titleSPED1400SPEDFISCAL - Scheduler
linenumberstrue
#INCLUDE#include "TOTVS.CH"
#INCLUDE#include "tbiconn.ch"

 
User Function CallSPDFisc()

Local aWizard   := {}
Local nPos      := 0
Local cRootPath cRoothPath:= "C:\Arquivos\"
Local cFilePerfA:= "CallSPDFisc.txt"
Local dDataFim
Local dDataIni 


PREPARELocal ENVIRONMENTaTables EMPRESA "T1" FILIAL "XCFIS26" MODULO "FIS" TABLES:= {  "SFT","SX5","SA1","SA2","SA4","SF1","SF2","SF3","SF4","SF6","SD1","SD2","SB1","SB8","SAH","CC6",;
                            "SB8","SAH","SX6","CC6","CD0","CD3","CD4","CD5","CD6","CD7","CD8","CD9","CDA","CDH","CDG","CDC","CDD","CDE","CDF","CDL","CCE","SFU","SFX","CDO",;
"CDP",;
                    "SFU","SFX","CDO","CDP","CCK","AIF","DT6","DTC","DUD","DTQ","DTR","DT8","DUY","DA3","DB2","DB1","DB3",;
                    "SC7","SC5","SF9","SFA","SN1","SN3","CT1","SI1","CTT","SI3","CDV"

   
dDataIni := FirstDate( dDataBase )
dDataFim := LastDate( dDataBase )

aAdd(aWizard, {})				  
nPos := Len(aWizard)

// Primeira Aba - Parâmetros para Geração
,"SI3","CDV" }

RpcSetEnv( "T1","XCFIS26", "", "", "FIS", , aTables, , , ,  )

   
dDataIni := FirstDate( dDataBase )
dDataFim := LastDate( dDataBase )

aAdd(aWizard, {})				  
nPos := Len(aWizard)

// Primeira Tela - Parâmetros para Geração

aAdd(aWizard[nPos], dtos(dDataIni)	)	//	Data de
aAdd(aWizard[nPos], dtos(dDataFim)	)	//	Data até
aAdd(aWizard[nPos],"*"          	)	//	Livro
aAdd(aWizard[nPos],cRootPath   		)	//	Diretório do Arquivo Destino
aAdd(aWizard[nPos],cFilePerfA    	)	//	Nome do Arquivo Destino
aAdd(aWizard[nPos], dtos(dDataIni)"2"          	)	//	DataGera deInventario
aAdd(aWizard[nPos], dtos(dDataFim)"2"          	)	//	Data atéGera Registros Complementares de Frete
aAdd(aWizard[nPos],"*"		          	)	//	LivroData de fechamento do estoque
aAdd(aWizard[nPos],cRoothPath"2"          	)	//	DiretorioGera doregistro Arquivode DestinoECF
aAdd(aWizard[nPos],cFilePerfA""          	    )	//	NomeArq. doPeriodo Arquivo Destinoanterior
aAdd(aWizard[nPos],"2"          	)	//	GeraImprime credito InventarioST
aAdd(aWizard[nPos],"2"            	)	//	Seleciona Filiais
aAdd(aWizard[nPos],0				)	//	GeraPeriodo Registrosde Complementares de FreteApuração {0=Mensal; 1=Decendial}
aAdd(aWizard[nPos],"2"		          	)	//	DataInicio deObrigação fechamentoEscrituração do estoqueCIAP
aAdd(aWizard[nPos],"2"          	)	//	GeraConsidera registroValores de ECFPIS/COFINS
aAdd(aWizard[nPos],""    9-Não"      	    )	//	Arq.Gera PeriodoBloco anteriorK
aAdd(aWizard[nPos],"2"          	)	//	Imprime credito STReg. 0210 por Mov?
aAdd(aWizard[nPos],"2"          	)	//	Seleciona FiliaisGera registros DIFAL(EC 87/15)
aAdd(aWizard[nPos],0			"01"         	)	//	Periodo de Apuração {0=Mensal; 1=Decendial}Motivo do Inventário
aAdd(aWizard[nPos],"2"          	)	//	Inicio Obrigação Escrituração CIAPGera Registro 0400 - Natureza da Oper/Prest
aAdd(aWizard[nPos],"2"          	)	//	Considera Valores de PIS/COFINSGera H020 - Motivo Inventário 01
aAdd(aWizard[nPos],"9-Não"2"          	)	//	GeraProcessa Histórico do Bloco K
aAdd(aWizard[nPos],"2"          	)	//	Reg.Gera 0210Registro porde Mov?FECP
aAdd(aWizard[nPos],"2"          	)	//	Gera registros DIFAL(EC 87/15)Bloco G
aAdd(aWizard[nPos],"01"         2"				)	//	MotivoGera doBloco InventárioB
aAdd(aWizard[nPos],"2"          	)	//	Gera Registro 0400 - Natureza da Oper/PrestInf.Compl ST
aAdd(aWizard[nPos],"2"          "2"				)	//	Gera H020 - Motivo Inventário 01registro 0210
aAdd(aWizard[nPos],"2"				)	//	Energia Elétrica Eletrônica - NF3e (66), Geração dos Registros C500 	)	//	Processa Histórico do Bloco K(analitico), Geração dos Registros C700 (consolidado)
aAdd(aWizard[nPos],"21"              	)	   //	  Gera RegistroBloco de FECP
aAdd(aWizard[nPos],"2"          	)	//	Gera Bloco G
aAdd(aWizard[nPos],"2"				)	//	Gera Bloco BH com motivo de inventário 06. Quando não houver movimento no periodo para apuração REssarcimento SPED.
aAdd(aWizard[nPos],"23"          	)	//	Gera Inf.Compl ST
aAdd(aWizard[nPos],"2"				)	//	   )   //  Gera registro 02100221
aAdd(aWizard[nPos],"2"				)	//	Energia Elétrica Eletrônica - NF3e (66), Geração dos Registros C500 (analitico), Geração dos Registros C700 (consolidado)

1"              )   //  Gera o registro C171 - Armazenamento de Combustiveis ("1-Sim , 2-Não")


// Segunda AbaTela - Identificação do Contribuinte
aAdd(aWizard, {})
nPos :=	Len(aWizard)

aAdd(aWizard[nPos],"0"                		)	//	Código da Finalidade do Arquivo
aAdd(aWizard[nPos],""                 		)	//	Filial de
aAdd(aWizard[nPos],""                 		)	//	Filial Ate
aAdd(aWizard[nPos],"A"                		)	//	Perfil de Apresentação
aAdd(aWizard[nPos],"1"                		)	//	Tipo de Atividade
aAdd(aWizard[nPos],"0"						)	//	Aglutina por CNPJ+IE
aAdd(aWizard[nPos],"[email protected]"	)	//	E-mail//
aAdd(aWizard[nPos],"09"                     ) 	//---Classe de Atividade Industrial

// Terceira AbaTela - Dados do Contabilista
aAdd(aWizard, {})
nPos :=	Len(aWizard)

aAdd(aWizard[nPos],"Contador Teste"       	)	//	Nome Contabilista
aAdd(aWizard[nPos],"27672112000145"        	)	//	CNPJ
aAdd(aWizard[nPos],"34727314002"         	)	//	CPF
aAdd(aWizard[nPos],"10102020"   	       	)	//	CRC
aAdd(aWizard[nPos],"07170030"            	)	//	CEP
aAdd(aWizard[nPos],"3500550"             	)	//	Cod Municipio
aAdd(aWizard[nPos],"Endereco Teste"      	)	//	Endereço
aAdd(aWizard[nPos],"234"                 	)	//	Número
aAdd(aWizard[nPos],"Complemento"           	)	//	Complemento
aAdd(aWizard[nPos],"Bairro"              	)	//	Bairro
aAdd(aWizard[nPos],"2154876546"          	)	//	Fone
aAdd(aWizard[nPos],"2154876546"		    	)	//	Fax
aAdd(aWizard[nPos],"[email protected]"	)	//	E-mail Contabilista

// Quarta AbaTela - Informações para processamento do Bloco 1000
aAdd(aWizard, {})
nPos :=	Len(aWizard)	

aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1100 - Exportação
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1200 - Créditos fiscais
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1300 - Combustiveis
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1390 - Usina de açúcar/alcool
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1400 - Valores Agregados
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1500 - Energia Eletrica
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1600 - Cartão de crédito/débito / 1601 Pagamentos Eletrônicos
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1700 - Documentos Fiscais
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1800 - Transporte Aéreo
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1400 - Movimentação Anual
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1960 - GIAF 1
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1970 e 1975 - GIAF 3
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1980 - GIAF 4
aAdd(aWizard[nPos],"2"	)	//	Gera Registro 1250 - ICMS ST

SPEDFISCAL( aWizard )  

RESET ENVIRONMENTRpcClearEnv() //Encerra o ambiente, fechando as devidas conexões

Return

05. DEMAIS INFORMAÇÕES

Não há

...