preços

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

preços

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

preços

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Rafael Kappaun
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 14 Mai 2025 15:10
Localização: Petrópolis - RJ

preços

Mensagem 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!
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

preços

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder