Precificação por Personalização (SQL)

Untitled

Exemplo em uma base oracle:

P_AD_ACRESCIMO FLOAT;

BEGIN

SELECT 
NVL(ACT_DEC_FIELD(p_IdSessao, 0, 'AD_ACRESCIMO'),0)
INTO  P_AD_ACRESCIMO
FROM DUAL;

SELECT (7  * (NVL(P_AD_ACRESCIMO,1)))
  INTO PRECO
FROM DUAL;

SELECT 10
  INTO PRECOBASE
FROM DUAL;

Base da procedure Oracle:

CREATE OR REPLACE PROCEDURE ${NOME_PROCEDURE} (
       p_IdSessao VARCHAR2,
       p_Result OUT VARCHAR2
) AS
       PRECO FLOAT;
       PRECOBASE FLOAT;
       P_CODPROD INT;
       P_QTDNEG FLOAT;
       P_UNIDADE VARCHAR2(10);

       ${CODIGO} --devida a forma de declaração de variáves do oracle é necessário que dentro do código seja feita a abertura do BEGIN 

        p_Result :=

        '{' ||
        'PRECO : "' || PRECO || '",' ||
        'PRECOBASE : "' || PRECOBASE || '"' ||
        '}';

END;

Base da procedure SQL Server:

CREATE OR ALTER PROCEDURE ${NOME_PROCEDURE}
       @p_IdSessao VARCHAR(50),
       @p_Result VARCHAR(50) OUTPUT
AS
BEGIN
       DECLARE @PRECO FLOAT;
       DECLARE @PRECOBASE FLOAT;
			 DECLARE @P_CODPROD INT;
       DECLARE @P_QTDNEG FLOAT;
       DECLARE @P_UNIDADE VARCHAR(10);

       ${CODIGO}

       SET @p_Result = '{' +
           'PRECO : "' + CAST(@PRECO AS VARCHAR(50)) + '",' +
           'PRECOBASE : "' + CAST(@PRECOBASE AS VARCHAR(50)) + '"' +
           '}';
END;

PRECO e PRECOBASE: devem conter o valor do preço do produto

Valores que são passados:

CODPROD: código do produto

QTDNEG: quantidade que está sendo adicionado no carrinho ( no momento da listagem a quantidade é de valor 1)

UNIDADE: unidade que está sendo adicionada