01. 
DADOS GERAIS

Linha de Produto:

Segmento:

Módulo:

Fiscal


02. DESCRIÇÃO

Ponto de Entrada SPEDH020 aplicado no SPEDFISCAL para geração do Registro H020 - Informação complementar do Inventário.

Para atender a legislação específica do estado do Rio Grande do Sul - RS (IN 45/98), em casos em que é necessário gerar mais de 1 H020 para o mesmo H010 agrupando as informações de acordo com o Código de Situação Tributária - CST de acordo com o CST constante na movimentação fiscal. Esse Ponto de Entrada também foi adaptado, portanto é possível gerar mais de 1 H020. 

03. ESPECIFICAÇÃO

Parâmetros do ponto de Entrada:

Nome

Tipo

Descrição

PARAMIXBArray of Record

Array com dados de processamento com  elementos

[1] = Código do Produto sendo processado pelo H010;

[2] = Motivo de Inventário do Produto que está sendo processado pelo H005;


Retorno:

Nome

Tipo

Descrição


Array of Record

Retorna um Array com as informações dos campos para compor o registro H020.

Importante:

É necessário que já exista um registro H010.

04. EXEMPLO DE UTILIZAÇÃO

Código de exemplo gerando somente 1 H020 para cada H010.

#include "totvs.ch"

User Function SPEDH020()
Local aRet := {}
Local nPos := 0
Local cProduto := PARAMIXB[1]

dbSelectArea("SB1")
SB1->(dbSetOrder(1))

If 	SB1->(MsSeek( xFilial("SB1") + cProduto))
	aAdd(aRet,{})
	nPos := Len(aRet)
	aAdd(aRet[nPos], "010"	) // CST ICMS
	aAdd(aRet[nPos], 10.00	) // Base de cálculo do ICMS (Unitário)
	aAdd(aRet[nPos],  1.80	) // Valor do ICMS (Unitário)
EndIf

Return aRet


Código de exemplo gerando mais de 1 H020 para cada H010 (Estado do Rio Grande do Sul - RS).


#Include "PROTHEUS.CH"

User Function SPEDH020()
Local aRet 		:= {}
Local nPos		:= 0
Local nI		:= 1
Local cProduto 	:= PARAMIXB[1]
Local cMotInv 	:= PARAMIXB[2]

dbSelectArea("SB1")
SB1->(dbSetOrder(1))

For nI = 1 To 2 // Será enviado 2 H020 para cada H010, mudando o CST do primeiro para 010 e do segundo para 000
	If 	SB1->(MsSeek( xFilial("SB1") + cProduto))
		Aadd(aRet,{})
		nPos := Len(aRet)
		Aadd(aRet[nPos], IIF(nI == 1,"010","000")) 	// CST ICMS
		Aadd(aRet[nPos], 100.00) 					// Base de cálculo do ICMS (Unitário)
		Aadd(aRet[nPos],  18.00)  					// Valor do ICMS (Unitário)			

		If 	cMotInv == "01" // Deve possuir esse código para garantir que não será gerado mais de 1 H020 para o Motivo = 01 - No Final do Período, pois causa problemas no validador da GIA-RS
			Exit 
			Endif
		EndiF
	Next

Return aRet

05. DEMAIS INFORMAÇÕES