Árvore de páginas

Ponto-de-Entrada: MTA190D1 - Manipulação do valor do custo do Documento de Entrada


Versões:Microsiga Protheus 10, Microsiga Protheus 11, Microsiga Protheus 12
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível às Bases de Dados:Todos
Idiomas:Espanhol , Inglês


Descrição: Manipula valores de custo da NF de entrada (SD1).

Localização: Function Recalc() - Responsável por recalcular o custo de entrada.

Em que ponto: O ponto é acionado antes de regravar o custo no arquivo de itens de NF de entrada (SD1).


Programa Fonte:MATA190.PRX

Sintaxe: MTA190D1() - Manipulação do valor do custo da NF de entrada ( < PARAMIXB> ) --> aRet

Parâmetros:



Nome

Tipo

Descrição

Default

Obrigatório

Referência

PARAMIXB[1]

Vetor

O programa recebe como parâmetro um array contendo os custos que serão gravados pelo sistema no arquivo SD1.




X




PARAMIXB[2]

Vetor

O programa recebe como parâmetro um array contendo os custos, número da nota, série e número do item.










RetornoaRet


Exemplo
#INCLUDE "PROTHEUS.CH"

User Function MTA190D1()  

Local aCustEnt  := PARAMIXB[1]  
Local aItem     := PARAMIXB[2]
local nCusto1 
local ncusto2
local ncusto3
local ncusto4
local ncusto5
local cDoc
local cSerie
local nitem
local aCusRet

aCusRet := aclone(aCustEnt)
//ordenação do array n = D1_FILIAL+D1_DOC+D1_SERIE+D1_FORNECE+D1_LOJA+D1_COD+D1_ITEM
nCusto1 := aCustEnt [n,1]
nCusto2 := aCustEnt [n,2]
nCusto3 := aCustEnt [n,3]
nCusto4 := aCustEnt [n,4]
nCusto5 := aCustEnt [n,5]

// aItem mesma ordenação n = D1_FILIAL+D1_DOC+D1_SERIE+D1_FORNECE+D1_LOJA+D1_COD+D1_ITEM porem com referencia da nota e item
nCusto1 := aItem [n,1]
nCusto2 := aItem [n,2]
nCusto3 := aItem [n,3]
nCusto4 := aItem [n,4]
nCusto5 := aItem [n,5]
cDoc    := aItem [n,6,1]
cSerie  := aItem [n,6,2]
nItem   := aItem [n,6,3]

// IMPORTANTE não mudar a ordenação do array de saida  
aCusret [n,1] := aCustEnt [n,1] //ou aItem [n,1]
aCusret [n,2] := aCustEnt [n,2] //ou aItem [n,2]
aCusret [n,3] := aCustEnt [n,3] //ou aItem [n,3]
aCusret [n,4] := aCustEnt [n,4] //ou aItem [n,1]
aCusret [n,5] := aCustEnt [n,5] //ou aItem [n,1]


return (aCusret) 


Observações: Cada elemento do PARAMIXB[1] se refere ao item na SD1, a ordenação do index é D1_FILIAL+D1_DOC+D1_SERIE+D1_FORNECE+D1_LOJA+D1_COD+D1_ITEM. O ponto de entrada deve retornar o array com o custo nas 5 moedas. No PARAMIXB[2], segue o mesmo index do PARAMIXB[1], porém, contém os valores D1_DOC, D1_SERIE e D1_ITEM.