- Nova tabela sar.regras_desconto (grupo, subgrupo, representante, % e vigencia; campos nulos = todos) com migration idempotente, espelho no sar-erp-schema.sql e GRANT no provision-client - CRUD manager-only em /politicas/regras + aba "Regras de Desconto" na tela de Politicas Comerciais (selects com nomes de rep/grupo/subgrupo via /politicas/grupos-produto) - GET /politicas/regras/vigentes (rep ve so as que o alcancam) e GET /politicas/promocoes/vigentes para o catalogo - Regra vigente pre-aplica o desconto no carrinho do novo pedido - Selos "Promocao"/"Cond. especial" na busca de produto, catalogo do pedido e pagina de catalogo; secao "Condicoes Comerciais" no modal de detalhe do produto (descricao, % e validade) - Empty imageStyle deprecado -> styles.image no carrinho Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
24 lines
1.2 KiB
SQL
24 lines
1.2 KiB
SQL
-- CreateTable: sar.regras_desconto (Regras de Desconto - Politicas Comerciais)
|
|
-- Desconto liberado pelo gerente por grupo/subgrupo de produto e/ou
|
|
-- representante, com vigencia. Campos nulos = "todos".
|
|
-- Definicao espelha scripts/sar-erp-schema.sql: provision-client.ts roda o schema SQL
|
|
-- antes de `prisma migrate deploy`, entao esta migration precisa ser idempotente.
|
|
-- ATENCAO: bancos ERP usam LATIN1 - nao usar em-dash nem box-drawing aqui.
|
|
CREATE TABLE IF NOT EXISTS sar.regras_desconto (
|
|
id SERIAL PRIMARY KEY,
|
|
id_empresa INTEGER NOT NULL,
|
|
descricao VARCHAR(200) NOT NULL,
|
|
cod_grupo INTEGER,
|
|
cod_subgrupo INTEGER,
|
|
cod_vendedor INTEGER,
|
|
desc_pct NUMERIC(5,2) NOT NULL,
|
|
data_inicio DATE NOT NULL,
|
|
data_fim DATE NOT NULL,
|
|
ativa BOOLEAN NOT NULL DEFAULT TRUE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
created_by VARCHAR(100) NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sar_regras_empresa ON sar.regras_desconto(id_empresa);
|
|
CREATE INDEX IF NOT EXISTS idx_sar_regras_vigente ON sar.regras_desconto(id_empresa, data_fim) WHERE ativa;
|