Advertisement
Guest User

Untitled

a guest
May 5th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 6.39 KB | None | 0 0
  1. CREATE TABLE orders_products_losses (
  2.     orders_products_id INT NOT NULL PRIMARY KEY,
  3.     orders_products_losses_status INT NOT NULL,
  4.     orders_products_losses_date_added TIMESTAMP NOT NULL,
  5.     orders_products_losses_date_changed TIMESTAMP NULL,
  6.     orders_products_losses_comment text NULL
  7. ) COMMENT='Потери товара на складе' ENGINE=InnoDB;
  8.  
  9. CREATE TABLE orders_products_losses_acts (
  10.     orders_products_losses_acts_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  11.     orders_products_losses_acts_date TIMESTAMP NOT NULL,
  12.     orders_products_losses_acts_type INTEGER NOT NULL,
  13.     customers_id INT NOT NULL,
  14.     acl_locations_id INT NOT NULL
  15. ) COMMENT='Акты списания потерь' ENGINE=InnoDB;
  16.  
  17. CREATE TABLE orders_products_losses_to_acts (
  18.     orders_products_losses_to_acts_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  19.     orders_products_id INT NOT NULL,
  20.     orders_products_losses_acts_id INT NOT NULL
  21. ) ENGINE=InnoDB;
  22.  
  23. INSERT INTO
  24.     export_data_1c_component(export_data_1c_component_name, table_name, key_field, comment)
  25. VALUES
  26.     ('orders_products_losses_acts', 'orders_products_losses_acts', 'orders_products_losses_acts_id', 'Акты списания потерь на склады');
  27.  
  28. # acl
  29. DELETE FROM acl_settings WHERE acl_rules_id IN (
  30.     SELECT acl_rules_id FROM acl_rules WHERE action = 'show-products-found'
  31. );
  32. DELETE FROM acl_rules WHERE controller = 'stock' AND action = 'show-products-found';
  33.  
  34. UPDATE acl_rules SET action = 'losses' WHERE controller = 'stock' AND action = 'show-lost-products';
  35.  
  36. INSERT INTO acl_rules(module, controller, action, acl_rules_fake) VALUES('call', 'stock', 'upload-photos-for-losses', 'N');
  37. INSERT INTO acl_rules(module, controller, action, acl_rules_fake) VALUES('call', 'stock', 'add-product-to-losses', 'N');
  38. INSERT INTO acl_rules(module, controller, action, acl_rules_fake) VALUES('call', 'stock', 'delete-product-from-losses', 'N');
  39. INSERT INTO acl_rules(module, controller, action, acl_rules_fake) VALUES('call', 'stock', 'get-order-product', 'N');
  40.  
  41. INSERT INTO acl_settings(acl_roles_id, acl_rules_id, access_type)
  42. SELECT
  43.     acl_roles_id,
  44.     (SELECT acl_rules_id FROM acl_rules WHERE module = 'call' AND controller = 'stock' AND action = 'upload-photos-for-losses'),
  45.     access_type
  46. FROM
  47.     acl_settings
  48. WHERE
  49.     acl_rules_id IN (
  50.         SELECT acl_rules_id FROM acl_rules WHERE module = 'call' AND controller = 'stock' AND action = 'losses'
  51.     )
  52. ;
  53.  
  54. INSERT INTO acl_settings(acl_roles_id, acl_rules_id, access_type)
  55. SELECT
  56.     acl_roles_id,
  57.     (SELECT acl_rules_id FROM acl_rules WHERE module = 'call' AND controller = 'stock' AND action = 'add-product-to-losses'),
  58.     access_type
  59. FROM
  60.     acl_settings
  61. WHERE
  62.     acl_rules_id IN (
  63.         SELECT acl_rules_id FROM acl_rules WHERE module = 'call' AND controller = 'stock' AND action = 'losses'
  64.     )
  65. ;
  66.  
  67. INSERT INTO acl_settings(acl_roles_id, acl_rules_id, access_type)
  68. SELECT
  69.     acl_roles_id,
  70.     (SELECT acl_rules_id FROM acl_rules WHERE module = 'call' AND controller = 'stock' AND action = 'delete-product-from-losses'),
  71.     access_type
  72. FROM
  73.     acl_settings
  74. WHERE
  75.     acl_rules_id IN (
  76.         SELECT acl_rules_id FROM acl_rules WHERE module = 'call' AND controller = 'stock' AND action = 'losses'
  77.     )
  78. ;
  79.  
  80. INSERT INTO acl_settings(acl_roles_id, acl_rules_id, access_type)
  81. SELECT
  82.     acl_roles_id,
  83.     (SELECT acl_rules_id FROM acl_rules WHERE module = 'call' AND controller = 'stock' AND action = 'get-order-product'),
  84.     access_type
  85. FROM
  86.     acl_settings
  87. WHERE
  88.     acl_rules_id IN (
  89.         SELECT acl_rules_id FROM acl_rules WHERE module = 'call' AND controller = 'stock' AND action = 'losses'
  90.     )
  91. ;
  92.  
  93. UPDATE acl_rules SET action = 'set-product-lost-and-found' WHERE module = 'call' AND controller = 'order' AND action = 'set-product-lost-and-find';
  94.  
  95. # menu
  96. DELETE FROM admin_menu WHERE url = '/call/stock/show-products-found';
  97. UPDATE admin_menu SET url = '/call/stock/losses' WHERE url = '/call/stock/show-lost-products';
  98.  
  99.  
  100. # move all
  101. INSERT INTO orders_products_losses
  102.     (orders_products_id, orders_products_losses_status, orders_products_losses_date_added)
  103. SELECT
  104.     op.id, op.is_lost, st.date_added
  105. FROM
  106.     orders_products_new op
  107. LEFT JOIN (
  108.     SELECT
  109.         op.id orders_products_id,
  110.         och.date_added,
  111.         IF(LOCATE('Комментарий: ', och.comment) > 0, REGEXP_REPLACE(och.comment, '(.*Комментарий: ")(.+)"', '\\2'), '') comment
  112.     FROM
  113.         orders_products_new op
  114.     JOIN
  115.         products p ON op.products_id = p.products_id
  116.     JOIN
  117.         products_description pd ON op.products_id = pd.products_id
  118.     LEFT JOIN
  119.         products_attributes ps ON op.products_attributes_id = ps.products_attributes_id
  120.     LEFT JOIN
  121.         orders_comment_history och ON op.orders_id = och.object_id
  122.     WHERE
  123.         op.is_lost = 1
  124.         AND och.comment LIKE CONCAT('Товар (', products_model, ') "', ps.products_name, '%отмечен как <span class="label label-warning">Потерянный</span>%')
  125. ) st ON st.orders_products_id = op.id
  126. WHERE
  127.     op.is_lost = 1;
  128.  
  129.  
  130. INSERT INTO orders_products_losses
  131.     (orders_products_id, orders_products_losses_status, orders_products_losses_date_added, orders_products_losses_date_changed, orders_products_losses_comment)
  132. SELECT
  133.     op.id, op.is_lost, IFNULL(st.date_added, op.op_date_added), IFNULL(st.date_added, op.op_date_added), st.comment
  134. FROM
  135.     orders_products_new op
  136. LEFT JOIN (
  137.     SELECT
  138.         op.id orders_products_id,
  139.         och.date_added,
  140.         IF(LOCATE('Комментарий: ', och.comment) > 0, REGEXP_REPLACE(och.comment, '(.*Комментарий: ")(.+)"', '\\2'), '') comment
  141.     FROM
  142.         orders_products_new op
  143.     JOIN
  144.         products p ON op.products_id = p.products_id
  145.     JOIN
  146.         products_description pd ON op.products_id = pd.products_id
  147.     LEFT JOIN
  148.         products_attributes ps ON op.products_attributes_id = ps.products_attributes_id
  149.     LEFT JOIN
  150.         orders_comment_history och ON op.orders_id = och.object_id
  151.     WHERE
  152.         op.is_lost = 2
  153.         AND och.comment LIKE CONCAT('Товар (', products_model, ') "', ps.products_name, '%снята отметка <span class="label label-warning">Потерянный</span>%')
  154. ) st ON st.orders_products_id = op.id
  155. WHERE
  156.     op.is_lost = 2;
  157.  
  158. ALTER TABLE orders_products_losses_acts ADD COLUMN orders_products_losses_acts_comment TEXT NOT NULL AFTER orders_products_losses_acts_type;
  159.  
  160. CREATE INDEX orders_products_id ON orders_products_losses_to_acts(orders_products_id);
  161. CREATE INDEX orders_products_losses_acts_id ON orders_products_losses_to_acts(orders_products_losses_acts_id);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement