Versões: | Microsiga Protheus 10 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Nível de Acesso: | Nível 1 (Acesso Clientes) |
Idiomas: | Espanhol , Inglês |
LOCALIZAÇÃO: Rotina MATA330 (recálculo do custo médio).
EM QUE PONTO: Na função A330RecTrf() que faz o tratamento do vetor com os custos apurados (aRet). Essa função tem por objetivo encontrar no vetor aListaTrf a nota fiscal (ou remito) que dá origem a nota de transferência que está sendo processada.
O ponto de entrada será executado somente quando a função A330RecTrf() não encontrar a NF/Remito de origem no vetor aListaTrf.
Essa situação ocorre em ambiente localizado, pois no processo de transferência entre filiais a "saída" dos materiais da filial de origem pode ocorrer em período diferente da "entrada" dos mesmos na filial de destino. Isso acontece pois o processo todo pode levar meses para ser concluído e o encerramento mensal poderá ser executado entre a saída dos materiais da filial origem e chegada dos materiais na filial destino.
Os parâmetros enviados ao ponto de entrada estão no array PARAMIXB, sendo eles:
{aRet, cFilAtu, cFilTrf, cProduto, nRecno, lUsaFifo}, onde:
aRet : (PARAMIXB[1]) Vetor original com os custos apurados
cFilAtu : (PARAMIXB[2]) Filial que esta sendo processada
cFilTrf : (PARAMIXB[3]) Filial de transferencia
cProduto : (PARAMIXB[4]) Código do produto
nRecno : (PARAMIXB[5]) RECNO do alias
lUsaFifo : (PARAMIXB[6]) Indica se esta processando custo FIFO
Dimensoes do vetor aRet (PARAMIXB[1])
aRet { {aCM}, {aFifo}, {aParte} } onde:
aCM = vetor com os custos medios
aFifo = vetor com os custos FIFO (se parâmetro lUsaFifo == .T.)
aParte = vetor com os custos em partes
No momento da execução do ponto de entrada o arquivo de trabalho estará posicionado no alias "SD1".
MATA330.PRX
MA330TRF ( [ @PARAMIXB ] ) --> aRet
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
PARAMIXB | Array of Record | {aRet, cFilAtu, cFilialTrf, cProduto, nRecno, lUsaFifo} | X |
-
aRet(array_of_record)
- aRet { {aCM}, {aFifo}, {aParte} }
User Function MA330TRF()Local aRet := PARAMIXB[1] // Vetor original com os custos apuradosLocal cFilAtu := PARAMIXB[2] // Filial que esta sendo processadaLocal cFilTrf := PARAMIXB[3] // Filial de transferenciaLocal cProduto := PARAMIXB[4] // Código do produtoLocal nRecno := PARAMIXB[5] // RECNO do alias (SD1)Local lUsaFifo := PARAMIXB[6] // Indica se esta processando custo FIFO// -- Dimensoes do vetor aRet (PARAMIXB[1])// -- aRet { {aCM}, {aFifo}, {aParte} } onde:// -- aCM = vetor com os custos medios// -- aFifo = vetor com os custos FIFO (se parâmetro lUsaFifo == .T.)// -- aParte = vetor com os custos em partes// Rotina criada pelo usuario para manipular o vetor contendo os custos// Exemplo: Localizar notas de saída (remito) de transferencias que ocorreram // em periodos já fechadosaRet := RemitoOri(aRet, cFilAtu, cFilTrf, cProduto, nRecno, lUsaFifo)Return (aRet)