Análise
| Análise | |
| Projeto 1661 | |
| Data da Análise: 22/04/2014 |
Projeto
Requisito
O cliente em janeiro de 2013 passou a ser substituto ganhando como crédito os valores de ICMS e ST de todos os produtos substituídos do estoque. Só que este valor não foi lançado no custo do estoque e o cliente precisa que ele seja abatido do custo destes produtos no inventário.
Para visualizar o requisito na íntegra acesse o sistema de projetos.
Detalhamento
Este projeto consiste em permitir que sejam realizados ajustes no custo médio dos produtos a partir de informações importadas de uma planilha passada pelo cliente para uma nova tabela de Ajustes de Custo Médio, que guardará qual o valor a ser abatido/acrescido do valor do estoque de determinado produto em determinada data.
Para isto precisaremos criar uma nova tabela de ajustes de custos e tratar a mesma nos procedimentos de cálculo de custo médio e nas visualizações de custo médio no sistema. Após isto importaremos os dados da planilha para esta nova tabela e reprocessaremos o custo médio destes produtos.
Serão necessárias as seguintes alterações:
- Estrutura Banco de Dados: Criação da tabela para ajustes de custo
- Alteração Cálculo Custo
- Alteração views Custo Médio (TV_CUSMED e TV_CUSMEDGRU)
- Importação da Planilha e recalculo
Escopo
A nova tabela não contará com ajustes de quantidade de estoque, apenas no valor.
Cenário
Alteração solicitada pelo cliente Papel & Cia, mas poderá ser utilizada em todos os clientes caso necessário.
Nova tabela de Ajustes de Custo Médio
Especificação para tarefa(s): 93048
Definição das colunas da nova tabela de Ajustes no Custo Médio [TT_ACM].
Os dados inseridos nesta tabela serão utilizados no cálculo e visualização do custo médio dos produtos.
Ela será populada através da importação de uma planilha passada pelo cliente.
TT_ACM
| Coluna | Precisão | Null | Default | Descrição |
|---|---|---|---|---|
| CODFIL | CHAR(3) | NOT NULL | -X- | Código da Filial |
| SEQUEN | CHAR(10) | NOT NULL | -X- | Sequenciador |
| SITMOV | CHAR(1) | NOT NULL | N | Situação |
| FILUSU | CHAR(3) | NOT NULL | -X- | Filial do Usuário |
| CODUSU | CHAR(3) | NOT NULL | -X- | Código do Usuário |
| FILMAT | CHAR(3) | NOT NULL | -X- | Código da Filial do Produto (Filial do Produto) |
| CODMAT | CHAR(5) | NOT NULL | -X- | Código do Produto |
| CODCOR | NUMERIC(5,0) | NOT NULL | -X- | Código da Divisão |
| CODTAM | NUMERIC(5,0 | NOT NULL | -X- | Código da Subdivisão |
| DATINC | DATE | NOT NULL | -X- | Data da Inclusão |
| ATU_EM | DATE | NOT NULL | -X- | Data da Última Atualização (Data da Atualização) |
| DATAJU | DATE | NOT NULL | -X- | Data do Ajuste |
| VLRAJU | NUMERIC(16,4) | NOT NULL | 0 | Valor do Ajuste |
| DOCUME | CHAR(17) | NULL | -X- | Documento |
| ORD_CM | NUMERIC(10,0) | NULL | -X- | Ordem Custo Médio |
| TOT_CM | NUMERIC(16,4) | NULL | -X- | Valor Total CM no momento do lançamento (Valor Total CM) |
| TOTCMG | NUMERIC(16,4) | NULL | -X- | Valor Total CM gerencial no momento do lançamento (Valor Total CM ger.) |
| SAL_CM | NUMERIC(16,4) | NULL | -X- | Saldo CM no momento do lançamento (Saldo CM) |
| OBSERV | VARCHAR(4000) | NULL | -X- | Observação |
Domínios:
| Coluna | Valor | Descrição |
|---|---|---|
| SITMOV | N | Normal |
| SITMOV | C | Cancelado |
Check constraints:
- FK relacionando CODFIL com PK da TD_FIL
- FK relacionando FILMAT,CODMAT,CODCOR e CODTAM com PK da TT_GRA
- FK relacionando FILUSU e CODUSU com PK da TT_USU
- CK para campo SITMOV, permitindo apenas "N" ou "C"
Tratamentos especiais para trigger:
- Popular FILUSU e CODUSU utilizando o "QuemLogou" (verificar outras triggers para exemplo)
Alteração no Cálculo do Custo Médio
Especificação para tarefa(s): 93049
Existe uma função do sistema responsável por calcular o custo médio de um único produto ou de uma filial inteira. Será necessário alterar esta função para que considere os dados inseridos na nova tabela de Ajustes de Custo Médio [TT_ACM].
Especificação Técnica
Tratar função CalculaCustoMedio para que considere os valores de ajustes inseridos na nova tabela TT_ACM.
1-) Tratar cursor "Lancamento", incluindo novo UNION ALL para tabela de ajustes (TT_ACM).
- Quantidade é zerada
- Usar novo TIPMOV ("A" - Ajuste)
- Usar ORDEM_LAN com valor 2. Esta ordem é utilizada para que, dentro de um mesmo dia, se considere primeiramente as compras, depois das entradas/ saídas de transferência, depois as vendas, e assim por diante.
- Acrescentar "um" nas ordens posteriores. Ex: onde ORDEM_LAN for 3, colocar 4.
- Alterar tratamento do vORDEMLAN = 2 para vORDEMLAN = 3
2-) Calcular valor do estoque para o novo TIPMOV = 'A' e atualizar colunas ORD_CM, TOT_CM, TOTCMG e SAL_CM da TT_ACM. A quantidade em estoque do custo médio não sofrerá alterações, apenas o valor. Ao final, verificar se TR_MOV e TT_SAL são atualizadas corretamente.
- Realizar o tratamento de forma semelhante ao que é feito para cada tipo de movimentação (Vendas, Compras, Lançamento Avulso). Este tratamento é realizado dentro do loop do cursor de lançamentos.
- Tratar para receber valores de ajuste negativos e positivos.
Alteração de views Custo Médio
Especificação para tarefa(s): 93050
Backoffice - Principal >>> Produtos >>> Histórico >>> aba Custo Médio
Existem duas views para visualização do histórico do Custo Médio do produto, utilizadas na tela de Histórico de Produtos. Será necessário alterá-las para que passem a considerar as informações presentes na nova tabela de Ajustes de Custo Médio [TT_ACM].
Especificação Técnica
TV_CUSMED: Criar novo UNION ALL buscando as informações da nova tabela de ajustes. Colocar como descrição do campo NATURE a expressão "AJUSTE DE CUSTO MÉDIO".
TV_CUSMEDGRU: Tratar locais e onde é verificado o TIPMOV para que pegue os valores da tabela de ajuste caso seja "A" (Ajuste). Para isto, adicionar relacionamento com a TT_ACM, semelhante ao que é feito com a TT_LAN e TT_IVE.
Importação da Planilha e Recálculo
Especificação para tarefa(s): 93051
O cliente irá elaborar uma planilha com os valores de ajustes necessários para cada produto/data. A importação desta planilha para a nova tabela será realizada por algum consultor ou alguém da área de desenvolvimento. Terminada a importação, deverá ser feito o recálculo do custo médio para os produtos afetados. Para isto, deve-se setar a flag e data de cálculo do custo médio dos produtos afetados.