Skip to main content

Custeio Automático

O Custeio Automático (antigo CusteioOnline) foi desenvolvido para que o usuário possa configurar a realização automática do Custeio do estoque sem intervenção manual, em períodos previamente determinados, conforme descrito a seguir.

 

CONFIGURAÇÃO

Para configuração e execução do custeio automático serão necessários apenas dois arquivos, sendo eles o "CusteioAuto" e o "ConfigCusteioAuto" (ambos devem estar juntos na mesma pasta). Estes arquivos por padrão estarão sempre disponíveis em \\SS\TRANSFER\SISTEMAS\FERRAMENTAS\Custeio automatico (Novo) e deverão ser salvos na pasta de instalação do sistema (por padrão, em C:\Sistemas\Supersoft).

Não é necessário fazer qualquer configuração de apontamento para o banco de dados, uma vez que a ferramenta utiliza o apontamento nativo do sistema (configurável em qualquer módulo através do menu Utilitários > Ferramentas do Sistema > Configuração do Banco de Dados). Esta configuração fica armazenada no arquivo criptografado ConfigConexãoDB.ini.

O primeiro passo é fazer a configuração do Custeio Automático executando o arquivo "ConfgCusteioAuto":

Inicialização automática após abertura do Custeio: se assinalada, realiza o custeio imediatamente quando executar o arquivo "CusteioAuto".

Executa custeio por: o custeio automático pode ser configurado para execução em um intervalo de tempo definido ou em horários específicos.

Intervalo de tempo: quando assinalado, indicar o tempo (em minutos) para disparo do custeio. Não há intervalo máximo ou mínimo.

Esta opção se torna interessante para os clientes que possuem maior volume de movimentação abrangendo períodos diferentes, e necessitam ter o custo dos produtos em estoque atualizados com maior frequência. 

Horário definido: é possível escolher até 2 (dois) horários para execução do custeio. 

Recomenda-se usar esta opção para os clientes que necessitam ter os custos do estoque atualizados durante o dia, porém não podem paralisar suas operações de faturamento ou produção  - enquanto o custeio é executado, não é possível emitir NF-e ou pedido com baixa do estoque, alteração de status ou encerramento de OP. Nestes casos, o CusteioAutomático deve ser configurado para que execute em horários em que estes processos não estejam em execução pelos usuários, desde que o servidor (ou computador onde o sistema está instalado) permaneça ligado e em operação.

Abaixo, mensagem exibida ao salvar um documento de faturamento ou produção que movimenta estoque, enquanto o custeio está em execução:

IMPORTANTE: O custeio automático é otimizado para que seja disparado o processo somente quando houver necessidade de fazê-lo. Assim, se não houverem registros pendentes de custeio, o processo será abortado e a nva verificação será realizada dentro do tempo programado. Da mesma forma, se já houver uma instância do custeio em execução (seja automático ou manual dentro do módulo CE), o processo será abortado e será realizada nova verificação no próximo horário agendado.

Envia erros de conexão por email: esta configuração é opcional e permite o disparo de mensagens de e-mail para o endereço previamente definido, sempre que houver alguma falha de conexão do CusteioAutomático com a base de dados.

Nos campos Usuário, Senha do e-mail, Servidor SMTP e Porta, devem ser informados os dados do endereço responsável pelo envio das mensagens. *solicitar ao usuário que verifique junto à equipe de TI ou provedor de e-mail as configurações necessárias.

No campo E-mail Destinatário, informar o(s) endereço(s) de e-mail que receberão as mensagens com alerta em caso de falha na conexão. *quando informar mais de um endereço, separa por (;) porto e vírgula.

Após realizar a configuração, clicar em "Salvar". Será apresentada a mensagem

 

EXECUTANDO O CUSTEIO AUTOMÁTICO

 O próximo passo é executar o arquivo "CusteioAuto". Aparecerá a seguinte tela:

Inicializa: dá início ao processo de realização do custeio, conforme configurado através do ConfigCusteioAuto

Parar: interrompe a execução do processo de custeio automático e somente voltará a ser executado se o arquivo CusteioAuto for novamente executado de forma manual.

Ativar Log: quando assinalado, vai gerar o arquivo Custeio_log.txt e gravará nele todos os processos realizados pela ferramenta. Este arquivo ficará na pasta de instalação do sistema, onde os arquivos ConfigCusteioAuto e CusteioAuto foram gravados. Abaixo, exemplo do log registrado:

