Mudanças entre as edições de "Calculo Frete Peso total e ranger -ANHAMBI"

De GeoSales
Ir para navegação Ir para pesquisar
 
(99 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 7: Linha 7:
 
|  25/05/2018  ||  Renato Lima    ||  Criação do Documento  
 
|  25/05/2018  ||  Renato Lima    ||  Criação do Documento  
 
|-
 
|-
XX/05/2018  ||  Marcus Fabio      ||  Validado pelo desenvolvimento
+
29/05/2018  ||  Marcus Fabio      ||  Validado pelo desenvolvimento
 
|-
 
|-
 +
|  11/06/2018  ||  Renato Lima      ||  Criar campo na tabela de cliente, tratar integração do campo e comportamento do calculo do frete.
 +
|-
 +
|  11/06/2018  ||  Marcus Fabio      ||  Validação das alterações pelo desenvolvimento
 +
|-
 +
|  25/06/2018  ||  Renato Lima    ||  Alteração na integração, na RI1,RI2,implementção, RN5,RN6 e criação da RN7,RN8 e RN9.
 +
|-
 +
|  25/06/2018  ||  Anderson Gomes      ||  Validação das alterações pelo desenvolvimento
 +
|-
 +
|  05/07/2018  ||  Renato Lima    ||  Tratar o fator de divisão por 1000 na integração e Utilizar o campo ID_TIPO_FRETE_PADRAO ja que é populado com o campo A1_TPFRETE.
 +
|-
 +
|  05/07/2018  ||  Anderson Gomes      ||  Validação das alterações pelo desenvolvimento
 
|}
 
|}
  
Linha 15: Linha 26:
  
 
== Solução ==
 
== Solução ==
Deverá realizar a criação de uma nova regra de cálculo de frete, em que o sistema GeoSales usará como base as informações do cliente, da loja e do peso do pedido. A partir dos três valores citados, o cálculo do frete se processará da seguinte maneira: o sistema analisa a faixa de peso (range) do pedido, verifica a cidade em que o cliente está situado e busca as tarifas de frete na região em que a localidade está cadastrada; na faixa de peso que o pedido se encontra, é atrelada uma tarifa base, a seguir, o sistema divide o montante da tarifa base pelo valor máximo de Kg da range e esse resultado é multiplicado com o valor total dos itens, originando o valor do frete.
+
Deverá realizar a criação de uma nova regra de cálculo de frete, em que o sistema GeoSales usará como base as informações do cliente, da loja e do peso total do pedido para calcular o valor do frete.
Como exemplo, temos um cliente situado em uma região ‘X’, que está ligada a uma faixa de peso; existem, em torno de 5 faixas cadastradas com um valor base correspondente. O peso total do pedido é 800kg; esse valor fica atrelado a um range entre 500 e 1000 kg, cuja tarifa base é de R$ 150,00. É dividido o 150,00 por 1000, totalizando uma alíquota de R$ 0,125 kg a ser multiplicada por 800, que corresponde ao peso total do pedido, totalizando o montante de R$ 100,00 de frete. O valor do frete será enviado para o ERP no momento da exportação do pedido.
 
  
 
== Integração ==
 
== Integração ==
 +
 +
O cliente utiliza o '''GFE''' de calculo de Frete do Protheus.
 +
 +
O cliente tem no modulo emitente as informações de Cod do cliente, Loja e Codigo da Cidade do cliente (GU3 TABELA DE EMITENTES),
 +
onde esse pontos irão definir a partir de que rota aquele pedido será atendido.
 +
 +
Na tabela '''GUA''' teremos o cadastro de Regiões x Cidades, a partir dessa tabela iremos montar o nosso cadastro de Região e Praça.
 +
Já as tabelas GV6 e GV1, iremos montar nossas tabelas FRETE e FAIXA_PRECO_FRETE
 +
  
 
No momento de integrar o valor do pedido o integrador deve observar a seguinte regra:
 
No momento de integrar o valor do pedido o integrador deve observar a seguinte regra:
  
