Finalidade
A regra define automaticamente qual tabela de preço o cliente deve utilizar com base na UF (estado) de cadastro.
- Quando a empresa possui filial na mesma UF do cliente, ele passa a usar a tabela de preço regional (BuscarPreco = 1).
- Caso contrário, o cliente utiliza a tabela de preço padrão (BuscarPreco = 2).
Essa lógica garante que a política comercial seja coerente com a presença da empresa nos estados, evitando divergências de preços entre regiões.
Lógica da Regra
- Recebe o código do cliente pelo parâmetro
:PCHAR1
. - Verifica se existe filial com a mesma UF do cliente (
FILIAIS.UFFilial = CLI_FOR.UfCliFor
). - Se existir filial na UF:
- Atualiza o campo
CLI_FOR.BuscarPreco = 1
.
- Atualiza o campo
- Se não existir filial na UF:
- Atualiza o campo
CLI_FOR.BuscarPreco = 2
.
- Atualiza o campo
- A variável
@OK
é inicializada como'N'
, mas não influencia no resultado.
Resultado
- BuscarPreco = 1 → Cliente passa a usar a tabela de preço da mesma UF.
- BuscarPreco = 2 → Cliente passa a usar a tabela de preço padrão.
REGRA
--REGRA DE NEGÓCIO CRIADA POR EDSON JUNIOR - 22/07/2025
--REGRA QUE ALTERA A TABELA DE PREÇO DO CLIENTE COM BASE NA UF
--REGRA SOLICITADA POR CDH
DECLARE @OK VARCHAR(1) = 'N'
DECLARE @CODCF VARCHAR(10) = :PCHAR1
IF EXISTS (
SELECT 1
FROM CLI_FOR CF
INNER JOIN FILIAIS F ON F.UFFilial = CF.UfCliFor
WHERE CF.CODCLIFOR = @CODCF
)
BEGIN
UPDATE CLI_FOR
SET BuscarPreco = 1
WHERE CodCliFor = @CODCF
END
ELSE
BEGIN
UPDATE CLI_FOR
SET BuscarPreco = 2
WHERE CodCliFor = @CODCF
END