| Linha de Produto: | |
|---|---|
| Segmento: | |
| Módulo: | Fiscal |
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. |
Parâmetros do ponto de Entrada:
Nome | Tipo | Descrição |
|---|---|---|
| PARAMIXB | Array 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. |
#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
|