Deve verificar o campo '''A1_X_DFRET''' que recebe os valores '''S''' ou '''N'''.
+
*Deve ser verificado os campos '''A1_TPFRETE''' e '''A1_X_MFRET''' os quais recebem '''C''' ou '''F''' e '''D''' ou '''C''', respectivamente.
* Quando o campo '''A1_X_DFRET = S''' o valor do frete deve ser integrado no campo C5X_VFRETE
+
*Quando o campo '''A1_TPFRETE''' = '''C''' e o campo '''A1_X_MFRET''' = '''D''', o valor do frete deve ser integrado no campo
* Quando o '''A1_X_DFRET = N ou NULL''' o valor do frete deve ser integrado no campo C5_FRETE
+
'''C5_FRETE''', somado ao total do pedido e exibido para o vendedor na tela de decomposição;
 +
*Quando o campo '''A1_TPFRETE''' = '''C''' e o campo '''A1_X_MFRET = C''' ou '''VAZIO''', o valor do frete deve ser integrado no
 +
campo '''C5_X_VFRET''', '''NÃO''' somar no total do pedido e '''NÃO''' exibir para o vendedor na tela de decomposição;
 +
*Quando o campo A1_TPFRETE = F, o valor do frete deve ser integrado no campo '''C5_X_VFRET''', '''NÃO''' somar no total
 +
do pedido e NÃO exibir para o vendedor na tela de decomposição;
 +
 
 +
O campo '''A1_TPFRETE''' não deve ser integrado com o valor null.
 +
 
 +
O fator de divisão já virá convertido na integração.
 +
O valor do campo GV1_VLUNIN será divido por 1000,apresentando o valor da seguinte forma:
 +
Tarifa Base
 +
GV1_VLUNIN=
 +
163,28:1000=0,16
  
 
== Implementação ==
 
== Implementação ==
  
 +
O calculo do frete deve ocorrer conforme formula abaixo:
  
O calculo do frete deve ocorrer conforme formula abaixo, observar o cenário:
+
  Valor do Frete = (Tarifa Base) x Peso total do pedido
 +
                     
 +
Onde:
 +
Tarifa base será o valor populado no campo VR_PRECO_KG da tabela FAIXA_PRECO_FRETE
 +
Peso do pedido = Peso total do pedido.
  
*Ao inserir um pedido devemos verificar os seguintes dados para o calculo do frete:
+
Exemplo:
  
**Cliente, Loja, Código da cidade e rota, através dessas informações, iremos identificar a rota pelo qual aquele cliente será atendido e qual tarifa será usada para a base de calculo.
+
Cliente - 0001
 +
Inseriu pedido com dois itens:
 +
Item 1: 10 unidades pesando 100 quilos cada unidade, total de 1000 quilos.
 +
Item 2: 05 unidades pesando 100 quilos cada unidade, total de 500 quilos.
 +
Total de peso do pedido: 1500 quilos.
 +
Tarifa Base = R$ 0,16
 +
Preço do Frete = R$ 244,92
  
Após obter todas as informações o calculo é realizado através da seguinte formula:
 
  
  Valor do Frete = (Tarifa Base) x Peso do pedido
+
Ao ter peso total do pedido, será verificado na FAIXA_PRECO_FRETE, qual opção de faixa se encaixa, para aquele pedido, de acordo com seu peso, região e praça.
                      10000
 
  
                 
 
  
 +
Após realizar o calculo do frete, deve verificar:
  
 +
*Quando o campo ID_TIPO_FRETE_PADRAO = 'C' ou '1' e o campo ID_COMPOE_CALC_FRETE = D, o valor do frete deve ser somado ao total do pedido e exibido para o vendedor na tela de decomposição e o valor frete total;
  
 +
*Quando o campo ID_TIPO_FRETE_PADRAO = 'C' ou '1' e o campo ID_COMPOE_CALC_FRETE = C ou VAZIO,o valor do frete NÃO deve somar no total do pedido e NÃO deve exibir para o vendedor na tela de decomposição e o valor frete total;
 +
 +
*Quando o campo ID_TIPO_FRETE_PADRAO = 'F' ou'2', o valor do frete NÃO deve somar no total do pedido e NÃO deve exibir para o vendedor na tela de decomposição e o valor frete total;
 +
 +
* Qualquer outra situção que não esteja nas situações informadas acima, o valor do frete NÃO deve somar no total do pedido e NÃO deve  exibir para o vendedor na tela de decomposição e o valor frete total; 
  
  
Linha 49: Linha 95:
  
 
{| class="wikitable"
 
{| class="wikitable"
! colspan="5"  | PEDIDO
+
! colspan="5"  | CLIENTE
 
|-
 
|-
 
! style="width:200px" |Coluna
 
! style="width:200px" |Coluna
Linha 57: Linha 103:
 
! style="width:300px" |Explicação
 
! style="width:300px" |Explicação
 
|-  
 
|-  
| QT_QUILOMETROS_ENTREGA
+
| ID_COMPOE_CALC_FRETE
| DECIMAL(18,6)
+
| CHAR(1)
 
| NAO
 
| NAO
 
| NAO
 
| NAO
| Distância em quilometros percorridos na entrega
+
| Campo para informar se o valor do frete será exibido e comporá o valor do pedido, vai receber valores através da integração do campo '''A1_X_MFRET''' e poderá receber '''D''' - Destacado ou '''C''' - Conhecimento ou '''NULL'''.
 
|-  
 
|-  
 
|}
 
|}
Linha 67: Linha 113:
 
== Regras de integração ==
 
== Regras de integração ==
  
'''[RI1]''' – No momento de integrar o valor do frete, o sistema deve verificar o campo '''A1_X_DFRET''' que recebe os valores '''S''' ou '''N'''.
+
'''[RI1]''' – No momento de integrar o valor do frete, o sistema deve verificar o campo '''A1_TPFRETE''' que  
 +
recebe os valores '''C''' ou '''F''' e o campo '''A1_X_MFRET''' que recebe os valores '''D''' ou '''C'''.
  
* Quando o campo '''A1_X_DFRET = S''' o valor do frete deve ser integrado no campo C5X_VFRETE
+
'''[RI2]''' – O campo '''A1_TPFRETE''' não pode ser null, ele receberá os valores '''C''' ou '''F'''.
* Quando o '''A1_X_DFRET = N ou NULL''' o valor do frete deve ser integrado no campo C5_FRETE
 
  
'''[RI2]'''
+
* Quando o campo '''A1_TPFRETE = C''' e o campo '''A1_X_MFRET = D''', o valor do frete deve ser integrado no campo
 +
'''C5_FRETE''', somado ao total do pedido.
  
'''[RI3]'''
+
*Quando o campo '''A1_TPFRETE = C''' e o campo '''A1_X_MFRET = C''' ou NULL, o valor do frete deve ser integrado no
 +
campo '''C5_X_VFRET''',NÃO somar no total do pedido.
  
'''[RI4]'''
+
* Quando o campo '''A1_TPFRETE = F''', o valor do frete deve ser integrado no campo '''C5_X_VFRET''',NÃO somar no total
 
+
do pedido.
'''[RI5]'''
 
  
 
==Regras de Negócio==
 
==Regras de Negócio==
Linha 88: Linha 135:
 
'''RN3 - ''' Sempre que houver alteração no peso do pedido o valor do frete deve ser atualizado.
 
'''RN3 - ''' Sempre que houver alteração no peso do pedido o valor do frete deve ser atualizado.
  
'''RN4 - ''' Para que o vendedor consiga visualizar o peso total do pedido, deve habilitar a configuração ID_MOSTRAR_COLUNA_PESO=S.
+
'''RN4 - ''' Para que o vendedor consiga visualizar o peso total do pedido, deve habilitar a configuração '''ID_MOSTRAR_COLUNA_PESO=S'''.
 +
 
 +
'''RN5 - ''' Quando o campo ID_TIPO_FRETE_PADRAO = 'C' ou '1' e o campo ID_COMPOE_CALC_FRETE = D, o valor do frete deve ser somado ao total do pedido e exibido para o vendedor na tela de decomposição e o valor frete total;
 +
 
 +
'''RN6 - ''' Quando o campo ID_TIPO_FRETE_PADRAO = 'C' ou '1' e o campo ID_COMPOE_CALC_FRETE = C ou NULL,o valor do frete NÃO deve somar no total do pedido e NÃO exibir para o vendedor na tela de decomposição e o valor frete total;
 +
 
 +
'''RN7 - ''' Quando o campo ID_TIPO_FRETE_PADRAO = 'F' ou '2' e o campo ID_COMPOE_CALC_FRETE = C ou NULL o valor do frete NÃO deve somar no total do pedido e NÃO exibir para o vendedor na tela de decomposição e o valor frete total;
 +
 
 +
'''RN8 - '''Quando os valores deste campo, estiverem null, o sistema irá fazer os cálculos e exibi-los.
  
'''RN5 - '''
+
'''RN9 - '''Nos relatórios que exibi valor de frete, devem obedecer o  mesmo comportamento que a tela de pedido, ou seja deve levar em consideração os valores para exibir ou não nos relatórios.
  
 
== Aprovação ==
 
== Aprovação ==

Edição atual tal como às 13h48min de 5 de julho de 2018

Histórico de Revisões

Data Quem Comentários
25/05/2018 Renato Lima Criação do Documento
29/05/2018 Marcus Fabio Validado pelo desenvolvimento
11/06/2018 Renato Lima Criar campo na tabela de cliente, tratar integração do campo e comportamento do calculo do frete.
11/06/2018 Marcus Fabio Validação das alterações pelo desenvolvimento
25/06/2018 Renato Lima Alteração na integração, na RI1,RI2,implementção, RN5,RN6 e criação da RN7,RN8 e RN9.
25/06/2018 Anderson Gomes Validação das alterações pelo desenvolvimento
05/07/2018 Renato Lima Tratar o fator de divisão por 1000 na integração e Utilizar o campo ID_TIPO_FRETE_PADRAO ja que é populado com o campo A1_TPFRETE.
05/07/2018 Anderson Gomes Validação das alterações pelo desenvolvimento

Necessidade

Customização do cálculo de frete, utilizando três parâmetros principais, código do cliente, código da loja e peso do pedido, concomitantemente, verificar esta viabilidade no portal GeoSales. Há necessidade de ajustar os atuais parâmetros de cálculo de frete do Portal GeoSales com o padrão de apuração do ERP Protheus, o qual utiliza como dado o peso total do pedido, de outro modo do atual, que se baseia no peso por item no pedido.

Solução

Deverá realizar a criação de uma nova regra de cálculo de frete, em que o sistema GeoSales usará como base as informações do cliente, da loja e do peso total do pedido para calcular o valor do frete.

Integração

O cliente utiliza o GFE de calculo de Frete do Protheus.

O cliente tem no modulo emitente as informações de Cod do cliente, Loja e Codigo da Cidade do cliente (GU3 TABELA DE EMITENTES), onde esse pontos irão definir a partir de que rota aquele pedido será atendido.

Na tabela GUA teremos o cadastro de Regiões x Cidades, a partir dessa tabela iremos montar o nosso cadastro de Região e Praça. Já as tabelas GV6 e GV1, iremos montar nossas tabelas FRETE e FAIXA_PRECO_FRETE


No momento de integrar o valor do pedido o integrador deve observar a seguinte regra:

  • Deve ser verificado os campos A1_TPFRETE e A1_X_MFRET os quais recebem C ou F e D ou C, respectivamente.
  • Quando o campo A1_TPFRETE = C e o campo A1_X_MFRET = D, o valor do frete deve ser integrado no campo

C5_FRETE, somado ao total do pedido e exibido para o vendedor na tela de decomposição;

  • Quando o campo A1_TPFRETE = C e o campo A1_X_MFRET = C ou VAZIO, o valor do frete deve ser integrado no

campo C5_X_VFRET, NÃO somar no total do pedido e NÃO exibir para o vendedor na tela de decomposição;

  • Quando o campo A1_TPFRETE = F, o valor do frete deve ser integrado no campo C5_X_VFRET, NÃO somar no total

do pedido e NÃO exibir para o vendedor na tela de decomposição;

O campo A1_TPFRETE não deve ser integrado com o valor null.

O fator de divisão já virá convertido na integração. O valor do campo GV1_VLUNIN será divido por 1000,apresentando o valor da seguinte forma:

Tarifa Base
GV1_VLUNIN= 
163,28:1000=0,16

Implementação

O calculo do frete deve ocorrer conforme formula abaixo:

 Valor do Frete = (Tarifa Base) x Peso total do pedido
                      
Onde:
Tarifa base será o valor populado no campo VR_PRECO_KG da tabela FAIXA_PRECO_FRETE
Peso do pedido = Peso total do pedido.

Exemplo:

Cliente - 0001
Inseriu pedido com dois itens:
Item 1: 10 unidades pesando 100 quilos cada unidade, total de 1000 quilos.
Item 2: 05 unidades pesando 100 quilos cada unidade, total de 500 quilos.
Total de peso do pedido: 1500 quilos.
Tarifa Base = R$ 0,16
Preço do Frete = R$ 244,92


