01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:Fiscal


02. DESCRIÇÃO

Este ponto de entrada permite alternar a unidade de medida e respetiva quantidade do item no documento.

Por padrão é assumida sempre a primeira unidade de medida e a primeira quantidade (cadastradas na tabela SB1). No entanto, alguns registros do SPED FISCAL permitem a apresentação utilizando uma unidade de medida diferente daquela definida como unidade de estoque. Para utilizar a segunda unidade de medida e a segunda quantidade, é preciso realizar o tratamento utilizando este ponto de entrada.

Os seguintes registros/campos possuem suporte para a utilização do ponto de entrada SPDFIS02:

03. ESPECIFICAÇÃO

Parâmetros do ponto de entrada:

NomeTipoDescrição
PARAMIXBArray of Record

Array com dados de processamento com 3 elementos

[1] = Alias da tabela;

[2] = Tipo Movimento - Que pode ser E de Entrada ou S de Saída;

[3] = Registro em que ocorre a alteração;


É possível fazer um tratamento específico ao posicionar o produto, ou simplesmente retornar a segunda unidade de medida e a segunda quantidade deste documento (D1_SEGUM ou D2_SEGUM). 

Na chamada do SPDFIS02 para alguns registros K200, H010(SPED Fiscal) não ocorrerá tratamento para o Tipo Movimento, pois estes registros não são gerados com base na movimentação das notas do período e sim com base na produção(K200) e no inventário(H010) do período respectivamente. 

Retorno:

NomeTipoDescrição

Array of Record

Retorna Array com conversão da unidade de medida.

Importante:


  • aRet[1] => Unidade de Medida do item do documento
  • aRet[2] => Quantidade do item do documento
  • aRet[3] => Fator de Conversão
  • aRet[4] => Tipo de Conversão M=Multiplicação/D=Divisão
  • aRet[5] => Código de Barras


A terceira posição do array é o Fator de Conversão, essa posição do array é opcional.
A quarta posição do array é o Tipo de Conversão , essa posição do array é opcional.
A quinta posição do array é o Código de Barras, essa posição do array é opcional.


04. EXEMPLO DE UTILIZAÇÃO


#include "rwmake.ch"
#include "Topconn.ch"
#include "protheus.ch"
 
User Function SPDFIS02()

Local aAliasIT  :=  ParamIXB[1]                                                 // Recebe o Alias principal
Local cTipoMov  :=  ParamIXB[2]                                                 // Recebe o tipo de movimento - E = ENTRADA / S = SAIDA, para registros gerados a partir de notas fiscais. Para registros não originados de notas esta posição terá conteúdo Nil.
Local cRegSped  := Iif  (Len(ParamIXB)  >  2,ParamIXB[3],"")                    // Recebe o  nome do registro, quando passado(1105, G140, H010, K200).
Local aRet  :=  Array(4)                                                        // Array para armazenar dados do retorno da função
Local cPrefix  := Iif (ValType(cTipoMov)=='C',Iif (cTipoMov$"E","D1","D2"),"")  // Prefixo da tabela - D1_ / D2_
Local aAreaAnt  :=  GetArea() 

If !Empty(cPrefix)

    aRet[1]  :=  "MM"  
    aRet[2]  :=  0
    aRet[3]  :=  4      //Fator
    aRet[4]  :=  "M"    //Tipo de Conversão

Else
   If cRegSped  ==  "K200"

      If ("SB1")->(dbSeek(xFilial("SB1")+(aAliasIT)->COD_ITEM))

         aRet[1]  :=  ("SB1")->B1_SEGUM  
         aRet[2]  :=  (aAliasIT)->&("QTD")
         aRet[3]  :=  ("SB1")->B1_CONV           //Fator
         aRet[4]  :=  ("SB1")->B1_TIPCONV        //Tipo de Conversão

      Else

         aRet[1]  :=  "MM"  
         aRet[2]  :=  0
         aRet[3]  :=  4     //Fator
         aRet[4]  :=  "M"   //Tipo de Conversão

      Endif

   Endif

Endif
	
If cRegSped == "0220"
   Aadd(aRet,"8888888888888")
EndIf

RestArea(aAreaAnt)

Return aRet 


05. DEMAIS INFORMAÇÕES

Foram disponibilizados exemplos de utilização deste ponto de entrada na pagina de suporte ao cliente em RDMAKES de livros fiscais.