Advertisement
GLASHATAY_007

np_aip_parametrs

Feb 1st, 2023
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. TRUNCATE TABLE aip_zak_raz_detail_${import_year};
  2. INSERT INTO aip_zak_raz_detail_${import_year}
  3. SELECT
  4.        pro.orgtitle,org.inn,org.kpp,  pro.grbstitle, pro.grbsid,
  5.        pro.pg_ikz,  pro.pg_n, pro.pg_rn,
  6.        pro.reqnum,  coalesce(pro.DATE_DEMAND_START,pro.first_notice_try) first_notice_try, -- Дата первой успешно отправленной версии извещения (xml-пакета)в ЕИС ( НЕ ВСЕГДА = Дате публикации извещения)  
  7.        CASE WHEN pro.joflag=1 THEN 1 ELSE 0 END sovm,
  8.        cons.orgtitle c_org,
  9.        CASE WHEN pro.placement='Централизованная закупка' THEN 1 ELSE 0 END centr,
  10.        fin.flag_pp,
  11.        pro.uoplacing, uo_org.full_name uo_org,          
  12.        fin.lotuuid,
  13.        fin.targetexpenseitemcode,
  14.        t.NP_CODE_NAME,t.FP_CODE_NAME,              
  15.        Case
  16.             When  fin.targetexpenseitemcode in ( Select * From dwh_targetexpenseitemcode_aip ) and fin.expensetypecode not in ('244') Then 'Да' else 'Нет'        
  17.         End PRIZNAK_AIP,--Признак совпадения целевой статьи (АИП)
  18.        pro.F_PRODUCTPRICE, fin.FINSUM, fin.budget_type, fin.expensetypecode, fin.kosgucode,
  19.        pro.requestid,
  20.        pro.lotstage,
  21.        pro.fordertypename, pro.oneexec,pro.subject,
  22.        fin.FUNDCODE, -- Код фонда
  23.        fin.CONTRAGENT_ACCOUNT, -- Код заказчика
  24.        pro.DATE_NOTICE_PUBLISHED -- Дата размещения первой версии извещения на ЕИС        
  25. FROM (
  26.             SELECT fin.lotuuid,fin.targetexpenseitemcode, fin.fundkind budget_type, fin.expensetypecode, coalesce(fin.kosgucode,lsr.kosgu,'0') kosgucode, 0 flag_pp,
  27.                    SUM(fin.finvalue) finsum,
  28.                    fin.FUNDCODE,
  29.                    org.CONTRAGENT_ACCOUNT
  30.             FROM dwh_lot_fin_kgntv fin
  31.             Join dwh_organization_kgntv org ON org.inn=fin.inn
  32.             Left Join dwh_kf_lsr lsr ON lsr.exp_code=fin.expensesnumeration and lsr.year=${import_year}
  33.             WHERE LOWER(fin.fundkind) IN ('субсидии на госзадания','субсидии на иные цели') AND fin.FINYEAR = ${import_year}
  34.                 AND org.role_code IN (10,3) --роль автономных и бюджетных учреждений            
  35.                 AND targetexpenseitemcode IN ( SELECT targetexpenseitemcode FROM dwh_targetexpenseitemcode_aip)  
  36.             /*    And fin.expensetypecode not in ('415','452') -- письмо Л.А.Крицкой от 12.04.2021      
  37.                 and nvl(fin.kosgucode,lsr.kosgu) not in ('298','299')*/
  38.             GROUP BY fin.lotuuid,fin.targetexpenseitemcode, fin.fundkind, fin.expensetypecode, NVL(fin.kosgucode,lsr.kosgu), fin.FUNDCODE, org.CONTRAGENT_ACCOUNT, 0
  39.            
  40.             UNION
  41.            
  42.             SELECT  fin.lotuuid,fin.targetexpenseitemcode, fin.fundkind budget_type, fin.expensetypecode, NVL(fin.kosgucode,lsr.kosgu) kosgucode, 0 flag_pp,
  43.                   SUM(fin.finvalue) fins,
  44.                   fin.FUNDCODE,
  45.                   org.CONTRAGENT_ACCOUNT
  46.             FROM dwh_lot_fin_kgntv fin
  47.             Join dwh_organization_kgntv org ON org.inn=fin.inn
  48.             Left Join dwh_kf_lsr lsr ON lsr.exp_code=fin.expensesnumeration and lsr.year=${import_year}
  49.             WHERE UPPER(fin.fundkind) NOT LIKE '%ОСТАТКИ%' AND fin.FINYEAR = ${import_year}  AND org.role_code IN (1,8) --ИОГВ+ГКУ
  50.                 AND ((fin.expensetypecode BETWEEN 200 AND 247 )
  51.                       OR (fin.expensetypecode = 323 AND org.grbs_inn NOT IN ('7825675663','7840013199')) --комитет по социальной политике (+ жилищный комитет Белоусова А.А 21.12.2020)
  52.                       OR ((fin.expensetypecode = 414 OR fin.expensetypecode = 412 OR fin.expensetypecode = 466) AND coalesdce(fin.kosgucode,lsr.kosgu) NOT IN (297,298,299,530)))
  53.                 AND targetexpenseitemcode IN ( SELECT targetexpenseitemcode FROM dwh_targetexpenseitemcode_aip)
  54.                 AND (
  55.                             (fin.targetexpenseitemcode NOT IN ('0210020830','0210020850','0220020820','0220020840','0510060500') AND org.inn='7832000076')
  56.                             OR
  57.                             org.inn<>'7832000076'
  58.                            )                      
  59.             GROUP BY fin.lotuuid, fin.targetexpenseitemcode, fin.fundkind, fin.expensetypecode, NVL(fin.kosgucode,lsr.kosgu), fin.FUNDCODE, org.CONTRAGENT_ACCOUNT, 0
  60.            
  61.             UNION
  62.            
  63.             SELECT  fin.lotuuid,fin.targetexpenseitemcode, fin.fundkind budget_type, fin.expensetypecode, NVL(fin.kosgucode,lsr.kosgu) kosgucode, 1 flag_pp,
  64.                   SUM(fin.finvalue) fins,
  65.                   fin.FUNDCODE,
  66.                   org.CONTRAGENT_ACCOUNT
  67.             FROM dwh_lot_fin_kgntv fin
  68.             Join dwh_organization_kgntv org ON org.inn=fin.inn
  69.             Left Join dwh_kf_lsr lsr ON lsr.exp_code=fin.expensesnumeration and lsr.year=${import_year}
  70.             Join dwh_procedures_kgntv pro ON NVL(pro.lot_cons_m,pro.lotuuid)=fin.lotuuid AND ((pro.lot_cons_m=pro.lotuuid and pro.mord_flag='M') OR pro.lot_cons_m IS NULL) -- берем только мать pro.lot_cons_m=pro.lotuuid and pro.mord_flag='M'
  71.             WHERE UPPER(fin.fundkind) NOT LIKE '%ОСТАТКИ%' AND fin.FINYEAR = ${import_year}  AND org.role_code IN (5,3) --ГУП+Ленсвет
  72.                 AND ((fin.expensetypecode BETWEEN 200 AND 247 )
  73.                       OR (fin.expensetypecode = 323 AND org.grbs_inn NOT IN ('7825675663','7840013199')) --комитет по социальной политике (+ жилищный комитет Белоусова А.А 21.12.2020)
  74.                       OR ((fin.expensetypecode = 414 OR fin.expensetypecode = 412 OR fin.expensetypecode = 466) AND NVL(fin.kosgucode,lsr.kosgu) NOT IN (297,298,299,530)))
  75.                 AND targetexpenseitemcode IN ( SELECT targetexpenseitemcode FROM dwh_targetexpenseitemcode_aip)
  76.                 AND (
  77.                             (fin.targetexpenseitemcode NOT IN ('0210020830','0210020850','0220020820','0220020840','0510060500') AND org.inn='7832000076')
  78.                             OR
  79.                             org.inn<>'7832000076'
  80.                            )            
  81.                 AND pro.pg_n IN (
  82.                                         SELECT DISTINCT plannumber FROM dwh_tEnderplan_20_acgz
  83.                                         WHERE customer_inn <> owner_inn --and owner_inn='7830000426'                            
  84.                                 )    
  85.                 AND (fin.inn='7830000426' AND targetexpenseitemcode='0720080310' OR  fin.inn NOT IN '7830000426' )          
  86.             GROUP BY fin.lotuuid, fin.targetexpenseitemcode, fin.fundkind, fin.expensetypecode, NVL(fin.kosgucode,lsr.kosgu), fin.FUNDCODE, org.CONTRAGENT_ACCOUNT, 1          
  87.       )fin
  88. Left Join DWH_PROCEDURES_KGNTV pro ON NVL(pro.lot_cons_m,pro.lotuuid)=fin.lotuuid AND (pro.lot_cons_m<>pro.lotuuid OR pro.lot_cons_m IS NULL)
  89.                                       And pro.reqnum Not In (Select reqnum From wrong_purchase)                                        
  90. Left Join dwh_contract_kgntv con ON con.lotid=fin.lotuuid
  91. Left Join dwh_targetexpenseitemcode_2020 t ON t.targetexpenseitemcode=fin.targetexpenseitemcode
  92. Left Join dwh_organization_kgntv uo_org ON uo_org.id = pro.uo_orgid
  93. Join dwh_organization_kgntv   org ON org.id=pro.orgid
  94. Left Join dwh_procedures_cons_kgntv cons ON cons.lotuuid = pro.Joint_procedure_id
  95. Left Join (
  96.             SELECT DISTINCT purchasenumber
  97.             FROM dwh_protocol_nrpz_acgz    
  98.             WHERE TYPE IN('fcsProtocolDeviation', 'fcsProtocolEvasion','epProtocolEvasion','epProtocolDeviation')
  99.           ) prot ON prot.purchasenumber=pro.reqnum
  100. Left Join (
  101.             SELECT DISTINCT purchasenumber
  102.             FROM dwh_start_notice_canc_acgz
  103.           ) canc ON canc.purchasenumber=pro.reqnum
  104. WHERE pro.reqnum IS NOT NULL
  105.       AND con.contractrnk IS NULL
  106.       AND (pro.final_decision <>'Отмена закупки' OR pro.final_decision IS NULL)
  107.       AND pro.LOTSTAGE <> 'Процедура отменена'
  108.             AND pro.lotstageid<>100
  109.             AND pro.pg_rn LIKE '${import_year}%' --по запросу Яковлева А.И. 09 октября 2019
  110.             AND PRO.first_fin_year=${import_year} --по запросу Яковлева А.И. 09 октября 2019
  111.       AND prot.purchasenumber IS NULL -- Крицкая Л.А. 19.04.2021 Убрать закупки, в которых есть "уклонение участника или отказ заказчика от заключения контракта"
  112.       AND canc.purchasenumber IS NULL -- Крицкая Л.А. 19.04.2021 Убрать закупки, у которых есть протокол извещения об отмене        
  113.       AND pro.reqnum NOT IN (
  114.                             SELECT DISTINCT reqnum
  115.                             FROM dwh_procedures_kgntv pro
  116.                             Join dwh_contract_kgntv con ON con.lotid=pro.lotuuid
  117.                             WHERE pro.reqnum IS NOT NULL
  118.                           );
  119. --  Убираем закупки у которых нет протокола подведения итогов определения поставщика и прошло более 50 рабочих дней с момента публикации первой версии извещения 01.09.2022
  120. DELETE FROM aip_zak_raz_detail_${import_year}
  121. WHERE reqnum in
  122. (SELECT reqnum FROM dwh_detailing_zak_general_${import_year} z
  123.   LEFT JOIN (
  124.       SELECT purchasenumber,
  125.              type,
  126.             max(protocoldate) protocolopr ,
  127.             protocolnumber
  128.         FROM dwh_protocol_nrpz_acgz
  129.        WHERE type in (
  130.                         'epProtocolEOK3',
  131.                         'epProtocolEZK2020Final',
  132.                         'epProtocolEOKOU3',
  133.                         'epProtocolEOK2020Final',
  134.                         'fcsProtocolEF3',
  135.                         'epProtocolEF2020Final',
  136.                         'epProtocolEZT2020FinalPart')
  137.        GROUP BY purchasenumber, type, protocolnumber) prot on z.reqnum = prot.purchasenumber
  138.        Left Join (
  139.     Select Distinct
  140.         protocolnumber,
  141.         purchasenumber,
  142.         protocoldate
  143.     From dwh_protocol_nrpz_acgz
  144.     Where type In ('ProtocolCancel','fcsProtocolCancel','epProtocolCancel')
  145.           ) canc On canc.protocolnumber = prot.protocolnumber And canc.purchasenumber = prot.purchasenumber And prot.protocolopr < canc.protocoldate
  146. WHERE (case when sysdate > (SELECT min(t.date_)
  147.                               FROM work_Days_of_2019 t
  148.                               JOIN work_Days_of_2019 t1 on (t.date_>t1.date_ and t.nm=t1.nm+50)
  149.                              WHERE t1.date_ >= (SELECT min(date_)
  150.                                                   FROM work_Days_all
  151.                                                  WHERE DATE_ >= (trunc(z.first_notice_try)) and type=1)) and (protocolopr is null or canc.protocolnumber is not null) then 1 else 0 end ) = 1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement