Source: DMF/PuC/AIF/SalesDiscount.sql

 
/*INSERT INTO ORI_SALES_DISCOUNT_CTRL 
    (SLS_TRX_ID
        ,PROD_IT_NUM
        ,ORG_NUM
        ,DAY_DT
        ,MIN_NUM -- precisa formatar???
        ,REVISION_NUM
        ,DISC_TYPE  -- for the future this field must be reviewed
        ,COUPON_NUMBER -- validar campo mandatorio
        ,COUPON_REF_NUMBER -- validar campo mandatorio
        ,CO_HEAD_ID
        ,CO_LINE_ID
        ,CUST_REF_TYPE
        ,CUST_REF_NUMBER
        ,RTL_TYPE_CODE
        ,SLS_QTY
        ,SLS_AMT_LCL
        ,SLS_DISC_AMT_LCL--regular discount
        ,RET_QTY
        ,RET_AMT_LCL
        ,RET_DISC_AMT_LCL--regular discount
        ,DATASOURCE_NUM_ID
        ,DOC_CURR_CODE
        ,INTEGRATION_ID -- REVISAR SE ESTÁ CORRETO (TEM QUE SER UNICO POR LINHA NA TABELA DE DISCOUNT?)
        ,LOC_CURR_CODE
    ) */
select DISC_TYPE, TO_CHAR(TO_DATE(DAY_DT, 'DD-MON-RR'), 'YYYY'), sum(SLS_DISC_AMT_LCL) as SLS_DISC_AMT_LCL, sum(RET_DISC_AMT_LCL) as RET_DISC_AMT_LCL   from (
--regular discount
select 
        SLS_TRX_ID
        ,ITEM AS PROD_IT_NUM
        ,ORG_NUM
        ,DAY_DT
        ,TRIM(TO_CHAR(MIN_NUM,'0000'))  AS MIN_NUM -- precisa formatar???
        ,1 as REVISION_NUM
        ,'NEWPRC' AS DISC_TYPE  -- for the future this field must be reviewes
        , NULL AS COUPON_NUMBER -- validar campo mandatorio
        , NULL AS COUPON_REF_NUMBER -- validar campo mandatorio
        ,CO_HEAD_ID
        ,CO_LINE_ID
        ,CUSTOMER_TYPE AS CUST_REF_TYPE
        ,CUSTOMER_NUM AS CUST_REF_NUMBER
        ,RTL_TYPE_CODE
        ,SLS_QTY
        ,SLS_AMT_LCL
        ,SLSPR_DISC_AMT_LCL AS SLS_DISC_AMT_LCL--regular discount
        ,RET_QTY
        ,RET_AMT_LCL
        ,RETPR_DISC_AMT_LCL AS RET_DISC_AMT_LCL--regular discount
        ,1 AS DATASOURCE_NUM_ID
        ,DOC_CURR_CODE
        ,SLS_TRX_ID || '~' || DAY_DT || '~' || ORG_NUM  || '~' || ITEM AS INTEGRATION_ID -- REVISAR SE ESTÁ CORRETO (TEM QUE SER UNICO POR LINHA NA TABELA DE DISCOUNT?)
        ,LOC_CURR_CODE
  from ori_sales_ctrl
 where (SLSPR_DISC_AMT_LCL > 0 and SLSPR_DISC_AMT_LCL is not null) or (RETPR_DISC_AMT_LCL > 0 and RETPR_DISC_AMT_LCL is not null)
 union all
 --employee discount
 select 
        SLS_TRX_ID
        ,ITEM
        ,ORG_NUM
        ,DAY_DT
        ,TRIM(TO_CHAR(MIN_NUM,'0000')) AS MIN_NUM -- precisa formatar???
        ,1 as REVISION_NUM
        ,'EMPDSC' AS DISC_TYPE
        , NULL AS COUPON_NUMBER -- validar campo mandatorio. PUC nao trabalhar com CUPOM
        , NULL AS COUPON_REF_NUMBER -- validar campo mandatorio. PUC nao trabalhar com CUPOM
        ,CO_HEAD_ID
        ,CO_LINE_ID
        ,CUSTOMER_TYPE AS CUST_REF_TYPE
        ,CUSTOMER_NUM AS CUST_REF_NUMBER
        ,RTL_TYPE_CODE
        ,SLS_QTY
        ,SLS_AMT_LCL
        ,SLS_EMP_DISC_AMT_LCL AS SLS_DISC_AMT_LCL--employee discount
        ,RET_QTY
        ,RET_AMT_LCL
        ,RET_EMP_DISC_AMT_LCL AS RET_DISC_AMT_LCL -- employee discount
        ,1 AS DATASOURCE_NUM_ID
        ,DOC_CURR_CODE
        ,SLS_TRX_ID || '~' || DAY_DT || '~' || ORG_NUM  || '~' || ITEM AS INTEGRATION_ID -- REVISAR SE ESTÁ CORRETO (TEM QUE SER UNICO POR LINHA NA TABELA DE DISCOUNT?)
        ,LOC_CURR_CODE
  from ori_sales_ctrl
 where (SLS_EMP_DISC_AMT_LCL > 0 and SLS_EMP_DISC_AMT_LCL is not null) or (RET_EMP_DISC_AMT_LCL  > 0 and RET_EMP_DISC_AMT_LCL  is not null)
) GROUP BY DISC_TYPE, TO_CHAR(TO_DATE(DAY_DT, 'DD-MON-RR'), 'YYYY')
;
 
 
SELECT TO_CHAR(TO_DATE('09-MAY-25', 'DD-MON-RR'), 'YYYY') FROM ori_sales_ctrl WHERE SLS_TRX_ID = 2025050900370000000251