Árvore de páginas

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

SintaxeFSA235UND- Unidade de medida e quantidade do item informadas no documento fiscal ( [cAlias] ) --> aRet

Parâmetros do ponto de entrada:

NomeTipoDescriçã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:

NomeTipo

CD0_DOCENT

Documento de entrada
CD0_SERENTSérie do documento de entrada
CD0_FORNECódigo do fornecedor do documento de entrada
CD0_LOJENTLoja de entrada
CD0_CODCódigo do produto
CD0_ITENFECódigo do item do documento de entrada

Retorno:

O ponto de entrada deverá retornar um array de 4 posições:

NomeTipoDescrição
aRet[1]CaracterCódigo do produto da nota do Fornecedor.
aRet[2]CaracterUnidade de medida da nota do Fornecedor.
aRet[3]NúmeroFator de Conversão da unidade informada no documento fiscal para a unidade de controle do estoque, informada no registro 0200.
aRet[4]CaracterTipo de Conversão, podendo ser: (Multiplicação) ou (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:


FSA235UND
#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á