Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE PROCEDURE `new_move_payments_to_new_table`()
- LANGUAGE SQL
- NOT DETERMINISTIC
- CONTAINS SQL
- SQL SECURITY DEFINER
- COMMENT 'Процедура для переноса платежей по турам в новую структуру'
- BEGIN
- DECLARE done INT DEFAULT 0;
- DECLARE result_type VARCHAR(30);
- DECLARE result_sum DECIMAL(8,2);
- DECLARE result_date DATE;
- DEClARE result_doc VARCHAR(20);
- DECLARE result_firm VARCHAR(20);
- DECLARE id, order_id, bill_id INT;
- DECLARE time_paid TIMESTAMP;
- DECLARE payment_type VARCHAR(255);
- DECLARE acquiring_sum, cashless_sum, credit_sum, proceeds_sum, certificate_sum, check_sum, summ_paid, internet_acquiring_sum,
- terminal_sum, zakpod_sum DECIMAL(8,2);
- DECLARE acquiring_doc, cashless_doc, credit_doc, proceeds_doc, certificate_doc, internet_acquiring_doc,
- terminal_doc, zakpod_doc VARCHAR(20);
- DECLARE acquiring_date, cashless_date, credit_date, proceeds_date, certificate_date, check_date, internet_acquiring_date,
- terminal_date, zakpod_date DATE;
- DECLARE confirm, processed TINYINT(1);
- DECLARE firm ENUM('turproject','turcenter');
- DECLARE expCursor CURSOR FOR SELECT * FROM book_tour_payments;
- DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
- OPEN expCursor;
- REPEAT
- FETCH expCursor INTO
- id, time_paid, order_id, payment_type, acquiring_sum, acquiring_doc, acquiring_date,
- cashless_sum, cashless_doc, cashless_date, credit_sum, credit_doc, credit_date, proceeds_sum,
- proceeds_doc, proceeds_date, certificate_sum, certificate_doc, certificate_date,
- check_sum, check_date, confirm, bill_id, summ_paid, internet_acquiring_sum, internet_acquiring_doc,
- internet_acquiring_date, terminal_sum, terminal_doc, terminal_date,
- zakpod_sum, zakpod_doc, zakpod_date, processed, firm;
- IF NOT done THEN
- IF acquiring_sum > '0.00' THEN
- SET result_type = 'acquiring';
- SET result_sum = acquiring_sum;
- SET result_date = acquiring_date;
- SET result_doc = acquiring_doc;
- END IF;
- IF cashless_sum > '0.00' THEN
- SET result_type = 'cashless';
- SET result_sum = cashless_sum;
- SET result_date = cashless_date;
- SET result_doc = cashless_doc;
- END IF;
- IF credit_sum > '0.00' THEN
- SET result_type = 'credit';
- SET result_sum = credit_sum;
- SET result_date = credit_date;
- SET result_doc = credit_doc;
- END IF;
- IF proceeds_sum > '0.00' THEN
- SET result_type = 'proceeds';
- SET result_sum = proceeds_sum;
- SET result_date = proceeds_date;
- SET result_doc = proceeds_doc;
- END IF;
- IF certificate_sum > '0.00' THEN
- SET result_type = 'certificate';
- SET result_sum = certificate_sum;
- SET result_date = certificate_date;
- SET result_doc = certificate_doc;
- END IF;
- IF check_sum > '0.00' THEN
- SET result_type = 'check';
- SET result_sum = check_sum;
- SET result_date = check_date;
- SET result_doc = '';
- END IF;
- IF internet_acquiring_sum > '0.00' THEN
- SET result_type = 'internet_acquiring';
- SET result_sum = internet_acquiring_sum;
- SET result_date = internet_acquiring_date;
- SET result_doc = internet_acquiring_doc;
- END IF;
- IF terminal_sum > '0.00' THEN
- SET result_type = 'terminal';
- SET result_sum = terminal_sum;
- SET result_date = terminal_date;
- SET result_doc = terminal_doc;
- END IF;
- IF zakpod_sum > '0.00' THEN
- SET result_type = 'zakpod';
- SET result_sum = zakpod_sum;
- SET result_date = zakpod_date;
- SET result_doc = zakpod_doc;
- END IF;
- IF firm = 'turcenter' THEN
- SET result_firm = 'turcenter';
- ELSE
- SET result_firm = 'turproject';
- END IF;
- INSERT INTO new_book_tour_payments
- SET `time_paid` = time_paid,
- `order_id` = order_id,
- `type_code` = result_type,
- `sum` = result_sum,
- `date` = result_date,
- `doc` = result_doc,
- `confirm` = confirm,
- `bill_id` = bill_id,
- `summ_paid` = summ_paid,
- `processed` = processed,
- `firm_code` = result_firm;
- END IF;
- UNTIL done END REPEAT;
- SELECT 'Done';
- CLOSE expCursor;
- END;
Add Comment
Please, Sign In to add comment