Página 1 de 1

preços

Enviado: 24 Abr 2025 13:26
por JoséQuintas
Tô aqui preparando pra mexer nas tabelas de preço.....

Idéia inicial

Código: Selecionar todos

CREATE TABLE IF NOT EXISTS JPPRECOFLEX (
IDPRECOFLEX  INT(11) NOT NULL AUTO_INCREMENT,
PFTIPO       INT(11) NOT NULL DEFAULT '0',
PFNUMERO     INT(11) NOT NULL DEFAULT '0',
PFPRODUTO    INT(11) NOT NULL DEFAULT '0',
PFCADASTRO   INT(11) NOT NULL DEFAULT '0',
PFVALOR      DECIMAL(15,4) NOT NULL DEFAULT '0',
PFDINICIAL   DATE NULL,
PFDFINAL     DATE NULL,
PFINFINC     VARCHAR(80) NOT NULL DEFAULT '',
PFINFALT     VARCHAR(80) NOT NULL DEFAULT '',
PRIMARY KEY ( IDPRECOFLEX ),
INDEX IDX1 ( PFPRODUTO, PFTIPO, PFCCADASTRO )
) COLLATE=latin1_swedish_ci ENGINE=InnoDB

) COLLATE=latin1_swedish_ci ENGINE=InnoDB
Combustíveis é diferente, tem preço diferente conforme produto/cliente/prazo
Acima por enquanto pensei em:
1) cada produto, a mais comum, fica no cadastro mesmo
2) tabelas diferentes, cliente associado a uma tabela
3) cada produto, cada cliente
4) tabela de promoção
Por enquanto essas pra começar, ainda tem a questão de uma tela de cadastramento e de consulta
E pensei na questão da tabela começar a valer em determinada data, pra permitir cadastrar adiantado
Data final sei lá, talvez pra promoção de um dia

E um select com COALESCE() pra pegar o preço

Código: Selecionar todos

select coalesce ( preco combustivel, preco promocao, preco tabela, preco cliente, preco produto, 0 )
essa é a única parte fácil.

preços

Enviado: 24 Abr 2025 14:12
por JoséQuintas
Na prática aí dá pra ter prazo também.

Altero a minha atual, e crio mais uma opção:
produtos obrigatórios de tabela

é o caso de combustível.
sem tabela não vende.
a não ser com autorização.

preços

Enviado: 14 Mai 2025 15:24
por Rafael Kappaun
José, esse modelo com a JPPRECOFLEX faz sentido sim, ainda mais pra casos como combustíveis.

Algumas dicas:

Usar PFDINICIAL e PFDFINAL é ótimo pra cadastrar preços futuros e promoções com validade.

O campo PFTIPO ajuda a identificar se o preço é por cliente, promoção, tabela, etc.

A ideia do COALESCE() pra buscar o preço seguindo uma hierarquia é boa:

Código: Selecionar todos

SELECT COALESCE(preco_cliente, preco_promocao, preco_tabela, preco_produto, 0)
Dá pra marcar produtos que exigem tabela (ex: combustíveis) com um campo no cadastro, e bloquear a venda se não tiver preço ativo.

Está no caminho certo!

preços

Enviado: 14 Mai 2025 16:29
por JoséQuintas
Combustível já é bloqueado se não existir tabela, essa sempre teve tratamento diferenciado.
Já tenho algumas em funcionamento, apenas centralizar tudo e tentar deixar preparado pra possibilidades.