Advertisement
Guest User

Untitled

a guest
Mar 17th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.39 KB | None | 0 0
  1. /*
  2.  * V2 - COMI_RECARGAS_DIARIO
  3.  */
  4. --NOTA: SE DEBEN PONER EN DURO LAS FECHAS PARA PROCESAR - YA QUE NO SON FIJAS PARA TODOS LOS MESES.
  5. SELECT SUM(nvl(mto_comi,0))   AS comi_recargas,
  6.         SUM(nvl(mto_comi_pdv,0)) AS mto_comi_pdv ,
  7.         SUM(nvl(monto,0)) AS recarga,
  8.         COUNT(*) AS cant_recargas,
  9.         par.num_line AS linea,
  10.         par.num_cont AS contrato,
  11.         nvl(pv.cod_agente, par.cod_agente) AS vendedor,
  12.         par.pdv,
  13.         0 AS bonificacion, --se elimina la bonificacion desde mayo.
  14.         0 AS boni_porta,
  15.         nvl(pv.mto_acum_age,par.mto_acum_age),
  16.         nvl(pv.mto_acum_pdv,par.mto_acum_pdv),
  17.         nvl(pv.MTO_TOPE_AGE,par.MTO_TOPE_AGE) - nvl(nvl(pv.mto_acum_age,par.mto_acum_age),0) AS saldo_age,
  18.         nvl(pv.MTO_TOPE_PDV,par.MTO_TOPE_PDV) - nvl(nvl(pv.mto_acum_pdv,par.mto_acum_pdv),0) AS saldo_pdv,
  19.         to_char(nvl(pv.FEC_APROB,par.FEC_APROB),'dd/mm/yyyy hh24:mi:ss') AS fec_aprob,
  20.         to_char(nvl(pv.FEC_ACTIV,par.FEC_ACTIV),'dd/mm/yyyy hh24:mi:ss') AS fec_activ,
  21.         par.cod_aprob AS cod_aprob,
  22.         CASE
  23.             WHEN (a.PORC_COMI IN (30,60) AND (round(months_between(nvl(pv.FEC_PRIMERA_CARGA, par.FEC_PRIMERA_CARGA),nvl(pv.FEC_ACTIV,par.FEC_ACTIV))) < 1)--solo tendrá 30 y 60 el segundo mes, si tuvo primera carga dentro del primer mes no debe cobrar primera carga
  24.                     ) THEN 0
  25.             WHEN (nvl(pv.FEC_PRIMERA_CARGA, par.FEC_PRIMERA_CARGA) BETWEEN to_date('18/01/2019 00:00:00','dd/mm/yyyy hh24:mi:ss') --cuando la primera carga fue en el mes corriente
  26.                     AND to_date('26/02/2019 00:00:00','dd/mm/yyyy hh24:mi:ss') AND nvl(pv.FEC_APROB,par.FEC_APROB) < to_date('26/02/2019 00:00:00','dd/mm/yyyy hh24:mi:ss')
  27.                     ) THEN nvl(par.comi_primera_carga,0)
  28.             WHEN (nvl(pv.FEC_APROB,par.FEC_APROB) BETWEEN to_date('18/01/2019 00:00:00','dd/mm/yyyy hh24:mi:ss')--cuando la primera carga fue en algún mes anterior a la aprobacion
  29.                     AND to_date('26/02/2019 00:00:00','dd/mm/yyyy hh24:mi:ss') AND nvl(pv.FEC_PRIMERA_CARGA, par.FEC_PRIMERA_CARGA) < to_date('26/02/2019 00:00:00','dd/mm/yyyy hh24:mi:ss')
  30.                     ) THEN nvl(par.comi_primera_carga,0)
  31.             ELSE
  32.                 0
  33.         END AS comi_primera_carga,
  34.         (CASE
  35.             WHEN nvl(pv.FEC_PRIMERA_CARGA, par.FEC_PRIMERA_CARGA) IS NOT NULL THEN to_char(nvl(pv.FEC_PRIMERA_CARGA, par.FEC_PRIMERA_CARGA),'dd/mm/yyyy hh24:mi:ss')
  36.             ELSE NULL
  37.         END) AS fecha_primera_carga,
  38.         nvl(nvl(pv.mto_primera_carga, par.mto_primera_carga),0) mto_primera_carga,
  39.         a.PORC_COMI,
  40.         par.cod_plan,
  41.         par.suscripcion,
  42.         NULL AS ZONA_COMER,
  43.         NULL AS TOTAL,
  44.         NULL AS PRODUCTO,
  45.         NULL AS AGENTE,
  46.         NULL AS BONI_SIN_PENAL,
  47.         NULL AS COMI_RECAR,
  48.         NULL AS COMI_SIN_PENALIZACION,
  49.         NULL AS COMIS_TOTAL_LIMITADA,
  50.         NULL AS DEPARTAMENTO,
  51.         NULL AS ES_ALTA,
  52.         NULL AS FDV,
  53.         NULL AS FEC_ACTI,
  54.         NULL AS FEC_APRO,
  55.         NULL AS FEC_COMI_PRIMERA_CARGA,
  56.         NULL AS MTO_COMI_PDV_FINAL,
  57.         NULL AS PORC_APLI,
  58.         NULL AS PORTADA,
  59.         NULL AS COMI_PC,
  60.         NULL AS COMI_FIJO
  61.         FROM comisv2.EVT_PARQUE_PREPAGO_AGENT par
  62.         LEFT JOIN comisv2.EVT_RECARGA_DET a
  63.                 --on par.suscripcion = a.suscripcion
  64.                 ON par.NUM_LINE = a.LINEA
  65.                 AND par.NUM_CONT = a.CONTRATO
  66.         /* ********************************************* */
  67.         LEFT JOIN comisv2.evt_parque_prepago_agent pv
  68.         ON par.num_line = pv.num_line
  69.         AND par.num_cont = pv.contrato
  70.         AND pv.cod_proceso = 'PREPA_V1'
  71.         /* ********************************************* */
  72.         WHERE par.cod_proceso = 'PREPA'
  73.         -- No traer lineas que ya no comisionaban este periodo
  74.         AND (par.comisiona = 'S' OR par.fec_proc >= to_date('18/01/2019 00:00:00','dd/mm/yyyy hh24:mi:ss'))
  75.         AND par.fec_proc < to_date('26/02/2019 00:00:00','dd/mm/yyyy hh24:mi:ss')--eyesonly
  76.            
  77.         --and a.es_alta <> 'S'
  78.         AND nvl(pv.FEC_APROB,par.FEC_APROB) < to_date('18/01/2019 00:00:00','dd/mm/yyyy hh24:mi:ss')
  79.        
  80.         --eyesonly 1/8/2017
  81.         AND nvl(pv.fec_fin_age,add_months(par.fec_activ,5)) > to_date(to_char(a.fecha_carga, 'dd/mm/yyyy hh24:mi:ss'),'dd/mm/yyyy hh24:mi:ss')
  82.         --eyesonly 27/06/2018
  83.         --hace falta definir la fecha donde empieza el periodo
  84.         AND nvl(pv.fec_fin_age,add_months(par.fec_activ,5)) > to_date('18/01/2019 00:00:00' , 'dd/mm/yyyy hh24:mi:ss')
  85.         AND a.porc_comi > 0 -- para que no afecte al group by recargas traidas mientras estuvo INGRE
  86.         AND a.idcabevento IN (SELECT cod_cabevento_pk
  87.                             FROM comisv2.cabeventos b
  88.                             LEFT JOIN comisv2.perproccabevt c ON b.cod_cabevento_pk = c.cod_cabevento
  89.                             LEFT JOIN comisv2.periodoprocesos d ON c.cod_perproc = d.cod_perproc_pk
  90.                             --se buscan los detalles de un mes completo
  91.                             WHERE d.fec_desde >= to_date('18/01/2019 00:00:00','dd/mm/yyyy hh24:mi:ss')
  92.                             AND d.fec_hasta <= to_date('26/02/2019 00:00:00','dd/mm/yyyy hh24:mi:ss')
  93.                             AND b.str_firma = 'RECARGAS_DETALLE'
  94.                             AND b.str_confirmado = 'S')
  95.        
  96.         GROUP BY par.num_line,par.num_cont,
  97.                 nvl(pv.cod_agente, par.cod_agente),
  98.                 par.pdv,
  99.                 nvl(pv.FEC_PRIMERA_CARGA, par.FEC_PRIMERA_CARGA),
  100.                 nvl(pv.mto_acum_age,par.mto_acum_age),
  101.                 nvl(pv.mto_acum_pdv,par.mto_acum_pdv),
  102.                 nvl(pv.FEC_APROB,par.FEC_APROB),
  103.                 par.idcabevento_estado,
  104.                 nvl(pv.FEC_ACTIV,par.FEC_ACTIV),
  105.                 par.cod_aprob,par.comi_Primera_carga,
  106.                 nvl(pv.mto_primera_carga, par.mto_primera_carga),
  107.                 a.PORC_COMI,par.cod_plan,
  108.                 nvl(pv.MTO_TOPE_AGE,par.MTO_TOPE_AGE),
  109.                 nvl(pv.MTO_TOPE_PDV,par.MTO_TOPE_PDV),
  110.                 par.suscripcion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement