Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
MATA330 - Custo Contábil

01. DADOS GERAIS


Linha de Produto:
Protheus
Microsiga Protheus®
Segmento:
Manufatura
Backoffice
Módulo:
SIGAPCP
SIGAEST -
Planejamento
Estoque e
Controle da Produção

Parâmetro(s):

NomeTipoDescriçãoDefaultObrigatórioReferênciaPARAMIXB[1]LógicoCaso a rotina seja rodada em batch(.T.), senão (.F.)XPARAMIXB[2]VetorLista com as filiais a serem consideradas (Batch)XPARAMIXB[3]LógicoIdentifica se usa custo em partes(.T.) ou não(.F.).PARAMIXB[4]array_of_recordArray contendo parametros de execução da rotinaIdiomas:Espanhol, Inglês

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Descrição:
Custos
Função:MATA330 - Custo Médio


02. SITUAÇÃO/REQUISITO

Por meio desta rotina, o Sistema calcula o custo médio ou contábil de forma on-line a cada valorização dos estoques dos produtos com base nas novas entradas de matérias-primas somadas aos saldos existentes.

InformaçõestitleImportante:

Essa rotina pode ser executada com o Sistema em uso por todos os usuários. Nesse caso, as movimentações que estão acontecendo simultaneamente ao cálculo podem influir no resultado. Para que a rotina seja executada dessa forma, o parâmetro MV_CUSTEXC deve estar com o conteúdo igual a "N".
Outra forma de execução (mais segura) é com o Sistema em modo exclusivo, sem outros usuários utilizando os arquivos necessários ao cálculo. Para que a rotina seja executada dessa forma, o parâmetro MV_CUSTEXC deve estar com o conteúdo igual a "S".
Se o usuário quiser fazer os lançamentos automáticos somente no final do mês/período, deve definir o parâmetro MV_CUSMED com "M". Consulte o manual do módulo Configurador para mais detalhes, assim, o custo médio pode ser refeito através da rotina "Recálculo do Custo Médio" de três formas diferentes:

Sequencial: na ordem em que os movimentos aconteceram.
Diária: pelos movimentos de cada dia. Contempla todos os dias do período selecionado pelo usuário, sendo o início do período o conteúdo do parâmetro MV_ULMES+1 e o conteúdo da pergunta “Data inicial”.
Mensal: pelos movimentos do mês/período. Contempla todos os dias do período selecionado pelo usuário, sendo o início do período o conteúdo do parâmetro MV_ULMES+1 e o conteúdo da pergunta “Data inicial”.

No reprocessamento do custo médio são eliminados todos os lançamentos contábeis já realizados e gerados novamente.
No custo diário/mensal, o Sistema considera primeiro as entradas (compras) e depois as saídas, do período. Vale ressaltar que os movimentos internos respeitam seus níveis e processo e, por esta razão, essa regra não se aplica a esses movimentos.

03.

 SOLUÇÃO

Para os cenários descritos é possível utilizar o parâmetro "MV_PERDINF" que foi implementado para atender aos casos de perda nos apontamentos de produção. Seu objetivo é identificar qual o conceito deve ser aplicado ao processo de apontamento de produção, quando for informada a quantidade de perda.

#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"


User Function JOBM330()
Local lCPParte := .F. //-- Define que não será processado o custo em partes
Local lBat := .T. //-- Define que a rotina será executada em Batch
Local aListaFil := {} //-- Carrega Lista com as Filiais a serem processadas
Local cCodFil := 'D MG 01' //-- Código da Filial a ser processada
Local cNomFil := 'Filial BELO HOR' //-- Nome da Filial a ser processada
Local cCGC := '01' //-- CGC da filial a ser processada
Local aParAuto := {} //-- Carrega a lista com os 21 parâmetros

ConOut(Repl("-",80))
ConOut(PadC("Rotina Recalculo Custo Medio",80))
ConOut(PadC("Conectando Ambiente.....",80))

PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" TABLES "AF9","SB1","SB2","SB3","SB8","SB9","SBD","SBF","SBJ","SBK","SC2","SC5","SC6","SD1","SD2","SD3","SD4","SD5","SD8","SDB","SDC","SF1","SF2","SF4","SF5","SG1

Exemplo:

#include "rwmake.ch"
#include "TbiConn.ch"
User Function jobm330()
Local PARAMIXB1 :=  .T.     // - Caso a rotina seja rodada em batch(.T.), senão (.F.)   
Local PARAMIXB2 :=  {"01"}  // - Lista com as filiais a serem consideradas (Batch)
Local PARAMIXB3 :=  .T.     // - Se considera o custo em partes do processamento
Local PARAMIXB4 :=  {} // - Parametros para execução da rotina
Local aEmp  :=  {"99","01"}
PREPARE ENVIRONMENT EMPRESA aemp[1] ;FILIAL aemp[2] USER 'Administrador' PASSWORD ' ' ;
TABLES  "AF9","SB2","SB9","SBD","SC2","SD1","SD3","SD8","SF4","SF5","SI1","SI2","SI3","SI5";,"SI6","SI7","SM2" ;
MODULO "EST"
PARAMIXB4 := {      dDataBase ,;
    2,;
    2,;
    1,;
    0,;
    2,;
    "               " ,;
    "               " ,;
    1,;
    3,;
    1,;
    3,;
    2,;
    2,;
    1,;
    1,;
    1,;
    1,;
    2,;
    2,;
    2} //parâmetros SX1 definidos pelo usuário
MSExecAuto({|x,y,z,w| mata330(x,y,z,w)},PARAMIXB1,PARAMIXB2,PARAMIXB3,PARAMIXB4)RESET ENVIRONMENT
Return Nil

Sintaxe:

MATA330 - Custo Contábil ( PARAMIXB[1]PARAMIXB[2] [ PARAMIXB[3] ] [ PARAMIXB[4] ] ) --> Nil

Programa Fonte:MATA330.PRXRetorno:

Nil (nulo)

   Nil

Observações:

Esta função pode ser executada através de uma rotina automática.

No exemplo abaixo, existe a preparação do ambiente para rodar esta rotina,
que é feita através do comando Prepare Environment.
// aemp[1] = Empresa (Caracter)
// aemp[2] = Filial (Caracter)
// Administrador = Através de qual usuário irá executar a rotina. (Caracter)
// senha = Senha do usuário (Caracter)
PREPARE ENVIRONMENT EMPRESA aemp[1] ;
FILIAL aemp[2] ;
USER 'Administrador' ;
PASSWORD 'senha' ;
TABLES "AF9","SB2","SB9","SBD","SC2","SD1","SD3","SD8","SF4", ;
"SF5

","SI1","SI2","SI3","SI5","SI6","SI7","SM2

" ;
MODULO "EST"

","ZAX","SAH","SM0","STL"

ConOut(PadC("Ambiente Conectado com Sucesso...",80))
ConOut(Repl("-",80))

Conout("Início da execução do JOBM330")

//-- Adiciona filial a ser processada
dbSelectArea("SM0")
dbSeek(cEmpAnt)

Do While ! Eof() .And. SM0->M0_CODIGO == cEmpAnt

cCodFil := SM0->M0_CODFIL
cNomFil := SM0->M0_FILIAL
cCGC := SM0->M0_CGC
//-- Somente adiciona a Filial 01
If cCodFil == "01"

Conout("COMECOU A ADD FILIAL NA LISTA DE FILIAL")
//-- Adiciona a filial na lista de filiais a serem processadas
Aadd(aListaFil,{.T.,cCodFil,cNomFil,cCGC})

EndIf
dbSkip()

EndDo

//-- Executa a rotina de recálculo do custo médio
MATA330(lBat,aListaFil,lCPParte, aParAuto)
ConOut("Término da execução do JOBM330")

Return

04. DEMAIS INFORMAÇÕES

  • Parâmetros:

    aParAuto :
    MV_PAR01 = Data Limite Final
    MV_PAR02 = Mostra lanctos. Contábeis
    MV_PAR03 = Aglutina Lanctos Contábeis
    MV_PAR04 = Atualizar Arq. de Movimentos
    MV_PAR05 = % de aumento da MOD
    MV_PAR06 = Centro de Custo
    MV_PAR07 = Conta Contábil a inibir de
    MV_PAR08 = Conta Contábil a inibir até
    MV_PAR09 = Apagar estornos
    MV_PAR010 = Gerar Lancto. Contábil
    MV_PAR011 = Gerar estrutura pela Moviment
    MV_PAR012 = Contabilização On-Line Por
    MV_PAR013 = Calcula mão-de-Obra
    MV_PAR014 = Método de apropriação
    MV_PAR015 = Recalcula Nível de Estrut
    MV_PAR016 = Mostra sequência de Cálculo
    MV_PAR017 = Seq Processamento FIFO
    MV_PAR018 = Mov Internos Valorizados
    MV_PAR019 = Recálculo Custo transportes
    MV_PAR020 = Cálculo de custos por
    MV_PAR021 = Calcular Custo em Partes

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®Segmento:BackofficeMódulo:SIGAEST - Estoque e CustosFunção:MATA330 - Custo Médio

02. DESCRIÇÃO

Por meio desta rotina, o Sistema calcula o custo médio ou contábil de forma on-line a cada valorização dos estoques dos produtos com base nas novas entradas de matérias-primas somadas aos saldos existentes.

Essa rotina pode ser executada com o Sistema em uso por todos os usuários. Nesse caso, as movimentações que estão acontecendo simultaneamente ao cálculo podem influir no resultado. Para que a rotina seja executada dessa forma, o parâmetro MV_CUSTEXC deve estar com o conteúdo igual a "N".
Outra forma de execução (mais segura) é com o Sistema em modo exclusivo, sem outros usuários utilizando os arquivos necessários ao cálculo. Para que a rotina seja executada dessa forma, o parâmetro MV_CUSTEXC deve estar com o conteúdo igual a "S".
Se o usuário quiser fazer os lançamentos automáticos somente no final do mês/período, deve definir o parâmetro MV_CUSMED com "M". Consulte o manual do módulo Configurador para mais detalhes, assim, o custo médio pode ser refeito através da rotina "Recálculo do Custo Médio" de três formas diferentes:

Sequencial: na ordem em que os movimentos aconteceram.
Diária: pelos movimentos de cada dia. Contempla todos os dias do período selecionado pelo usuário, sendo o início do período o conteúdo do parâmetro MV_ULMES+1 e o conteúdo da pergunta “Data inicial”.
Mensal: pelos movimentos do mês/período. Contempla todos os dias do período selecionado pelo usuário, sendo o início do período o conteúdo do parâmetro MV_ULMES+1 e o conteúdo da pergunta “Data inicial”.

No reprocessamento do custo médio são eliminados todos os lançamentos contábeis já realizados e gerados novamente.
No custo diário/mensal, o Sistema considera primeiro as entradas (compras) e depois as saídas, do período. Vale ressaltar que os movimentos internos respeitam seus níveis e processo e, por esta razão, essa regra não se aplica a esses movimentos.

03. SOLUÇÃO

Para os cenários descritos é possível utilizar o parâmetro "MV_PERDINF" que foi implementado para atender aos casos de perda nos apontamentos de produção. Seu objetivo é identificar qual o conceito deve ser aplicado ao processo de apontamento de produção, quando for informada a quantidade de perda.

MV_PERDINF = .F.
O sistema considera que a quantidade de perda, informada nos apontamentos de produção, é apenas “informativa”. Neste caso, a baixa de empenhos é realizada proporcionalmente à quantidade
produzida, desconsiderando a quantidade perdida. Desta forma o custo será proporcional ao que foi produzido.

MV_PERDINF = .T.
O sistema considera que a quantidade de perda informada nos apontamentos de produção é considerada na composição do saldo da ordem de produção. Neste caso a baixa de empenhos é
realizada proporcionalmente à quantidade produzida mais a quantidade de perda informada. Desta forma o custo será composto pelo total, pois neste caso a perda também é considerada no apontamento da OP.

Exemplo:

Custo Unitário do produto MP: R$ 1,00

Image Removed

Estrutura do Produto:

Image Removed

Ordem de Produção solicitando a quantidade de 3 PA's:

Image Removed

MV_PERDINF = .F.

Quantidade

Produzida

Quantidade

Perda

Status da

Ordem de Produção

Quantidade

Requisitada de MP

Custo da

Ordem de Produção

2

1

Encerrada

6

R$6,00

MV_PERDINF = .T.

Quantidade

Produzida

Quantidade

Perda

Status da

Ordem de Produção

Quantidade

Requisitada de MP

Custo da

Ordem de Produção

2

1

Encerrada

9

R$9,00

Uma outra saída seria fazer a devolução das materias primas referente a produção perdida (vinculando a OP) e depois baixar manualmente as materias primas (sem vincular a OP).

04. DEMAIS INFORMAÇÕES

05. ASSUNTOS RELACIONADOS

  • Não há.


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>