· 6 years ago · Jul 02, 2019, 11:14 AM
1 INNER JOIN tp_cabinets AS tc ON tc.cabinet_uid = cti.field_web_a gent_uid
2 INNER JOIN tp_cabinets AS tcd ON tcd.cabinet_uid = tc.direction_ id
3 WHERE cti.nid = v_iframe_nid;
4
5 SELECT
6 ldt.ldt_id AS ldtId,
7 ldt.outside_title AS ldtName,
8 ldt.info_text AS ldtInfo,
9 ldt.phisical_delivery_type AS phisicalDeliveryType,
10 ldpt.payment_type_id AS ptId,
11 ldpt.info_text AS ldptInfo,
12 pt.outside_title AS ptName,
13 ldpt.order_timeout AS lifetime,
14 IF(ldpt.payment_type_id = 'cloud_payments', (
15 SELECT CASE
16 WHEN tc.can_webagent_accept_payments AND pt_cab. cabinet_uid IS NOT NULL THEN pt_cab.login
17 WHEN td.is_direction AND pt_dir.cabinet_uid IS N OT NULL THEN pt_dir.login
18 ELSE NULL END
19 FROM content_type_iframe cti
20 INNER JOIN tp_cabinets tc on cti.field_web_agent_uid = tc.cabinet_uid
21 INNER JOIN tp_cabinets td on tc.direction_id = td.ca binet_uid
22 LEFT JOIN tp_cabinets_payment_types pt_cab on tc.cab inet_uid = pt_cab.cabinet_uid AND pt_cab.payment_type_id = 'cloud_payments'
23 LEFT JOIN tp_cabinets_payment_types pt_dir on td.cab inet_uid = pt_dir.cabinet_uid AND pt_dir.payment_type_id = 'cloud_payments'
24 WHERE cti.nid = v_iframe_nid), NULL) AS public_id,
25 pt.minimum_booking_service AS minimalServiceFee
26 FROM tp_iframe_ldt AS til
27 INNER JOIN logical_delivery_types AS ldt ON ldt.ldt_id = til.ldt _id
28 INNER JOIN logical_delivery_type_payment_type AS ldpt on ldt.ldt _id = ldpt.ldt_id
29 INNER JOIN payment_types AS pt ON pt.payment_type_id = ldpt.paym ent_type_id
30 WHERE til.nid = v_iframe_nid and ldt.phisical_delivery_type <> ' courier'
31 ORDER BY ldt.priority, ldpt.priority;
32 END
33DROP FUNCTION IF EXISTS iframe_calc_reserve_chain_id
34
35 CREATE DEFINER = definer@localhost FUNCTION iframe_calc_reserve_chain_id ( `v_iframe_nid` int(10), `v_web_agent_uid` int(10), `v_quota_id` int(10)) RETURNS int(10)
36 SQL SECURITY DEFINER
37 NOT DETERMINISTIC
38 CONTAINS SQL
39 BEGIN
40 DECLARE v_result int(10) DEFAULT NULL;
41 DECLARE v_cnt int(10) DEFAULT NULL;
42
43 SELECT ac.id, (SELECT COUNT(1) FROM tp_agents_chains AS ac2 WHER E ac2.id = ac.id) AS cnt
44 INTO v_result, v_cnt
45 FROM seance_quotas AS seq
46 INNER JOIN seance_quotas_access AS qa ON qa.quota_id = seq.id
47 INNER JOIN tp_agents_chains AS ac ON
48 ac.start_uid = seq.cabinet_uid AND
49 ac.finish_uid = v_web_agent_uid AND
50 ac.locked = 0 AND
51 ac.deleted = 0 AND
52 (
53 (qa.access_type = '0') OR
54 (qa.access_type = '1' AND qa.agent_uid = ac.agent_uid) O R
55 (qa.access_type = '2' AND qa.agent_uid = ac.finish_uid) OR
56 (qa.access_type = '3' AND qa.agent_uid = ac.finish_uid A ND qa.point_nid = v_iframe_nid)
57 )
58 WHERE seq.id = v_quota_id
59 ORDER BY 2, 1
60 LIMIT 1;
61
62 RETURN v_result;
63 END
64DROP FUNCTION IF EXISTS iframe_generate_barcode
65
66 CREATE DEFINER = definer@localhost FUNCTION iframe_generate_barcode () RET URNS varchar(24) CHARSET utf8
67 SQL SECURITY DEFINER
68 NOT DETERMINISTIC
69 CONTAINS SQL
70 BEGIN
71 DECLARE v_barcode VARCHAR(24) DEFAULT NULL;
72 LOOP
73 SELECT CONVERT(CONVERT(rand() * 8999999999 + 1000000000, UNS IGNED), CHAR) INTO v_barcode;
74 IF NOT EXISTS(SELECT 1 FROM content_type_ticket WHERE barcod e = v_barcode LIMIT 1)
75 THEN
76 RETURN v_barcode;
77 END IF;
78 END LOOP;
79 END
80DROP FUNCTION IF EXISTS iframe_generate_order_number
81
82 CREATE DEFINER = definer@localhost FUNCTION iframe_generate_order_number ( ) RETURNS varchar(16) CHARSET utf8
83 SQL SECURITY DEFINER
84 NOT DETERMINISTIC
85 CONTAINS SQL
86 BEGIN
87 DECLARE v_num varchar(16) DEFAULT NULL;
88 LOOP
89 SELECT CONVERT(CONVERT(rand() * 89999999 + 10000000, UNSIGNE D), CHAR) INTO v_num;
90 IF NOT EXISTS(SELECT 1 FROM content_type_order WHERE num = v _num LIMIT 1)
91 THEN
92 RETURN v_num;
93 END IF;
94 END LOOP;
95 END
96DROP FUNCTION IF EXISTS iframe_calc_payment_chain_id
97
98 CREATE DEFINER = definer@localhost FUNCTION iframe_calc_payment_chain_id ( `v_seance_seats_id` int(10), `v_payment_chain_finish_uid` int(10), `v_payment_th rough_uid` int(10)) RETURNS int(10)
99 SQL SECURITY DEFINER
100 NOT DETERMINISTIC
101 CONTAINS SQL
102 BEGIN
103 DECLARE v_result int(10) DEFAULT NULL;
104 DECLARE v_msg TEXT DEFAULT NULL;
105
106 IF v_payment_through_uid IS NULL THEN
107 SELECT ac.id
108 INTO v_result
109 FROM seance_seats AS ses
110 INNER JOIN seance_quotas AS seq ON seq.id = ses.quota_id
111 INNER JOIN tp_agents_chains AS ac ON ac.start_uid = seq.cabi net_uid AND ac.finish_uid = v_payment_chain_finish_uid AND ac.finish_uid = ac.ag ent_uid
112 WHERE ses.id = v_seance_seats_id AND ac.deleted = 0
113 ORDER BY ac.step, ac.id
114 LIMIT 1;
115 ELSE
116 SELECT ac.id
117 INTO v_result
118 FROM seance_seats AS ses
119 INNER JOIN seance_quotas AS seq ON seq.id = ses.quota_id
120 INNER JOIN tp_agents_chains AS ac ON ac.start_uid = seq.cabi net_uid AND ac.finish_uid = v_payment_chain_finish_uid AND ac.finish_uid = ac.ag ent_uid
121 WHERE ses.id = v_seance_seats_id AND ac.deleted = 0 AND EXIS TS(
122 SELECT 1
123 FROM tp_agents_chains AS ac2
124 WHERE
125 ac2.id = ac.id AND (
126 ac2.start_uid = v_payment_through_uid OR
127 ac2.finish_uid = v_payment_through_uid OR
128 (ac2.finish_uid = ac2.agent_uid AND ac2.principal_ui d = v_payment_through_uid)
129 )
130 LIMIT 1
131 )
132 ORDER BY ac.step, ac.id
133 LIMIT 1;
134 END IF;
135
136 IF v_result IS NULL THEN
137 SET v_msg = CONCAT('Payment chain id could not be found for seance seat ', v_seance_seats_id);
138 SIGNAL SQLSTATE '45101' SET MESSAGE_TEXT = v_msg;
139 END IF;
140
141 RETURN v_result;
142 END
143DROP PROCEDURE IF EXISTS iframe_order_create
144
145 CREATE DEFINER = definer@localhost PROCEDURE iframe_order_create (IN `v_si d` varchar(26), IN `v_iframe_nid` int(10), IN `v_web_agent_uid` int(10), IN `v_p rome_code_id` int(10), IN `v_ld_id` int(10), IN `v_delivery` enum('box_office',' e_ticket','courier','direct_sale'), IN `v_payment` varchar(32), IN `v_fio` varch ar(255), IN `v_email` varchar(255), IN `v_phone` varchar(255), IN `v_ip` char(15 ), IN `v_utm_campaign` varchar(255), IN `v_utm_source` varchar(255))
146 SQL SECURITY DEFINER
147 NOT DETERMINISTIC
148 CONTAINS SQL
149 BEGIN
150 DECLARE v_quota_id INT(10) DEFAULT NULL;
151 DECLARE v_seats_count INT(10) DEFAULT NULL;
152 DECLARE v_reserve_chain_id INT(10) DEFAULT NULL;
153 DECLARE v_ticket_num_pad_amount INT(10) DEFAULT NULL;
154 DECLARE v_order_nid int(10) DEFAULT NULL;
155 DECLARE v_order_num varchar(16) DEFAULT NULL;
156
157 DECLARE v_sql_state CHAR(5) DEFAULT '00000';
158 DECLARE v_sql_error_message TEXT DEFAULT NULL;
159
160 DECLARE v_now_timestamp INT(10) DEFAULT NULL;
161 DECLARE v_now_datetime datetime DEFAULT NULL;
162
163 DECLARE v_sc INT(10) DEFAULT NULL;
164 DECLARE v_rc INT(10) DEFAULT NULL;
165
166 DECLARE v_error_seance_seat_id INT(10) DEFAULT NULL;
167 DECLARE v_err_msg TEXT DEFAULT NULL;
168
169 DECLARE v_seance_max_booking INT(10) DEFAULT NULL;
170 DECLARE v_delivery_max_booking INT(10) DEFAULT NULL;
171 DECLARE v_deadline_datetime datetime DEFAULT NULL;
172
173 DECLARE v_iframe_fin_rules VARCHAR(8) DEFAULT NULL;
174 DECLARE v_iframe_fin_value INT(10) DEFAULT NULL;
175 DECLARE v_exchange_status TINYINT(1) DEFAULT NULL;
176
177 DECLARE v_pt_minimum_service_percent INT(10) DEFAULT NULL;
178 DECLARE v_ticket_fee_tax_mode TINYINT(1) DEFAULT NULL;
179 DECLARE v_promocode_max_usage INT(10) DEFAULT NULL;
180 DECLARE v_promocode_current_usage INT(10) DEFAULT NULL;
181
182 DECLARE EXIT HANDLER FOR SQLEXCEPTION
183 BEGIN
184 GET DIAGNOSTICS CONDITION 1
185 v_sql_state = RETURNED_SQLSTATE,
186 v_sql_error_message = MESSAGE_TEXT;
187
188 ROLLBACK;
189
190 IF v_sql_state = '45001' THEN
191 SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'Empty order (no seats)';
192 ELSEIF v_sql_state = '45002' THEN
193 SIGNAL SQLSTATE '45002' SET MESSAGE_TEXT = 'Bad promocod e (not found/not started/expired)';
194 ELSEIF v_sql_state = '45003' THEN
195 SIGNAL SQLSTATE '45003' SET MESSAGE_TEXT = 'Bad promocod e (already used)';
196 ELSEIF v_sql_state = '45004' THEN
197 SIGNAL SQLSTATE '45004' SET MESSAGE_TEXT = 'Race conditi ons detected (some seats are disappeared)';
198 ELSEIF v_sql_state = '45005' THEN
199 SIGNAL SQLSTATE '45005' SET MESSAGE_TEXT = v_sql_error_m essage;
200 ELSEIF v_sql_state = '45006' THEN
201 SIGNAL SQLSTATE '45006' SET MESSAGE_TEXT = v_sql_error_m essage;
202 ELSE
203 SIGNAL SQLSTATE '45009' SET MESSAGE_TEXT = v_sql_error_m essage;
204 END IF;
205 END;
206
207 SET v_now_timestamp = UNIX_TIMESTAMP();
208 SET v_now_datetime = FROM_UNIXTIME(v_now_timestamp);
209
210 DROP TEMPORARY TABLE IF EXISTS tmp_seats;
211
212 CREATE TEMPORARY TABLE tmp_seats(
213 seance_seat_id INT(10),
214 datetime_booking_max datetime,
215 quota_id INT(10),
216 barcode varchar(24),
217 reserve_chain_id INT(10),
218 ticket_row_number INT(10),
219 ticket_num VARCHAR(16),
220
221 schema_seat_id INT(10),
222 seance_nid INT(10),
223 waybill_nid INT(10),
224 waybill_seat_id INT(10),
225 seance_seat_price INT(10),
226 ticket_tax_mode TINYINT(1),
227 wb_service_payment_percent INT(10),
228
229 ticket_fee INT(11)
230 ) ENGINE = MEMORY;
231
232 SET @ticket_row_number = 0;
233
234 INSERT INTO tmp_seats(
235 seance_seat_id, datetime_booking_max, quota_id, ticket_row_n umber,
236 schema_seat_id, seance_nid, waybill_nid, waybill_seat_id,
237 barcode, seance_seat_price, ticket_tax_mode, wb_service_paym ent_percent
238 )
239 SELECT
240 ss.id, s.datetime_booking_max, ss.quota_id, (@ticket_row_num ber:=@ticket_row_number + 1),
241 ss.schema_seats_id, ss.event_seance_nid, ws.waybill_nid, ss. add_waybill_seats_id,
242 wsb.barcode, ss.cost, IFNULL(ev_s.tax_mode, e.field_tax_mode _value),
243 ctw.field_service_payment_value
244 FROM seance_seats AS ss
245 INNER JOIN content_type_event_seance AS s ON s.nid = ss.event_se ance_nid
246 INNER JOIN content_type_event AS e ON e.nid = s.event_nid
247 LEFT JOIN event_sector AS ev_s ON ev_s.event_nid = e.nid
248 INNER JOIN waybill_seats AS ws ON ws.id = ss.add_waybill_seats_i d
249 INNER JOIN content_type_waybill AS ctw on ws.waybill_nid = ctw.n id
250 LEFT JOIN waybill_seats_barcode AS wsb ON wsb.waybill_seat_id = ws.id
251 WHERE ss.sid = v_sid AND ss.status = 20;
252
253 SELECT ROW_COUNT() INTO v_seats_count;
254
255 IF v_seats_count <= 0
256 THEN
257 SIGNAL SQLSTATE '45001';
258 END IF;
259
260 IF v_seats_count < 100
261 THEN
262 SET v_ticket_num_pad_amount = 2;
263 ELSE
264 SET v_ticket_num_pad_amount = CEIL(LOG10(v_seats_count + 1)) ;
265 END IF;
266
267 SET v_sc = v_seats_count;
268
269 WHILE (v_sc > 0)
270 DO
271 SELECT quota_id INTO v_quota_id
272 FROM tmp_seats WHERE reserve_chain_id IS NULL LIMIT 1;
273
274 SET v_reserve_chain_id = NULL;
275 SET v_reserve_chain_id = iframe_calc_reserve_chain_id(v_ifra me_nid, v_web_agent_uid, v_quota_id);
276
277 IF (v_reserve_chain_id IS NULL)
278 THEN
279 SELECT seance_seat_id INTO v_error_seance_seat_id
280 FROM tmp_seats
281 WHERE quota_id = v_quota_id
282 LIMIT 1;
283
284 SET v_err_msg = CONCAT('Reserve chain id could not be fo und for the seance seat ', CONVERT(v_error_seance_seat_id, char));
285 SIGNAL SQLSTATE '45005' SET MESSAGE_TEXT = v_err_msg;
286 END IF;
287
288 UPDATE tmp_seats
289 SET reserve_chain_id = v_reserve_chain_id
290 WHERE quota_id = v_quota_id;
291
292 SELECT ROW_COUNT() INTO v_rc;
293
294 SET v_sc = v_sc - v_rc;
295 END WHILE;
296
297 SELECT
298 UNIX_TIMESTAMP(MIN(datetime_booking_max))
299 INTO v_seance_max_booking
300 FROM tmp_seats;
301
302 SELECT
303 cti.field_target_finance_rules_value, cti.field_target_finan ce_value, tc.exchange_etickets
304 INTO v_iframe_fin_rules, v_iframe_fin_value, v_exchange_status
305 FROM content_type_iframe AS cti
306 INNER JOIN tp_cabinets AS tc ON tc.cabinet_uid = cti.field_web_a gent_uid
307 WHERE cti.nid = v_iframe_nid;
308
309 SELECT
310 v_now_timestamp + order_timeout * 60
311 INTO v_delivery_max_booking
312 FROM logical_delivery_type_payment_type
313 WHERE ldt_id = v_ld_id AND payment_type_id = v_payment;
314
315 SELECT minimum_booking_service
316 INTO v_pt_minimum_service_percent
317 FROM payment_types
318 WHERE payment_type_id = v_payment;
319
320 SELECT
321 IF(cab.can_webagent_accept_payments AND tcpt.cabinet_uid IS NOT NULL, cab.ofd_fee_nds, dir.ofd_fee_nds)
322 INTO v_ticket_fee_tax_mode
323 FROM tp_cabinets AS cab
324 INNER JOIN tp_cabinets AS dir ON cab.direction_id = dir.cabinet_ uid
325 LEFT JOIN tp_cabinets_payment_types AS tcpt on cab.cabinet_uid = tcpt.cabinet_uid
326 WHERE cab.cabinet_uid = v_web_agent_uid;
327
328 SET v_order_num = iframe_generate_order_number();
329
330 UPDATE tmp_seats SET
331 barcode = IF(v_exchange_status = 0, iframe_generate_barcode( ), barcode),
332 ticket_num = CONCAT(v_order_num, LPAD(CONVERT(ticket_row_num ber, CHAR), v_ticket_num_pad_amount, '0')),
333 ticket_fee = iframe_calc_ticket_fee(wb_service_payment_perce nt, v_pt_minimum_service_percent, v_iframe_fin_rules, v_iframe_fin_value, seance _seat_price);
334
335 IF v_prome_code_id IS NULL
336 THEN
337 SET v_promocode_max_usage = NULL;
338 ELSE
339 SELECT max_usage INTO v_promocode_max_usage
340 FROM tp_promo_codes
341 WHERE
342 prcid = v_prome_code_id AND
343 iframe_nid = v_iframe_nid AND
344 (start IS NULL OR start < v_now_datetime) AND
345 expiration > v_now_datetime;
346
347 SELECT ROW_COUNT() INTO v_rc;
348
349 IF v_rc <> 1
350 THEN
351 SIGNAL SQLSTATE '45002';
352 END IF;
353 END IF;
354
355 SET v_deadline_datetime = FROM_UNIXTIME(IF(v_seance_max_booking > v_delivery_max_booking, v_delivery_max_booking, v_seance_max_booking));
356
357 START TRANSACTION;
358
359 INSERT INTO content_type_order (num, created_uid, ip_address, de livery_cost, created_at,
360 deadline_datetime, status, origi n_type, iframe_nid, promocode_id,
361 delivery_type, payment_type,
362 client_name, client_phone, clien t_email,
363 utm_campaign, utm_source)
364 VALUES (v_order_num, NULL, v_ip, 0, v_now_datetime,
365 v_deadline_datetime,
366 'booked', 'site', v_iframe_nid, v_prome_code_id,
367 v_delivery, v_payment,
368 v_fio, v_phone, v_email,
369 v_utm_campaign, v_utm_source);
370
371 SELECT LAST_INSERT_ID() INTO v_order_nid;
372
373 IF v_promocode_max_usage = 1
374 THEN
375 IF EXISTS(
376 SELECT 1 FROM content_type_order AS o WHERE o.promocode_ id = v_prome_code_id AND o.status != 'rejected' AND o.nid <> v_order_nid LIMIT 1
377 )
378 THEN
379 ROLLBACK;
380
381 SIGNAL SQLSTATE '45003';
382 END IF;
383 ELSEIF v_promocode_max_usage IS NOT NULL
384 THEN
385 SELECT COUNT(o.nid) INTO v_promocode_current_usage
386 FROM content_type_order AS o
387 WHERE o.promocode_id = v_prome_code_id AND o.status != 'reje cted';
388
389 IF v_promocode_current_usage > v_promocode_max_usage
390 THEN
391 ROLLBACK;
392
393 SIGNAL SQLSTATE '45003';
394 END IF;
395 END IF;
396
397 INSERT INTO content_type_ticket(
398 num,
399 created_at,
400 created_uid,
401 waybill_seat_id,
402 barcode,
403 service_fee_amount,
404 cost,
405 discount_amount,
406 order_nid,
407 seance_seat_id,
408 reserve_chain_id,
409 refund_amount,
410 seance_nid,
411 waybill_nid,
412 schema_seat_id,
413 tax_mode,
414 payment_tax_amount,
415 service_fee_tax_mode,
416 service_fee_tax_amount
417 )
418 SELECT
419 ticket_num,
420 v_now_datetime,
421 null,
422 waybill_seat_id,
423 barcode,
424 ticket_fee,
425 seance_seat_price,
426 0,
427 v_order_nid,
428 seance_seat_id,
429 reserve_chain_id,
430 0,
431 seance_nid,
432 waybill_nid,
433 schema_seat_id,
434 ticket_tax_mode,
435 iframe_calc_nds(seance_seat_price, ticket_tax_mode),
436 v_ticket_fee_tax_mode,
437 iframe_calc_nds(ticket_fee, v_ticket_fee_tax_mode)
438 FROM tmp_seats;
439
440 -- noinspection SqlWithoutWhere
441 UPDATE tmp_seats AS s
442 INNER JOIN seance_seats AS ses ON ses.id = s.seance_seat_id AND ses.sid = v_sid AND ses.status = 20
443 INNER JOIN content_type_ticket AS t ON t.num = s.ticket_num
444 SET ses.ticket_nid = t.nid, ses.sid = NULL, ses.sid_deadline_dat etime = NULL;
445
446 SELECT ROW_COUNT() INTO v_rc;
447
448 IF v_rc <> v_seats_count
449 THEN
450 ROLLBACK;
451
452 SIGNAL SQLSTATE '45004';
453 END IF;
454
455 COMMIT;
456
457 DROP TEMPORARY TABLE tmp_seats;
458 SELECT v_order_nid AS nid, v_order_num AS num, v_deadline_dateti me as deadline_datetime;
459 END
460DROP PROCEDURE IF EXISTS iframe_order_get_prepay_info
461
462 CREATE DEFINER = definer@localhost PROCEDURE iframe_order_get_prepay_info (IN `v_order_num` VARCHAR(16))
463 SQL SECURITY DEFINER
464 NOT DETERMINISTIC
465 CONTAINS SQL
466 BEGIN
467 DECLARE v_uid INT(10) DEFAULT NULL;
468 DECLARE v_login VARCHAR(255) DEFAULT NULL;
469 DECLARE v_password TEXT DEFAULT NULL;
470 DECLARE v_shop_id VARCHAR(255) DEFAULT NULL;
471 DECLARE v_ofd TINYINT(1) DEFAULT NULL;
472 DECLARE v_apple_pay_merchant_id VARCHAR(80) DEFAULT NULL;
473 DECLARE v_apple_pay_merchant_name VARCHAR(80) DEFAULT NULL;
474 DECLARE v_merchant_name VARCHAR(80) DEFAULT NULL;
475 DECLARE v_current_transaction VARCHAR(64) DEFAULT NULL;
476
477 DECLARE v_order_nid INT(10) DEFAULT NULL;
478 DECLARE v_iframe_nid INT(10) DEFAULT NULL;
479 DECLARE v_status ENUM('payed','rejected','issued','invitation',' quota_return','booked','in_progress') DEFAULT NULL;
480 DECLARE v_payment_type VARCHAR(32) DEFAULT NULL;
481 DECLARE v_deadline_datetime DATETIME DEFAULT NULL;
482 DECLARE v_client_email VARCHAR(255) DEFAULT NULL;
483 DECLARE v_fixed_order_number VARCHAR(50) DEFAULT NULL;
484
485 DECLARE v_total_cost INT(11) DEFAULT NULL;
486 DECLARE v_service_fee_cost INT(11) DEFAULT NULL;
487 DECLARE v_merches_cost INT(11) DEFAULT NULL;
488
489 DECLARE v_payee_uid INT(10) DEFAULT NULL;
490
491 DECLARE v_cabinet_id INT(10) DEFAULT NULL;
492 DECLARE v_accept_payments TINYINT(1) DEFAULT NULL;
493 DECLARE v_direction_id INT(10) DEFAULT NULL;
494
495 SELECT
496 nid,
497 iframe_nid,
498 status,
499 payment_type,
500 deadline_datetime,
501 client_email
502 INTO
503 v_order_nid,
504 v_iframe_nid,
505 v_status,
506 v_payment_type,
507 v_deadline_datetime,
508 v_client_email
509 FROM content_type_order WHERE num = v_order_num;
510
511 SET v_fixed_order_number = v_order_num;
512
513 IF EXISTS(SELECT 1 FROM sbcard_order_data WHERE active IS NULL A ND nid = v_order_nid LIMIT 1)
514 THEN
515 SET v_fixed_order_number = CONCAT(v_fixed_order_number, '.', CONVERT(UNIX_TIMESTAMP(), char));
516 END IF;
517
518 SELECT
519 SUM(t.cost - t.discount_amount) + SUM(t.service_fee_amount)/ 100,
520 SUM(t.service_fee_amount)/100
521 INTO v_total_cost, v_service_fee_cost
522 FROM content_type_ticket AS t
523 WHERE t.order_nid = v_order_nid AND t.seance_seat_id IS NOT NULL ;
524
525 SELECT IFNULL(SUM(cost), 0) INTO v_merches_cost
526 FROM merch_sell WHERE order_nid = v_order_nid;
527
528 SET v_total_cost = v_total_cost + v_merches_cost;
529
530 SET v_payee_uid = null;
531
532 IF (v_payment_type = 'sberbank_card')
533 THEN
534 SELECT cabinet_uid, order_id INTO v_payee_uid, v_current_tra nsaction
535 FROM sbcard_order_data
536 WHERE nid = v_order_nid AND active = 1;
537 END IF;
538
539 IF (v_payee_uid IS NOT NULL)
540 THEN
541 CALL iframe_payment_account_get(v_payment_type, v_payee_uid, v_uid, v_login, v_password, v_shop_id, v_ofd, v_apple_pay_merchant_id, v_apple_ pay_merchant_name, v_merchant_name);
542 ELSE
543 SET v_cabinet_id = NULL;
544 SET v_accept_payments = NULL;
545 SET v_direction_id = NULL;
546
547 SELECT
548 cti.field_web_agent_uid,
549 tc.can_webagent_accept_payments,
550 CASE WHEN tc.is_direction THEN NULL ELSE tc.direction_id END
551 INTO
552 v_cabinet_id,
553 v_accept_payments,
554 v_direction_id
555 FROM content_type_iframe AS cti
556 INNER JOIN tp_cabinets AS tc on cti.field_web_agent_uid = tc .cabinet_uid
557 WHERE cti.nid = v_iframe_nid;
558
559 IF (v_accept_payments = 1)
560 THEN
561 CALL iframe_payment_account_get(v_payment_type, v_cabine t_id, v_uid, v_login, v_password, v_shop_id, v_ofd, v_apple_pay_merchant_id, v_a pple_pay_merchant_name, v_merchant_name);
562 END IF;
563
564 IF (v_uid IS NULL) AND (v_direction_id IS NOT NULL)
565 THEN
566 CALL iframe_payment_account_get(v_payment_type, v_direct ion_id, v_uid, v_login, v_password, v_shop_id, v_ofd, v_apple_pay_merchant_id, v _apple_pay_merchant_name, v_merchant_name);
567 END IF;
568 END IF;
569
570
571 SELECT
572 v_order_nid AS nid,
573 v_order_num AS num,
574 v_status AS status,
575 v_payment_type AS payment_type,
576 v_total_cost AS total_cost,
577 v_service_fee_cost AS service_fee_cost,
578 v_merches_cost AS merches_cost,
579 v_deadline_datetime AS deadline_datetime,
580 v_client_email AS client_email,
581 v_fixed_order_number AS order_number,
582 v_current_transaction AS current_trx_id,
583
584 v_uid AS payment_account_uid,
585 v_login AS payment_account_login,
586 v_password AS payment_account_password,
587 v_shop_id AS payment_account_shop_id,
588 v_ofd AS payment_account_ofd,
589 v_apple_pay_merchant_id AS payment_account_apple_pay_merchan t_id,
590 v_apple_pay_merchant_name AS payment_account_apple_pay_merch ant_name,
591 v_merchant_name AS payment_account_merchant_name;
592 END
593DROP PROCEDURE IF EXISTS iframe_order_get_sberbank_transaction_info
594
595 CREATE DEFINER = definer@localhost PROCEDURE iframe_order_get_sberbank_tra nsaction_info(IN `v_order_num` varchar(16))
596 SQL SECURITY DEFINER
597 NOT DETERMINISTIC
598 CONTAINS SQL
599 BEGIN
600 DECLARE o_uid INT(10) DEFAULT NULL;
601 DECLARE o_login VARCHAR(255) DEFAULT NULL;
602 DECLARE o_password TEXT DEFAULT NULL;
603 DECLARE o_shop_id VARCHAR(255) DEFAULT NULL;
604 DECLARE o_ofd TINYINT(1) DEFAULT NULL;
605 DECLARE o_apple_pay_merchant_id VARCHAR(80) DEFAULT NULL;
606 DECLARE o_apple_pay_merchant_name VARCHAR(80) DEFAULT NULL;
607 DECLARE o_merchant_name VARCHAR(80) DEFAULT NULL;
608
609 DECLARE v_payment_type VARCHAR(32) DEFAULT NULL;
610 DECLARE v_order_nid INT(10) DEFAULT NULL;
611 DECLARE v_status ENUM('payed','rejected','issued','invitation',' quota_return','booked','in_progress') DEFAULT NULL;
612
613 DECLARE v_sberbank_order_id VARCHAR(64) DEFAULT NULL;
614 DECLARE v_payee_uid INT(10) DEFAULT NULL;
615
616
617 SET v_payment_type = 'sberbank_card';
618
619 SELECT nid, status
620 INTO v_order_nid, v_status
621 FROM content_type_order
622 WHERE num = v_order_num AND payment_type = v_payment_type;
623
624 SELECT order_id, cabinet_uid
625 INTO v_sberbank_order_id, v_payee_uid
626 FROM sbcard_order_data
627 WHERE nid = v_order_nid AND active = 1;
628
629 CALL iframe_payment_account_get(v_payment_type, v_payee_uid, o_u id, o_login, o_password, o_shop_id, o_ofd, o_apple_pay_merchant_id, o_apple_pay_ merchant_name, o_merchant_name);
630
631 SELECT
632 v_order_nid as nid,
633 v_status as status,
634 v_sberbank_order_id AS transactionId,
635 o_uid AS paymentAccountUid,
636 o_login AS paymentAccountLogin,
637 o_password AS paymentAccountPassword,
638 o_shop_id AS paymentAccountShopId,
639 o_ofd AS paymentAccountOfd,
640 o_apple_pay_merchant_id AS paymentAccountApplePayMerchantId,
641 o_apple_pay_merchant_name AS paymentAccountApplePayMerchantN ame,
642 o_merchant_name AS paymentAccountMerchantName;
643 END
644DROP PROCEDURE IF EXISTS iframe_order_pay_online
645
646 CREATE DEFINER = definer@localhost PROCEDURE iframe_order_pay_online (IN ` v_order_nid` int(10), IN `v_approval_code` varchar(6), IN `v_payee_uid` int(10), IN `v_order_amount` int(10), IN `v_card_pan` varchar(20))
647 SQL SECURITY DEFINER
648 NOT DETERMINISTIC
649 CONTAINS SQL
650 BEGIN
651 DECLARE v_sql_state CHAR(5) DEFAULT '00000';
652 DECLARE v_sql_error_message TEXT DEFAULT NULL;
653
654 DECLARE v_now_timestamp INT(10) DEFAULT NULL;
655 DECLARE v_now_datetime datetime DEFAULT NULL;
656
657 DECLARE v_is_kpop TINYINT(1) DEFAULT NULL;
658 DECLARE v_iframe_nid INT(10) DEFAULT NULL;
659 DECLARE v_payment_through_uid INT(10) DEFAULT NULL;
660 DECLARE v_payment_type VARCHAR(32) DEFAULT NULL;
661 DECLARE v_delivery_cost INT(11) DEFAULT NULL;
662
663 DECLARE v_tax_system TINYINT(1) DEFAULT NULL;
664 DECLARE v_extract_service_fee TINYINT(11) DEFAULT NULL;
665
666 DECLARE v_queue_id INT(10) DEFAULT NULL;
667 DECLARE v_last_queue_id INT(10) DEFAULT NULL;
668
669 DECLARE v_row_count INT(10) DEFAULT NULL;
670 DECLARE v_payment_chain_id INT(10) DEFAULT NULL;
671
672 DECLARE v_tickets_cost INT(11) DEFAULT NULL;
673 DECLARE v_service_fee_amount INT(11) DEFAULT NULL;
674 DECLARE v_merches_cost INT(11) DEFAULT NULL;
675 DECLARE v_order_cost INT(11) DEFAULT NULL;
676
677 DECLARE EXIT HANDLER FOR SQLEXCEPTION
678 BEGIN
679 GET DIAGNOSTICS CONDITION 1
680 v_sql_state = RETURNED_SQLSTATE,
681 v_sql_error_message = MESSAGE_TEXT;
682
683 ROLLBACK;
684
685 IF v_sql_state = '45001' THEN
686 SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'Bad status o f the order';
687 ELSEIF v_sql_state = '45002' THEN
688 SIGNAL SQLSTATE '45002' SET MESSAGE_TEXT = 'Incorrect or der cost specified';
689 ELSEIF v_sql_state = '45101' THEN
690 SIGNAL SQLSTATE '45101' SET MESSAGE_TEXT = v_sql_error_m essage;
691 ELSE
692 SIGNAL SQLSTATE '45009' SET MESSAGE_TEXT = v_sql_error_m essage;
693 END IF;
694 END;
695
696
697 SET v_now_timestamp = UNIX_TIMESTAMP();
698 SET v_now_datetime = FROM_UNIXTIME(v_now_timestamp);
699
700 SELECT
701 cti.is_kpop,
702 cti.nid,
703 IF(cti.field_epayments_through_owner_value, cti.field_web_ag ent_uid, NULL),
704 cto.payment_type,
705 IFNULL(cto.delivery_cost, 0)
706 INTO v_is_kpop, v_iframe_nid, v_payment_through_uid, v_payment_t ype, v_delivery_cost
707 FROM content_type_order AS cto
708 INNER JOIN content_type_iframe AS cti on cti.nid = cto.iframe_ni d
709 WHERE cto.nid = v_order_nid;
710
711 IF (v_payee_uid IS NULL)
712 THEN
713 SELECT
714 CASE
715 WHEN tc.can_webagent_accept_payments AND pt_cab.cabi net_uid IS NOT NULL THEN pt_cab.cabinet_uid
716 WHEN td.is_direction AND pt_dir.cabinet_uid IS NOT N ULL THEN pt_dir.cabinet_uid
717 ELSE NULL
718 END INTO v_payee_uid
719 FROM content_type_iframe AS cti
720 INNER JOIN tp_cabinets AS tc ON cti.field_web_agent_uid = tc .cabinet_uid
721 INNER JOIN tp_cabinets AS td ON tc.direction_id = td.cabinet _uid
722 LEFT JOIN tp_cabinets_payment_types AS pt_cab ON tc.cabinet_ uid = pt_cab.cabinet_uid AND pt_cab.payment_type_id = v_payment_type
723 LEFT JOIN tp_cabinets_payment_types AS pt_dir ON td.cabinet_ uid = pt_dir.cabinet_uid AND pt_dir.payment_type_id = v_payment_type
724 WHERE cti.nid = v_iframe_nid;
725 END IF;
726
727 DROP TEMPORARY TABLE IF EXISTS tmp_queues;
728
729 CREATE TEMPORARY TABLE tmp_queues
730 (
731 seance_nid INT(10),
732 sector_nid INT(10),
733 queue_id INT(10),
734 PRIMARY KEY (seance_nid, sector_nid)
735 ) ENGINE = MEMORY;
736
737 DROP TEMPORARY TABLE IF EXISTS tmp_ticket_queues;
738
739 CREATE TEMPORARY TABLE tmp_ticket_queues
740 (
741 ticket_nid INT(10),
742 queue_id INT(10),
743 number INT(10),
744 PRIMARY KEY(ticket_nid)
745 ) ENGINE = MEMORY;
746
747 CALL iframe_kpop_queues_fill();
748
749 INSERT INTO tmp_ticket_queues(ticket_nid, queue_id)
750 SELECT ctt.nid, tq.queue_id
751 FROM content_type_ticket AS ctt
752 INNER JOIN schema_seats AS shs ON shs.id = ctt.schema_seat_id
753 INNER JOIN tmp_queues AS tq ON tq.seance_nid = ctt.seance_nid AN D tq.sector_nid = shs.place_schema_sector_nid
754 WHERE ctt.order_nid = v_order_nid AND ctt.seance_seat_id IS NOT NULL;
755
756 DROP TEMPORARY TABLE tmp_queues;
757
758
759 SELECT
760 tc.tax_system,
761 aoc.extract_service_fee
762 INTO v_tax_system, v_extract_service_fee
763 FROM tp_cabinets AS tc
764 INNER JOIN atol_online_config AS aoc on tc.cabinet_uid = aoc.uid
765 WHERE tc.cabinet_uid = v_payee_uid;
766
767
768 START TRANSACTION;
769
770 SET v_last_queue_id = 0;
771
772 queues_loop: WHILE(TRUE)
773 DO
774 SET v_queue_id = null;
775
776 SELECT queue_id INTO v_queue_id
777 FROM tmp_ticket_queues
778 WHERE queue_id > v_last_queue_id
779 ORDER BY queue_id
780 LIMIT 1;
781
782 IF (v_queue_id IS NULL)
783 THEN
784 LEAVE queues_loop;
785 END IF;
786
787 SET v_last_queue_id = v_queue_id;
788 SET @korean_queue_number = NULL;
789
790 SELECT number
791 INTO @korean_queue_number
792 FROM korean_queue_numbering
793 WHERE id = v_queue_id FOR UPDATE;
794
795 IF @korean_queue_number IS NULL THEN
796 SET @korean_queue_number = 0;
797 INSERT INTO korean_queue_numbering(id, number) VALUES (v _queue_id, @korean_queue_number);
798 END IF;
799
800 UPDATE tmp_ticket_queues SET
801 number = @korean_queue_number := @korean_queue_number + 1
802 WHERE queue_id = v_queue_id;
803 END WHILE queues_loop;
804
805 INSERT INTO korean_queue_ticket(ticket_nid, queue_id, number)
806 SELECT ticket_nid, queue_id, number
807 FROM tmp_ticket_queues;
808
809 -- noinspection SqlWithoutWhere
810 UPDATE korean_queue_numbering AS kqn
811 INNER JOIN (
812 SELECT queue_id, MAX(number) AS number
813 FROM tmp_ticket_queues
814 GROUP BY queue_id
815 ) AS t ON t.queue_id = kqn.id
816 SET kqn.number = t.number;
817
818
819 UPDATE content_type_order SET
820 payment_datetime = v_now_datetime,
821 payment_recipient_uid = NULL,
822 status = 'payed',
823 payment_place = NULL,
824 print_datetime = IF(v_is_kpop = 1, NULL, v_now_dateti me),
825 approval_code = v_approval_code
826 WHERE nid = v_order_nid AND status = 'booked';
827
828 SELECT ROW_COUNT() INTO v_row_count;
829
830 IF v_row_count <> 1
831 THEN
832 ROLLBACK;
833 SIGNAL SQLSTATE '45001';
834 END IF;
835
836
837 UPDATE seance_seats
838 INNER JOIN content_type_ticket AS ctt on seance_seats.id = ctt.s eance_seat_id
839 SET seance_seats.status = 30,
840 ctt.payment_datetime = v_now_datetime,
841 ctt.payment_chain_id = iframe_calc_payment_chain_id(ctt.sean ce_seat_id, v_payee_uid, v_payment_through_uid),
842 ctt.is_eticket = 1
843 WHERE ctt.order_nid = v_order_nid;
844
845 INSERT INTO skd_transaction_log (
846 created,
847 place_id,
848 cost,
849 sector_nid,
850 row,
851 seat,
852 type,
853 seance_nid,
854 barcode,
855 comment,
856 ticket_nid,
857 ticket_media
858 )
859 SELECT
860 v_now_timestamp,
861 ctt.schema_seat_id,
862 ctt.cost - ctt.discount_amount,
863 shs.place_schema_sector_nid,
864 IFNULL(shs.row, ''),
865 IFNULL(shs.seat, ''),
866 1 AS type,
867 ctt.seance_nid,
868 ctt.barcode,
869 'ѕродажа' AS comment,
870 ctt.nid,
871 IF(o.origin_type = 'gate', 0, IF(ctt.is_eticket = 1, 2, 1))
872 FROM content_type_ticket AS ctt
873 INNER JOIN schema_seats AS shs ON shs.id = ctt.schema_seat_id
874 INNER JOIN content_type_order AS o ON o.nid = ctt.order_nid
875 WHERE ctt.order_nid = v_order_nid AND ctt.seance_seat_id IS NOT NULL;
876
877 UPDATE sbcard_order_data SET
878 card_pan = v_card_pan
879 WHERE nid = v_order_nid AND active = 1;
880
881 SELECT payment_chain_id
882 INTO v_payment_chain_id
883 FROM content_type_ticket
884 WHERE order_nid = v_order_nid AND seance_seat_id IS NOT NULL AND payment_chain_id IS NOT NULL
885 LIMIT 1;
886
887 UPDATE merch_sell SET
888 status = 'payed',
889 payment_chain_id = v_payment_chain_id
890 WHERE order_nid = v_order_nid;
891
892
893 SELECT IFNULL(SUM(cost), 0)
894 INTO v_merches_cost
895 FROM merch_sell
896 WHERE order_nid = v_order_nid;
897
898 SELECT
899 IFNULL(SUM(t.cost - t.discount_amount), 0),
900 IFNULL(SUM(t.service_fee_amount), 0)
901 INTO v_tickets_cost, v_service_fee_amount
902 FROM content_type_ticket AS t
903 WHERE t.order_nid = v_order_nid AND t.seance_seat_id IS NOT NULL ;
904
905
906 SET v_order_cost = v_tickets_cost * 100 + v_service_fee_amount + v_delivery_cost * 100 + v_merches_cost * 100;
907
908 IF v_order_amount IS NOT NULL AND v_order_cost <> v_order_amount
909 THEN
910 ROLLBACK;
911 SIGNAL SQLSTATE '45002';
912 END IF;
913
914 IF v_tax_system IS NOT NULL AND FIND_IN_SET(v_payment_type, 'sbe rbank_card,cloud_payments,uniteller,uniteller_qiwi,uniteller_wm,uniteller_ya') T HEN
915 IF (v_extract_service_fee)
916 THEN
917 CALL iframe_atol_create_doc(v_payee_uid, v_order_nid, v_ tax_system, 'sell', TRUE, 'order', v_now_datetime);
918 IF v_service_fee_amount > 0
919 THEN
920 CALL iframe_atol_create_doc(v_payee_uid, v_order_nid , v_tax_system, 'sell', TRUE, 'fee', v_now_datetime);
921 END IF;
922 ELSE
923 CALL iframe_atol_create_doc(v_payee_uid, v_order_nid, v_ tax_system, 'sell', TRUE, 'all', v_now_datetime);
924 END IF;
925 END IF;
926
927 COMMIT;
928
929 DROP TEMPORARY TABLE tmp_ticket_queues;
930 END
931DROP PROCEDURE IF EXISTS iframe_payment_account_get
932
933 CREATE DEFINER = definer@localhost PROCEDURE iframe_payment_account_get (I N `v_payment_type` varchar(32), IN `v_cabinet_uid` int(10), OUT `v_uid` int(10), OUT `v_login` varchar(255), OUT `v_password` text, OUT `v_shop_id` varchar(255) , OUT `v_ofd` tinyint(1), OUT `v_apple_pay_merchant_id` varchar(80), OUT `v_appl e_pay_merchant_name` varchar(80), OUT `v_merchant_name` varchar(80))
934 SQL SECURITY DEFINER
935 NOT DETERMINISTIC
936 CONTAINS SQL
937 BEGIN
938 DECLARE v_normalized_payment_type VARCHAR(32) DEFAULT NULL;
939
940 SET v_normalized_payment_type = NULL;
941
942 IF (v_payment_type IN ('uniteller', 'uniteller_qiwi', 'uniteller _wm', 'uniteller_ya'))
943 THEN
944 SET v_normalized_payment_type = 'uniteller';
945 ELSEIF v_payment_type IN ('sberbank_card', 'studio_best2pay', 'c loud_payments')
946 THEN
947 SET v_normalized_payment_type = v_payment_type;
948 END IF;
949
950 IF v_normalized_payment_type IS NOT NULL
951 THEN
952 SELECT
953 v_cabinet_uid,
954 TRIM(login),
955 TRIM(password),
956 TRIM(shop_id),
957 ofd,
958 apple_pay_merchant_id,
959 apple_pay_merchant_name,
960 merchant_name
961 INTO
962 v_uid,
963 v_login,
964 v_password,
965 v_shop_id,
966 v_ofd,
967 v_apple_pay_merchant_id,
968 v_apple_pay_merchant_name,
969 v_merchant_name
970 FROM tp_cabinets_payment_types
971 WHERE cabinet_uid = v_cabinet_uid AND payment_type_id = v_no rmalized_payment_type;
972 END IF;
973 END
974DROP PROCEDURE IF EXISTS iframe_promocode_get
975
976 CREATE DEFINER = definer@localhost PROCEDURE iframe_promocode_get (IN `v_i frame_nid` int(10), IN `v_code` varchar(20))
977 SQL SECURITY DEFINER
978 NOT DETERMINISTIC
979 CONTAINS SQL
980 BEGIN
981 DECLARE v_now DATETIME DEFAULT NULL;
982
983 SET v_now = NOW();
984
985 SELECT prc.prcid
986 FROM tp_promo_codes AS prc
987 WHERE
988 prc.iframe_nid = v_iframe_nid AND
989 prc.code_val = v_code AND
990 (prc.start IS NULL OR prc.start < v_now) AND
991 prc.expiration > v_now AND
992 (prc.max_usage IS NULL OR prc.max_usage > (SELECT COUNT(o.nid) FROM content_type_order AS o WHERE o.promocode_id = prc.prcid AND o.status != ' rejected'));
993 END
994DROP PROCEDURE IF EXISTS iframe_sberbank_transaction_add
995
996 CREATE DEFINER = definer@localhost PROCEDURE iframe_sberbank_transaction_a dd (IN `v_order_nid` int(10), IN `v_sberbank_order_id` varchar(64), IN `v_cabine t_uid` int(10), IN `v_active` tinyint(1))
997 SQL SECURITY DEFINER
998 NOT DETERMINISTIC
999 CONTAINS SQL
1000 BEGIN
1001 DECLARE v_sql_error_message TEXT DEFAULT NULL;
1002
1003 DECLARE EXIT HANDLER FOR SQLEXCEPTION
1004 BEGIN
1005 GET DIAGNOSTICS CONDITION 1
1006 v_sql_error_message = MESSAGE_TEXT;
1007
1008 ROLLBACK;
1009 SIGNAL SQLSTATE '45009' SET MESSAGE_TEXT = v_sql_error_m essage;
1010 END;
1011
1012 START TRANSACTION;
1013
1014 INSERT INTO sbcard_order_data (nid, order_id, cabinet_uid, activ e)
1015 VALUES (v_order_nid, v_sberbank_order_id, v_cabinet_uid, v_activ e);
1016
1017 COMMIT;
1018 END
1019
1020DROP PROCEDURE IF EXISTS iframe_schemes_get
1021
1022 CREATE DEFINER = definer@localhost PROCEDURE iframe_schemes_get (IN `v_sch eme_nid` int(10))
1023 SQL SECURITY DEFINER
1024 NOT DETERMINISTIC
1025 CONTAINS SQL
1026 BEGIN
1027 DECLARE v_view_mode TINYINT(4) DEFAULT NULL;
1028 DECLARE v_scheme LONGTEXT DEFAULT NULL;
1029
1030 SELECT
1031 ctps.field_widget_view_value,
1032 CASE
1033 WHEN ctps.field_widget_view_value = 2 THEN ctps.field_se ctors_schema_value
1034 WHEN ctps.field_widget_view_value = 7 THEN ctps.field_sv g_schema_value
1035 ELSE ''
1036 END
1037 INTO v_view_mode, v_scheme
1038 FROM content_type_place_schema AS ctps
1039 WHERE ctps.nid = v_scheme_nid;
1040
1041 SELECT v_view_mode AS viewMode, v_scheme AS scheme;
1042
1043 SELECT
1044 pss.nid,
1045 IFNULL(ntr.translation, n.title) AS title
1046 FROM content_type_place_schema_sector AS pss
1047 INNER JOIN node AS n ON n.nid = pss.nid
1048 LEFT JOIN node_translation AS ntr ON ntr.nid = n.nid AND ntr.fie ld = 'title' AND ntr.locale = 'ru_RU'
1049 WHERE pss.field_rel_place_schema_nid = v_scheme_nid;
1050 END
1051DROP PROCEDURE IF EXISTS iframe_seances_min_max_cost_get
1052
1053 CREATE DEFINER = definer@localhost PROCEDURE iframe_seances_min_max_cost_g et (IN `v_iframe_nid` int(10), IN `v_web_agent_uid` int(10), IN `v_events_filter ` varchar(120))
1054 SQL SECURITY DEFINER
1055 NOT DETERMINISTIC
1056 CONTAINS SQL
1057 BEGIN
1058 DECLARE v_now DATETIME DEFAULT NULL;
1059 DECLARE v_aft_now DATETIME DEFAULT NULL;
1060
1061 SET v_now = NOW();
1062 SET v_aft_now = DATE_ADD(v_now, INTERVAL 1 MINUTE);
1063
1064 DROP TEMPORARY TABLE IF EXISTS tmp_nids;
1065
1066 CREATE TEMPORARY TABLE tmp_nids(seance_nid INT(10), event_nid IN T(10), quota_id INT(10));
1067
1068 CALL iframe_calc_seances_events_nids(v_iframe_nid, v_web_agent_u id, v_events_filter);
1069
1070 DELETE t
1071 FROM tmp_nids AS t
1072 INNER JOIN content_type_event_seance as s ON s.nid = t.seance_ni d
1073 WHERE
1074 s.field_booking_status_value IS NULL OR
1075 s.field_booking_status_value <> 'enable' OR
1076 (s.datetime_sales_start IS NOT NULL AND s.datetime_sales_sta rt > v_aft_now) OR
1077 (s.datetime_sales_close IS NOT NULL AND s.datetime_sales_clo se < v_now) OR
1078 (s.datetime_booking_close IS NOT NULL AND s.datetime_booking _close < v_now);
1079
1080 SELECT
1081 ses.event_seance_nid AS seanceId,
1082 MIN(ses.cost) AS costMin,
1083 MAX(ses.cost) AS costMax,
1084 COUNT(1) AS cnt
1085 FROM tmp_nids AS t
1086 INNER JOIN seance_seats ses ON
1087 ses.quota_id = t.quota_id AND
1088 ses.event_seance_nid = t.seance_nid AND
1089 ses.status = 10 AND
1090 ses.cost > 0
1091 GROUP BY t.seance_nid;
1092 END
1093DROP PROCEDURE IF EXISTS iframe_sectors_prices_get
1094
1095 CREATE DEFINER = definer@localhost PROCEDURE iframe_sectors_prices_get (IN `v_iframe_nid` int(11), IN `v_web_agent_uid` int(11), IN `v_seance_nid` int(11) )
1096 SQL SECURITY DEFINER
1097 NOT DETERMINISTIC
1098 CONTAINS SQL
1099 BEGIN
1100 DECLARE v_now DATETIME DEFAULT NULL;
1101 DECLARE v_aft_now DATETIME DEFAULT NULL;
1102
1103 SET v_now = NOW();
1104 SET v_aft_now = DATE_ADD(v_now, INTERVAL 1 MINUTE);
1105
1106 SELECT
1107 pss.nid AS sectorId,
1108 T.seatsCount,
1109 T.price,
1110 pss.field_sector_number_value AS sectorNumber,
1111 pss.field_with_seats_value AS numbered
1112 FROM (
1113 SELECT
1114 ses.sector_nid,
1115 COUNT(1) AS seatsCount,
1116 ses.cost AS price
1117 FROM seance_seats AS ses
1118 INNER JOIN content_type_event_seance AS s ON s.nid = ses.eve nt_seance_nid
1119 INNER JOIN content_type_event AS ev ON ev.nid = s.event_nid
1120 WHERE
1121 ses.event_seance_nid = v_seance_nid AND
1122 ses.cost != 0 AND
1123 ses.status = 10 AND
1124 ses.quota_id IN (
1125 SELECT seq.id
1126 FROM tp_agents_chains AS ac
1127 INNER JOIN seance_quotas AS seq ON seq.cabinet_uid = ac.start_uid AND seq.offline_agent_id IS NULL AND seq.event_seance_nid = v_sean ce_nid
1128 INNER JOIN seance_quotas_access qa ON
1129 qa.quota_id = seq.id AND (
1130 (qa.access_type = '0') OR
1131 (qa.access_type = '1' AND qa.agent_uid = ac. agent_uid) OR
1132 (qa.access_type = '2' AND qa.agent_uid = v_w eb_agent_uid AND qa.channel IN ('2')) OR
1133 (qa.access_type = '3' AND qa.agent_uid = v_w eb_agent_uid AND qa.point_nid = v_iframe_nid)
1134 )
1135 WHERE ac.finish_uid = v_web_agent_uid AND ac.locked = 0 AND ac.deleted = 0
1136 ) AND
1137 s.datetime_sales_close > v_now AND
1138 s.field_sale_status_value IN ('open', 'pause') AND
1139 s.field_booking_status_value IS NOT NULL AND
1140 s.field_booking_status_value = 'enable' AND
1141 ev.field_event_actual_value = 1 AND
1142 (s.datetime_sales_start IS NULL OR s.datetime_sales_star t < v_aft_now) AND
1143 (s.datetime_booking_close IS NULL OR s.datetime_booking_ close > v_now)
1144
1145 GROUP BY ses.sector_nid, ses.cost
1146 HAVING seatsCount > 0
1147 ) AS T
1148 INNER JOIN content_type_place_schema_sector AS pss ON pss.nid = T.sector_nid;
1149
1150 SELECT
1151 T.id,
1152 T.sector_nid AS sectorId,
1153 T.schema_seats_id AS ssId,
1154 T.price,
1155 schs.row,
1156 schs.seat
1157 FROM (
1158 SELECT
1159 ses.id,
1160 ses.cost AS price,
1161 ses.sector_nid,
1162 ses.schema_seats_id,
1163 ses.event_seance_nid
1164 FROM seance_seats AS ses
1165 WHERE
1166 ses.event_seance_nid = v_seance_nid AND
1167 ses.cost != 0 AND
1168 ses.status = 10 AND
1169 ses.quota_id IN
1170 (
1171 SELECT seq.id
1172 FROM tp_agents_chains AS ac
1173 INNER JOIN seance_quotas AS seq ON seq.cabinet_uid = ac.start_uid AND seq.offline_agent_id IS NULL AND seq.event_seance_nid = v_sean ce_nid
1174 INNER JOIN seance_quotas_access qa ON qa.quota_id = seq.id AND (
1175 (qa.access_type = '0') OR
1176 (qa.access_type = '1' AND qa.agent_uid = ac .agent_uid) OR
1177 (qa.access_type = '2' AND qa.agent_uid = v_ web_agent_uid AND qa.channel IN ('2')) OR
1178 (qa.access_type = '3' AND qa.agent_uid = v_ web_agent_uid AND qa.point_nid = v_iframe_nid)
1179 )
1180 WHERE ac.finish_uid = v_web_agent_uid AND ac.locked = 0 AND ac.deleted = 0
1181 )
1182 ) AS T
1183 INNER JOIN content_type_event_seance AS s ON s.nid = T.event_sea nce_nid
1184 INNER JOIN content_type_event AS ev ON ev.nid = s.event_nid
1185 INNER JOIN content_type_place_schema_sector AS pss ON pss.nid = T.sector_nid
1186 INNER JOIN schema_seats AS schs ON schs.id = T.schema_seats_id
1187 WHERE
1188 pss.field_with_seats_value = 1 AND
1189 s.datetime_sales_close > v_now AND
1190 s.field_sale_status_value IN ('open', 'pause') AND
1191 s.field_booking_status_value IS NOT NULL AND
1192 s.field_booking_status_value = 'enable' AND
1193 ev.field_event_actual_value = 1 AND
1194 (s.datetime_sales_start IS NULL OR s.datetime_sales_start < v_aft_now) AND
1195 (s.datetime_booking_close IS NULL OR s.datetime_booking_clos e > v_now);
1196 END
1197DROP PROCEDURE IF EXISTS iframe_seance_seats_lock_numbered
1198
1199 CREATE DEFINER = definer@localhost PROCEDURE iframe_seance_seats_lock_numb ered (IN `v_sid` varchar(26), IN `v_ttl_seconds` int(10), IN `v_seance_seat_id` int(10), IN `v_max_n_seats` int(10), IN `v_iframe_nid` int(10), IN `v_web_agent_ uid` int(10))
1200 SQL SECURITY DEFINER
1201 NOT DETERMINISTIC
1202 CONTAINS SQL
1203 BEGIN
1204 DECLARE v_sql_state CHAR(5) DEFAULT '00000';
1205 DECLARE v_sql_error_message TEXT DEFAULT NULL;
1206 DECLARE v_now_timestamp INT(10) DEFAULT NULL;
1207 DECLARE v_now_datetime datetime DEFAULT NULL;
1208 DECLARE v_deadline_datetime datetime DEFAULT NULL;
1209
1210
1211 DECLARE v_booking_status VARCHAR(8) DEFAULT NULL;
1212 DECLARE v_datetime_sales_close DATETIME DEFAULT NULL;
1213 DECLARE v_event_actual TINYINT(1) DEFAULT NULL;
1214 DECLARE v_quota_id INT(10) DEFAULT NULL;
1215 DECLARE v_event_seance_nid INT(10) DEFAULT NULL;
1216 DECLARE v_datetime_booking_close DATETIME DEFAULT NULL;
1217 DECLARE v_datetime_sales_start DATETIME DEFAULT NULL;
1218
1219 DECLARE v_row_count INT(10) DEFAULT NULL;
1220
1221
1222 DECLARE EXIT HANDLER FOR SQLEXCEPTION
1223 BEGIN
1224 GET DIAGNOSTICS CONDITION 1
1225 v_sql_state = RETURNED_SQLSTATE,
1226 v_sql_error_message = MESSAGE_TEXT;
1227
1228 ROLLBACK;
1229
1230 IF v_sql_state = '45001' THEN
1231 SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'Too many blo cks';
1232 ELSEIF v_sql_state = '45002' THEN
1233 SIGNAL SQLSTATE '45002' SET MESSAGE_TEXT = 'Not enough t ickets';
1234 ELSEIF v_sql_state = '45003' THEN
1235 SIGNAL SQLSTATE '45003' SET MESSAGE_TEXT = 'Booking is n ot allowed at the moment';
1236 ELSEIF v_sql_state = '45004' THEN
1237 SIGNAL SQLSTATE '45004' SET MESSAGE_TEXT = 'Seance seat is on the stock at the moment';
1238 ELSEIF v_sql_state = '45005' THEN
1239 SIGNAL SQLSTATE '45005' SET MESSAGE_TEXT = 'Seance seat is in the unaccessable quota at the moment';
1240 ELSE
1241 SIGNAL SQLSTATE '45009' SET MESSAGE_TEXT = v_sql_error_m essage;
1242 END IF;
1243 END;
1244
1245 IF v_ttl_seconds IS NULL
1246 THEN
1247 SET v_ttl_seconds = 900;
1248 END IF;
1249
1250 SET v_now_timestamp = UNIX_TIMESTAMP();
1251 SET v_now_datetime = FROM_UNIXTIME(v_now_timestamp);
1252 SET v_deadline_datetime = FROM_UNIXTIME(v_now_timestamp + v_ttl_ seconds);
1253
1254 SET v_booking_status = NULL;
1255 SET v_datetime_sales_close = NULL;
1256 SET v_event_actual = NULL;
1257 SET v_quota_id = NULL;
1258 SET v_event_seance_nid = NULL;
1259
1260 SELECT s.field_booking_status_value, s.datetime_sales_close, ev. field_event_actual_value, ses.quota_id, s.nid, s.datetime_booking_close, s.datet ime_sales_start
1261 INTO v_booking_status, v_datetime_sales_close, v_event_actual, v _quota_id, v_event_seance_nid, v_datetime_booking_close, v_datetime_sales_start
1262 FROM seance_seats AS ses
1263 INNER JOIN content_type_event_seance AS s ON s.nid = ses.event_s eance_nid
1264 INNER JOIN content_type_event AS ev ON ev.nid = s.event_nid
1265 WHERE ses.id = v_seance_seat_id;
1266
1267 IF (
1268 v_booking_status IS NULL OR
1269 v_datetime_sales_close IS NULL OR
1270 v_event_actual IS NULL OR
1271 v_booking_status <> 'enable' OR
1272 v_datetime_sales_close < v_now_datetime OR
1273 v_event_actual <> 1 OR
1274 v_datetime_booking_close < v_now_datetime OR
1275 v_datetime_sales_start > v_now_datetime
1276 ) THEN
1277 SIGNAL SQLSTATE '45003';
1278 END IF;
1279
1280 IF (v_quota_id IS NULL)
1281 THEN
1282 SIGNAL SQLSTATE '45004';
1283 END IF;
1284
1285 IF NOT EXISTS(
1286 SELECT 1
1287 FROM tp_agents_chains AS ac
1288 INNER JOIN seance_quotas AS seq ON seq.cabinet_uid = ac.star t_uid AND seq.offline_agent_id IS NULL AND seq.event_seance_nid = v_event_seance _nid AND seq.id = v_quota_id
1289 INNER JOIN seance_quotas_access AS qa ON
1290 qa.quota_id = seq.id AND (
1291 (qa.access_type = '0') OR
1292 (qa.access_type = '1' AND qa.agent_uid = ac.agent_ui d) OR
1293 (qa.access_type = '2' AND qa.agent_uid = v_web_agent _uid AND qa.channel IN ('2')) OR
1294 (qa.access_type = '3' AND qa.agent_uid = v_web_agent _uid AND qa.point_nid = v_iframe_nid)
1295 )
1296 WHERE ac.finish_uid = v_web_agent_uid AND ac.locked = 0 AND ac.deleted = 0
1297 LIMIT 1
1298 ) THEN
1299 SIGNAL SQLSTATE '45005';
1300 END IF;
1301
1302 START TRANSACTION;
1303
1304 UPDATE seance_seats
1305 SET status = 20, sid = v_sid, sid_deadline_datetime = v_deadline _datetime
1306 WHERE
1307 v_seance_seat_id = id AND
1308 status = 10;
1309
1310 SELECT ROW_COUNT() INTO v_row_count;
1311
1312 IF v_row_count = 1
1313 THEN
1314 IF ((SELECT count(1) FROM seance_seats as ses WHERE ses.sid = v_sid) > v_max_n_seats)
1315 THEN
1316 ROLLBACK;
1317 SIGNAL SQLSTATE '45001';
1318 ELSE
1319 COMMIT;
1320 END IF;
1321 ELSE
1322 ROLLBACK;
1323 SIGNAL SQLSTATE '45002';
1324 END IF;
1325
1326 SELECT ss.id, ctw.field_service_payment_value AS feePercent
1327 FROM seance_seats AS ss
1328 INNER JOIN waybill_seats AS ws ON ws.id = ss.add_waybill_seats_i d
1329 INNER JOIN content_type_waybill AS ctw on ws.waybill_nid = ctw.n id
1330 WHERE ss.sid = v_sid;
1331 END
1332DROP PROCEDURE IF EXISTS iframe_seance_seats_lock_unnumbered
1333
1334 CREATE DEFINER = definer@localhost PROCEDURE iframe_seance_seats_lock_unnu mbered (IN `v_sid` varchar(26), IN `v_ttl_seconds` int(10), IN `v_event_seance_n id` int(10), IN `v_sector_nid` int(10), IN `v_cost` int(10), IN `v_n_seats` int( 10), IN `v_max_n_seats` int(10))
1335 SQL SECURITY DEFINER
1336 NOT DETERMINISTIC
1337 CONTAINS SQL
1338 BEGIN
1339 DECLARE v_sql_state CHAR(5) DEFAULT '00000';
1340 DECLARE v_sql_error_message TEXT DEFAULT NULL;
1341 DECLARE v_now_timestamp INT(10) DEFAULT NULL;
1342 DECLARE v_now_datetime datetime DEFAULT NULL;
1343 DECLARE v_deadline_datetime datetime DEFAULT NULL;
1344 DECLARE v_lock_result TINYINT(1) DEFAULT NULL;
1345 DECLARE v_lock_key VARCHAR(64) DEFAULT NULL;
1346
1347 DECLARE v_booking_status VARCHAR(8) DEFAULT NULL;
1348 DECLARE v_datetime_sales_close DATETIME DEFAULT NULL;
1349 DECLARE v_event_actual TINYINT(1) DEFAULT NULL;
1350 DECLARE v_datetime_booking_close DATETIME DEFAULT NULL;
1351 DECLARE v_datetime_sales_start DATETIME DEFAULT NULL;
1352
1353 DECLARE v_row_count INT(10) DEFAULT NULL;
1354 DECLARE v_error_code INT(10) DEFAULT NULL;
1355
1356 DECLARE EXIT HANDLER FOR SQLEXCEPTION
1357 BEGIN
1358 GET DIAGNOSTICS CONDITION 1
1359 v_sql_state = RETURNED_SQLSTATE,
1360 v_sql_error_message = MESSAGE_TEXT;
1361
1362 ROLLBACK;
1363
1364 SELECT CONCAT(CONVERT(v_event_seance_nid, char), ':', CONVER T(v_sector_nid, char)) INTO v_lock_key;
1365 SELECT RELEASE_LOCK(v_lock_key) INTO v_lock_result;
1366
1367 IF v_sql_state = '45001' THEN
1368 SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'Too many blo cks';
1369 ELSEIF v_sql_state = '45002' THEN
1370 SIGNAL SQLSTATE '45002' SET MESSAGE_TEXT = 'Not enough t ickets';
1371 ELSEIF v_sql_state = '45003' THEN
1372 SIGNAL SQLSTATE '45003' SET MESSAGE_TEXT = 'Booking is n ot allowed at the moment';
1373 ELSE
1374 SIGNAL SQLSTATE '45009' SET MESSAGE_TEXT = v_sql_error_m essage;
1375 END IF;
1376 END;
1377
1378 IF v_ttl_seconds IS NULL
1379 THEN
1380 SET v_ttl_seconds = 900;
1381 END IF;
1382
1383 SET v_now_timestamp = UNIX_TIMESTAMP();
1384 SET v_now_datetime = FROM_UNIXTIME(v_now_timestamp);
1385 SET v_deadline_datetime = FROM_UNIXTIME(v_now_timestamp + v_ttl_ seconds);
1386
1387 SET v_booking_status = NULL;
1388 SET v_datetime_sales_close = NULL;
1389 SET v_event_actual = NULL;
1390
1391 SELECT s.field_booking_status_value, s.datetime_sales_close, ev. field_event_actual_value, s.datetime_booking_close, s.datetime_sales_start
1392 INTO v_booking_status, v_datetime_sales_close, v_event_actual, v _datetime_booking_close, v_datetime_sales_start
1393 FROM content_type_event_seance AS s
1394 INNER JOIN content_type_event AS ev ON ev.nid = s.event_nid
1395 WHERE s.nid = v_event_seance_nid;
1396
1397 IF (
1398 v_booking_status IS NULL OR
1399 v_datetime_sales_close IS NULL OR
1400 v_event_actual IS NULL OR
1401 v_booking_status <> 'enable' OR
1402 v_datetime_sales_close < v_now_datetime OR
1403 v_event_actual <> 1 OR
1404 v_datetime_booking_close < v_now_datetime OR
1405 v_datetime_sales_start > v_now_datetime
1406 ) THEN
1407 SIGNAL SQLSTATE '45003';
1408 END IF;
1409
1410 SELECT CONCAT(CONVERT(v_event_seance_nid, char), ':', CONVERT(v_ sector_nid, char)) INTO v_lock_key;
1411 SELECT GET_LOCK(v_lock_key, 10) INTO v_lock_result;
1412
1413 START TRANSACTION;
1414
1415 UPDATE seance_seats FORCE INDEX (book_unnumbered)
1416 SET status = 20, sid = v_sid, sid_deadline_datetime = v_deadline _datetime
1417 WHERE
1418 event_seance_nid = v_event_seance_nid AND
1419 sector_nid = v_sector_nid AND
1420 cost = v_cost AND
1421 status = 10 AND
1422 quota_id IS NOT NULL
1423 LIMIT v_n_seats;
1424
1425 SELECT ROW_COUNT() INTO v_row_count;
1426
1427 SET v_error_code = NULL;
1428
1429 IF v_row_count = v_n_seats
1430 THEN
1431 IF ((SELECT count(1) FROM seance_seats as ses WHERE ses.sid = v_sid) > v_max_n_seats)
1432 THEN
1433 ROLLBACK;
1434 SET v_error_code = 1;
1435 ELSE
1436 COMMIT;
1437 END IF;
1438 ELSE
1439 ROLLBACK;
1440 SET v_error_code = 2;
1441 END IF;
1442
1443 SELECT RELEASE_LOCK(v_lock_key) INTO v_lock_result;
1444
1445 IF v_error_code IS NULL THEN
1446 SELECT ss.id, ctw.field_service_payment_value AS feePercent
1447 FROM seance_seats ss
1448 INNER JOIN waybill_seats AS ws ON ws.id = ss.add_waybill_sea ts_id
1449 INNER JOIN content_type_waybill AS ctw on ws.waybill_nid = c tw.nid
1450 WHERE ss.sid = v_sid;
1451 ELSEIF v_error_code = 1 THEN
1452 SIGNAL SQLSTATE '45001';
1453 ELSEIF v_error_code = 2 THEN
1454 SIGNAL SQLSTATE '45002';
1455 END IF;
1456 END
1457DROP PROCEDURE IF EXISTS iframe_seance_seats_unlock
1458
1459 CREATE DEFINER = definer@localhost PROCEDURE iframe_seance_seats_unlock (I N `v_sid` varchar(26), IN `v_seats_nids` varchar(120))
1460 SQL SECURITY DEFINER
1461 NOT DETERMINISTIC
1462 CONTAINS SQL
1463 BEGIN
1464 DECLARE v_sql_error_message TEXT DEFAULT NULL;
1465
1466 DECLARE EXIT HANDLER FOR SQLEXCEPTION
1467 BEGIN
1468 GET DIAGNOSTICS CONDITION 1
1469 v_sql_error_message = MESSAGE_TEXT;
1470
1471 ROLLBACK;
1472 SIGNAL SQLSTATE '45009' SET MESSAGE_TEXT = v_sql_error_messa ge;
1473 END;
1474
1475 START TRANSACTION;
1476
1477 UPDATE seance_seats
1478 SET sid = null, sid_deadline_datetime = null, status = 10
1479 WHERE sid = v_sid AND status = 20 AND (v_seats_nids IS NULL OR F IND_IN_SET(id, v_seats_nids) > 0);
1480
1481 COMMIT;
1482 END
1483COMMIT
1484INSERT INTO `phinxlog` (`version`, `migration_name`, `start_time`, `end_time`, ` breakpoint`) VALUES ('20190624142955', 'Refs6363v6', '2019-07-02 14:07:45', '201 9-07-02 14:07:45', 0);
1485 == 20190624142955 Refs6363v6: migrated 0.0477s
1486
1487All Done. Took 0.6178s
1488Phinx by CakePHP - https://phinx.org. 0.10.7
1489
1490using config file ./home/dev/htdocs.dev3/phinx.php
1491using config parser php
1492using migration paths
1493 - /home/dev/htdocs.dev3/phinx/migrations
1494using seed paths
1495 - /home/dev/htdocs.dev3/phinx/seeds
1496using environment db
1497ordering by creation time
1498
1499 Status [Migration ID] Started Finished Migration Nam e
1500-------------------------------------------------------------------------------- --
1501 up 20190318123206 2019-03-25 07:02:01 2019-03-25 07:02:01 WaybillSeance FieldRename
1502 up 20190323082210 2019-03-25 07:02:01 2019-03-25 07:02:01 DateVariableC lean
1503 up 20190324151924 2019-03-25 07:02:01 2019-03-25 07:02:01 BlankOperatio nTriFix
1504 up 20190326112234 2019-03-27 07:13:40 2019-03-27 07:13:40 Refs6047
1505 up 20190326150708 2019-03-27 07:13:40 2019-03-27 07:13:44 Refs5824
1506 up 20190328184134 2019-05-20 09:09:49 2019-05-20 09:09:51 Refs6101
1507 up 20190329101533 2019-04-04 08:07:15 2019-04-04 08:07:15 Refs6173
1508 up 20190410135602 2019-04-15 06:52:05 2019-04-15 06:52:05 Refs6218
1509 up 20190412104351 2019-04-15 06:52:05 2019-04-15 06:52:05 Refs6223
1510 up 20190412104361 2019-04-23 06:32:51 2019-04-23 06:33:40 Refs5396
1511 up 20190418120841 2019-04-23 06:33:40 2019-04-23 06:33:41 Refs6236
1512 up 20190419114304 2019-05-08 07:28:55 2019-05-08 07:28:56 Refs5962
1513 up 20190506090212 2019-05-08 07:28:56 2019-05-08 07:28:56 Refs6280
1514 up 20190507134957 2019-05-28 08:42:48 2019-05-28 08:42:51 Refs6261
1515 up 20190522130502 2019-06-03 07:14:28 2019-06-03 07:26:40 NextApi
1516 up 20190603092749 2019-06-03 16:07:28 2019-06-03 16:07:28 NextApi001
1517 up 20190606095847 2019-06-07 05:46:04 2019-06-07 05:46:05 Refs6171
1518 up 20190606160613 2019-06-19 10:55:13 2019-06-19 10:55:14 Refs6320
1519 up 20190607110039 2019-06-07 14:08:09 2019-06-07 14:08:09 NextApi002
1520 up 20190607133337 2019-06-07 16:58:32 2019-06-07 16:58:32 NextApi003
1521 up 20190607140640 2019-06-07 17:11:17 2019-06-07 17:11:18 NextApi004
1522 up 20190607145805 2019-06-07 18:09:21 2019-06-07 18:09:22 NextApi005
1523 up 20190611123614 2019-06-19 10:55:14 2019-06-19 10:55:16 Refs6363
1524 up 20190614114847 2019-06-19 10:55:16 2019-06-19 10:55:16 Refs6363v1
1525 up 20190617065601 2019-06-19 10:55:16 2019-06-19 10:55:16 Refs6370
1526 BREAKPOINT SET
1527 up 20190618133608 2019-07-02 14:07:45 2019-07-02 14:07:45 Refs6363v2
1528 up 20190618143848 2019-07-02 14:07:45 2019-07-02 14:07:45 Refs6375
1529 up 20190619101855 2019-07-02 14:07:45 2019-07-02 14:07:45 Refs6363v3
1530 up 20190620073622 2019-07-02 14:07:45 2019-07-02 14:07:45 Refs6363v4
1531 up 20190620114015 2019-07-02 14:07:45 2019-07-02 14:07:45 Refs6363v5
1532 up 20190624142955 2019-07-02 14:07:45 2019-07-02 14:07:45 Refs6363v6
1533
1534Phinx by CakePHP - https://phinx.org. 0.10.7
1535
1536using config file ./home/dev/htdocs.dev3/phinx.php
1537using config parser php
1538using migration paths
1539 - /home/dev/htdocs.dev3/phinx/migrations
1540using seed paths
1541 - /home/dev/htdocs.dev3/phinx/seeds
1542using environment db
1543UPDATE phinxlog SET `breakpoint` = 0, `start_time` = `start_time` WHERE `breakpo int` <> 0;
1544 1 breakpoints cleared.
1545Phinx by CakePHP - https://phinx.org. 0.10.7
1546
1547using config file ./home/dev/htdocs.dev3/phinx.php
1548using config parser php
1549using migration paths
1550 - /home/dev/htdocs.dev3/phinx/migrations
1551using seed paths
1552 - /home/dev/htdocs.dev3/phinx/seeds
1553using environment db
1554 Breakpoint set for 20190624142955 Refs6363v6
1555site_name was set to 'DEV3.INTICKETS.RU'
1556site_mail was set to 'dev@intickets.ru'
1557preprocess_css was set to '1'
1558preprocess_js was set to '1'
1559babel_disabled was set to '0'
1560tp_counters_google_id was set to ''
1561tp_counters_yandex_id was set to ''
1562E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1563E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1564E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1565E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1566Uncaught TypeError: 0 Return value of Log::isGraylogEnabled() must be of the typ e boolean, null returned
1567at /home/dev/htdocs.dev3/app/classes/Log.class.php line 10
1568trace:
1569#0 /home/dev/htdocs.dev3/app/classes/Log.class.php(108): Log::isGraylogEnabled()
1570#1 /home/dev/htdocs.dev3/console/src/Drupal/OrderCheck.class.php(40): Log::watch dog('cli', '\xD0\x97\xD0\xB0\xD0\xBF\xD1\x83\xD1\x81\xD0\xBA or...')
1571#2 /home/dev/htdocs.dev3/vendor/symfony/console/Command/Command.php(255): Consol e\Drupal\OrderCheck->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
1572#3 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(926): Symfony\Co mponent\Console\Command\Command->run(Object(Symfony\Component\Console\Input\Argv Input), Object(Symfony\Component\Console\Output\ConsoleOutput))
1573#4 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(269): Symfony\Co mponent\Console\Application->doRunCommand(Object(Console\Drupal\OrderCheck), Obj ect(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console \Output\ConsoleOutput))
1574#5 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(145): Symfony\Co mponent\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvIn put), Object(Symfony\Component\Console\Output\ConsoleOutput))
1575#6 /home/dev/htdocs.dev3/console.php(63): Symfony\Component\Console\Application- >run()
1576#7 {main}
1577Uncaught TypeError: 0 Return value of Log::isGraylogEnabled() must be of the typ e boolean, null returned
1578at /home/dev/htdocs.dev3/app/classes/Log.class.php line 10
1579trace:
1580#0 /home/dev/htdocs.dev3/app/classes/Log.class.php(108): Log::isGraylogEnabled()
1581#1 /home/dev/htdocs.dev3/console/src/Drupal/OrderCheck.class.php(40): Log::watch dog('cli', '\xD0\x97\xD0\xB0\xD0\xBF\xD1\x83\xD1\x81\xD0\xBA or...')
1582#2 /home/dev/htdocs.dev3/vendor/symfony/console/Command/Command.php(255): Consol e\Drupal\OrderCheck->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
1583#3 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(926): Symfony\Co mponent\Console\Command\Command->run(Object(Symfony\Component\Console\Input\Argv Input), Object(Symfony\Component\Console\Output\ConsoleOutput))
1584#4 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(269): Symfony\Co mponent\Console\Application->doRunCommand(Object(Console\Drupal\OrderCheck), Obj ect(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console \Output\ConsoleOutput))
1585#5 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(145): Symfony\Co mponent\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvIn put), Object(Symfony\Component\Console\Output\ConsoleOutput))
1586#6 /home/dev/htdocs.dev3/console.php(63): Symfony\Component\Console\Application- >run()
1587#7 {main}
1588E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1589E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1590E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1591E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1592Uncaught TypeError: 0 Return value of Log::isGraylogEnabled() must be of the typ e boolean, null returned
1593at /home/dev/htdocs.dev3/app/classes/Log.class.php line 10
1594trace:
1595#0 /home/dev/htdocs.dev3/app/classes/Log.class.php(108): Log::isGraylogEnabled()
1596#1 /home/dev/htdocs.dev3/drupal/includes/common.inc(1672): Log::watchdog('cron', 'Attempting to r...', 'error')
1597#2 /home/dev/htdocs.dev3/console/src/Drupal/Cron.class.php(27): drupal_cron_run( )
1598#3 /home/dev/htdocs.dev3/vendor/symfony/console/Command/Command.php(255): Consol e\Drupal\Cron->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object (Symfony\Component\Console\Output\ConsoleOutput))
1599#4 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(926): Symfony\Co mponent\Console\Command\Command->run(Object(Symfony\Component\Console\Input\Argv Input), Object(Symfony\Component\Console\Output\ConsoleOutput))
1600#5 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(269): Symfony\Co mponent\Console\Application->doRunCommand(Object(Console\Drupal\Cron), Object(Sy mfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Outpu t\ConsoleOutput))
1601#6 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(145): Symfony\Co mponent\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvIn put), Object(Symfony\Component\Console\Output\ConsoleOutput))
1602#7 /home/dev/htdocs.dev3/console.php(63): Symfony\Component\Console\Application- >run()
1603#8 {main}
1604Uncaught TypeError: 0 Return value of Log::isGraylogEnabled() must be of the typ e boolean, null returned
1605at /home/dev/htdocs.dev3/app/classes/Log.class.php line 10
1606trace:
1607#0 /home/dev/htdocs.dev3/app/classes/Log.class.php(108): Log::isGraylogEnabled()
1608#1 /home/dev/htdocs.dev3/drupal/includes/common.inc(1672): Log::watchdog('cron', 'Attempting to r...', 'error')
1609#2 /home/dev/htdocs.dev3/console/src/Drupal/Cron.class.php(27): drupal_cron_run( )
1610#3 /home/dev/htdocs.dev3/vendor/symfony/console/Command/Command.php(255): Consol e\Drupal\Cron->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object (Symfony\Component\Console\Output\ConsoleOutput))
1611#4 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(926): Symfony\Co mponent\Console\Command\Command->run(Object(Symfony\Component\Console\Input\Argv Input), Object(Symfony\Component\Console\Output\ConsoleOutput))
1612#5 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(269): Symfony\Co mponent\Console\Application->doRunCommand(Object(Console\Drupal\Cron), Object(Sy mfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Outpu t\ConsoleOutput))
1613#6 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(145): Symfony\Co mponent\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvIn put), Object(Symfony\Component\Console\Output\ConsoleOutput))
1614#7 /home/dev/htdocs.dev3/console.php(63): Symfony\Component\Console\Application- >run()
1615#8 {main}
1616E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1617E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1618E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1619E_NOTICE: Trying to get property 'direction' of non-object in /home/dev/htdocs.d ev3/drupal/includes/common.inc on line 912
1620E_NOTICE: Trying to get property 'language' of non-object in /home/dev/htdocs.de v3/drupal/includes/common.inc on line 539
1621E_NOTICE: Trying to get property 'language' of non-object in /home/dev/htdocs.de v3/modules/locale/locale.module on line 298
1622Uncaught TypeError: 0 Argument 1 passed to db::quote() must be of the type strin g, null given, called in /home/dev/htdocs.dev3/drupal/includes/database.inc on l ine 111
1623at /home/dev/htdocs.dev3/app/classes/db.class.php line 130
1624trace:
1625#0 /home/dev/htdocs.dev3/drupal/includes/database.inc(111): db::quote(NULL)
1626#1 [internal function]: _db_query_callback(Array)
1627#2 /home/dev/htdocs.dev3/drupal/includes/database.inc(74): preg_replace_callback ('/(%d|%s|%%|%f|%...', '_db_query_callb...', '\n SELECT...')
1628#3 /home/dev/htdocs.dev3/modules/locale/locale.module(347): db_query('\n SELECT...', NULL, 'Upload element ...')
1629#4 /home/dev/htdocs.dev3/drupal/includes/common.inc(555): locale('Upload element ...', NULL)
1630#5 /home/dev/htdocs.dev3/sites/all/modules/upload_element/upload_element.module( 25): t('Upload element ...')
1631#6 /home/dev/htdocs.dev3/drupal/includes/menu.inc(1208): upload_element_menu()
1632#7 /home/dev/htdocs.dev3/drupal/includes/menu.inc(1182): menu_router_build(true)
1633#8 /home/dev/htdocs.dev3/drupal/includes/common.inc(2358): menu_rebuild()
1634#9 /home/dev/htdocs.dev3/console/src/Drupal/ClearCache.class.php(32): drupal_flu sh_all_caches()
1635#10 /home/dev/htdocs.dev3/vendor/symfony/console/Command/Command.php(255): Conso le\Drupal\ClearCache->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
1636#11 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(926): Symfony\C omponent\Console\Command\Command->run(Object(Symfony\Component\Console\Input\Arg vInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
1637#12 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(269): Symfony\C omponent\Console\Application->doRunCommand(Object(Console\Drupal\ClearCache), Ob ject(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Consol e\Output\ConsoleOutput))
1638#13 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(145): Symfony\C omponent\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvI nput), Object(Symfony\Component\Console\Output\ConsoleOutput))
1639#14 /home/dev/htdocs.dev3/console.php(63): Symfony\Component\Console\Application ->run()
1640#15 {main}
1641Uncaught TypeError: 0 Argument 1 passed to db::quote() must be of the type strin g, null given, called in /home/dev/htdocs.dev3/drupal/includes/database.inc on l ine 111
1642at /home/dev/htdocs.dev3/app/classes/db.class.php line 130
1643trace:
1644#0 /home/dev/htdocs.dev3/drupal/includes/database.inc(111): db::quote(NULL)
1645#1 [internal function]: _db_query_callback(Array)
1646#2 /home/dev/htdocs.dev3/drupal/includes/database.inc(74): preg_replace_callback ('/(%d|%s|%%|%f|%...', '_db_query_callb...', '\n SELECT...')
1647#3 /home/dev/htdocs.dev3/modules/locale/locale.module(347): db_query('\n SELECT...', NULL, 'Upload element ...')
1648#4 /home/dev/htdocs.dev3/drupal/includes/common.inc(555): locale('Upload element ...', NULL)
1649#5 /home/dev/htdocs.dev3/sites/all/modules/upload_element/upload_element.module( 25): t('Upload element ...')
1650#6 /home/dev/htdocs.dev3/drupal/includes/menu.inc(1208): upload_element_menu()
1651#7 /home/dev/htdocs.dev3/drupal/includes/menu.inc(1182): menu_router_build(true)
1652#8 /home/dev/htdocs.dev3/drupal/includes/common.inc(2358): menu_rebuild()
1653#9 /home/dev/htdocs.dev3/console/src/Drupal/ClearCache.class.php(32): drupal_flu sh_all_caches()
1654#10 /home/dev/htdocs.dev3/vendor/symfony/console/Command/Command.php(255): Conso le\Drupal\ClearCache->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
1655#11 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(926): Symfony\C omponent\Console\Command\Command->run(Object(Symfony\Component\Console\Input\Arg vInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
1656#12 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(269): Symfony\C omponent\Console\Application->doRunCommand(Object(Console\Drupal\ClearCache), Ob ject(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Consol e\Output\ConsoleOutput))
1657#13 /home/dev/htdocs.dev3/vendor/symfony/console/Application.php(145): Symfony\C omponent\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvI nput), Object(Symfony\Component\Console\Output\ConsoleOutput))
1658#14 /home/dev/htdocs.dev3/console.php(63): Symfony\Component\Console\Application ->run()
1659#15 {main}
1660● intickets-sberbank-dev3.service - intickets service for async orders registrat
1661 Loaded: loaded (/etc/systemd/system/intickets-sberbank-dev3.service; enabled;
1662 Active: active (running) since Tue 2019-07-02 14:07:47 MSK; 23ms ago
1663 Main PID: 7315 (php7.2)
1664 Tasks: 1
1665 Memory: 2.1M (limit: 128.0M)
1666 CPU: 19ms
1667 CGroup: /system.slice/intickets-sberbank-dev3.service
1668 └─7315 /usr/bin/php7.2 /home/dev/htdocs.dev3/worker.php
1669
1670Jul 02 14:07:47 intickets-dev systemd[1]: Started intickets service for async or
1671lines 1-11/11 (END)...skipping...
1672● intickets-sberbank-dev3.service - intickets service for async orders registration
1673 Loaded: loaded (/etc/systemd/system/intickets-sberbank-dev3.service; enabled; vendor preset: enab
1674 Active: active (running) since Tue 2019-07-02 14:07:47 MSK; 23ms ago
1675 Main PID: 7315 (php7.2)
1676 Tasks: 1
1677 Memory: 2.1M (limit: 128.0M)
1678 CPU: 19ms
1679 CGroup: /system.slice/intickets-sberbank-dev3.service
1680 └─7315 /usr/bin/php7.2 /home/dev/htdocs.dev3/worker.php
1681
1682Jul 02 14:07:47 intickets-dev systemd[1]: Started intickets service for async orders registration.
1683~
1684~
1685~
1686~
1687~
1688~
1689~
1690~
1691~
1692~
1693~
1694~
1695~
1696~
1697~
1698~
1699~
1700~
1701~
1702~
1703~
1704~
1705~
1706~
1707~
1708~
1709~
1710~
1711~
1712dev@intickets-dev:~$ pc3 vdel css_js_query_string
1713Переменная css_js_query_string удалена
1714dev@intickets-dev:~$