Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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;


Dica
titleObservaçã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). 

Aviso
titleImportante

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 (string)
  • aRet[2] => Quantidade do item do documento (numérico)
  • aRet[3] => Fator de Conversão (numérico)
  • aRet[4] => Tipo de Conversão M=Multiplicação/D=Divisão (string)
  • aRet[5] => Código de Barras (numérico)


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.


Aviso
titleImportante

O retorno em formato array, deve ser realizado conforme o tipo de dado em sua posição.
A personalização dos P.E., devem ser adequadas a regra de negócio de cada cliente, sendo de sua responsabilidade a utilização.

Aviso
titleImportante

Caso o cliente possua o parâmetro MV_CSDXML (vínculo com o XML do fornecedor)ativado (.T.), algumas informações do ponto de entrada não serão considerados, priorizando os dados do XML de entrada.

...

Bloco de código
languagejava
themeMidnight
titleSPED1300
#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")  // Posição 05 código de barras
EndIf

RestArea(aAreaAnt)

Return aRet 

...