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
|