Histórico da Página
01. DADOS GERAIS
Produto: |
| |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
| |||||||||||||
Segmento: |
| |||||||||||||
Módulo: |
| |||||||||||||
Função: | RECALCULO DO CUSTO MÉDIO (MATA330) | |||||||||||||
País: | Brasil |
...
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 o recalculo a rotina recálculo do custo médio (MATA330) com o ponto de entrada, o retorno do array será adcionado adicionado no campo B2_VFIM1, se o movimento for uma DE e subtraido 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 logica lógica de preenchimento do array. O valor B2_VFIM1,2,3,4 B2_VFIM2,B2_VFIM3,B2_VFIM4 e B2_VFIM5 será utilizado para o processo de fechamento do estoque e , este valor será transferido para o valor no inicio início do proximo periodopróximo período, portanto o preenchimento da moeda no array deve ser compativel 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. |
---|
...
Nome | Tipo | Descrição | Obrigatório | Retorno |
---|---|---|---|---|
PARAMIXB | Vetor | Vetor contendo o custo médio do produto para as 5 moedas. | Sim | Vetor |
RETORNO
Nome | Tipo | Retorno |
---|---|---|
aRet | Vetor | aRet[1] = 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
...