Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Produto:

TOTVS CRM Automação da Força de Vendas

Linha de Produto:

Linha TOTVS CRM SFA

Módulo:Venda
Função:Pedido
Ticket:
Requisito/Story/Issue:

Jira
serverJIRA
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyTSFAFSWE-3952

Índice

02. ESCOPO FUNCIONAL

...

Painel
borderColorlightgray

03.05.01 Implementação de busca de descontos de entidades adicionadas na configuração de níveis

Contexto / Gatilho:

  • Ambiente Web/Android, no pedido de venda, ao buscar o cache de descontos dos produtos

Lógica:

  • O sistema deve levar em consideração as novas entidades adicionadas na seção 03.04, filtrando as tabelas vinculáveis "CLASSEDESCONTO"  e "CLASSEDESCONTOVINCULO", com seus respectivos filtros, se cadastrados em Configuração → Configuração pedido → Busca Produto → DESCONTO


Expandir
titleExemplo:
Sem Formato
Configuração → Configuração pedido → Busca Produto → DESCONTO
	1º nível
		Entidade DESCONTO
			Filtro PRODUTO_IDPRODUTO
		Entidade CLASSEDESCONTO
			Filtro CODIGO EQ "PAD"
		Entidade CLASSEDESCONTOVINCULO
			Filtro TABELAPRECO_IDTABELAPRECO
	2º nível
		Entidade CLASSEDESCONTOVINCULO
			Filtro LOCALFILIAL_IDLOCAL

Cadastro de descontos (desconto)
{
	idproduto: 1,
	idclassedesconto: 1,
	idfilial: 1,
	idtabelapreco: 1,
	faixapercentualinicial: 0,
	falxapercentualfinal: 20,
	sgllogicaexceder: null	
},
{
	idproduto: 1,
	idclassedesconto: 1,
	idfilial: 1,
	idtabelapreco: 1,
	faixapercentualinicial: 20.000001,
	falxapercentualfinal: 50,
	sgllogicaexceder: APR	
},
{
    idclassedesconto: 2,
	faixapercentualinicial: 0,
	falxapercentualfinal: 100,
	sgllogicaexceder: BLQ
},
{
    idclassedesconto: 3,
	faixapercentualinicial: 0,
	falxapercentualfinal: 100,
	sgllogicaexceder: null
}

Cadastro de classes de descontos (classedesconto):
{
	idclassedesconto: 1,
	codigo: "PAD"
},
{
	idclassedesconto: 2,
 	codigo: "A" 
},
{
	idclassedesconto: 3,
 	codigo: "B" 
}

Cadastro de vínculos de classes de desconto (classedescontovinculo):
{
	idclassedesconto: 1,
	idtabelapreco: 2,
},
{
	idclassedesconto: 2,
	idfilial: 1
},
{
	idclassedesconto: 2,
	idfilial: 2
},
{
	idclassedesconto: 3,
	idfilial: 3
}

Caso 1) Fazendo um pedido com:
	pedido.idlocalfilialfaturamento = 1
	pedido.idtabelapreco = 1
	pedidoproduto.idproduto = 1
	pedidoproduto.percentualdesconto = 20

		Select 1º Nível: 
			/* select * from
				desconto d 
				inner join classedesconto cd on cd.idclassedesconto = d.idclassedesconto
				inner join classedescontovinculo cdv on cdv.idclassedesconto = d.idclassedesconto
				where d.produto = 1
				and 20 between d.faixapercentualinicial and d.faixapercentualfinal
				and cd.codigo = 'PAD'
				and cdv.idtabelapreco = 1	
			*/
			Nenhum resultado encontrado
		Select 2º Nível:
			 /* select * from
				desconto d 
				inner join classedescontovinculo cdv on cdv.idclassedesconto = d.idclassedesconto
				where 20 between d.faixapercentualinicial and d.faixapercentualfinal
				cdv.idfilial = 1
			*/
			1 registro encontrado: 
			 {
			    idclassedesconto: 2,
				faixapercentualinicial: 0,
				falxapercentualfinal: 100,
				sgllogicaexceder: BLQ
			},
	Resultado: O sistema vai bloquear a inserção do desconto

Caso 2) Fazendo um pedido com:
	pedido.idlocalfilialfaturamento = 1
	pedido.idtabelapreco = 2
	pedidoproduto.idproduto = 1
	pedidoproduto.percentualdesconto = 20

		Select 1º Nível: 
			/* select * from
				desconto d 
				inner join classedesconto cd on cd.idclassedesconto = d.idclassedesconto
				inner join classedescontovinculo cdv on cdv.idclassedesconto = d.idclassedesconto
				where d.produto = 1
				and 20 between d.faixapercentualinicial and d.faixapercentualfinal
			    and cd.codigo = 'PAD'
				and cdv.idtabelapreco = 2
			*/
			1 registro encontrado:  
			{
				idproduto: 1,
				idclassedesconto: 1,
				idfilial: 1,
				idtabelapreco: 1,
				faixapercentualinicial: 0,
				falxapercentualfinal: 20,
				sgllogicaexceder: null	
			}

Resultado: O sistema vai permitir a inserção do desconto

Caso 3) Fazendo um pedido com:
	pedido.idlocalfilialfaturamento = 1
	pedido.idtabelapreco = 2
	pedidoproduto.idproduto = 1
	pedidoproduto.percentualdesconto = 35

		Select 1º Nível: 
			/* select * from
				desconto d 
				inner join classedesconto cd on cd.idclassedesconto = d.idclassedesconto
				inner join classedescontovinculo cdv on cdv.idclassedesconto = d.idclassedesconto
				where d.produto = 1
				and 35 between d.faixapercentualinicial and d.faixapercentualfinal
			    and cd.codigo = 'PAD'
				and cdv.idtabelapreco = 2
			*/
			1 registro encontrado:  
			{
				idproduto: 1,
				idclassedesconto: 1,
				idfilial: 1,
				idtabelapreco: 1,
				faixapercentualinicial: 20.000001,
				falxapercentualfinal: 50,
				sgllogicaexceder: APR	
			},

Resultado: O sistema vai permitir a inserção do desconto, porém encaminhará o pedidopara aprovação selecionada em desconto.idtipoaprovacao

Caso 4) Fazendo um pedido com:
	pedido.idlocalfilialfaturamento = 1
	pedido.idtabelapreco = 2
	pedidoproduto.idproduto = 1
	pedidoproduto.percentualdesconto = 60

		Select 1º Nível: 
			/* select * from
				desconto d 
				inner join classedesconto cd on cd.idclassedesconto = d.idclassedesconto
				inner join classedescontovinculo cdv on cdv.idclassedesconto = d.idclassedesconto
				where d.produto = 1
				and 60 between d.faixapercentualinicial and d.faixapercentualfinal
			    and cd.codigo = 'PAD'
				and cdv.idtabelapreco = 2
			*/
			Nenhum registro encontrado:  
 		Select 2º Nível:
			 /* select * from
				desconto d 
				inner join classedescontovinculo cdv on cdv.idclassedesconto = d.idclassedesconto
				where 60 between d.faixapercentualinicial and d.faixapercentualfinal
				cdv.idfilial = 1
			*/
			1 registro encontrado: 
			 {
			    idclassedesconto: 2,
				faixapercentualinicial: 0,
				falxapercentualfinal: 100,
				sgllogicaexceder: BLQ
			}, 

Resultado: O sistema vai bloquear a inserção do desconto