zotov-vs

Untitled

May 6th, 2020
1,144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.88 KB | None | 0 0
  1. UPDATE `gb_lopera`.`incomes_attributes` SET `incomes_id`='10054' WHERE  `incomes_attributes_id`=1235887;
  2. UPDATE `gb_lopera`.`incomes_attributes` SET `incomes_id`='10054' WHERE  `incomes_attributes_id`=1236214;
  3. UPDATE `gb_lopera`.`incomes_attributes` SET `incomes_id`='10054' WHERE  `incomes_attributes_id`=1236346;
  4.  
  5. -- Запрос создает новыую поставку и и привязывает к ней товары которое отсутсуют в продписанном документе ЭДО
  6. SET @parent_incomes_id = 10055;
  7. SET @digital_documents_1c_id = 'b466f206-483b-4cfb-9e74-a5417cd36ad3';
  8.  
  9. SELECT @digital_documents_id := dd.digital_documents_id
  10.   , @parent_incomes_id := dd.objects_id
  11. FROM digital_documents AS dd
  12. WHERE  dd.digital_documents_status = 229
  13.     AND dd.entities_id = 41
  14.     AND dd.objects_id = @parent_incomes_id
  15.     AND dd.digital_documents_1c_id = @digital_documents_1c_id
  16. LIMIT 1;
  17.  
  18.  
  19. START TRANSACTION;
  20.  
  21. -- копирование поставки
  22. INSERT INTO incomes (
  23.  
  24.     `incomes_id`
  25.     , `suppliers_id`
  26.     , `suppliers_contracts_id`
  27.     , `suppliers_contracts_conditions_details_id`
  28.     , `suppliers_contracts_volumes_id`
  29.     , `invoice_exist`
  30.     , `date`
  31.     , `planned_supply_quantity_torg12`
  32.     , `planned_supply_summa_torg12`
  33.     , `customers_id`
  34.     , `incomes_status`
  35.     , `supply_date_planned`
  36.     , `date_request_send`
  37.     , `supply_date`
  38.     , `date_start`
  39.     , `date_end`
  40.     , `photography_links`
  41.     , `our_photography_links`
  42.     , `is_editable_on_marking`
  43.     , `entities_types_id`
  44.     , `last_date_update`
  45.     , `digital_documents_suppliers_settings_id`
  46.     , `categories_id`)
  47.      
  48.     SELECT  
  49.    
  50.          NULL AS incomes_id
  51.         , i.suppliers_id
  52.         , i.suppliers_contracts_id
  53.         , i.suppliers_contracts_conditions_details_id
  54.         , i.suppliers_contracts_volumes_id
  55.         , i.invoice_exist
  56.         , i.date
  57.         , i.planned_supply_quantity_torg12
  58.         , i.planned_supply_summa_torg12
  59.         , i.customers_id
  60.         , i.incomes_status
  61.         , i.supply_date_planned
  62.         , i.date_request_send
  63.         , i.supply_date
  64.         , i.date_start
  65.         , i.date_end
  66.         , i.photography_links
  67.         , i.our_photography_links
  68.         , i.is_editable_on_marking
  69.         , i.entities_types_id
  70.         , NULL AS last_date_update
  71.         , i.digital_documents_suppliers_settings_id
  72.         , i.categories_id
  73.  
  74.     FROM incomes AS i
  75.     WHERE i.incomes_id =  @parent_incomes_id;
  76.  
  77. SET @incomes_id := LAST_INSERT_ID();
  78. SELECT @incomes_id AS incomes_id;
  79.  
  80. -- Копирование истории статусов
  81.  
  82. INSERT INTO `incomes_status_history` (
  83.     `incomes_status_history_id`
  84.     , `object_id`
  85.     , `customers_id`
  86.     , `status_id`
  87.     , `date_added`
  88.     , `parent_id`)
  89.  
  90. SELECT
  91.     NULL AS incomes_status_history_id
  92.     , @incomes_id AS object_id
  93.     , ish.customers_id
  94.     , ish.status_id
  95.     , ish.date_added
  96.     , NULL AS parent_id
  97. FROM incomes_status_history AS ish
  98. WHERE ish.object_id = @parent_incomes_id;
  99.  
  100. -- Заполнение parent_id в истории статусов
  101. UPDATE  incomes_status_history AS osh  
  102. LEFT JOIN (
  103.         SELECT
  104.             ish0.incomes_status_history_id
  105.             , lag(ish0.incomes_status_history_id) OVER (PARTITION BY ish0.object_id ORDER BY ish0.incomes_status_history_id) AS parent_id
  106.         FROM incomes_status_history AS ish0
  107.         WHERE ish0.object_id = @incomes_id
  108.     ) AS t ON osh.incomes_status_history_id = t.incomes_status_history_id
  109.  SET osh.parent_id = t.parent_id
  110. WHERE osh.object_id = @incomes_id
  111. ;
  112.  
  113. -- Смена поставки в ia
  114.  
  115. UPDATE incomes_attributes AS ia
  116.     JOIN digital_documents_to_objects AS ddo ON ddo.object_id = ia.incomes_attributes_id AND ddo.entities_id = 83
  117. SET ia.incomes_id = @incomes_id
  118. WHERE ddo.digital_documents_id IN(@digital_documents_id)
  119. AND ddo.digital_documents_to_objects_ordered_count > ddo.digital_documents_to_objects_in_document_count
  120. AND ddo.document_row_number < 0;
  121.  
  122. -- Добавим поставку для обмена с 1С
  123. INSERT INTO export_data_1c (`component`, `object_id`, `date_web`) VALUES (40, @incomes_id, NOW());
  124.  
  125. COMMIT;
Advertisement
Add Comment
Please, Sign In to add comment