Advertisement
GLASHATAY_007

Untitled

Apr 23rd, 2024
1,190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. TRUNCATE TABLE dwh_detailing_zak_general_2024;
  2. INSERT INTO dwh_detailing_zak_general_2024
  3. WITH
  4. proc AS (
  5.             SELECT *
  6.             FROM (
  7.                     SELECT p.*, ROW_NUMBER() Over (PARTITION BY p.purchasenumber ORDER BY p.docpublishdate DESC) rn
  8.                     FROM dwh_procedures_delegated p
  9.                  ) p
  10.             WHERE rn=1    
  11.          ),
  12. con AS (
  13.             SELECT DISTINCT notificationnumber
  14.             FROM dwh_contracts_delegated c
  15.             WHERE (c.contract_regnum, c.versionnumber) IN (
  16.                                                              SELECT contract_regnum, MAX(versionnumber)
  17.                                                              FROM dwh_contracts_delegated
  18.                                                              GROUP BY contract_regnum
  19.                                                           )
  20.         )  
  21. SELECT CASE WHEN pro.orgid='141053' THEN '146504' ELSE pro.orgid END orgid, --в связи с тем, что данный садик реорганзивался в садик с ИНН=7820076257 необходимо суммировать
  22.        pro.ORGTITLE, org.short_name,
  23.        CASE WHEN org.inn='7820075581' THEN '7820076257' ELSE org.inn END inn, --в связи с тем, что данный садик реорганзивался в садик с ИНН=7820076257 необходимо суммировать
  24.        org.kpp,  pro.GRBSTITLE, org.grbs_inn, pro.grbsid, vg.vg_name vg,
  25.        pro.pg_ikz,  pro.pg_n, pro.pg_rn, pro.ikz, --ИКЗ из извещения
  26.        pro.reqnum,  COALESCE(pro.DATE_DEMAND_START,pro.first_notice_try) first_notice_try, --  Дата первой успешно отправленной версии извещения (xml-пакета)в ЕИС ( НЕ ВСЕГДА = Дате публикации извещения)  
  27.        CASE WHEN pro.joflag=1 THEN 1 ELSE 0 END sovm,
  28.        cons.orgtitle c_org,
  29.        CASE WHEN pro.placement='Централизованная закупка' THEN 1 ELSE 0 END centr,
  30.        fin.flag_pp, --в рамках ч.6п.15 (переданные полномочия)      
  31.        pro.orgtitle org_pp, --организац, осуществляющая полномочия заказчика
  32.        CASE WHEN (pro.sed_reg_number IS NOT NULL OR pro.request_order_number IS NOT NULL) THEN 1 ELSE 0 END UOPLACING,
  33.        uo_org.FULL_NAME uo_org,
  34.        fin.LOTUUID,
  35.        fin.finyear, -- год финансирования
  36.        fin.TARGETEXPENSEITEMCODE,
  37.        t.NP_CODE_NAME,t.FP_CODE_NAME,
  38.        CASE WHEN fin.targetexpenseitemcode IN ( SELECT targetexpenseitemcode FROM dwh_targetexpenseitemcode_aip ) AND fin.expensetypecode NOT IN '244'  
  39.        OR (fin.targetexpenseitemcode IN ('022E15305F','021E15305F') AND fin.expensetypecode='414' AND fin.kosgucode='310' AND pro.orgid='1506') -- правило по письму крицкой от 5.10.222      
  40.             THEN 'Да' ELSE 'Нет'    
  41.         END priznak,--Признак совпадения целевой статьи (АИП)
  42.        pro.F_PRODUCTPRICE, fin.FINSUM, fin.budget_type, fin.expensetypecode, fin.kosgucode,fin.fundcode,
  43.        pro.REQUESTID,
  44.        pro.LOTSTAGE,
  45.        pro.FORDERTYPENAME, pro.ONEEXEC,pro.SUBJECT, org.CONTRAGENT_ACCOUNT,
  46.        pro.date_notice_published-- Дата размещения первой версии извещения на ЕИС    
  47. FROM FIN_TARG_ZAK_2024_table fin -- 28.09.22 создана таблица с инф-цией по финансированию закупок(с 3-мя union)
  48.   Join dwh_procedures_kgntv pro ON NVL(pro.lot_cons_m,pro.lotuuid)=fin.lotuuid
  49.                                    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'
  50.                                    AND pro.reqnum NOT IN (SELECT reqnum FROM wrong_purchase)
  51.                                    AND pro.reqnum IS NOT NULL
  52.                                    AND ( pro.final_decision <>'Отмена закупки' OR pro.final_decision IS NULL)
  53.                                    AND pro.lotstageid NOT IN (93,100,146,61) -- 93 Процедура отменена,
  54.                                                                           -- 100 - обновление от 27.09.2019 корректировка Яковлева А.И. (не учитывать статус закупка не состоялась)
  55.                                                                           -- 146 Закупка отменена от 03.12.2021 Крицкая Л.А.
  56.                                                                           -- 61 Исполнение контракта
  57.                                    AND pro.orgid IN (SELECT id FROM dwh_organization_not_zak ) --необходимо убрать учреждения законодательной власти  
  58.                                    AND pro.orgid<>1610 --16.11.2021 Письмо Крицкой Л.А.)
  59.                                    )OR pro.lotuuid=4996697 -- Выключить закупку при переходе в стадию по заключению контракта
  60.                                    )
  61.   Join dwh_organization_kgntv   org ON org.id=pro.orgid
  62.   Left Join dwh_targetexpenseitemcode_2020 t ON t.targetexpenseitemcode=fin.targetexpenseitemcode
  63.   Left Join dwh_contract_kgntv con ON fin.lotuuid=con.lotid
  64.   Left Join dwh_organization_kgntv uo_org ON uo_org.id = pro.uo_orgid  
  65.   Left Join dwh_procedures_cons_kgntv cons ON cons.lotuuid = pro.Joint_procedure_id
  66.   Left Join dwh_vg_22 vg ON vg.grbs_id = pro.grbsid
  67.   Left Join (
  68.                 SELECT DISTINCT purchasenumber
  69.                 FROM dwh_protocol_nrpz_acgz    
  70.                 WHERE TYPE IN('fcsProtocolDeviation', 'fcsProtocolEvasion', 'epProtocolEvasion', 'epProtocolDeviation')
  71.             ) prot ON prot.purchasenumber=pro.reqnum
  72.   Left Join (
  73.                 SELECT DISTINCT purchasenumber
  74.                 FROM dwh_start_notice_canc_acgz
  75.             ) canc ON canc.purchasenumber=pro.reqnum
  76.   Left Join (SELECT DISTINCT purchasenumber FROM dwh_notice_prolong_nrpz) notice ON notice.purchasenumber=pro.reqnum          
  77.   WHERE   con.CONTRACTRNK IS NULL
  78.         AND prot.purchasenumber IS NULL -- Крицкая Л.А. 19.04.2021 Убрать закупки, в которых есть "уклонение участника или отказ заказчика от заключения контракта"
  79.         AND canc.purchasenumber IS NULL -- Крицкая Л.А. 19.04.2021 Убрать закупки, у которых есть протокол извещения об отмене        
  80.         AND pro.reqnum NOT IN (
  81.                                 SELECT DISTINCT reqnum
  82.                                 FROM dwh_procedures_kgntv pro
  83.                                 Join dwh_contract_kgntv con ON con.lotid=pro.lotuuid
  84.                                 WHERE pro.reqnum IS NOT NULL
  85.                               ) -- Крицкая Л.А. 19.04.2021 Убрать совместные закупки, если по извещению есть хоть один контракт
  86.         AND CASE WHEN pro.lotstage='Закупка не состоялась (продление сроков подачи заявок)' AND notice.purchasenumber IS NULL THEN 1 ELSE 0 END = 0 --Крицкая Л.А. письмо от 24.06.2021
  87.        
  88. UNION ALL
  89.  
  90. SELECT  TO_CHAR(org.id) orgid, proc.responsibleorg_fullname,org.short_name, org.inn, org.kpp,
  91.         org.grbs_full_name, org.grbs_inn, TO_CHAR(org.parentid) grbsid, vg.vg_name vg,
  92.         pos.pg_ikz pg_ikz, proc.plannumber,proc.positionnumber, proc.purchasecode, proc.purchasenumber,
  93.         NULL first_notice_try,
  94.         0 AS sovm,
  95.         NULL AS c_org,
  96.         0 AS centr,
  97.         1 flag_pp,
  98.         proc.responsibleorg_fullname org_pp,
  99.         CASE WHEN maxprice>=40000000 THEN 1 ELSE 0 END, --uoplacing
  100.         NULL uo_org,
  101.         NULL lotuuid,
  102.         2024 finyear, --год финансирования
  103.         proc.targetexpenseitemcode,
  104.         t.np_code_name, t.fp_code_name,
  105.         CASE WHEN proc.targetexpenseitemcode IN ( SELECT targetexpenseitemcode FROM dwh_targetexpenseitemcode_aip ) AND TO_NUMBER(proc.kvr) NOT IN (244) THEN 'Да' ELSE 'Нет'              
  106.         END priznak,--Признак совпадения целевой статьи (АИП)
  107.         proc.maxprice,
  108.         CASE
  109.             WHEN proc.currentyear IS NULL THEN NULL
  110.             WHEN 2024 = proc.currentyear THEN proc.finsum_currentyear
  111.             WHEN 2024-1 = proc.currentyear THEN proc.finsum_firstyear
  112.             WHEN 2024-2 = proc.currentyear THEN proc.finsum_secondyear
  113.         END finsum,
  114.         NULL budjet_type,--тип финансирования
  115.         TO_NUMBER(proc.kvr) kvr,
  116.         NULL kosgu,--КОСГУ
  117.         NULL fundcode, -- Код фонда
  118.         NULL requestid,
  119.         NULL status,
  120.         proc.placingway_name,
  121.         NULL onex,
  122.         purchaseobjectinfo
  123.         , org.CONTRAGENT_ACCOUNT,    
  124.         NULL date_notice_published
  125. FROM proc
  126. Left Join con ON proc.purchasenumber=con.notificationnumber
  127. Left Join dwh_organization_kgntv org ON proc.responsibleorg_fullname=org.full_name
  128. Left Join dwh_schedule_pos_2020_kgntv pos ON pos.pg_rn=proc.positionnumber
  129. Left Join dwh_targetexpenseitemcode_2020 t ON t.targetexpenseitemcode=proc.targetexpenseitemcode
  130. Left Join dwh_vg_22 vg ON vg.grbs_id=org.parentid
  131. Left Join (
  132.             SELECT DISTINCT purchasenumber
  133.             FROM dwh_protocol_nrpz_acgz    
  134.             WHERE TYPE IN('fcsProtocolDeviation', 'fcsProtocolEvasion', 'epProtocolEvasion', 'epProtocolDeviation')
  135.         ) prot ON prot.purchasenumber=proc.purchasenumber
  136. Left Join (
  137.             SELECT DISTINCT purchasenumber
  138.             FROM dwh_start_notice_canc_acgz
  139.         ) canc ON canc.purchasenumber=proc.purchasenumber
  140. Left Join (SELECT DISTINCT purchasenumber FROM dwh_notice_prolong_nrpz) notice ON notice.purchasenumber=proc.purchasenumber
  141. Left Join (SELECT DISTINCT reqnum FROM dwh_procedures_kgntv) p ON p.reqnum=proc.purchasenumber
  142. WHERE proc.purchasenumber IS NOT NULL AND con.notificationnumber IS NULL
  143. AND CASE
  144.             WHEN currentyear IS NULL THEN 0
  145.             WHEN 2024 = currentyear AND finsum_currentyear<>0 THEN 1
  146.             WHEN 2024-1 = currentyear AND finsum_firstyear <>0 THEN 1
  147.             WHEN 2024-2 = currentyear AND finsum_secondyear<>0 THEN 1
  148.             ELSE 0
  149.     END =1
  150. AND prot.purchasenumber IS NULL -- Крицкая Л.А. 19.04.2021 Убрать закупки, в которых есть "уклонение участника или отказ заказчика от заключения контракта"
  151. AND canc.purchasenumber IS NULL -- Крицкая Л.А. 19.04.2021 Убрать закупки, у которых есть протокол извещения об отмене    
  152. AND p.reqnum IS NULL --Необходимо убрать те извещения, которые уже есть в АИСГЗ
  153. AND proc.responsibleorg_fullname<>'ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ КУЛЬТУРЫ "ГОСУДАРСТВЕННЫЙ МУЗЕЙ-ЗАПОВЕДНИК "ПАВЛОВСК"'
  154. AND proc.purchasenumber NOT IN (SELECT reqnum FROM wrong_purchase);
  155.  
  156. -- Удаляем закупки у которых нет протокола подведения итогов определения поставщика и прошло более 50 рабочих дней с момента публикации первой версии извещения
  157. DELETE FROM dwh_detailing_zak_general_2024
  158. WHERE reqnum IN
  159. (SELECT reqnum FROM dwh_detailing_zak_general_2024 z
  160.   LEFT JOIN (
  161.       SELECT purchasenumber,
  162.              TYPE,
  163.             MAX(protocoldate) protocolopr ,
  164.             protocolnumber
  165.         FROM dwh_protocol_nrpz_acgz
  166.        WHERE TYPE IN (
  167.                         'epProtocolEOK3',
  168.                         'epProtocolEZK2020Final',
  169.                         'epProtocolEOKOU3',
  170.                         'epProtocolEOK2020Final',
  171.                         'fcsProtocolEF3',
  172.                         'epProtocolEF2020Final',
  173.                         'epProtocolEZT2020FinalPart')
  174.        GROUP BY purchasenumber, TYPE, protocolnumber) prot ON z.reqnum = prot.purchasenumber
  175.        Left Join (
  176.     SELECT DISTINCT
  177.         protocolnumber,
  178.         purchasenumber,
  179.         protocoldate
  180.     FROM dwh_protocol_nrpz_acgz
  181.     WHERE TYPE IN ('ProtocolCancel','fcsProtocolCancel','epProtocolCancel')
  182.           ) canc ON canc.protocolnumber = prot.protocolnumber AND canc.purchasenumber = prot.purchasenumber AND prot.protocolopr < canc.protocoldate
  183. WHERE (CASE WHEN SYSDATE > (SELECT MIN(t.date_)
  184.                               FROM work_Days_of_2019 t
  185.                               JOIN work_Days_of_2019 t1 ON (t.date_>t1.date_ AND t.nm=t1.nm+50)
  186.                              WHERE t1.date_ >= (SELECT MIN(date_)
  187.                                                   FROM work_Days_all
  188.                                                  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)
Tags: zakupli
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement