Guest User

Untitled

a guest
Jan 6th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. CREATE PROCEDURE `new_move_payments_to_new_table`()
  2. LANGUAGE SQL
  3. NOT DETERMINISTIC
  4. CONTAINS SQL
  5. SQL SECURITY DEFINER
  6. COMMENT 'Процедура для переноса платежей по турам в новую структуру'
  7. BEGIN
  8. DECLARE done INT DEFAULT 0;
  9. DECLARE result_type VARCHAR(30);
  10. DECLARE result_sum DECIMAL(8,2);
  11. DECLARE result_date DATE;
  12. DEClARE result_doc VARCHAR(20);
  13. DECLARE result_firm VARCHAR(20);
  14. DECLARE id, order_id, bill_id INT;
  15. DECLARE time_paid TIMESTAMP;
  16. DECLARE payment_type VARCHAR(255);
  17. DECLARE acquiring_sum, cashless_sum, credit_sum, proceeds_sum, certificate_sum, check_sum, summ_paid, internet_acquiring_sum,
  18. terminal_sum, zakpod_sum DECIMAL(8,2);
  19. DECLARE acquiring_doc, cashless_doc, credit_doc, proceeds_doc, certificate_doc, internet_acquiring_doc,
  20. terminal_doc, zakpod_doc VARCHAR(20);
  21. DECLARE acquiring_date, cashless_date, credit_date, proceeds_date, certificate_date, check_date, internet_acquiring_date,
  22. terminal_date, zakpod_date DATE;
  23. DECLARE confirm, processed TINYINT(1);
  24. DECLARE firm ENUM('turproject','turcenter');
  25. DECLARE expCursor CURSOR FOR SELECT * FROM book_tour_payments;
  26. DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
  27. OPEN expCursor;
  28. REPEAT
  29. FETCH expCursor INTO
  30. id, time_paid, order_id, payment_type, acquiring_sum, acquiring_doc, acquiring_date,
  31. cashless_sum, cashless_doc, cashless_date, credit_sum, credit_doc, credit_date, proceeds_sum,
  32. proceeds_doc, proceeds_date, certificate_sum, certificate_doc, certificate_date,
  33. check_sum, check_date, confirm, bill_id, summ_paid, internet_acquiring_sum, internet_acquiring_doc,
  34. internet_acquiring_date, terminal_sum, terminal_doc, terminal_date,
  35. zakpod_sum, zakpod_doc, zakpod_date, processed, firm;
  36. IF NOT done THEN
  37. IF acquiring_sum > '0.00' THEN
  38. SET result_type = 'acquiring';
  39. SET result_sum = acquiring_sum;
  40. SET result_date = acquiring_date;
  41. SET result_doc = acquiring_doc;
  42. END IF;
  43. IF cashless_sum > '0.00' THEN
  44. SET result_type = 'cashless';
  45. SET result_sum = cashless_sum;
  46. SET result_date = cashless_date;
  47. SET result_doc = cashless_doc;
  48. END IF;
  49. IF credit_sum > '0.00' THEN
  50. SET result_type = 'credit';
  51. SET result_sum = credit_sum;
  52. SET result_date = credit_date;
  53. SET result_doc = credit_doc;
  54. END IF;
  55. IF proceeds_sum > '0.00' THEN
  56. SET result_type = 'proceeds';
  57. SET result_sum = proceeds_sum;
  58. SET result_date = proceeds_date;
  59. SET result_doc = proceeds_doc;
  60. END IF;
  61. IF certificate_sum > '0.00' THEN
  62. SET result_type = 'certificate';
  63. SET result_sum = certificate_sum;
  64. SET result_date = certificate_date;
  65. SET result_doc = certificate_doc;
  66. END IF;
  67. IF check_sum > '0.00' THEN
  68. SET result_type = 'check';
  69. SET result_sum = check_sum;
  70. SET result_date = check_date;
  71. SET result_doc = '';
  72. END IF;
  73. IF internet_acquiring_sum > '0.00' THEN
  74. SET result_type = 'internet_acquiring';
  75. SET result_sum = internet_acquiring_sum;
  76. SET result_date = internet_acquiring_date;
  77. SET result_doc = internet_acquiring_doc;
  78. END IF;
  79. IF terminal_sum > '0.00' THEN
  80. SET result_type = 'terminal';
  81. SET result_sum = terminal_sum;
  82. SET result_date = terminal_date;
  83. SET result_doc = terminal_doc;
  84. END IF;
  85. IF zakpod_sum > '0.00' THEN
  86. SET result_type = 'zakpod';
  87. SET result_sum = zakpod_sum;
  88. SET result_date = zakpod_date;
  89. SET result_doc = zakpod_doc;
  90. END IF;
  91. IF firm = 'turcenter' THEN
  92. SET result_firm = 'turcenter';
  93. ELSE
  94. SET result_firm = 'turproject';
  95. END IF;
  96.  
  97. INSERT INTO new_book_tour_payments
  98. SET `time_paid` = time_paid,
  99. `order_id` = order_id,
  100. `type_code` = result_type,
  101. `sum` = result_sum,
  102. `date` = result_date,
  103. `doc` = result_doc,
  104. `confirm` = confirm,
  105. `bill_id` = bill_id,
  106. `summ_paid` = summ_paid,
  107. `processed` = processed,
  108. `firm_code` = result_firm;
  109. END IF;
  110. UNTIL done END REPEAT;
  111. SELECT 'Done';
  112. CLOSE expCursor;
  113. END;
Add Comment
Please, Sign In to add comment