01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus® |
---|---|
Segmento: | Serviços |
Módulo: | Fiscal |
02. DESCRIÇÃO
Inclusão do ponto de entrada FSA235UND na rotina FISA235 - DT-e Ressarcimento do ICMS-ST para o Estado do Amazonas.
Esse ponto de entrada tem por finalidade permitir que, para cada documento fiscal processado, seja informada a unidade que constou no documento fiscal e a respectiva quantidade nesta unidade. Por padrão, quantidades e unidades consideradas são as de controle do estoque (primeira unidade de medida da tabela SB1).
O ponto de entrada é acionado durante a geração do arquivo Lista de Pedido do DT-e ressarcimento do ICMS ST do estado do Amazonas. O ponto de entrada é chamado para cada um dos itens do documento fiscal.
03. Especificação
Programa | FISA235.PRW FISA230A.PRW |
---|---|
Sintaxe | FSA235UND- Unidade de medida e quantidade do item informadas no documento fiscal ( [cAlias] ) --> aRet |
Parâmetros do ponto de entrada:
Nome | Tipo | Descrição |
---|---|---|
PARAMIXB[1] | Caracter | Alias posicionado (será o alias da query utilizada no processamento do movimento). |
Campos disponíveis no alias do ponto de entrada:
Nome | Tipo |
---|---|
CD0_DOCENT | Documento de entrada |
CD0_SERENT | Série do documento de entrada |
CD0_FORNE | Código do fornecedor do documento de entrada |
CD0_LOJENT | Loja de entrada |
CD0_COD | Código do produto |
CD0_ITENFE | Código do item do documento de entrada |
Retorno:
O ponto de entrada deverá retornar um array de 4 posições:
Nome | Tipo | Descrição |
---|---|---|
aRet[1] | Caracter | Código do produto da nota do Fornecedor. |
aRet[2] | Caracter | Unidade de medida da nota do Fornecedor. |
aRet[3] | Número | Fator de Conversão da unidade informada no documento fiscal para a unidade de controle do estoque, informada no registro 0200. |
aRet[4] | Caracter | Tipo de Conversão, podendo ser: M (Multiplicação) ou D (Divisão). |
Importante
- O retorno do ponto de entrada deverá obrigatoriamente ser um array de 4 posições, nos tipos especificados acima. Caso essa condição não seja satisfeita, a rotina não levará em consideração seu retorno, utilizando, para o movimento posicionado, as unidades de medida e quantidades padrões do movimento.
- Para movimentos onde a informação de outra unidade não se faça necessária, basta retornar um array vazio (Ex: aRet := {} ).
- Segundo disposições da Portaria SEF N° 378/2018, o fator de conversão informado será sempre multiplicado pela quantidade presente no documento fiscal. Caso o array retornado pelo ponto de entrada, na posição 4, seja preenchido com 'D' (Divisão), o fator informado na posição 3 será convertido automaticamente pela rotina por um fator de multiplicação.
04. EXEMPLO DE UTILIZAÇÃO
O exemplo abaixo considera a utilização da segunda unidade de medida da tabela SB1:
#INCLUDE "PROTHEUS.CH" #INCLUDE "RWMAKE.CH" User Function FSA235UND() Local cAlsMov := PARAMIXB[1] //---Alias posicionado---// Local aRetorno := {} Local aAreaAnt := GetArea() DbSelectArea('SD1') SD1->(DbSetOrder(1)) //---D1_FILIAL+D1_DOC+D1_SERIE+D1_FORNECE+D1_LOJA+D1_COD+D1_ITEM---// If SD1->(DbSeek(xFilial("SD1") + (cAlsMov)->(CD0_DOCENT + CD0_SERENT + CD0_FORNE + CD0_LOJENT + CD0_COD + CD0_ITENFE ))) If !Empty(SD1->D1_QTSEGUM) .And. !Empty(SD1->D1_SEGUM) Aadd(aRetorno, SD1->D1_SEGUM) //--- Código do produto da nota do Fornecedor ---// Aadd(aRetorno, SD1->D1_QTSEGUM) //--- Unidade de medida da nota do Fornecedor ---// Aadd(aRetorno, (1/(cAlsMov)->B1_CONV)) //--- Fator de Conversão para a unidade de medida constante no Registro 0200 ---// Aadd(aRetorno, (cAlsMov)->B1_TIPCONV) //--- Tipo de Conversão: M-Multiplicação / D-Divisão ---// EndIf EndIf RestArea(aAreaAnt) Return aRetorno
05. DEMAIS INFORMAÇÕES
Não há.
06. ASSUNTOS RELACIONADOS
- Não há