Mudanças entre as edições de "Cálculo do Custo"

De GeoSales
Ir para navegação Ir para pesquisar
 
(8 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 5: Linha 5:
 
! Comentários  
 
! Comentários  
 
|-
 
|-
|  02/02/2017  ||  Inaldo França ||  Criação do Documento
+
|  02/02/2017  ||  Inaldo França ||  Criação do Documento
 +
|-
 +
|  03/02/2017  ||  Leonardo Sousa ||  Revisão do Documento
 +
|-
 +
|  03/02/2017  ||  Inaldo França  ||  Ajustes solicitados
 +
|-
 +
|  03/02/2017  ||  Jefferson Quesado  ||  Aprovação da Arquitetura
 +
|-
 +
|  15/03/2017  ||  Inaldo França || Mudança do Local de criação do campo PR_JUROS, que é por vendedor e não por produto.
 
|}
 
|}
  
Linha 12: Linha 20:
  
 
=Solução=
 
=Solução=
* Será criado uma estrutura para listar funções (listeners) com a ordem que o sistema irá aplicar, essas funções terão cálculos específicos para preenchimento do campo VR_CUSTO da tabela ITEM_PEDIDO.
+
* Fazer com que o cálculo do custo passe por uma lista de funções e aplicar a que estão ativas antes de aplicar o custo no campo VR_CUSTO da tabela ITEM_PEDIDO.
  
 
=Implementação=
 
=Implementação=
 
+
* Será criado uma tabela que o cálculo de custo irá percorrer para aplicar cada função ativa e na ordem para o cálculo do custo.
Iremos dividir em dois momentos, Primeiramente calcular o '''CUSTO''' de cada item, e depois a '''APLICAÇÃO''', onde iremos aplicar a  Margem e qual validação ela terá.
 
 
 
=== Cálculo ===
 
 
 
Como exemplo iremos adotar as seguinte informações:
 
 
 
*Custo do produto Lorbson - '''R$400,00''' (Essa informação será cadastrada no ERP)
 
*Vencimento: Data de Hoje - (Essa campo é o mesmo que foi criado na funcionalidade de Bloqueio por Prazo)
 
*Taxa de Juros de (1,8% a.m) / 30 = Taxa de Juros a.d = '''0,06%'''. (Essa informação será cadastrada no ERP)
 
 
 
==== Cálculo do Custo ====
 
* O Custo será calculado através de Listeners, será criado uma tabela na base de dados para listar esses listeners e controlar a ordem de aplicação se houver a necessidade de realizar mais de um cálculo para achar o custo do Produto.
 
  
 
Estrutura da Tabela: '''APLICACAO_CUSTO'''
 
Estrutura da Tabela: '''APLICACAO_CUSTO'''
Linha 33: Linha 29:
 
{| class="wikitable"
 
{| class="wikitable"
 
! ID
 
! ID
! DS_LISTENER
+
! DS_FUNCAO
 
! ORDEM
 
! ORDEM
 
! ATIVO  
 
! ATIVO  
 
|-
 
|-
|  CÓDIGO SEQUENCIAL ||  DESCRIÇÃO DO LISTENER || ORDEM DE APLICAÇÃO || SE ESTÁ ATIVO OU NÃO.
+
|  CÓDIGO SEQUENCIAL ||  DESCRIÇÃO DA FUNÇÃO || ORDEM DE APLICAÇÃO || SE ESTÁ ATIVO OU NÃO.
 
|}
 
|}
  
* O campo ORDEM deve ser único, para não haver conflitos.
+
* O campo ORDEM deve ser único, para não haver conflitos na execução
* Todo listener de custo deve preencher o campo VL_CUSTO da tabela ITEM_PEDIDO
+
* Toda função de custo deve preencher o campo VR_CUSTO da tabela ITEM_PEDIDO
 +
* As funções não podem se repetir
 
* Para o cálculo do custo dos produtos da AGROSEMA será criado o listener TAXA_VENCIMENTO
 
* Para o cálculo do custo dos produtos da AGROSEMA será criado o listener TAXA_VENCIMENTO
 
* Para esse listener será aplicado o seguinte cálculo:
 
* Para esse listener será aplicado o seguinte cálculo:
 +
 +
'''Como exemplo iremos adotar as seguinte informações:'''
 +
 +
*Custo do produto Lorbson - '''R$400,00''' (Essa informação será cadastrada no ERP)
 +
*Vencimento: Data de Hoje - (Essa campo é o mesmo que foi criado na funcionalidade de Bloqueio por Prazo)
 +
*Taxa de Juros de (1,8% a.m) / 30 = Taxa de Juros a.d = '''0,06%'''. (Essa informação será cadastrada no ERP por Vendedor)
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Linha 55: Linha 59:
 
|-
 
|-
 
|PR_JUROS
 
|PR_JUROS
|Percentual de Juros do dia de Cada produto
+
|Percentual de Juros do dia de Cada vendedor
 
|}
 
|}
  
Linha 67: Linha 71:
 
=== Regras de Negócio ===
 
=== Regras de Negócio ===
  
'''[RN2]''' – Criar o campo PR_JUROS na tabela PRODUTO para informar o juros de cada produto
+
'''[RN1]''' – Criar o campo PR_JUROS na tabela VENDEDOR para informar o juros de cada produto
  
'''[RN3]''' – O campo VR_CUSTO na tabela PRODUTO_CUSTO deve ser preenchida com a informação do ERP que da Tabela '''DA1''' da coluna '''DA1_ZZCUST'''.
+
=== Integração ===
 +
'''[RN2]''' – O campo VR_CUSTO na tabela PRODUTO_CUSTO deve ser preenchida com a informação do ERP que da Tabela '''DA1''' da coluna '''DA1_ZZCUST'''.
  
'''[RN4]''' – O campo PR_JUROS na tabela PRODUTO deve ser preenchida com a informação do ERP que da Tabela '''SA3''' da coluna '''A3_ZZTXMES'''.
+
'''[RN3]''' – O campo PR_JUROS na tabela VENDEDOR deve ser preenchida com a informação do ERP que da Tabela '''SA3''' da coluna '''A3_ZZTXMES'''.
  
 
=Cenários=
 
=Cenários=
Linha 79: Linha 84:
 
* Data Atual= 02/02/2017
 
* Data Atual= 02/02/2017
 
* Taxa de Juros= 0,06%
 
* Taxa de Juros= 0,06%
 +
* Apenas a função relativa a TAXA_VENCIMENTO está ativa
  
 
=== Operação ===
 
=== Operação ===

Edição atual tal como às 17h33min de 15 de março de 2017

Histórico de Revisões

Data Quem Comentários
02/02/2017 Inaldo França Criação do Documento
03/02/2017 Leonardo Sousa Revisão do Documento
03/02/2017 Inaldo França Ajustes solicitados
03/02/2017 Jefferson Quesado Aprovação da Arquitetura
15/03/2017 Inaldo França Mudança do Local de criação do campo PR_JUROS, que é por vendedor e não por produto.

Necessidade

  • Fazer com que o sistema consiga ter variáveis para o cálculo do custo.

Solução

  • Fazer com que o cálculo do custo passe por uma lista de funções e aplicar a que estão ativas antes de aplicar o custo no campo VR_CUSTO da tabela ITEM_PEDIDO.

Implementação

  • Será criado uma tabela que o cálculo de custo irá percorrer para aplicar cada função ativa e na ordem para o cálculo do custo.

Estrutura da Tabela: APLICACAO_CUSTO

ID DS_FUNCAO ORDEM ATIVO
CÓDIGO SEQUENCIAL DESCRIÇÃO DA FUNÇÃO ORDEM DE APLICAÇÃO SE ESTÁ ATIVO OU NÃO.
  • O campo ORDEM deve ser único, para não haver conflitos na execução
  • Toda função de custo deve preencher o campo VR_CUSTO da tabela ITEM_PEDIDO
  • As funções não podem se repetir
  • Para o cálculo do custo dos produtos da AGROSEMA será criado o listener TAXA_VENCIMENTO
  • Para esse listener será aplicado o seguinte cálculo:

Como exemplo iremos adotar as seguinte informações:

  • Custo do produto Lorbson - R$400,00 (Essa informação será cadastrada no ERP)
  • Vencimento: Data de Hoje - (Essa campo é o mesmo que foi criado na funcionalidade de Bloqueio por Prazo)
  • Taxa de Juros de (1,8% a.m) / 30 = Taxa de Juros a.d = 0,06%. (Essa informação será cadastrada no ERP por Vendedor)


ONDE
DIAS (VENCIMENTO - DATA ATUAL), Resultado deve ser em número de dias
VR_CUSTO Custo do produto da tabela PRODUTO_CUSTO
PR_JUROS Percentual de Juros do dia de Cada vendedor
Custo do Produto = VR_CUSTO + (VR_CUSTO * (DIAS * PR_JUROS))
                             
  400 + (400*(0*0,06%)) = R$400,00
  • O resultado desse calculo será inserido no campo VR_CUSTO da tabela ITEM_PEDIDO e será utilizado no cálculo da Margem.


Regras de Negócio

[RN1] – Criar o campo PR_JUROS na tabela VENDEDOR para informar o juros de cada produto

Integração

[RN2] – O campo VR_CUSTO na tabela PRODUTO_CUSTO deve ser preenchida com a informação do ERP que da Tabela DA1 da coluna DA1_ZZCUST.

[RN3] – O campo PR_JUROS na tabela VENDEDOR deve ser preenchida com a informação do ERP que da Tabela SA3 da coluna A3_ZZTXMES.

Cenários

Dados

  • Custo do Produto = 400,00
  • Vencimento= 15/02/2017
  • Data Atual= 02/02/2017
  • Taxa de Juros= 0,06%
  • Apenas a função relativa a TAXA_VENCIMENTO está ativa

Operação

  • Inserir um item no pedido de venda.

Assertivas

  • O sistema preencherá o campo VR_CUSTO na tabela ITEM_PEDIDO com o valor de 403,12
Cálculo Realizado:

   400 + (400 * (13*0,06%)) = 403,12