Ao ter peso total do pedido, será verificado na FAIXA_PRECO_FRETE, qual opção de faixa se encaixa, para aquele pedido, de acordo com seu peso, região e praça.


Após realizar o calculo do frete, deve verificar:

  • Quando o campo ID_TIPO_FRETE_PADRAO = 'C' ou '1' e o campo ID_COMPOE_CALC_FRETE = D, o valor do frete deve ser somado ao total do pedido e exibido para o vendedor na tela de decomposição e o valor frete total;
  • Quando o campo ID_TIPO_FRETE_PADRAO = 'C' ou '1' e o campo ID_COMPOE_CALC_FRETE = C ou VAZIO,o valor do frete NÃO deve somar no total do pedido e NÃO deve exibir para o vendedor na tela de decomposição e o valor frete total;
  • Quando o campo ID_TIPO_FRETE_PADRAO = 'F' ou'2', o valor do frete NÃO deve somar no total do pedido e NÃO deve exibir para o vendedor na tela de decomposição e o valor frete total;
  • Qualquer outra situção que não esteja nas situações informadas acima, o valor do frete NÃO deve somar no total do pedido e NÃO deve exibir para o vendedor na tela de decomposição e o valor frete total;


Tabelas a serem alteradas:

CLIENTE
Coluna Tipo Obrigatório Chave Primária Explicação
ID_COMPOE_CALC_FRETE CHAR(1) NAO NAO Campo para informar se o valor do frete será exibido e comporá o valor do pedido, vai receber valores através da integração do campo A1_X_MFRET e poderá receber D - Destacado ou C - Conhecimento ou NULL.

Regras de integração

[RI1] – No momento de integrar o valor do frete, o sistema deve verificar o campo A1_TPFRETE que recebe os valores C ou F e o campo A1_X_MFRET que recebe os valores D ou C.

[RI2] – O campo A1_TPFRETE não pode ser null, ele receberá os valores C ou F.

  • Quando o campo A1_TPFRETE = C e o campo A1_X_MFRET = D, o valor do frete deve ser integrado no campo

C5_FRETE, somado ao total do pedido.

  • Quando o campo A1_TPFRETE = C e o campo A1_X_MFRET = C ou NULL, o valor do frete deve ser integrado no

campo C5_X_VFRET,NÃO somar no total do pedido.

  • Quando o campo A1_TPFRETE = F, o valor do frete deve ser integrado no campo C5_X_VFRET,NÃO somar no total

do pedido.

Regras de Negócio

RN1 - Para realizar o calculo do frete deve ser levado em consideração o Peso total do itens inseridos do pedido.

RN2 - Para que o calculo de frete funcione corretamente, todos os produtos cadastrados devem ter seu peso cadastrado.

RN3 - Sempre que houver alteração no peso do pedido o valor do frete deve ser atualizado.

RN4 - Para que o vendedor consiga visualizar o peso total do pedido, deve habilitar a configuração ID_MOSTRAR_COLUNA_PESO=S.

RN5 - Quando o campo ID_TIPO_FRETE_PADRAO = 'C' ou '1' e o campo ID_COMPOE_CALC_FRETE = D, o valor do frete deve ser somado ao total do pedido e exibido para o vendedor na tela de decomposição e o valor frete total;

RN6 - Quando o campo ID_TIPO_FRETE_PADRAO = 'C' ou '1' e o campo ID_COMPOE_CALC_FRETE = C ou NULL,o valor do frete NÃO deve somar no total do pedido e NÃO exibir para o vendedor na tela de decomposição e o valor frete total;

RN7 - Quando o campo ID_TIPO_FRETE_PADRAO = 'F' ou '2' e o campo ID_COMPOE_CALC_FRETE = C ou NULL o valor do frete NÃO deve somar no total do pedido e NÃO exibir para o vendedor na tela de decomposição e o valor frete total;

RN8 - Quando os valores deste campo, estiverem null, o sistema irá fazer os cálculos e exibi-los.

RN9 - Nos relatórios que exibi valor de frete, devem obedecer o mesmo comportamento que a tela de pedido, ou seja deve levar em consideração os valores para exibir ou não nos relatórios.

Aprovação

Considero aprovada a documentação da funcionalidade especificada acima, e autorizo a implementação da mesma no Sistema GeoSales, em nome da Organização a qual estou vinculado.

Setor Aprovado Por Data Assinatura
Gerente TI
Gerente Projeto
Gerente Comercial