Árvore de páginas

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Programa:SPEDFISCAL.PRW
Módulo:Fiscal

02. DESCRIÇÃO

Criação do ponto de entrada no SPED Fiscal para que seja possível manipular a escrituração do código da conta contábil.

Com este ponto de entrada é possível alterar a escrituração do código da conta contábil dos registros de nota C170,C300,C350,D100,D500 e D300 do SPEDFISCAL.

Também é possível manipular a escrituração do código da conta contábil do registro de CADASTRO DE BENS OU COMPONENTES DO ATIVO IMOBILIZADO 0300 e por consequência a mesma conta será considerada na geração do PLANO DE CONTAS CONTÁBEIS registro 0500.


03. ESPECIFICAÇÃO

Parâmetros do ponto de entrada:

NomeTipoDescrição
PARAMIXBArray of Record

Array com dados de processamento

[1] = O registro que está sendo processado no momento Ex: C170,C300,C350,D100,D500 ou D300


O restante das informações são referentes a nota fiscal que está sendo processada no momento, looping na SFT

[2] = FT_FILIAL

[3] = FT_TIPOMOV

[4] = FT_SERIE

[5] = FT_NFISCAL

[6] = FT_CLIEFOR

[7] = FT_LOJA

[8] = FT_ITEM

[9] = FT_PRODUTO


Para o 0300 será retornado na variável PARAMIXB as informações da tabela de Estorno Mensal CIAP - SFA e diferente dos registros anteriores, a variável PARAMIXB terá apenas 5 posições, sendo:

[1] - "0300"

[2] - FA_FILIAL

[3] - FA_CODIGO

[4] - FA_DATA

[5] - FA_TIPO

Com as informações acima, é possível encontrar o bem na tabela SF9 e rastrear a nota com as informações da própria SF9.


Importante

Como este PE permite a alteração do código da conta contábil para os registros de nota e do plano de contas e cadastro de bem, se fez necessário a manipulação da variável PARAMIXB, logo

é IMPRESCINDÍVEL a identificação do registro que está sendo processado no momento dentro do Ponto de Entrada através da primeira posição da variável PARAMIXB.



Retorno:

NomeTipoDescrição
cRetornoCaracter

Código da conta contábil


04. EXEMPLO DE UTILIZAÇÃO

SPDFIS27
#INCLUDE "PROTHEUS.CH"

User Function SPDFIS27()
	Local cConta := ""
	Local cReg := PARAMIXB[1]
	Local cFilial := "" // Filial

    // Para registros de nota
	Local cTpMovto := "" //Entrada ou saída?
	Local cSerie := "" //Série da nota fiscal
	Local cNotaFisc := "" //Código da nota fiscal
	Local cClieFor := "" //Código do Cliente/Fornecedor
	Local cLoja := "" //Código da Loja
	Local cItem := "" //Item da nota
	Local cProduto := "" //Produto

    // Para os registros cadastro de bem e plano de contas
	Local cSFACod := "" // Código do ativo na tabela SFA
	Local dSFAData := "" // Data da movimentação que está sendo processada
	Local cTipoBem := "" // Tipo do bem

	If cReg $ "C170|C300|C350|D100|D500|D300"
        // Neste momento a variável PARAMIXB possui 9 posições, sendo elas informações da tabela SFT
		cFilial := PARAMIXB[2]// Filial
		cTpMovto := PARAMIXB[3]
		cSerie := PARAMIXB[4]
		cNotaFisc := PARAMIXB[5]
		cClieFor := PARAMIXB[6]
		cLoja := PARAMIXB[7]
		cItem := PARAMIXB[8]
		cProduto := PARAMIXB[9]

        //Estou posicionando em uma tabela própria, para retorno do codigo da conta contábil
		cConta := POSICIONE("XXX",1,cFilial+cTpMovto+cSerie+cNotaFisc+cClieFor+cLoja+cItem+cProduto,"XXX_COD_CTA")

	ElseIf cReg == "0300"
		cFilial := PARAMIXB[2]
		cSFACod := PARAMIXB[3]
		dSFAData := PARAMIXB[4]
		cTipoBem := PARAMIXB[5]

        // Estou posicionando na SF9 e retornando um campo customizado, criado manualmente via configurador.
		cConta := POSICIONE("SF9",1,cFilial+ccSFACod,"F9_COD_CTA")
	EndIf

Return cConta


05. INFORMAÇÕES ADICIONAIS

  • Não há.