Advertisement
GLASHATAY_007

Untitled

Apr 23rd, 2024
1,241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  TRUNCATE TABLE dwh_detailing_con_general_2024;
  2.  INSERT INTO dwh_detailing_con_general_2024
  3.  
  4. WITH zak AS
  5. (SELECT
  6.     fin.lotuuid ,
  7.     SUM(fin.finvalue) fin_zak
  8.   FROM dwh_lot_fin_kgntv fin
  9.   Join (SELECT DISTINCT contragent_inn,targetexpenseitemcode FROM dwh_kf_sgoz_kgntv WHERE YEAR=2024 AND flag_budget_current=1) t ON t.contragent_inn=fin.inn AND t.targetexpenseitemcode=fin.targetexpenseitemcode
  10.   -- изменение от 30.09.2020 сделано из-за раздвоения строк по косгу
  11.   WHERE finyear=TO_NUMBER(2024)
  12.   GROUP BY fin.lotuuid),
  13. publ_full AS
  14. (SELECT
  15.     tru.lot_id,
  16.     SUM(tru.fulfilled_cost_doc)fulfilled_cost_doc
  17. FROM dwh_contract_tru_kgntv tru
  18. Inner Join dwh_contract_kgntv c ON tru.lot_id=c.lotid AND LENGTH(c.contractrnk)=13 AND fulfilment_sum IS NULL
  19. GROUP BY tru.lot_id)
  20.  
  21. SELECT CASE WHEN con.customerinn='7820075581' THEN '146504' --в связи с тем, что данный садик реорганзивался в садик с ИНН=7820076257 необходимо суммировать
  22.             WHEN pro.delegated=1 THEN pro.orgid ELSE TO_CHAR(con.customerid) END customerid,
  23.        CASE WHEN pro.delegated=1 THEN pro.orgtitle ELSE con.customername END customername,
  24.        org.short_name,
  25.        CASE WHEN con.customerinn='7820075581' THEN '7820076257' --в связи с тем, что данный садик реорганзивался в садик с ИНН=7820076257 необходимо суммировать
  26.             WHEN pro.delegated=1 THEN org_pp.inn
  27.             ELSE con.customerinn END customerinn,
  28.        CASE WHEN pro.delegated=1 THEN org_pp.kpp ELSE org.kpp END customerkpp,
  29.        CASE WHEN pro.delegated=1 THEN pro.grbstitle ELSE con.grbsname END grbsname,
  30.        CASE WHEN pro.delegated=1 THEN org_pp.grbs_inn ELSE org.grbs_inn END grbs_inn,
  31.        CASE WHEN pro.delegated=1 THEN pro.grbsid ELSE TO_CHAR(org.parentid) END grbsid,
  32.        vg.vg_name vg, --вицегубернатор
  33.        pro.pg_ikz, pro.pg_n, pro.pg_rn,pro.reqnum,
  34.        pro.first_notice_try,--  Дата первой успешно отправленной версии извещения (xml-пакета)в ЕИС ( НЕ ВСЕГДА = Дате публикации извещения)
  35.        pro.F_PRODUCTPRICE,
  36.        NVL(pro.f_productprice,con.contractsigningprice) nmck_rasch,
  37.        zak.fin_zak, --сумма финансирвоания 2021 по закупке
  38.       CASE WHEN pro.joflag=1 THEN 1 ELSE 0 END sovm,
  39.       cons.orgtitle cons_org,
  40.       CASE WHEN pro.placement='Централизованная закупка' THEN 1 ELSE 0 END centr,
  41.       tar.flag_pp, --в рамках ч.6п.15 (переданные полномочия)      
  42.       CASE WHEN pro.delegated=1 THEN pro.orgtitle ELSE NULL END org_pp, --организац, осуществляющая полномочия заказчика
  43.       con.CONTRACTRNK, con.contractsigndate,
  44.       con.contractsigningprice,
  45.       con.contractfullprice, --добавлено 16.11.20211 по письму Крицкой Л.А.
  46.       tar.finsum, --сумма финансирования 2021 по контракту
  47.       tar.expensetypecode, tar.kosgucode,
  48.       tar.budget_type, -- тип финансирования
  49.       tar.fund_code,
  50.       tar.req_code, --  код запроса ( добавлено 14.07.2023 по просьбе Крицкой Л.А.)
  51.       con.ORDERTYPENAME,con.CONTRACTONEEXECREASON,
  52.       con.stagetitle,
  53.       con.contract_execution_start_date,--дата начала исполнения контракта
  54.       con.contractplaneexecdate,
  55.       con.CONTRACTREJECTDATE,
  56.       tar.YEAR fin_year, --год финансирования
  57.       tar.targetexpenseitemcode, --целевая статья из контракта
  58.      -- zak.targetexpenseitemcode targ_zak, --целевая статья из закупки
  59.       t.NP_CODE_NAME,
  60.       t.FP_CODE_NAME,
  61.    --   ROW_NUMBER() over (partition by 1 order by con.CUSTOMERNAME desc) rn,
  62.       CASE
  63.         WHEN (tar.targetexpenseitemcode IN ( SELECT targetexpenseitemcode FROM dwh_targetexpenseitemcode_aip ) AND tar.expensetypecode NOT IN ('244'))
  64.         OR (tar.targetexpenseitemcode IN ('022E15305F','021E15305F') AND tar.expensetypecode='414' AND tar.kosgucode='310' AND con.customerinn='7809025523') -- правило по письму крицкой от 5.10.222      
  65.         THEN 'Да' ELSE 'Нет'            
  66.       END priznak_aip,--Признак совпадения целевой статьи (АИП)
  67.       tar.finsum_f,
  68.       tar.lot_id,
  69.       CASE WHEN (pro.sed_reg_number IS NOT NULL OR pro.request_order_number IS NOT NULL) THEN 1 ELSE 0 END UOPLACING,
  70.       org_uo.FULL_NAME uo_org,
  71.       CON.CONTRACTSUBJECT,
  72.       con.supplierinn,
  73.       con.suppliername,
  74.       TO_CHAR(con.supplierkpp)supplierkpp,
  75.       CASE WHEN pro.delegated=1 THEN org_pp.contragent_account
  76.       ELSE org.contragent_account END contragent_account, --код заказчика
  77.       con.contractactualpaid, --фактически оплачено всего
  78.       NVL(con.fulfilment_sum,publ_full.fulfilled_cost_doc)fulfilment_sum,--стоимость исполненных поставщиком обязательств в валюте исполнения (по письму Тереховой от 22.08.2022)
  79.       pro.date_notice_published,-- Дата размещения первой версии извещения на ЕИС
  80.       con.price_type, -- Способ указания цены контракта
  81.       con.suppliertype,
  82.       con.RTC_PRICE,
  83.       con.supply_impossible
  84.  
  85. FROM  dwh_contract_kgntv con
  86. Left Join dwh_organization_not_zak org ON org.id=con.customerid   -- 05.07.2023 вместо inner указан left, по причине не попадания контрактов у не актуальных орг-ций.
  87.                                     AND contractrnk NOT IN ('2782534239015000190','2783845426019000015','7400319000003','7400319000002','2783845426019000014','2783845426019000021','2783845426019000018') --Контракты отключены по сообщению Рябовой 13 сентября
  88.                                     AND con.customerid IN (SELECT id FROM dwh_organization_not_zak ) --необходимо убрать учреждения законодательной власти
  89.                                     AND org.id<>1610--16.11.2021 Письмо Крицкой Л.А.
  90. Inner Join
  91.  (
  92.     SELECT fin.lot_id,fin.YEAR,fin.finsum,fin.finsum_f,fin.targetexpenseitemcode, fin.expensetypecode, fin.kosgucode, fin.budget_type, fin.flag_pp ,fin.fund_code,req_code
  93.         FROM FIN_TARG_CON_2024_VIEW fin   -- 28.09.22 создана View с инф-цией по финансированию по контрактам(с 3-мя union)              
  94.        WHERE fin.finsum IS NOT NULL                      
  95.   )tar
  96. ON con.LOTID = tar.LOT_ID
  97. Left join zak ON zak.lotuuid=con.lot_cons_m
  98. Left join zak ON tar.lot_id=zak.lotuuid
  99. left join dwh_procedures_kgntv pro ON pro.LOTUUID = con.lotid
  100. left join dwh_procedures_cons_kgntv cons ON cons.lotuuid=pro.joint_procedure_id
  101. left join DWH_ORGANIZATION_KGNTV org_uo ON org_uo.ID = pro.UO_ORGID
  102. left Join (SELECT DISTINCT targetexpenseitemcode,FP_CODE_NAME,NP_CODE_NAME FROM DWH_TARGETEXPENSEITEMCODE_2020) t ON t.targetexpenseitemcode=tar.targetexpenseitemcode
  103. Left Join DWH_ORGANIZATION_KGNTV org_pp ON org_pp.id=pro.orgid AND pro.delegated=1
  104. Left join dwh_vg_22 vg ON vg.grbs_id=con.grbsid
  105. Left Join publ_full ON publ_full.lot_id=con.LOTID
  106. WHERE ((con.CONTRACTREJECTDATE IS NOT NULL AND tar.finsum_f IS NOT NULL AND tar.finsum_f<>0) OR con.CONTRACTREJECTDATE IS NULL )
  107. -- 05.07.2023 вместо inner указан left, по причине не попадания контрактов у не актуальных орг-ций.
  108. AND org.inn NOT IN ('7812031703','7838468985','7812050079','7802215250','7804169391','7814143064','7802215268','7842000050','7804169401','7813188464','7801238167','7816226189','7811139084','7814143057','7816226502',
  109.               '7842000068','7819029196','7819029206','7839000318','7843000046','7843000039','7810293894','7820038893','7817044400','7820038903','7806143737','7807053821','7810293904','7805283273','7806143720',
  110.               '7811139119','7807053839','7805283280','7813585510','7840425330','7838389412','7825439419','7830001028','7830000426','7830001758'
  111.              )
  112.              AND org.full_name NOT LIKE 'ТЕРРИТОРИАЛЬНАЯ ИЗБИРАТЕЛЬНАЯ КОМИССИЯ%'
  113. ;
  114.  
  115. INSERT INTO dwh_detailing_con_general_2024
  116. WITH
  117. con AS (
  118.             SELECT c.*,contract.suppliertype,contract.rtc_price, contract.supply_impossible,contract.supplierkpp, ROW_NUMBER() Over (PARTITION BY c.contract_regnum ORDER BY  c.contract_regnum DESC) rn
  119.             FROM dwh_contracts_delegated c
  120.             left join dwh_contract_kgntv contract ON contract.contractrnk=c.contract_regnum
  121.             WHERE (c.contract_regnum, c.versionnumber) IN (
  122.                                                              SELECT contract_regnum, MAX(versionnumber)
  123.                                                              FROM dwh_contracts_delegated
  124.                                                              GROUP BY contract_regnum
  125.                                                           )
  126.                   AND c.paymentyear=2024                          
  127.                   AND contract.contractrnk IS NULL
  128.                  --and c.exec_startyear=extract(year from sysdate)  -- правило добавлено т.к. записи дублируются из-за чего неправильно считается экономия пример контракт 2782536397817000078
  129.        ),
  130. proc AS (
  131.             SELECT *
  132.             FROM (
  133.                     SELECT p.*, ROW_NUMBER() Over (PARTITION BY p.purchasenumber ORDER BY p.docpublishdate DESC) rn
  134.                     FROM dwh_procedures_delegated p
  135.                  ) p
  136.             WHERE rn=1
  137.          )
  138.  
  139. SELECT TO_CHAR(org.id) orgid, org.full_name,org.short_name,org.inn, org.kpp, org.grbs_full_name, grbs_inn, TO_CHAR(org.parentid) parentid,
  140.        vg.vg_name vg, --вицегубрнатор
  141.        COALESCE(pos.pg_ikz, con.purchasecode, notice.purchasecode) pg_ikz,
  142.        COALESCE(pos.pg_n, notice.tenderplan) pg_n,    
  143.        CASE WHEN con.positionnumber IS NOT NULL THEN con.positionnumber ELSE proc.positionnumber END positionnumber,
  144.        con.notificationnumber,
  145.        NULL fitst_notice_try,--дата размещения первой версии извещения
  146.        proc.maxprice,--нмцк
  147.        COALESCE(proc.maxprice,con.contract_price) nmck_rasch, --нмцк расчетное поле
  148.         CASE
  149.             WHEN proc.currentyear IS NULL THEN NULL
  150.             WHEN 2024 = proc.currentyear THEN proc.finsum_currentyear
  151.             WHEN 2024-1 = proc.currentyear THEN proc.finsum_firstyear
  152.             WHEN 2024-2 = proc.currentyear THEN proc.finsum_secondyear
  153.         END finsum_zak,
  154.         0 sovm, --совместная закупка
  155.         NULL AS c_org, --Наименование организации, разместившей извещение
  156.         0 centr, --централизовання закупка
  157.         1 flag_pp,
  158.         con.responsibleorg_fullname, -- Организация, осуществляющая полномочия заказчика
  159.         con.contract_regnum, --РНК
  160.         con.contract_signdate, --дата заключения контракта
  161.         con.contract_price, --цена контракта на момент заключения
  162.         con.contract_price contractfullprice, --текущая цена контракта
  163.         con.paymentsum, --сумма финансирования
  164.         con.kvr,
  165.         NULL kosgu,--косгу
  166.         NULL budjet_type,--тип финансирования
  167.         NULL fund_code, -- код фонда
  168.         NULL req_code, --код запроса
  169.         CASE WHEN con.placing IN ('13013') THEN 'Запрос котировок в электронной форме'
  170.              WHEN con.placing IN ('12011') THEN 'Аукцион в электронной форме'
  171.              WHEN con.placing IN ('14013') THEN 'Запрос предложений в электронной форме'
  172.              WHEN con.placing IN ('20000') OR con.placing IS NULL AND con.singlecustomer IS NOT NULL THEN 'Закупка у единственного поставщика (подрядчика, исполнителя)'
  173.              WHEN con.placing IN ('11013') THEN 'Открытый конкурс в электронной форме'
  174.              WHEN con.placing IN ('11031','11033') THEN 'Двухэтапный конкурс в электронной форме'
  175.              WHEN con.placing IN ('13011') THEN 'Запрос котировок'
  176.              WHEN con.placing IN ('11023') THEN 'Конкурс с ограниченным участием в электронной форме'
  177.              WHEN con.placing IN ('30000') THEN 'Способ определения поставщика (подрядчика, исполнителя),  установленный правительством российской федерации в соответствии со статьей 111 федерального закона'
  178.              WHEN con.placing IN ('14011') THEN 'Запрос предложений'
  179.              WHEN con.placing IN ('11011') THEN 'Открытый конкурс'
  180.              WHEN con.placing IN ('11042') THEN 'Закрытый конкурс'
  181.              WHEN con.placing IN ('11021') THEN 'Конкурс с ограниченным участием'
  182.              WHEN con.placing IN ('12022') THEN 'Закрытый аукцион'
  183.              ELSE NULL
  184.         END sop_name,
  185.         rs.name,
  186.         CASE
  187.             WHEN LOWER(con.contractstage) = 'e' THEN 'Исполнение'
  188.             WHEN LOWER(con.contractstage) = 'et' THEN 'Исполнение прекращено'
  189.             WHEN LOWER(con.contractstage) = 'ec' THEN 'Исполнение завершено'
  190.             WHEN LOWER(con.contractstage) = 'in' THEN 'Аннулировано'
  191.         ELSE NULL END stage,
  192.         con.startdate,
  193.         con.enddate, --Плановая дата исполнения контракта
  194.         con.rejectiondate, --дата расторжения контракта
  195.         TO_NUMBER(2024) finyear, --год финансирования
  196.         con.targetexpenseitemcode, --целевая статья
  197.         t.np_code_name, t.fp_code_name,
  198.         CASE WHEN proc.targetexpenseitemcode IN ( SELECT targetexpenseitemcode FROM dwh_targetexpenseitemcode_aip ) AND con.kvr NOT IN ('244') THEN 'Да' ELSE 'Нет'    
  199.         END priznak,--Признак совпадения целевой статьи (АИП)
  200.         -- Case When con.exec_startyear=2022 Then exec_stageprice ELse null End fact,
  201.         NULL fact,
  202.         NULL lotid,
  203.         CASE WHEN maxprice>=40000000 THEN 1 ELSE 0 END, --uoplacing
  204.         NULL uo_org,
  205.         con.contractsubject,
  206.         con.supplier_inn,
  207.         con.supplier_fullname,
  208.         con.supplierkpp,
  209.         org.contragent_account, --код заказчика
  210.         NULL contractactualpaid, --фактически оплачено всего
  211.         NULL fulfilment_sum,
  212.         NULL date_notice_published,
  213.         NULL price_type,
  214.         con.suppliertype,
  215.         con.rtc_price,
  216.         con.supply_impossible
  217.  
  218. FROM con
  219. join dwh_organization_kgntv org ON con.responsibleorg_fullname=org.full_name AND con.rn=1 --убрал правило из блока con не попадали нужные контракты пример 2782536397817000116
  220. Left join proc ON con.notificationnumber=proc.purchasenumber
  221. Left Join contract_single_supp_reasons rs ON rs.code_oos = con.singlecustomer AND rs.actual = 1
  222. Left Join dwh_targetexpenseitemcode_2020 t ON t.targetexpenseitemcode=con.targetexpenseitemcode
  223. Left Join dwh_schedule_pos_2020_kgntv pos ON pos.pg_rn=CASE WHEN con.positionnumber IS NOT NULL THEN con.positionnumber ELSE proc.positionnumber END
  224. left join dwh_vg_22 vg ON vg.grbs_id=org.parentid
  225. Left join (
  226.             SELECT positionnumber, purchasecode, tenderplan
  227.             FROM (
  228.                     SELECT ROW_NUMBER() over (PARTITION BY positionnumber, docpublishdate ORDER BY positionnumber) rn, t.*      
  229.                     FROM dwh_start_notice_nrpz t
  230.                     WHERE (t.positionnumber, t.docpublishdate) IN ( SELECT positionnumber, MAX(docpublishdate)docpublishdate FROM dwh_start_notice_nrpz GROUP BY positionnumber)
  231.                  )
  232.              WHERE rn =1
  233.           ) notice ON notice.positionnumber= CASE WHEN con.positionnumber IS NOT NULL THEN con.positionnumber ELSE proc.positionnumber END
  234. WHERE org.id<>1610 --16.11.2021 Письмо Крицкой Л.А.          
  235. ;
Tags: contract
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement