Histórico da Página
01. DADOS GERAIS
Produto: |
|
---|
...
Linha de Produto: |
---|
| |||||
Segmento: |
| |||||
Módulo: |
|
Rotina:
Rotina | Nome Técnico |
Recálculo do Custo Médio | MATA330.PRX
|
País(es):
Brasil
Banco(s) de Dados:
Todos
Sistema(s) operacional(is):
Todos
Versões/Release:
Ponto de Entrada
...
Descrição:
...
O Ponto de Entrada MA330C3 é utilizado após a gravação dos movimentos (SD3) e a devida atualização do saldo (SB2).
...
Eventos:
...
O Ponto de Entrada MA330C3 está localizado no início da função que é utilizada para recalcular os custos dos movimentos SD1,SD2 e SD3.
...
Programa Fonte:
...
MATA330.PRW
| ||||||||||
Função: | RECALCULO DO CUSTO MÉDIO (MATA330) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
País: | Brasil |
02. DESCRIÇÃO
LOCALIZAÇÃO: Function A330Recalc - Função utilizada para recalcular o custo médio dos movimentos.
EM QUE PONTO: O Ponto de entrada MA330C3 tem a finalidade de alterar o custo médio final das movimentações nas cinco moedas. É utilizado após a gravação dos movimentos SD3 (Movimentações Internas) e a devida atualização do saldo SB2 (Saldos Físico e Financeiro).
OBSERVAÇÃO: Os tipos DE4 (Devolução de transferência entre locais) e DE7 (Devolução de transferência de um para "N") são desconsiderados na execução do ponto de entrada.
Atenção: O ponto de entrada é executado após atualização movimentos internos (SD3) e antes da atualização Saldos Físico e Financeiro (SB2) . Ao executar a rotina recálculo do custo médio (MATA330) com o ponto de entrada, o retorno do array será adicionado no campo B2_VFIM1, se o movimento for uma DE e subtraído do B2_VFIM1 se o movimento for uma RE. Os campos variam no array de acordo com a moeda, sendo a moeda 1 padrão e os demais campos de acordo com as moedas configuradas no sistema. O tratamento de moedas deve ser considerados na lógica de preenchimento do array. O valor B2_VFIM1,B2_VFIM2,B2_VFIM3,B2_VFIM4 e B2_VFIM5 será utilizado para o processo de fechamento do estoque, este valor será transferido para o valor no início do próximo período, portanto o preenchimento da moeda no array deve ser compatível com o que é utilizado no sistema. Caso não utilize outras moedas e informar o valor no array estes serão atualizados nos campos correspondentes na tabela SB2. |
---|
03. DEMAIS INFORMAÇÕES
PARÂMETRO
...
Nome | Tipo | Descrição | Obrigatório |
---|
PARAMIXB[1]
Array
Retorno | ||
---|---|---|
PARAMIXB | Vetor | Vetor contendo |
o custo médio do produto para as 5 moedas. | Sim |
Vetor |
RETORNO
Nome | Tipo | Retorno | ||
---|---|---|---|---|
aRet | DescriçãoVetor | PARAMIXBaRet[1] | Array | Array contento o custo médio do produto. |
Exemplo:
#Include 'Protheus.ch'
User Function MA330C3()
Local aCusto := PARAMIXB[1]
Local aRet := aCusto
//Validações do Usuário
Return aRet
= B2_VFIM1 aRet[2] = B2_VFIM2 aRet[3] = B2_VFIM3 aRet[4] = B2_VFIM4 aRet[5] = B2_VFIM5 |
EXEMPLO DE UTILIZAÇÃO ADVPL
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#Include 'totvs.ch'
User Function MA330C3()
Local aCusto := PARAMIXB
Local aRet := aCusto
Local cMoeda := SuperGetMv('MV_MOEDACM',.F.,"2345")
// Validações do Usuário
If SD3->D3_COD = "000001"
If Alltrim(SD3->D3_CF) == "RE0" .Or. Alltrim(SD3->D3_CF) == "DE0"
aRet[1] := 100 // Custo Moeda 1 (B2_VFIM1)
If "2" $ cMoeda
aRet[2] := 0 // Custo Moeda 2 (B2_VFIM2)
EndIf
If "3" $ cMoeda
aRet[3] := 0 // Custo Moeda 3 (B2_VFIM3)
EndIf
If "4" $ cMoeda
aRet[4] := 0 // Custo Moeda 4 (B2_VFIM4)
EndIf
If "5" $ cMoeda
aRet[5] := 0 // Custo Moeda 5 (B2_VFIM5)
EndIf
EndIf
EndIf
Return aRet |
Exemplo de uma requisição (RE) com o uso do ponto de entrada na moeda 1.
Esse cenário vai ser gerado uma movimentação interna(MATA241) RE0, com o tipo de movimentação que controla estoque.
Passo 1: Gerar saldo inicial para o produto com quantidade inicial mês 100.000,00 e saldo inicial mês de 35.000,00.
Saldo Iniciais(MATA220).
Produto | Armazém | Qtd.Inic.Mes | Sld.Ini.Mes |
---|---|---|---|
000001 | 01 | 100.000,00 | 35.000,00 |
Passo 2: Gerar um movimento interno, com tipo de movimentação (TM), que controla estoque e com quantidade 1.
Movimentação Interna(MATA241).
TM | Produto | Quantidade |
---|---|---|
501 | 000001 | 1 |
Como vai ficar os campos da tabela de Saldos Físicos e Financeiro (SB2), após a movimentação interna.
Vlr.Final (B2_VFIM1) | Sld.Atu. (B2_VATU1) | C Unitario (B2_CM1) |
---|---|---|
0 | 34.999,65 | 0,35 |
Passo 3: Rodar a rotina acompanha custo (MATA038).
Será realizado o seguinte cálculo.
O ponto de entrada vai atuar nesse momento do cálculo, subtraindo o Sld.Ini.Mes de valor 35.000,00 pelo valor 100,00 informado no aRet[1] do ponto de entrada.
Cálculo realizado SB2 | Resultado | Campos a ser gravados |
---|---|---|
Sld.Ini.Mes(35.000,00) - Valor incluído no ponto de entrada aRet(100) | 34.900,00 | Vlr.Final (B2_VFIM1) |
No final do acompanha custo (MATA038), as tabelas Saldos Físico e Financeiro (SB2) apresentará o seguinte resultado.
Produto (B2_COD) | Vlr.Final (B2_VFIM1) | Sld.Atu. (B2_VATU1) | C Unitario (B2_CM1) |
---|---|---|---|
000001 | 34.900,00 | 34.999,65 | 0,35 |
04. ASSUNTOS RELACIONADOS
- Não se aplica
Templatedocumentos |
---|