----------------------LOG SERVIÇO INICIADO----------------------
Data de início: 20/12/2019 16:38:28
Desligamento do Timer: 20/12/2019 16:38:28
Tentativa de conexão com a base de dados 20/12/2019 16:38:28
Iniciando a conexão com a base de dados 20/12/2019 16:38:28
Conexao efetuada com sucesso 20/12/2019 16:38:28
Configurado o tempo no timer: 3767557120
Inicio do processamento: 20/12/2019 16:38:28
Ação RealizaCusteioClick 20/12/2019 16:38:28
Ação GetEmpresas: 20/12/2019 16:38:28
Ação GetEmpresas OK 20/12/2019 16:38:28
Ação Existe Registro 20/12/2019 16:38:28
Ação Existe Registro ok 20/12/2019 16:38:28
Ação GetDateCusteio 20/12/2019 16:38:28
GetMinDate: 30/11/2019
DataCusteioInicial 30/11/2019
MesInicial: 11
AnoInicial: 2019
DataCusteioFinal 30/11/2019
MesFinal: 11
AnoFinal: 2019
Ação GetDateCusteio concluida. 20/12/2019 16:38:29
Tipo de Custeio: M
Data de Custeio Inicial: 30/11/2019
Ação InsereCusteio 20/12/2019 16:38:29
Nro Custeio: 739
Data do Custeio antes: 20/12/2019 16:38:29
Data do Custeio depois: 20.12.2019 16:38:29
Ação GetVariaveisPadrao 20/12/2019 16:38:29
Ação SetDeleteMOandUp..... 20/12/2019 16:38:29
Ação GetMovicesACustear 20/12/2019 16:38:29
Ação GeraCusteio 20/12/2019 16:38:29
Ação AtualizaCusteio 20/12/2019 16:48:01
Ação AtualizaDataDelecaoAntiga 20/12/2019 16:48:01
Ação RealizaCusteioClick concluida 20/12/2019 16:48:09
Ativamento do Timer: 20/12/2019 16:48:09
Tempo de espera (em minutos): 16,6666666666667
Fim do Processo: 20/12/2019 16:48:09

Abrir Log: através deste botão, será aberto o arquivo de log, conforme o exemplo acima.

Também é possível verificar a realização do custeio automático através do módulo CE, menu Movimentação > Custeio de Produtos > botão Visualiza histórico dos custeios

O usuário AutCusteio representa a realização do custeio automático, com suas respectivas datas e horários de execução, e se foi concluído ou não:

 

INFORMAÇÕES IMPORTANTES

1. O custeio só será realizado quando o arquivo CusteioAuto estiver em execução: verifique o ícone abaixo na SysTray do Windows. Quando o custeio estiver sendo realizado, o descritivo do ícone será alterado para "Supersoft – Custeio Automático (Em Execução).

Também é possível verificar a execução da ferramente através do Gerenciador de Tarefas do Windows:

 

Se o servidor ou o computador onde o sistema está instalado for reiniciado, o arquivo CusteioAuto precisará ser iniciado de forma manual pelo usuário, caso contrário o custeio automático não será executado. É altamente recomendável configurar a inicialização automática, criando um atalho do arquivo CusteioAuto no caminho %AppData%\Microsoft\Windows\Start Menu\Programs\Startup acessível através do Windows Explorer.

 

2. O custeio (automático ou manual) verifica se na tabela MOVICE existem registrados cujo campo CUSTEADO tenha o valor igual a "N" ou "NULL" Portanto, o custeio será solicitado a partir da data do primeiro registro na tabela MOVICE nestas condições (até a versão 7.665 do módulo CE não eram verificados os registros com valor igual a NULL).

Para empresas que controlam fechamento de período, deve-se atentar à essa situação, pois caso tenham movimentos ainda não custeados em períodos já fechados, certamente o custo dos produtos será realizado após o processo.
Para evitar que isso aconteça.  executar a query abaixo para alterar o campo "CUSTEADO" de todos os produtos que estão como "NULL" para "N":

execute block
as
begin
alter trigger movice_at inactive;

/* Extrair o Alter trigger inactive*/
update movice set Custeado = 'S'
where custeado is null
and exists (select ContrPer.Abrev from ContrPer
where ContrPer.Abrev = Movice.Abrev
and Sistema = 'CE' and Tipo = 'F'
and cast(ContrPer.mesinvent as Integer) = Extract(month from movice.Data)
and cast(ContrPer.anoinvent as Integer) = Extract(year from movice.Data)
);
update movice set Custeado = 'N'
where custeado is null
and not exists (select ContrPer.Abrev from ContrPer
where ContrPer.Abrev = Movice.Abrev
and Sistema = 'CE' and Tipo = 'F'
and cast(ContrPer.mesinvent as Integer) = Extract(month from movice.Data)
and cast(ContrPer.anoinvent as Integer) = Extract(year from movice.Data)
);