· 8 years ago · Jun 02, 2018, 09:24 AM
1(116.1ms) SET NAMES utf8 COLLATE utf8_unicode_ci, @@SESSION.sql_mode = 'NO_ENGINE_SUBSTITUTION', @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
2 AutopopulateStepStatus Load (117.6ms) SELECT `autopopulate_step_statuses`.* FROM `autopopulate_step_statuses` WHERE `autopopulate_step_statuses`.`id` = 21104 LIMIT 1
3 Client Load (118.0ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
4 CalendarSchedule Load (122.4ms) SELECT `calendar_schedules`.* FROM `calendar_schedules` WHERE `calendar_schedules`.`id` = 1167 LIMIT 1
5 Block Load (121.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`id` = 23592 LIMIT 1
6 AutopopulateStep Load (117.0ms) SELECT `autopopulate_steps`.* FROM `autopopulate_steps` WHERE `autopopulate_steps`.`calendar_schedule_id` = 1167 AND `autopopulate_steps`.`step` = 3 ORDER BY autopopulate_steps.step ASC, autopopulate_steps.display_order ASC
7 BlockSchedule Load (119.7ms) SELECT `block_schedules`.* FROM `block_schedules` WHERE `block_schedules`.`id` = 356 LIMIT 1
8ClientTools::SchedulesPublisher.set_options({:timeframe=>1})
9 CallType Load (241.3ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`client_id` = 261 AND `call_types`.`calendar_schedule_id` = 1167 AND `call_types`.`active` = 1 ORDER BY `call_types`.`display_order` ASC
10 TargetGroupCall Load (122.5ms) SELECT `target_group_calls`.* FROM `target_group_calls` WHERE `target_group_calls`.`call_type_id` IN (10157, 10171, 16025, 10172, 10158, 10159, 13659, 10173, 13736, 10174, 10160, 10175, 13735, 10176, 10161, 10177, 13026, 10178, 10162, 10179, 10163, 13661, 10180, 10181, 10164, 13680, 13681, 10263, 10264, 10165, 13673, 10182, 13674, 10183, 10166, 10170, 13660, 10167, 12532, 10168, 10184, 10169, 13663, 10186, 11549, 13656, 10187, 11550, 10188, 10189, 10185, 12319, 13657, 13658, 10190, 10195, 13671, 10198, 10191, 10196, 10199, 10192, 13753, 10200, 13672, 10193, 16463, 10827, 10825, 10831, 13670, 10841, 10844, 10847, 13682, 10848, 10194, 14178, 10147, 12474, 13922, 14299, 16041, 11138, 12581, 11139, 11168, 11463, 13675, 13676, 12477, 12478, 12480, 12481, 12482, 12475, 12476, 11133, 13677, 11134, 11137, 13678, 11136, 11135, 11140, 11141)
11 TargetGroup Load (117.1ms) SELECT `target_groups`.* FROM `target_groups` WHERE `target_groups`.`id` IN (4, 5, 6, 7)
12 (216.4ms) select all_cts.call_type_id,
13 cts_masks.assignment_type,
14 cts_masks.assignment_id,
15 cts_masks.own_n_sc_dow_mask
16 from (
17 select
18 if(tgc.target_group_id is null, 'CallType', 'TargetGroup') AS assignment_type,
19 ifnull(tgc.target_group_id, ct.id) AS assignment_id,
20 ct.id as call_type_id
21 from call_types as ct
22 left join target_group_calls as tgc
23 on tgc.call_type_id = ct.id
24 where ct.calendar_schedule_id = 1167
25 and ct.active = 1
26 ) as all_cts
27 left join (
28 select
29 if(tgc.target_group_id is null, 'CallType', 'TargetGroup') AS assignment_type,
30 ifnull(tgc.target_group_id, ct.call_type_id) AS assignment_id,
31 BIT_OR(ct.own_n_sc_dow_mask) AS own_n_sc_dow_mask
32 from (
33 SELECT
34 ct1.id AS call_type_id,
35 (BIT_OR(1 << (sc.dayofweek_on - 1)) | ct1.days_of_week_mask) AS own_n_sc_dow_mask
36 FROM call_types AS ct1
37 LEFT JOIN schedules AS sc USE INDEX (ix_schedules_call_date)
38 ON sc.call_type_id = ct1.id
39 AND sc.schedule_on BETWEEN '2018-09-04' AND '2018-11-25'
40 WHERE ct1.calendar_schedule_id = 1167
41 AND ct1.active = 1
42 GROUP BY ct1.id
43 ) as ct
44 left join target_group_calls as tgc
45 on tgc.call_type_id = ct.call_type_id
46 group by assignment_type, assignment_id
47 ) as cts_masks
48 on cts_masks.assignment_type = all_cts.assignment_type
49 and cts_masks.assignment_id = all_cts.assignment_id
50
51 CallType Load (249.2ms) /* UNPUBLISHED CALL TYPES */
52 SELECT DISTINCT ct.*,
53 s_ct.own_n_sc_dow_mask AS own_n_sc_dow_mask
54 FROM call_types AS ct
55 INNER JOIN (
56 SELECT
57 10147 AS call_type_id,
58 7 AS assignment_id,
59 'TargetGroup' AS assignment_type,
60 127 AS own_n_sc_dow_mask
61 UNION SELECT
62 10157 AS call_type_id,
63 4 AS assignment_id,
64 'TargetGroup' AS assignment_type,
65 127 AS own_n_sc_dow_mask
66 UNION SELECT
67 10158 AS call_type_id,
68 5 AS assignment_id,
69 'TargetGroup' AS assignment_type,
70 127 AS own_n_sc_dow_mask
71 UNION SELECT
72 10159 AS call_type_id,
73 5 AS assignment_id,
74 'TargetGroup' AS assignment_type,
75 127 AS own_n_sc_dow_mask
76 UNION SELECT
77 10160 AS call_type_id,
78 5 AS assignment_id,
79 'TargetGroup' AS assignment_type,
80 127 AS own_n_sc_dow_mask
81 UNION SELECT
82 10161 AS call_type_id,
83 6 AS assignment_id,
84 'TargetGroup' AS assignment_type,
85 127 AS own_n_sc_dow_mask
86 UNION SELECT
87 10162 AS call_type_id,
88 6 AS assignment_id,
89 'TargetGroup' AS assignment_type,
90 127 AS own_n_sc_dow_mask
91 UNION SELECT
92 10163 AS call_type_id,
93 5 AS assignment_id,
94 'TargetGroup' AS assignment_type,
95 127 AS own_n_sc_dow_mask
96 UNION SELECT
97 10164 AS call_type_id,
98 10164 AS assignment_id,
99 'CallType' AS assignment_type,
100 127 AS own_n_sc_dow_mask
101 UNION SELECT
102 10165 AS call_type_id,
103 4 AS assignment_id,
104 'TargetGroup' AS assignment_type,
105 127 AS own_n_sc_dow_mask
106 UNION SELECT
107 10166 AS call_type_id,
108 6 AS assignment_id,
109 'TargetGroup' AS assignment_type,
110 127 AS own_n_sc_dow_mask
111 UNION SELECT
112 10167 AS call_type_id,
113 5 AS assignment_id,
114 'TargetGroup' AS assignment_type,
115 127 AS own_n_sc_dow_mask
116 UNION SELECT
117 10168 AS call_type_id,
118 6 AS assignment_id,
119 'TargetGroup' AS assignment_type,
120 127 AS own_n_sc_dow_mask
121 UNION SELECT
122 10169 AS call_type_id,
123 10169 AS assignment_id,
124 'CallType' AS assignment_type,
125 127 AS own_n_sc_dow_mask
126 UNION SELECT
127 10170 AS call_type_id,
128 7 AS assignment_id,
129 'TargetGroup' AS assignment_type,
130 127 AS own_n_sc_dow_mask
131 UNION SELECT
132 10171 AS call_type_id,
133 10171 AS assignment_id,
134 'CallType' AS assignment_type,
135 65 AS own_n_sc_dow_mask
136 UNION SELECT
137 10172 AS call_type_id,
138 10172 AS assignment_id,
139 'CallType' AS assignment_type,
140 65 AS own_n_sc_dow_mask
141 UNION SELECT
142 10173 AS call_type_id,
143 10173 AS assignment_id,
144 'CallType' AS assignment_type,
145 65 AS own_n_sc_dow_mask
146 UNION SELECT
147 10174 AS call_type_id,
148 10174 AS assignment_id,
149 'CallType' AS assignment_type,
150 65 AS own_n_sc_dow_mask
151 UNION SELECT
152 10175 AS call_type_id,
153 10175 AS assignment_id,
154 'CallType' AS assignment_type,
155 65 AS own_n_sc_dow_mask
156 UNION SELECT
157 10176 AS call_type_id,
158 10176 AS assignment_id,
159 'CallType' AS assignment_type,
160 65 AS own_n_sc_dow_mask
161 UNION SELECT
162 10177 AS call_type_id,
163 10177 AS assignment_id,
164 'CallType' AS assignment_type,
165 65 AS own_n_sc_dow_mask
166 UNION SELECT
167 10178 AS call_type_id,
168 10178 AS assignment_id,
169 'CallType' AS assignment_type,
170 65 AS own_n_sc_dow_mask
171 UNION SELECT
172 10179 AS call_type_id,
173 10179 AS assignment_id,
174 'CallType' AS assignment_type,
175 65 AS own_n_sc_dow_mask
176 UNION SELECT
177 10180 AS call_type_id,
178 10180 AS assignment_id,
179 'CallType' AS assignment_type,
180 65 AS own_n_sc_dow_mask
181 UNION SELECT
182 10181 AS call_type_id,
183 10181 AS assignment_id,
184 'CallType' AS assignment_type,
185 65 AS own_n_sc_dow_mask
186 UNION SELECT
187 10182 AS call_type_id,
188 10182 AS assignment_id,
189 'CallType' AS assignment_type,
190 65 AS own_n_sc_dow_mask
191 UNION SELECT
192 10183 AS call_type_id,
193 10183 AS assignment_id,
194 'CallType' AS assignment_type,
195 65 AS own_n_sc_dow_mask
196 UNION SELECT
197 10184 AS call_type_id,
198 6 AS assignment_id,
199 'TargetGroup' AS assignment_type,
200 127 AS own_n_sc_dow_mask
201 UNION SELECT
202 10185 AS call_type_id,
203 7 AS assignment_id,
204 'TargetGroup' AS assignment_type,
205 127 AS own_n_sc_dow_mask
206 UNION SELECT
207 10186 AS call_type_id,
208 4 AS assignment_id,
209 'TargetGroup' AS assignment_type,
210 127 AS own_n_sc_dow_mask
211 UNION SELECT
212 10187 AS call_type_id,
213 5 AS assignment_id,
214 'TargetGroup' AS assignment_type,
215 127 AS own_n_sc_dow_mask
216 UNION SELECT
217 10188 AS call_type_id,
218 6 AS assignment_id,
219 'TargetGroup' AS assignment_type,
220 127 AS own_n_sc_dow_mask
221 UNION SELECT
222 10189 AS call_type_id,
223 7 AS assignment_id,
224 'TargetGroup' AS assignment_type,
225 127 AS own_n_sc_dow_mask
226 UNION SELECT
227 10190 AS call_type_id,
228 4 AS assignment_id,
229 'TargetGroup' AS assignment_type,
230 127 AS own_n_sc_dow_mask
231 UNION SELECT
232 10191 AS call_type_id,
233 5 AS assignment_id,
234 'TargetGroup' AS assignment_type,
235 127 AS own_n_sc_dow_mask
236 UNION SELECT
237 10192 AS call_type_id,
238 6 AS assignment_id,
239 'TargetGroup' AS assignment_type,
240 127 AS own_n_sc_dow_mask
241 UNION SELECT
242 10193 AS call_type_id,
243 7 AS assignment_id,
244 'TargetGroup' AS assignment_type,
245 127 AS own_n_sc_dow_mask
246 UNION SELECT
247 10194 AS call_type_id,
248 7 AS assignment_id,
249 'TargetGroup' AS assignment_type,
250 127 AS own_n_sc_dow_mask
251 UNION SELECT
252 10195 AS call_type_id,
253 10195 AS assignment_id,
254 'CallType' AS assignment_type,
255 65 AS own_n_sc_dow_mask
256 UNION SELECT
257 10196 AS call_type_id,
258 10196 AS assignment_id,
259 'CallType' AS assignment_type,
260 65 AS own_n_sc_dow_mask
261 UNION SELECT
262 10198 AS call_type_id,
263 10198 AS assignment_id,
264 'CallType' AS assignment_type,
265 65 AS own_n_sc_dow_mask
266 UNION SELECT
267 10199 AS call_type_id,
268 10199 AS assignment_id,
269 'CallType' AS assignment_type,
270 65 AS own_n_sc_dow_mask
271 UNION SELECT
272 10200 AS call_type_id,
273 10200 AS assignment_id,
274 'CallType' AS assignment_type,
275 65 AS own_n_sc_dow_mask
276 UNION SELECT
277 10263 AS call_type_id,
278 10263 AS assignment_id,
279 'CallType' AS assignment_type,
280 0 AS own_n_sc_dow_mask
281 UNION SELECT
282 10264 AS call_type_id,
283 10264 AS assignment_id,
284 'CallType' AS assignment_type,
285 0 AS own_n_sc_dow_mask
286 UNION SELECT
287 10825 AS call_type_id,
288 10825 AS assignment_id,
289 'CallType' AS assignment_type,
290 62 AS own_n_sc_dow_mask
291 UNION SELECT
292 10827 AS call_type_id,
293 7 AS assignment_id,
294 'TargetGroup' AS assignment_type,
295 127 AS own_n_sc_dow_mask
296 UNION SELECT
297 10831 AS call_type_id,
298 10831 AS assignment_id,
299 'CallType' AS assignment_type,
300 62 AS own_n_sc_dow_mask
301 UNION SELECT
302 10841 AS call_type_id,
303 10841 AS assignment_id,
304 'CallType' AS assignment_type,
305 62 AS own_n_sc_dow_mask
306 UNION SELECT
307 10844 AS call_type_id,
308 10844 AS assignment_id,
309 'CallType' AS assignment_type,
310 62 AS own_n_sc_dow_mask
311 UNION SELECT
312 10847 AS call_type_id,
313 10847 AS assignment_id,
314 'CallType' AS assignment_type,
315 62 AS own_n_sc_dow_mask
316 UNION SELECT
317 10848 AS call_type_id,
318 10848 AS assignment_id,
319 'CallType' AS assignment_type,
320 62 AS own_n_sc_dow_mask
321 UNION SELECT
322 11133 AS call_type_id,
323 11133 AS assignment_id,
324 'CallType' AS assignment_type,
325 62 AS own_n_sc_dow_mask
326 UNION SELECT
327 11134 AS call_type_id,
328 11134 AS assignment_id,
329 'CallType' AS assignment_type,
330 62 AS own_n_sc_dow_mask
331 UNION SELECT
332 11135 AS call_type_id,
333 11135 AS assignment_id,
334 'CallType' AS assignment_type,
335 62 AS own_n_sc_dow_mask
336 UNION SELECT
337 11136 AS call_type_id,
338 11136 AS assignment_id,
339 'CallType' AS assignment_type,
340 62 AS own_n_sc_dow_mask
341 UNION SELECT
342 11137 AS call_type_id,
343 11137 AS assignment_id,
344 'CallType' AS assignment_type,
345 62 AS own_n_sc_dow_mask
346 UNION SELECT
347 11138 AS call_type_id,
348 11138 AS assignment_id,
349 'CallType' AS assignment_type,
350 62 AS own_n_sc_dow_mask
351 UNION SELECT
352 11139 AS call_type_id,
353 11139 AS assignment_id,
354 'CallType' AS assignment_type,
355 62 AS own_n_sc_dow_mask
356 UNION SELECT
357 11140 AS call_type_id,
358 11140 AS assignment_id,
359 'CallType' AS assignment_type,
360 62 AS own_n_sc_dow_mask
361 UNION SELECT
362 11141 AS call_type_id,
363 11141 AS assignment_id,
364 'CallType' AS assignment_type,
365 62 AS own_n_sc_dow_mask
366 UNION SELECT
367 11168 AS call_type_id,
368 11168 AS assignment_id,
369 'CallType' AS assignment_type,
370 0 AS own_n_sc_dow_mask
371 UNION SELECT
372 11463 AS call_type_id,
373 11463 AS assignment_id,
374 'CallType' AS assignment_type,
375 0 AS own_n_sc_dow_mask
376 UNION SELECT
377 11549 AS call_type_id,
378 11549 AS assignment_id,
379 'CallType' AS assignment_type,
380 0 AS own_n_sc_dow_mask
381 UNION SELECT
382 11550 AS call_type_id,
383 11550 AS assignment_id,
384 'CallType' AS assignment_type,
385 0 AS own_n_sc_dow_mask
386 UNION SELECT
387 12319 AS call_type_id,
388 12319 AS assignment_id,
389 'CallType' AS assignment_type,
390 0 AS own_n_sc_dow_mask
391 UNION SELECT
392 12474 AS call_type_id,
393 12474 AS assignment_id,
394 'CallType' AS assignment_type,
395 0 AS own_n_sc_dow_mask
396 UNION SELECT
397 12475 AS call_type_id,
398 12475 AS assignment_id,
399 'CallType' AS assignment_type,
400 62 AS own_n_sc_dow_mask
401 UNION SELECT
402 12476 AS call_type_id,
403 12476 AS assignment_id,
404 'CallType' AS assignment_type,
405 62 AS own_n_sc_dow_mask
406 UNION SELECT
407 12477 AS call_type_id,
408 12477 AS assignment_id,
409 'CallType' AS assignment_type,
410 62 AS own_n_sc_dow_mask
411 UNION SELECT
412 12478 AS call_type_id,
413 12478 AS assignment_id,
414 'CallType' AS assignment_type,
415 62 AS own_n_sc_dow_mask
416 UNION SELECT
417 12480 AS call_type_id,
418 12480 AS assignment_id,
419 'CallType' AS assignment_type,
420 62 AS own_n_sc_dow_mask
421 UNION SELECT
422 12481 AS call_type_id,
423 12481 AS assignment_id,
424 'CallType' AS assignment_type,
425 62 AS own_n_sc_dow_mask
426 UNION SELECT
427 12482 AS call_type_id,
428 12482 AS assignment_id,
429 'CallType' AS assignment_type,
430 62 AS own_n_sc_dow_mask
431 UNION SELECT
432 12532 AS call_type_id,
433 12532 AS assignment_id,
434 'CallType' AS assignment_type,
435 0 AS own_n_sc_dow_mask
436 UNION SELECT
437 12581 AS call_type_id,
438 12581 AS assignment_id,
439 'CallType' AS assignment_type,
440 62 AS own_n_sc_dow_mask
441 UNION SELECT
442 13026 AS call_type_id,
443 13026 AS assignment_id,
444 'CallType' AS assignment_type,
445 0 AS own_n_sc_dow_mask
446 UNION SELECT
447 13656 AS call_type_id,
448 13656 AS assignment_id,
449 'CallType' AS assignment_type,
450 0 AS own_n_sc_dow_mask
451 UNION SELECT
452 13657 AS call_type_id,
453 13657 AS assignment_id,
454 'CallType' AS assignment_type,
455 0 AS own_n_sc_dow_mask
456 UNION SELECT
457 13658 AS call_type_id,
458 13658 AS assignment_id,
459 'CallType' AS assignment_type,
460 0 AS own_n_sc_dow_mask
461 UNION SELECT
462 13659 AS call_type_id,
463 13659 AS assignment_id,
464 'CallType' AS assignment_type,
465 0 AS own_n_sc_dow_mask
466 UNION SELECT
467 13660 AS call_type_id,
468 13660 AS assignment_id,
469 'CallType' AS assignment_type,
470 0 AS own_n_sc_dow_mask
471 UNION SELECT
472 13661 AS call_type_id,
473 13661 AS assignment_id,
474 'CallType' AS assignment_type,
475 0 AS own_n_sc_dow_mask
476 UNION SELECT
477 13663 AS call_type_id,
478 13663 AS assignment_id,
479 'CallType' AS assignment_type,
480 0 AS own_n_sc_dow_mask
481 UNION SELECT
482 13670 AS call_type_id,
483 13670 AS assignment_id,
484 'CallType' AS assignment_type,
485 0 AS own_n_sc_dow_mask
486 UNION SELECT
487 13671 AS call_type_id,
488 13671 AS assignment_id,
489 'CallType' AS assignment_type,
490 0 AS own_n_sc_dow_mask
491 UNION SELECT
492 13672 AS call_type_id,
493 13672 AS assignment_id,
494 'CallType' AS assignment_type,
495 0 AS own_n_sc_dow_mask
496 UNION SELECT
497 13673 AS call_type_id,
498 13673 AS assignment_id,
499 'CallType' AS assignment_type,
500 0 AS own_n_sc_dow_mask
501 UNION SELECT
502 13674 AS call_type_id,
503 13674 AS assignment_id,
504 'CallType' AS assignment_type,
505 0 AS own_n_sc_dow_mask
506 UNION SELECT
507 13675 AS call_type_id,
508 13675 AS assignment_id,
509 'CallType' AS assignment_type,
510 0 AS own_n_sc_dow_mask
511 UNION SELECT
512 13676 AS call_type_id,
513 13676 AS assignment_id,
514 'CallType' AS assignment_type,
515 0 AS own_n_sc_dow_mask
516 UNION SELECT
517 13677 AS call_type_id,
518 13677 AS assignment_id,
519 'CallType' AS assignment_type,
520 0 AS own_n_sc_dow_mask
521 UNION SELECT
522 13678 AS call_type_id,
523 13678 AS assignment_id,
524 'CallType' AS assignment_type,
525 0 AS own_n_sc_dow_mask
526 UNION SELECT
527 13680 AS call_type_id,
528 13680 AS assignment_id,
529 'CallType' AS assignment_type,
530 0 AS own_n_sc_dow_mask
531 UNION SELECT
532 13681 AS call_type_id,
533 13681 AS assignment_id,
534 'CallType' AS assignment_type,
535 0 AS own_n_sc_dow_mask
536 UNION SELECT
537 13682 AS call_type_id,
538 13682 AS assignment_id,
539 'CallType' AS assignment_type,
540 0 AS own_n_sc_dow_mask
541 UNION SELECT
542 13735 AS call_type_id,
543 13735 AS assignment_id,
544 'CallType' AS assignment_type,
545 0 AS own_n_sc_dow_mask
546 UNION SELECT
547 13736 AS call_type_id,
548 13736 AS assignment_id,
549 'CallType' AS assignment_type,
550 0 AS own_n_sc_dow_mask
551 UNION SELECT
552 13753 AS call_type_id,
553 13753 AS assignment_id,
554 'CallType' AS assignment_type,
555 0 AS own_n_sc_dow_mask
556 UNION SELECT
557 13922 AS call_type_id,
558 5 AS assignment_id,
559 'TargetGroup' AS assignment_type,
560 127 AS own_n_sc_dow_mask
561 UNION SELECT
562 14178 AS call_type_id,
563 14178 AS assignment_id,
564 'CallType' AS assignment_type,
565 0 AS own_n_sc_dow_mask
566 UNION SELECT
567 14299 AS call_type_id,
568 14299 AS assignment_id,
569 'CallType' AS assignment_type,
570 127 AS own_n_sc_dow_mask
571 UNION SELECT
572 16025 AS call_type_id,
573 16025 AS assignment_id,
574 'CallType' AS assignment_type,
575 0 AS own_n_sc_dow_mask
576 UNION SELECT
577 16041 AS call_type_id,
578 16041 AS assignment_id,
579 'CallType' AS assignment_type,
580 127 AS own_n_sc_dow_mask
581 UNION SELECT
582 16463 AS call_type_id,
583 16463 AS assignment_id,
584 'CallType' AS assignment_type,
585 65 AS own_n_sc_dow_mask
586
587 ) s_ct ON s_ct.call_type_id = ct.id
588 LEFT JOIN published_blocks AS pb
589 ON pb.client_id = ct.client_id
590 AND pb.calendar_schedule_id = ct.calendar_schedule_id
591 AND pb.block_id = 23592
592 LEFT JOIN published_block_call_types AS pbct
593 ON pbct.client_id = ct.client_id
594 AND pbct.published_block_id = pb.id
595 AND pbct.assignment_type = s_ct.assignment_type
596 AND pbct.assignment_id = s_ct.assignment_id
597 WHERE ct.client_id = 261
598 AND ct.calendar_schedule_id = 1167
599 AND ct.active = 1
600 AND s_ct.own_n_sc_dow_mask > 0
601 AND (
602 pb.id IS NULL
603 OR (
604 (pb.assignment_ids IS NOT NULL OR pb.days_of_week_mask != 127)
605 AND (
606 pbct.id IS NULL
607 OR (s_ct.own_n_sc_dow_mask & pbct.days_of_week_mask) != s_ct.own_n_sc_dow_mask
608 )
609 )
610 )
611 ORDER BY display_order ASC, abbreviation ASC
612
613 CallType Load (123.8ms) SELECT `call_types`.* FROM `call_types` INNER JOIN `autopopulate_step_call_types` ON `call_types`.`id` = `autopopulate_step_call_types`.`call_type_id` WHERE `autopopulate_step_call_types`.`autopopulate_step_id` = 1082
614 CalendarSchedule Load (116.2ms) SELECT `calendar_schedules`.* FROM `calendar_schedules` WHERE `calendar_schedules`.`client_id` = 261 AND `calendar_schedules`.`id` = 1167 ORDER BY `calendar_schedules`.`position` ASC LIMIT 1
615 Block Load (119.3ms) SELECT `blocks`.* FROM `blocks` INNER JOIN `block_schedules` ON `blocks`.`block_schedule_id` = `block_schedules`.`id` WHERE `block_schedules`.`id` = 356 AND `blocks`.`id` = 23592 ORDER BY start_date asc, end_date asc LIMIT 1
616 BlockSchedule Load (119.7ms) SELECT `block_schedules`.* FROM `block_schedules` WHERE `block_schedules`.`id` = 356 LIMIT 1
617 RuleSet Load (122.4ms) SELECT `rule_sets`.* FROM `rule_sets` WHERE `rule_sets`.`id` = 1232 LIMIT 1
618 Block Load (118.9ms) SELECT `blocks`.* FROM `blocks` INNER JOIN `block_schedules` ON `blocks`.`block_schedule_id` = `block_schedules`.`id` WHERE `block_schedules`.`id` = 356 AND (blocks.start_date >= '2018-09-04' AND blocks.end_date <= '2018-11-25') ORDER BY start_date asc, end_date asc
619INFO : (05-29 13:22:48) phase: Scheduler::Base
620INFO : (05-29 13:22:48) from: 2018-09-04 to: 2018-11-25
621 Rule Load (121.9ms) SELECT `rules`.* FROM `rules` WHERE `rules`.`rule_set_id` = 1232 ORDER BY applied desc, weight desc
622INFO : (05-29 13:22:49) rule configurations: Weekend 1
623 - 'Current Weekend / Weekday Point Targets' applied {"opt1"=>{"applied"=>"0"}, "opt2"=>{"applied"=>"0"}, "threshold"=>"0"} weight:10
624 - 'Cumulative Weekend / Weekday Point Targets' applied {"opt1"=>{"applied"=>"0"}, "opt2"=>{"applied"=>"0"}, "threshold"=>"0"} weight:3
625 - 'Weeks Between Same Day Of Week' applied {"opt1"=>{"applied"=>"0", "value"=>""}} weight:1
626 - 'Cumulative Assignment Targets' not applied
627 - 'Cumulative Combined Assignment Targets' not applied
628 - 'Cumulative Daily Assignment Targets' not applied
629 - 'Cumulative Day of Week Targets' not applied
630 - 'Cumulative Hour Targets' not applied
631 - 'Cumulative Point Targets' not applied
632 - 'Cumulative Weekend / Weekday Assignment Targets' not applied
633 - 'Cumulative Weekend / Weekday Combined Assignment Targets' not applied
634 - 'Cumulative Weekend / Weekday Hour Targets' not applied
635 - 'Current Assignment Targets' not applied
636 - 'Current Combined Assignment Targets' not applied
637 - 'Current Daily Assignment Targets' not applied
638 - 'Current Day of Week Targets' not applied
639 - 'Current Hour Targets' not applied
640 - 'Current Point Targets' not applied
641 - 'Current Weekend / Weekday Assignment Targets' not applied
642 - 'Current Weekend / Weekday Combined Assignment Targets' not applied
643 - 'Current Weekend / Weekday Hour Targets' not applied
644 - 'Pending Call Requests' not applied
645 - 'Pending No-call Requests' not applied
646 - 'Assignments Per Day' not applied
647 - 'Days Between Assignments' not applied
648 - 'Days Between Same Assignment' not applied
649 - 'Unassigned Days' not applied
650 - 'Weeks Between Same Assignment On Same Day Of Week' not applied
651INFO : (05-29 13:22:49) started: Scheduler::Cache::Collector.collect_all
652INFO : (05-29 13:22:49) collect_staffs
653 Staff Load (368.0ms) SELECT DISTINCT `staffs`.* FROM `staffs` INNER JOIN `assign_staff_types` ON `assign_staff_types`.`staff_id` = `staffs`.`id` INNER JOIN `staff_types` ON `staff_types`.`id` = `assign_staff_types`.`staff_type_id` WHERE `staffs`.`client_id` = 261 AND `staffs`.`take_call` = 1 AND `staffs`.`active` = 1 ORDER BY `staffs`.`display_order` ASC, last_name, first_name
654 Client Load (227.7ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261
655 StaffSpecialization Load (127.9ms) SELECT `staff_specializations`.* FROM `staff_specializations` WHERE `staff_specializations`.`staff_id` IN (17150, 17151, 26974, 17152, 23458, 17153, 21519, 21141, 17259, 17154, 23038, 26975, 17260, 17157, 21430, 21568, 17158, 17353, 28716, 17262, 21433, 17159, 17354, 21518, 17599, 17160, 17161, 26121, 17266, 17595, 21964, 28696, 17162, 17163, 17269, 17270, 26122, 17164, 17165, 17166, 17167, 23095, 17168, 17271, 17272, 17273, 17170, 17171, 23545, 19559, 17355, 21203, 17274, 17276, 19349, 17172, 17277, 17173, 17174, 17362, 17175, 17279, 17176, 17280, 17177, 17178, 17179, 17281, 21798, 17282, 17180, 17181, 17182, 17283, 17184, 17284, 17185, 28442, 17285, 17286, 17287, 17288, 17357, 17186, 17292, 17187, 17739, 17294, 17295, 17296, 17189, 17190, 17358, 17297, 17298, 17336, 17192, 17193, 17335, 17334, 17333, 17194, 17195, 17332, 17602, 17331, 26149, 17330, 17197, 21677, 17198, 17384, 17200, 17201, 17326, 17210, 17211, 17212, 17213, 17214, 17325, 17324, 17216, 17323, 17322, 17217, 21025, 17321, 17218, 17219, 17220, 17221, 17320, 17222, 22981, 22972, 17261, 17319, 17223, 17225, 28443, 17226, 17227, 17228, 17318, 17317, 22888, 17229, 17315, 17231, 17314, 17312, 17232, 17233, 17234, 21024, 17311, 17310, 17208, 17236, 17237, 17238, 20023, 17309, 17239, 17240, 17241, 17603, 17243, 17594, 17306, 17291, 17244, 17245, 17246, 17247, 17248, 17250, 17305, 17251, 17386, 17252, 17253, 20372, 17601, 23459, 17303, 17254, 22569, 22716, 17255, 22754, 17302, 17256, 17257, 17300, 17299, 17738)
656 Specialization Load (123.3ms) SELECT `specializations`.* FROM `specializations` WHERE `specializations`.`id` = 681 ORDER BY `specializations`.`priority` ASC
657 StaffCallType Load (1288.1ms) SELECT `staff_call_types`.* FROM `staff_call_types` WHERE `staff_call_types`.`staff_id` IN (17150, 17151, 26974, 17152, 23458, 17153, 21519, 21141, 17259, 17154, 23038, 26975, 17260, 17157, 21430, 21568, 17158, 17353, 28716, 17262, 21433, 17159, 17354, 21518, 17599, 17160, 17161, 26121, 17266, 17595, 21964, 28696, 17162, 17163, 17269, 17270, 26122, 17164, 17165, 17166, 17167, 23095, 17168, 17271, 17272, 17273, 17170, 17171, 23545, 19559, 17355, 21203, 17274, 17276, 19349, 17172, 17277, 17173, 17174, 17362, 17175, 17279, 17176, 17280, 17177, 17178, 17179, 17281, 21798, 17282, 17180, 17181, 17182, 17283, 17184, 17284, 17185, 28442, 17285, 17286, 17287, 17288, 17357, 17186, 17292, 17187, 17739, 17294, 17295, 17296, 17189, 17190, 17358, 17297, 17298, 17336, 17192, 17193, 17335, 17334, 17333, 17194, 17195, 17332, 17602, 17331, 26149, 17330, 17197, 21677, 17198, 17384, 17200, 17201, 17326, 17210, 17211, 17212, 17213, 17214, 17325, 17324, 17216, 17323, 17322, 17217, 21025, 17321, 17218, 17219, 17220, 17221, 17320, 17222, 22981, 22972, 17261, 17319, 17223, 17225, 28443, 17226, 17227, 17228, 17318, 17317, 22888, 17229, 17315, 17231, 17314, 17312, 17232, 17233, 17234, 21024, 17311, 17310, 17208, 17236, 17237, 17238, 20023, 17309, 17239, 17240, 17241, 17603, 17243, 17594, 17306, 17291, 17244, 17245, 17246, 17247, 17248, 17250, 17305, 17251, 17386, 17252, 17253, 20372, 17601, 23459, 17303, 17254, 22569, 22716, 17255, 22754, 17302, 17256, 17257, 17300, 17299, 17738)
658INFO : (05-29 13:23:21) initial eligibles: [17150,17151,26974,17152,23458,17153,21519,21141,17259,17154,23038,26975,17260,17157,21430,21568,17158,17353,28716,17262,21433,17159,17354,21518,17599,17160,17161,26121,17266,17595,21964,28696,17162,17163,17269,17270,26122,17164,17165,17166,17167,23095,17168,17271,17272,17273,17170,17171,23545,19559,17355,21203,17274,17276,19349,17172,17277,17173,17174,17362,17175,17279,17176,17280,17177,17178,17179,17281,21798,17282,17180,17181,17182,17283,17184,17284,17185,28442,17285,17286,17287,17288,17357,17186,17292,17187,17739,17294,17295,17296,17189,17190,17358,17297,17298,17336,17192,17193,17335,17334,17333,17194,17195,17332,17602,17331,26149,17330,17197,21677,17198,17384,17200,17201,17326,17210,17211,17212,17213,17214,17325,17324,17216,17323,17322,17217,21025,17321,17218,17219,17220,17221,17320,17222,22981,22972,17261,17319,17223,17225,28443,17226,17227,17228,17318,17317,22888,17229,17315,17231,17314,17312,17232,17233,17234,21024,17311,17310,17208,17236,17237,17238,20023,17309,17239,17240,17241,17603,17243,17594,17306,17291,17244,17245,17246,17247,17248,17250,17305,17251,17386,17252,17253,20372,17601,23459,17303,17254,22569,22716,17255,22754,17302,17256,17257,17300,17299,17738]
659INFO : (05-29 13:23:21) collect_call_types
660 CallType Load (364.1ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`client_id` = 261 AND `call_types`.`active` = 1 ORDER BY `call_types`.`display_order` ASC
661INFO : (05-29 13:23:22) initial call types: [10157,10171,16025,10172,10158,10159,13659,10173,13736,10174,10160,10175,13735,10176,10161,10177,13026,10178,10162,10179,10163,13661,10180,10181,10164,13680,13681,10263,10264,10165,13673,10182,13674,10183,10166,10170,13660,15360,15397,10815,10972,10982,10983,10984,10985,10986,10987,10988,10989,10990,10991,10992,10993,10994,10995,10996,10997,10998,10999,11000,11001,11002,11003,11004,11005,11610,11611,11612,11613,11614,11615,11616,10817,13646,10814,11006,11007,11008,11009,11458,10167,12532,10168,10184,10169,13663,10832,10958,10959,10960,10961,10962,10963,10964,11622,11623,10186,11549,13656,10187,11550,10188,10189,10185,12319,13657,13658,10812,10973,10974,10975,10976,10977,10978,10979,10980,10981,11617,11618,11619,11620,11621,10813,10190,10195,13671,10198,10191,10196,10199,10192,13753,10200,13672,10193,16463,10829,10965,10966,10967,10968,10969,10970,10971,11626,11627,11628,11629,10816,10818,14257,10827,10828,10826,11630,11631,12195,10825,10824,11650,13668,10831,13670,10830,13669,10841,10842,13786,10954,10836,10837,10838,10839,10844,10845,13679,10843,11651,10847,13682,10846,12455,10848,14681,10194,14178,10835,10955,13998,10147,12474,10834,10833,11800,13737,12795,16019,16020,16021,16022,13729,11017,15353,11010,11011,15865,10819,11012,13667,11013,15477,11014,11015,17273,10957,11016,10849,13922,14299,16041,11138,12581,11139,11168,11463,13675,13676,12477,12478,12480,12481,12482,12475,12476,11133,13677,11134,11137,13678,16467,11136,11135,11140,11141,12878,12879,10888,11563,10889,11523,10890,11564,10900,11321,11322,11323,11324,11325,11326,11327,11633,11634,11635,11636,10891,11207,11624,11625,10894,10895,14358,10896,10897,10898,10899,11332,11333,11334,11335,11565,11638,11639,11640,11641,10910,11955,10911,11799,10912,11956,10906,11204,16051,10913,11203,11205,11206,11642,11643,11644,10907,10908,10909,10919,10920,10921,10922,10923,10924,10925,10926,10901,10902,11222,11562,11223,10903,11198,11199,11649,10904,11201,11202,11646,11647,11648,10905,11200,13664,10914,11208,11209,11210,10915,10916,11224,11225,10917,11195,13665,10918,11196,11197,11645,10927,11211,11212,11219,11220,11221,13685,13730,13731,13732,13832]
662INFO : (05-29 13:23:22) collect_chain_links
663 ChainLink Load (242.3ms) SELECT `chain_links`.* FROM `chain_links` WHERE `chain_links`.`client_id` = 261
664 CallType Load (242.1ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` IN (10186, 10187, 10185, 10190, 10200, 10195, 10191, 10199, 10192, 10196, 10198, 10147, 10194, 10157, 10174, 10159, 10172, 10173, 10171, 10162, 10179, 10180, 10166, 10182, 10175, 10165, 10177, 10158, 10163, 10178, 10181, 10164, 10167, 10169, 10170, 10834, 10835, 10955, 10832, 10168, 10958, 10960, 10829, 10965, 10966, 10193, 10967, 10968, 10814, 11133, 11134, 10183, 11135, 11136, 11137, 10815, 10972, 10160, 10982, 10161, 10983, 10984, 10985, 10188, 10974, 10189, 10975, 10973, 11006, 10176, 10812, 15360, 11007, 16463)
665 CallType Load (241.5ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` IN (10187, 10186, 10185, 10200, 10190, 10195, 10199, 10191, 10192, 10196, 10198, 10147, 10194, 10174, 10157, 10172, 10159, 10171, 10173, 10179, 10162, 10180, 10182, 10166, 10175, 10165, 10158, 10177, 10178, 10163, 10181, 10164, 10167, 10169, 10170, 10834, 10835, 10955, 10832, 10958, 10168, 10960, 10829, 10965, 10966, 10967, 10193, 10968, 10814, 11133, 11134, 10183, 11135, 11136, 11137, 10815, 10972, 10982, 10160, 10983, 10161, 10984, 10985, 10974, 10188, 10975, 10189, 10973, 11006, 10176, 10812, 11007, 15360, 16463)
666INFO : (05-29 13:23:24) collect_linkages
667INFO : (05-29 13:23:24) collect_schedules
668 Schedule Load (363.4ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`client_id` = 261 AND (`schedules`.`schedule_on` BETWEEN '2018-09-01' AND '2018-11-30')
669INFO : (05-29 13:23:25) collect_slots
670INFO : (05-29 13:23:25) collect_approved_call_requests
671 Request Load (134.4ms) SELECT `requests`.* FROM `requests` INNER JOIN `staffs` ON `staffs`.`id` = `requests`.`staff_id` WHERE `requests`.`client_id` = 261 AND `requests`.`request_type` = 1 AND `requests`.`status` = 1 AND (`requests`.`schedule_on` BETWEEN '2018-09-01' AND '2018-11-30') ORDER BY requests.schedule_on ASC, staffs.request_priority ASC, requests.created_at ASC
672 Staff Load (124.3ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 26121
673INFO : (05-29 13:23:26) collect_approved_no_call_requests
674 Request Load (127.8ms) SELECT `requests`.* FROM `requests` WHERE `requests`.`client_id` = 261 AND `requests`.`request_type` = 0 AND `requests`.`status` = 1 AND (`requests`.`schedule_on` BETWEEN '2018-09-01' AND '2018-11-30') ORDER BY requests.schedule_on asc, requests.created_at asc
675INFO : (05-29 13:23:26) finished: Scheduler::Cache::Collector.collect_all
676INFO : (05-29 13:23:26) begin to process requests
677 CallType Load (348.6ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`calendar_schedule_id` = 1167 AND `call_types`.`active` = 1
678 (525.0ms) SELECT MAX(blocks.end_date) FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`calendar_schedule_id` = 1167 AND ((published_blocks.assignment_ids IS NULL) AND (published_blocks.days_of_week_mask = 127))
679 Request Load (970.3ms) SELECT distinct requests.* FROM `requests` INNER JOIN `request_call_types` ON `request_call_types`.`request_id` = `requests`.`id` WHERE `requests`.`client_id` = 261 AND `requests`.`status` = 1 AND `requests`.`request_type` = 1 AND `request_call_types`.`call_type_id` IN (10147, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10198, 10199, 10200, 10263, 10264, 10825, 10827, 10831, 10841, 10844, 10847, 10848, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11168, 11463, 11549, 11550, 12319, 12474, 12475, 12476, 12477, 12478, 12480, 12481, 12482, 12532, 12581, 13026, 13656, 13657, 13658, 13659, 13660, 13661, 13663, 13670, 13671, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13680, 13681, 13682, 13735, 13736, 13753, 13922, 14178, 14299, 16025, 16041, 16463) AND (requests.schedule_on > '2018-09-03')
680 Schedule Load (115.5ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`schedule_on` = '2018-09-27' AND `schedules`.`staff_id` = 26121
681 RequestCallType Load (120.6ms) SELECT `request_call_types`.* FROM `request_call_types` WHERE `request_call_types`.`request_id` = 2361512 AND (request_call_types.second_call_type_id IS NULL)
682 RequestCallType Load (123.4ms) SELECT `request_call_types`.* FROM `request_call_types` WHERE `request_call_types`.`request_id` = 2361512
683 Staff Load (117.1ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 26121 LIMIT 1
684 Client Load (122.3ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
685 CallType Load (129.1ms) SELECT DISTINCT call_types.* FROM `call_types` INNER JOIN `eligible_staff_types` ON `call_types`.`id` = `eligible_staff_types`.`call_type_id` INNER JOIN `staff_types` ON `eligible_staff_types`.`staff_type_id` = `staff_types`.`id` INNER JOIN `assign_staff_types` ON `staff_types`.`id` = `assign_staff_types`.`staff_type_id` INNER JOIN staff_call_types ON staff_call_types.staff_id=26121 AND staff_call_types.call_type_id=call_types.id INNER JOIN calendar_schedules cs
686 ON cs.id = call_types.calendar_schedule_id
687 INNER JOIN blocks b
688 ON b.client_id = call_types.client_id
689 AND cs.block_schedule_id = b.block_schedule_id
690 AND '2018-09-27' BETWEEN b.start_date AND b.end_date
691 LEFT JOIN published_blocks pb
692 ON pb.client_id = call_types.client_id
693 AND pb.calendar_schedule_id = cs.id
694 AND pb.block_id = b.id
695 AND (16 & pb.days_of_week_mask) > 0
696 LEFT JOIN published_block_call_types pbct
697 ON pbct.client_id = call_types.client_id
698 AND pbct.assignment_type = 'CallType'
699 AND pbct.assignment_id = call_types.id
700 AND pbct.calendar_schedule_id = cs.id
701 AND pbct.block_id = b.id
702 AND (16 & pbct.days_of_week_mask) > 0 WHERE `assign_staff_types`.`client_id` = 261 AND `assign_staff_types`.`staff_id` = 26121 AND ('2018-09-27' BETWEEN assign_staff_types.begin_date AND IFNULL(assign_staff_types.end_date, '9999-12-31')) AND `call_types`.`active` = 1 AND `call_types`.`is_call_requestable` = 1 AND ((call_types.days_of_week_mask & 16 > 0)) AND ((staff_call_types.days_of_week_mask & 16 > 0 OR staff_call_types.secondary_availability_days_of_week_mask & 16 > 0 OR staff_call_types.backup = 1)) AND (pb.id IS NULL OR (pb.assignment_ids IS NOT NULL AND pbct.id IS NULL)) GROUP BY `call_types`.`id` ORDER BY `call_types`.`display_order` ASC
703 CallType Load (122.3ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10165 LIMIT 1
704 CallType Load (115.4ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10165 LIMIT 1
705 Client Load (121.7ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
706 Vacation Load (121.9ms) SELECT `vacations`.* FROM `vacations` WHERE `vacations`.`client_id` = 261 AND `vacations`.`vacation_type` = 0 AND `vacations`.`status` = 3 AND `vacations`.`schedule_on` = '2018-09-27' ORDER BY vacations.position asc
707 Staff Load (246.5ms) SELECT DISTINCT `staffs`.* FROM `staffs` INNER JOIN `assign_staff_types` ON `assign_staff_types`.`staff_id` = `staffs`.`id` INNER JOIN `staff_types` ON `staff_types`.`id` = `assign_staff_types`.`staff_type_id` INNER JOIN `staff_call_types` ON `staff_call_types`.`staff_id` = `staffs`.`id` WHERE `staffs`.`client_id` = 261 AND `staffs`.`take_call` = 1 AND `staffs`.`active` = 1 AND (staff_call_types.call_type_id = 10165) AND (staff_call_types.days_of_week_mask & 16 > 0 or staff_call_types.secondary_availability_days_of_week_mask & 16 > 0 or staff_call_types.backup = 1) ORDER BY `staffs`.`display_order` ASC, last_name, first_name
708 Client Load (123.8ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261
709 StaffSpecialization Load (125.0ms) SELECT `staff_specializations`.* FROM `staff_specializations` WHERE `staff_specializations`.`staff_id` IN (17150, 26974, 23458, 17153, 21519, 17154, 23038, 17158, 21433, 17354, 21518, 17599, 26121, 17595, 17162, 17166, 23095, 17168, 17171, 19559, 17173, 17174, 17175, 17176, 17179, 21798, 17180, 17181, 17182, 17184, 17187, 17189, 17190, 17193, 17194, 17200, 17201, 17211, 17212, 17217, 21025, 17218, 17219, 17221, 17223, 17225, 17227, 17228, 17229, 17232, 17208, 17236, 17237, 17238, 17241, 17243, 17594, 17245, 17248, 17250, 17386, 17252, 17253, 17601, 23459, 17254, 17255, 22754, 17256)
710 Specialization Load (122.1ms) SELECT `specializations`.* FROM `specializations` WHERE `specializations`.`id` = 681 ORDER BY `specializations`.`priority` ASC
711 Schedule Load (123.7ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`schedule_on` = '2018-09-27' AND `schedules`.`staff_id` = 26121 AND `schedules`.`call_type_id` = 10165
712 CallType Load (120.8ms) SELECT call_types.*, schedules.staff_id FROM `call_types` INNER JOIN `schedules` ON `schedules`.`call_type_id` = `call_types`.`id` WHERE `call_types`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-27'
713 Schedule Load (120.6ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-27'
714 CallType Load (123.1ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10813 LIMIT 1
715 CallType Load (122.6ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10832 LIMIT 1
716 CallType Load (116.5ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10960 LIMIT 1
717 CallType Load (134.0ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10976 LIMIT 1
718 CallType Load (121.7ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10977 LIMIT 1
719 CallType Load (115.8ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10978 LIMIT 1
720 CallType Load (117.1ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10986 LIMIT 1
721 CallType Load (124.1ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10987 LIMIT 1
722 CallType Load (122.8ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10988 LIMIT 1
723 CallType Load (121.6ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 11006 LIMIT 1
724 CallType Load (116.5ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`client_id` = 261 AND `call_types`.`id` = 10165 ORDER BY `call_types`.`display_order` ASC LIMIT 1
725 CalendarSchedule Load (121.8ms) SELECT `calendar_schedules`.* FROM `calendar_schedules` WHERE `calendar_schedules`.`id` = 1167 LIMIT 1
726 RuleSet Load (121.7ms) SELECT `rule_sets`.* FROM `rule_sets` WHERE `rule_sets`.`id` = 1177 LIMIT 1
727 Rule Load (122.1ms) SELECT `rules`.* FROM `rules` WHERE `rules`.`rule_set_id` = 1177 ORDER BY applied desc, weight desc
728 Client Load (122.0ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
729 Block Load (120.8ms) SELECT `blocks`.* FROM `blocks` INNER JOIN `block_schedules` ON `blocks`.`block_schedule_id` = `block_schedules`.`id` WHERE `block_schedules`.`id` = 356 AND (blocks.start_date <= '2018-09-27' AND blocks.end_date >= '2018-09-27') ORDER BY start_date asc, end_date asc LIMIT 1
730 BlockSchedule Load (115.0ms) SELECT `block_schedules`.* FROM `block_schedules` WHERE `block_schedules`.`id` = 356 LIMIT 1
731Running Scheduler::Manual::Queries::Query005
732 Block Load (120.3ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
733 (125.1ms) drop view if exists view_schedules_1913539992
734
735Running Scheduler::Manual::Queries::CreateTables
736 Block Load (119.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
737 (120.4ms) DROP TABLE IF EXISTS buffer_annual_hour_targets_1913539992
738 (126.9ms) DROP TABLE IF EXISTS buffer_annual_point_targets_1913539992
739 (124.6ms) DROP TABLE IF EXISTS buffer_annual_targets_staff_totals_1913539992
740 (121.8ms) DROP TABLE IF EXISTS buffer_auto_populate_slots_1913539992
741 (118.1ms) DROP TABLE IF EXISTS buffer_call_days_targets_1913539992
742 (126.2ms) DROP TABLE IF EXISTS buffer_call_type_targets_1913539992
743 (125.3ms) DROP TABLE IF EXISTS buffer_cumulative_cd_targets_1913539992
744 (124.7ms) DROP TABLE IF EXISTS buffer_cumulative_ct_targets_1913539992
745 (122.7ms) DROP TABLE IF EXISTS buffer_cumulative_dow_targets_1913539992
746 (122.8ms) DROP TABLE IF EXISTS buffer_cumulative_hour_targets_1913539992
747 (124.5ms) DROP TABLE IF EXISTS buffer_cumulative_oa_targets_1913539992
748 (124.2ms) DROP TABLE IF EXISTS buffer_cumulative_point_targets_1913539992
749 (126.1ms) DROP TABLE IF EXISTS buffer_current_cd_targets_1913539992
750 (126.7ms) DROP TABLE IF EXISTS buffer_current_ct_targets_1913539992
751 (118.1ms) DROP TABLE IF EXISTS buffer_current_dow_targets_1913539992
752 (122.8ms) DROP TABLE IF EXISTS buffer_current_hour_targets_1913539992
753 (123.7ms) DROP TABLE IF EXISTS buffer_current_oa_targets_1913539992
754 (125.0ms) DROP TABLE IF EXISTS buffer_current_point_targets_1913539992
755 (123.3ms) DROP TABLE IF EXISTS buffer_day_of_week_targets_1913539992
756 (125.0ms) DROP TABLE IF EXISTS buffer_hour_targets_1913539992
757 (116.8ms) DROP TABLE IF EXISTS buffer_linkage_call_days_targets_1913539992
758 (123.1ms) DROP TABLE IF EXISTS buffer_linkage_call_type_targets_1913539992
759 (123.1ms) DROP TABLE IF EXISTS buffer_linkage_targets_1913539992
760 (117.8ms) DROP TABLE IF EXISTS buffer_linkage_hour_targets_1913539992
761 (124.1ms) DROP TABLE IF EXISTS buffer_linkage_point_targets_1913539992
762 (123.0ms) DROP TABLE IF EXISTS buffer_location_privileges_1913539992
763 (117.2ms) DROP TABLE IF EXISTS buffer_periods_1913539992
764 (123.0ms) DROP TABLE IF EXISTS buffer_point_targets_1913539992
765 (122.7ms) DROP TABLE IF EXISTS buffer_schedules_1913539992
766 (117.3ms) DROP TABLE IF EXISTS buffer_target_call_types_1913539992
767 (122.6ms) DROP TABLE IF EXISTS buffer_target_daily_points_1913539992
768 (122.8ms) DROP TABLE IF EXISTS buffer_target_dates_list_1913539992
769 (123.0ms) DROP TABLE IF EXISTS buffer_target_primary_availabilities_1913539992
770 (123.6ms) DROP TABLE IF EXISTS buffer_targets_1913539992
771 (124.8ms) DROP TABLE IF EXISTS buffer_tmp_targets_availabilities_1913539992
772 (117.0ms) DROP TABLE IF EXISTS buffer_tmp_targets_availabilities_exclusions_1913539992
773 (122.9ms) DROP TABLE IF EXISTS buffer_tmp_targets_client_totals_1913539992
774 (124.2ms) DROP TABLE IF EXISTS buffer_tmp_targets_scheduled_1913539992
775 (121.1ms) DROP TABLE IF EXISTS buffer_tmp_targets_staff_totals_1913539992
776 (124.2ms) DROP TABLE IF EXISTS buffer_manual_populate_slots_1913539992
777 (148.0ms) DROP TABLE IF EXISTS buffer_manual_staff_slots_1913539992
778 (127.1ms) DROP TABLE IF EXISTS buffer_manual_assigned_days_1913539992
779 (126.4ms) DROP TABLE IF EXISTS buffer_manual_availabilities_1913539992
780 (122.1ms) DROP TABLE IF EXISTS buffer_manual_violations_1913539992
781 (117.2ms) DROP TABLE IF EXISTS buffer_periods_1913539992
782 (116.9ms) DROP TABLE IF EXISTS buffer_manual_slots_to_ignore_1913539992
783 (117.6ms) DROP TABLE IF EXISTS buffer_linkage_patterns_1913539992
784 (122.6ms) DROP TABLE IF EXISTS buffer_schedules_linkage_patterns_1913539992
785 (119.9ms) DROP TABLE IF EXISTS buffer_staff_assignment_dates_1913539992
786 (123.5ms) DROP TABLE IF EXISTS buffer_location_privileges_1913539992
787 (122.0ms) delete from buffer_target_dates
788 where session_id = '1913539992'
789
790Running Scheduler::Manual::Queries::CreateTables
791 Block Load (126.9ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
792 (124.8ms) CREATE TABLE IF NOT EXISTS buffer_manual_populate_slots_1913539992 LIKE buffer_manual_populate_slots
793 (119.6ms) CREATE TABLE IF NOT EXISTS buffer_manual_staff_slots_1913539992 LIKE buffer_manual_staff_slots
794 (125.6ms) CREATE TABLE IF NOT EXISTS buffer_manual_assigned_days_1913539992 LIKE buffer_manual_assigned_days
795 (125.3ms) CREATE TABLE IF NOT EXISTS buffer_manual_availabilities_1913539992 LIKE buffer_manual_availabilities
796 (126.6ms) CREATE TABLE IF NOT EXISTS buffer_manual_violations_1913539992 LIKE buffer_manual_violations
797 (126.5ms) CREATE TABLE IF NOT EXISTS buffer_periods_1913539992 LIKE buffer_periods
798 (126.2ms) CREATE TABLE IF NOT EXISTS buffer_manual_slots_to_ignore_1913539992 LIKE buffer_manual_slots_to_ignore
799 (126.2ms) CREATE TABLE IF NOT EXISTS buffer_linkage_patterns_1913539992 LIKE buffer_linkage_patterns
800 (125.5ms) CREATE TABLE IF NOT EXISTS buffer_schedules_linkage_patterns_1913539992 LIKE buffer_schedules_linkage_patterns
801 (126.2ms) CREATE TABLE IF NOT EXISTS buffer_staff_assignment_dates_1913539992 LIKE buffer_staff_assignment_dates
802 (128.7ms) CREATE TABLE IF NOT EXISTS buffer_location_privileges_1913539992 LIKE buffer_location_privileges
803 (126.7ms) CREATE TABLE IF NOT EXISTS buffer_annual_hour_targets_1913539992 LIKE buffer_annual_hour_targets
804 (123.9ms) CREATE TABLE IF NOT EXISTS buffer_annual_point_targets_1913539992 LIKE buffer_annual_point_targets
805 (126.7ms) CREATE TABLE IF NOT EXISTS buffer_annual_targets_staff_totals_1913539992 LIKE buffer_annual_targets_staff_totals
806 (129.1ms) CREATE TABLE IF NOT EXISTS buffer_auto_populate_slots_1913539992 LIKE buffer_auto_populate_slots
807 (123.6ms) CREATE TABLE IF NOT EXISTS buffer_call_days_targets_1913539992 LIKE buffer_call_days_targets
808 (127.3ms) CREATE TABLE IF NOT EXISTS buffer_call_type_targets_1913539992 LIKE buffer_call_type_targets
809 (127.9ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_cd_targets_1913539992 LIKE buffer_cumulative_cd_targets
810 (126.7ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_ct_targets_1913539992 LIKE buffer_cumulative_ct_targets
811 (122.1ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_dow_targets_1913539992 LIKE buffer_cumulative_dow_targets
812 (122.4ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_hour_targets_1913539992 LIKE buffer_cumulative_hour_targets
813 (125.0ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_oa_targets_1913539992 LIKE buffer_cumulative_oa_targets
814 (127.2ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_point_targets_1913539992 LIKE buffer_cumulative_point_targets
815 (126.8ms) CREATE TABLE IF NOT EXISTS buffer_current_cd_targets_1913539992 LIKE buffer_current_cd_targets
816 (119.6ms) CREATE TABLE IF NOT EXISTS buffer_current_ct_targets_1913539992 LIKE buffer_current_ct_targets
817 (127.4ms) CREATE TABLE IF NOT EXISTS buffer_current_dow_targets_1913539992 LIKE buffer_current_dow_targets
818 (127.0ms) CREATE TABLE IF NOT EXISTS buffer_current_hour_targets_1913539992 LIKE buffer_current_hour_targets
819 (123.3ms) CREATE TABLE IF NOT EXISTS buffer_current_oa_targets_1913539992 LIKE buffer_current_oa_targets
820 (119.0ms) CREATE TABLE IF NOT EXISTS buffer_current_point_targets_1913539992 LIKE buffer_current_point_targets
821 (125.9ms) CREATE TABLE IF NOT EXISTS buffer_day_of_week_targets_1913539992 LIKE buffer_day_of_week_targets
822 (126.3ms) CREATE TABLE IF NOT EXISTS buffer_hour_targets_1913539992 LIKE buffer_hour_targets
823 (118.8ms) CREATE TABLE IF NOT EXISTS buffer_linkage_call_days_targets_1913539992 LIKE buffer_linkage_call_days_targets
824 (128.8ms) CREATE TABLE IF NOT EXISTS buffer_linkage_call_type_targets_1913539992 LIKE buffer_linkage_call_type_targets
825 (125.4ms) CREATE TABLE IF NOT EXISTS buffer_linkage_targets_1913539992 LIKE buffer_linkage_targets
826 (126.7ms) CREATE TABLE IF NOT EXISTS buffer_linkage_hour_targets_1913539992 LIKE buffer_linkage_hour_targets
827 (128.2ms) CREATE TABLE IF NOT EXISTS buffer_linkage_point_targets_1913539992 LIKE buffer_linkage_point_targets
828 (118.9ms) CREATE TABLE IF NOT EXISTS buffer_location_privileges_1913539992 LIKE buffer_location_privileges
829 (219.7ms) CREATE TABLE IF NOT EXISTS buffer_periods_1913539992 LIKE buffer_periods
830 (126.5ms) CREATE TABLE IF NOT EXISTS buffer_point_targets_1913539992 LIKE buffer_point_targets
831 (154.2ms) CREATE TABLE IF NOT EXISTS buffer_schedules_1913539992 LIKE buffer_schedules
832 (160.9ms) CREATE TABLE IF NOT EXISTS buffer_target_call_types_1913539992 LIKE buffer_target_call_types
833 (1190.3ms) CREATE TABLE IF NOT EXISTS buffer_target_daily_points_1913539992 LIKE buffer_target_daily_points
834 (167.6ms) CREATE TABLE IF NOT EXISTS buffer_target_dates_list_1913539992 LIKE buffer_target_dates_list
835 (170.8ms) CREATE TABLE IF NOT EXISTS buffer_target_primary_availabilities_1913539992 LIKE buffer_target_primary_availabilities
836 (126.9ms) CREATE TABLE IF NOT EXISTS buffer_targets_1913539992 LIKE buffer_targets
837 (167.8ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_availabilities_1913539992 LIKE buffer_tmp_targets_availabilities
838 (168.5ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_availabilities_exclusions_1913539992 LIKE buffer_tmp_targets_availabilities_exclusions
839 (167.7ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_client_totals_1913539992 LIKE buffer_tmp_targets_client_totals
840 (170.7ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_scheduled_1913539992 LIKE buffer_tmp_targets_scheduled
841 (126.7ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_staff_totals_1913539992 LIKE buffer_tmp_targets_staff_totals
842Running Scheduler::Manual::Queries::Query005
843 Block Load (124.7ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
844 (122.1ms) create or replace view view_schedules_1913539992
845 as
846 select sc.*
847 from schedules as sc
848 left join buffer_manual_slots_to_ignore_1913539992 as sti
849 on sc.id = sti.schedule_id
850 where sc.client_id = 261
851 and sti.id is null
852
853Running Scheduler::Manual::Queries::FillManualPopulateSlots
854 Block Load (121.3ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
855 (137.1ms) INSERT INTO buffer_manual_populate_slots_1913539992 (
856 thread_id,
857 schedule_on,
858 day_of_week_mask,
859 call_type_id,
860 should_be_populated,
861 staff_id
862 ) VALUES(
863 0,
864 '2018-09-27',
865 16,
866 10165,
867 1,
868 26121
869 )
870
871Running Scheduler::Manual::Queries::Query01
872 Block Load (124.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
873 (124.0ms) insert into buffer_manual_populate_slots_1913539992 (
874 thread_id, schedule_on, day_of_week_mask, call_type_id, should_be_populated, staff_id
875 )
876 select distinct
877 mps.thread_id,
878 date_add(mps.schedule_on, interval lr.distance_in_days day) as schedule_on,
879 (1 << (dayofweek(date_add(mps.schedule_on, interval lr.distance_in_days day)) - 1)) as day_of_week_mask,
880 lr.linked_call_type_id as call_type_id,
881 0 as should_be_populated,
882 mps.staff_id
883 from buffer_manual_populate_slots_1913539992 as mps
884 inner join linkage_relations as lr
885 on mps.day_of_week_mask = lr.day_of_week_mask
886 and mps.call_type_id = lr.call_type_id
887 left join buffer_manual_populate_slots_1913539992 as mps_2
888 on mps.thread_id = mps_2.thread_id
889 and date_add(mps.schedule_on, interval lr.distance_in_days day) = mps_2.schedule_on
890 and lr.linked_call_type_id = mps_2.call_type_id
891 where not (
892 lr.call_type_id = lr.linked_call_type_id
893 and lr.distance_in_days = 0
894 )
895 and mps_2.id is null
896 order by null
897
898Running Scheduler::Manual::Queries::Query012
899 Block Load (238.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
900 (125.5ms) update buffer_manual_populate_slots_1913539992 as mps
901 inner join call_types as ct
902 on mps.call_type_id = ct.id
903 inner join calendar_schedules as cs
904 on ct.calendar_schedule_id = cs.id
905 inner join blocks as b
906 on cs.block_schedule_id = b.block_schedule_id
907 and mps.schedule_on between b.start_date and b.end_date
908 set mps.calendar_schedule_id = cs.id,
909 mps.block_id = b.id
910
911 (118.7ms) update buffer_manual_slots_to_ignore_1913539992 as sti
912 inner join call_types as ct
913 on sti.call_type_id = ct.id
914 inner join calendar_schedules as cs
915 on ct.calendar_schedule_id = cs.id
916 inner join blocks as b
917 on cs.block_schedule_id = b.block_schedule_id
918 and sti.schedule_on between b.start_date and b.end_date
919 set sti.calendar_schedule_id = cs.id,
920 sti.block_id = b.id
921
922 BlockSchedule Load (124.6ms) SELECT `block_schedules`.* FROM `block_schedules` WHERE `block_schedules`.`id` = 356 LIMIT 1
923 (118.7ms) insert into buffer_periods_1913539992 (
924 calendar_schedule_id, block_schedule_id, period_offset, start_block_display_order, end_block_display_order,
925 start_date, end_date, should_be_populated, should_be_evaluated
926 )
927 select mps.calendar_schedule_id,
928 b.block_schedule_id,
929 b.display_order as period_offset,
930 b.display_order as start_block_display_order,
931 b.display_order as end_block_display_order,
932 b.start_date as start_date,
933 b.end_date as end_date,
934 mps.should_be_populated as should_be_populated,
935 mps.should_be_evaluated as should_be_evaluated
936 from (
937 select calendar_schedule_id, block_id,
938 max(should_be_populated) as should_be_populated,
939 1 as should_be_evaluated
940 from buffer_manual_populate_slots_1913539992
941 group by calendar_schedule_id, block_id
942 order by null
943 ) as mps
944 inner join blocks as b
945 on mps.block_id = b.id
946 order by null
947
948 (123.4ms) update buffer_manual_populate_slots_1913539992 as mps
949 inner join buffer_periods_1913539992 as p
950 on mps.calendar_schedule_id = p.calendar_schedule_id
951 and mps.schedule_on between p.start_date and p.end_date
952 inner join blocks as b
953 on mps.block_id = b.id
954 inner join (
955 select calendar_schedule_id,
956 max(if(should_be_populated = 1, end_block_display_order, null)) as timeframe_ending
957 from buffer_periods_1913539992
958 group by calendar_schedule_id
959 order by null
960 ) as t1
961 on mps.calendar_schedule_id = t1.calendar_schedule_id
962 set mps.period_offset = p.period_offset,
963 mps.affects_cumulative_targets = if(
964 b.display_order between (t1.timeframe_ending - (4 /* cumulative targets period */ - 1)) and t1.timeframe_ending, 1, 0
965 )
966
967 (116.8ms) update buffer_manual_slots_to_ignore_1913539992 as sti
968 inner join buffer_periods_1913539992 as p
969 on sti.calendar_schedule_id = p.calendar_schedule_id
970 and sti.schedule_on between p.start_date and p.end_date
971 inner join blocks as b
972 on sti.block_id = b.id
973 inner join (
974 select calendar_schedule_id,
975 max(if(should_be_populated = 1, end_block_display_order, null)) as timeframe_ending
976 from buffer_periods_1913539992
977 group by calendar_schedule_id
978 order by null
979 ) as t1
980 on sti.calendar_schedule_id = t1.calendar_schedule_id
981 set sti.period_offset = p.period_offset,
982 sti.affects_cumulative_targets = if(
983 b.display_order between (t1.timeframe_ending - (4 /* cumulative targets period */ - 1)) and t1.timeframe_ending, 1, 0
984 )
985
986Running Scheduler::Manual::Queries::Query014
987 Block Load (124.8ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
988 (121.3ms) select count(lp.id)
989 from linkage_patterns lp
990 inner join buffer_periods_1913539992 as p
991 on lp.calendar_schedule_id = p.calendar_schedule_id
992
993Running Scheduler::Manual::Queries::Query016
994 Block Load (118.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
995 (124.4ms) truncate table buffer_location_privileges_1913539992
996
997 (129.8ms) insert into buffer_location_privileges_1913539992 (
998 staff_id,
999 location_id,
1000 begin_date,
1001 end_date
1002 )
1003 select
1004 s.id as staff_id,
1005 l.location_id,
1006 '0000-00-00' as begin_date,
1007 '9999-12-31' as end_date
1008 from (
1009 select l.id as location_id
1010 from
1011 buffer_manual_populate_slots_1913539992 as mps
1012 inner join call_types as ct
1013 on mps.call_type_id = ct.id
1014 and ct.active = 1
1015 inner join locations as l
1016 on ct.location_id = l.id
1017 and l.active = 1
1018 group by l.id
1019 order by null
1020 ) as l
1021 inner join staffs as s
1022 on s.client_id = 261
1023 and s.active = 1
1024 and s.take_call = 1
1025 left join location_privileges as lp
1026 on s.id = lp.staff_id
1027 where lp.id is null
1028 union
1029 select
1030 lp.staff_id,
1031 lp.location_id,
1032 lp.begin_date,
1033 COALESCE(lp.end_date, '9999-12-31')
1034 from (
1035 select l.id as location_id
1036 from
1037 buffer_manual_populate_slots_1913539992 as mps
1038 inner join call_types as ct
1039 on mps.call_type_id = ct.id
1040 and ct.active = 1
1041 inner join locations as l
1042 on ct.location_id = l.id
1043 and l.active = 1
1044 group by l.id
1045 order by null
1046 ) as l
1047 inner join location_privileges as lp
1048 on l.location_id = lp.location_id
1049 order by null
1050
1051Running Scheduler::Manual::Queries::Query02
1052 Block Load (122.5ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1053 (134.2ms) /* AvailabilityRule */
1054 insert into buffer_manual_violations_1913539992/* session_id */ (
1055 schedule_id,
1056 staff_id,
1057 violation_date,
1058 violation_details,
1059 violation_type
1060 )
1061 select straight_join
1062 mps.id as schedule_id,
1063 s.id as staff_id,
1064 mps.schedule_on as violation_date,
1065 null as violation_details,
1066 'AvailabilityRule' as violation_type
1067 from
1068 buffer_manual_populate_slots_1913539992/* session_id */ as mps
1069 inner join call_types as ct
1070 on mps.call_type_id = ct.id
1071 and ct.active = 1
1072 and mps.day_of_week_mask & ct.days_of_week_mask > 0
1073 inner join staffs as s
1074 on ct.client_id = s.client_id
1075 and (
1076 mps.staff_id = -1
1077 or mps.staff_id = s.id
1078 )
1079 and s.active = 1
1080 and s.take_call = 1
1081 left join buffer_location_privileges_1913539992/* session_id */ as lp
1082 on s.id = lp.staff_id
1083 and ct.location_id = lp.location_id
1084 and mps.schedule_on between lp.begin_date and ifnull(lp.end_date, '9999-12-31')
1085 left join assign_staff_types as ast
1086 on s.id = ast.staff_id
1087 and mps.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
1088 left join eligible_staff_types as est
1089 on ct.id = est.call_type_id
1090 and ast.staff_type_id = est.staff_type_id
1091 left join staff_call_types as sct
1092 on s.id = sct.staff_id
1093 and ct.id = sct.call_type_id
1094 left join staff_rotations as sr
1095 on s.id = sr.staff_id
1096 and mps.schedule_on between sr.start_date and sr.end_date
1097 left join daily_rotations as dr
1098 on s.id = dr.staff_id
1099 and mps.schedule_on = dr.schedule_on
1100 left join rotations as r
1101 on r.id = ifnull(dr.rotation_id, sr.rotation_id)
1102 and r.active = 1
1103 left join rotation_call_types as rct
1104 on r.id = rct.rotation_id
1105 and ct.id = rct.call_type_id
1106 where
1107 mps.should_be_populated = 1
1108 and (
1109 lp.id is null
1110 or ast.id is null
1111 or (
1112 ct.all_staff_types = 0
1113 and ast.id is not null
1114 and est.id is null
1115 )
1116 or (
1117 case
1118 when (
1119 mps.day_of_week_mask &
1120 ifnull(sct.days_of_week_mask, 0) &
1121 if(
1122 r.id is null,
1123 127,
1124 ifnull(rct.days_of_week_mask, 0)
1125 )
1126 ) > 0 then 3 /* primary */
1127 when (
1128 mps.day_of_week_mask &
1129 (
1130 ifnull(sct.days_of_week_mask, 0) |
1131 ifnull(sct.secondary_availability_days_of_week_mask, 0)
1132 ) &
1133 (
1134 if(
1135 r.id is null,
1136 127,
1137 ifnull(rct.days_of_week_mask, 0)
1138 ) |
1139 if(
1140 r.id is null,
1141 127,
1142 ifnull(rct.secondary_availability_days_of_week_mask, 0)
1143 )
1144 )
1145 ) > 0 then 2 /* secondary */
1146 when (
1147 ifnull(sct.backup, 0) |
1148 ifnull(rct.backup, 0)
1149 ) > 0 then 1 /* backup */
1150 else 0 /* not available */
1151 end
1152 ) = 0
1153 )
1154 order by null
1155
1156 (127.1ms) /* RequiredRotationsRule */
1157 insert into buffer_manual_violations_1913539992/* session_id */ (
1158 schedule_id,
1159 staff_id,
1160 violation_date,
1161 violation_details,
1162 violation_type
1163 )
1164 select straight_join
1165 mps.id as schedule_id,
1166 s.id as staff_id,
1167 mps.schedule_on as violation_date,
1168 null as violation_details,
1169 'RequiredRotationsRule' as violation_type
1170 from
1171 buffer_manual_populate_slots_1913539992/* session_id */ as mps
1172 inner join call_types as ct
1173 on mps.call_type_id = ct.id
1174 and ct.active = 1
1175 and mps.day_of_week_mask & ct.days_of_week_mask > 0
1176 inner join staffs as s
1177 on ct.client_id = s.client_id
1178 and (
1179 mps.staff_id = -1
1180 or mps.staff_id = s.id
1181 )
1182 and s.active = 1
1183 and s.take_call = 1
1184 left join buffer_manual_violations_1913539992/* session_id */ as mv
1185 on mps.id = mv.schedule_id
1186 and s.id = mv.staff_id
1187 and mv.violation_type = 'AvailabilityRule'
1188 left join required_rotations as rr
1189 on ct.id = rr.call_type_id
1190 left join staff_rotations as sr_2
1191 on s.id = sr_2.staff_id
1192 and rr.rotation_id = sr_2.rotation_id
1193 and mps.schedule_on >= sr_2.start_date
1194 where
1195 mps.should_be_populated = 1
1196 and mv.id is null
1197 group by
1198 mps.id,
1199 s.id,
1200 mps.schedule_on
1201 having
1202 sum(
1203 if(rr.id is not null and sr_2.id is null, 1, 0)
1204 ) > 0 /* RequiredRotationsRule */
1205 order by null
1206
1207Running Scheduler::Manual::Queries::Query02_2
1208 Block Load (124.8ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1209 (121.7ms) insert into buffer_manual_availabilities_1913539992/* session_id */ (
1210 thread_id,
1211 staff_id,
1212 is_linkage
1213 )
1214 select straight_join
1215 mps.thread_id,
1216 s.id as staff_id,
1217 if(
1218 t1.staffs_count is not null, 1, 0
1219 ) as is_linkage
1220 from
1221 buffer_manual_populate_slots_1913539992/* session_id */ as mps
1222 inner join call_types as ct
1223 on mps.call_type_id = ct.id
1224 and ct.active = 1
1225 and mps.day_of_week_mask & ct.days_of_week_mask > 0
1226 inner join staffs as s
1227 on ct.client_id = s.client_id
1228 and (
1229 mps.staff_id = -1
1230 or mps.staff_id = s.id
1231 )
1232 and s.active = 1
1233 and s.take_call = 1
1234 left join buffer_manual_violations_1913539992/* session_id */ as mv
1235 on mps.id = mv.schedule_id
1236 and s.id = mv.staff_id
1237 and mv.violation_type in (
1238 'AvailabilityRule',
1239 'CallOverlapRule',
1240 'RequiredRotationsRule'
1241 )
1242 /* is_linkage */
1243 left join (
1244 select straight_join
1245 mps_0.thread_id,
1246 count(distinct sch_0.staff_id) as staffs_count,
1247 min(sch_0.staff_id) as staff_id
1248 from
1249 buffer_manual_populate_slots_1913539992/* session_id */ as mps_0
1250 left join view_schedules_1913539992/* session_id */ as sch_0
1251 on mps_0.schedule_on = sch_0.schedule_on
1252 and mps_0.call_type_id = sch_0.call_type_id
1253 and sch_0.staff_id is not null
1254 where mps_0.should_be_populated = 0
1255 group by mps_0.thread_id
1256 order by null
1257 ) as t1
1258 on mps.thread_id = t1.thread_id
1259 and (
1260 t1.staffs_count = 0
1261 or (
1262 t1.staffs_count = 1
1263 and s.id = t1.staff_id
1264 )
1265 )
1266 where
1267 mps.should_be_populated = 1
1268 and mv.id is null
1269 order by null
1270
1271Running Scheduler::Manual::Queries::Query03
1272 Block Load (122.6ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1273 (125.4ms) insert into buffer_manual_staff_slots_1913539992 (
1274 schedule_id, staff_id, is_linkage
1275 )
1276 select mps.id as schedule_id, ma.staff_id, ma.is_linkage
1277 from buffer_manual_availabilities_1913539992 as ma
1278 inner join buffer_manual_populate_slots_1913539992 as mps
1279 on ma.thread_id = mps.thread_id
1280 left join view_schedules_1913539992 as sch
1281 on mps.schedule_on = sch.schedule_on
1282 and mps.call_type_id = sch.call_type_id
1283 and sch.staff_id is not null
1284 where mps.should_be_populated = 1
1285 or (ma.is_linkage = 1 and sch.id is null)
1286 order by null
1287
1288Running Scheduler::Manual::Queries::Query04
1289 Block Load (124.3ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1290 (121.9ms) insert into buffer_manual_violations_1913539992 (
1291 schedule_id, staff_id, violation_date, violation_details, violation_type
1292 )
1293 select mps_2.id as schedule_id, ma.staff_id,
1294 sch.schedule_on as violation_date,
1295 concat(sch.call_type_id, ',', sch.staff_id) as violation_details,
1296 'BrokenLinkageRule' as violation_type
1297 from buffer_manual_availabilities_1913539992 as ma
1298 inner join buffer_manual_populate_slots_1913539992 as mps
1299 on ma.thread_id = mps.thread_id
1300 and mps.should_be_populated = 0
1301 inner join buffer_manual_populate_slots_1913539992 as mps_2
1302 on mps.thread_id = mps_2.thread_id
1303 and mps_2.should_be_populated = 1
1304 inner join view_schedules_1913539992 as sch
1305 on mps.schedule_on = sch.schedule_on
1306 and mps.call_type_id = sch.call_type_id
1307 and ma.staff_id != sch.staff_id
1308 where ma.is_linkage = 0
1309 order by null
1310
1311Running Scheduler::Manual::Queries::Query05
1312 Block Load (123.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1313 (125.7ms) /* BrokenLinkageAvailabilityRule */
1314 insert into buffer_manual_violations_1913539992/* session_id */ (
1315 schedule_id,
1316 staff_id,
1317 violation_date,
1318 violation_details,
1319 violation_type
1320 )
1321 select straight_join
1322 mps_2.id as schedule_id,
1323 mss.staff_id,
1324 mps.schedule_on as violation_date,
1325 mps.call_type_id as violation_details,
1326 'BrokenLinkageAvailabilityRule' as violation_type
1327 from
1328 buffer_manual_staff_slots_1913539992/* session_id */ as mss
1329 inner join buffer_manual_populate_slots_1913539992/* session_id */ as mps
1330 on mss.schedule_id = mps.id
1331 and mps.should_be_populated = 0
1332 inner join buffer_manual_populate_slots_1913539992/* session_id */ as mps_2
1333 on mps.thread_id = mps_2.thread_id
1334 and mps_2.should_be_populated = 1
1335 inner join call_types as ct
1336 on mps.call_type_id = ct.id
1337 and ct.active = 1
1338 and mps.day_of_week_mask & ct.days_of_week_mask > 0
1339 inner join staffs as s
1340 on mss.staff_id = s.id
1341 and s.active = 1
1342 and s.take_call = 1
1343 left join buffer_location_privileges_1913539992/* session_id */ as lp
1344 on s.id = lp.staff_id
1345 and ct.location_id = lp.location_id
1346 and mps.schedule_on between lp.begin_date and ifnull(lp.end_date, '9999-12-31')
1347 left join assign_staff_types as ast
1348 on s.id = ast.staff_id
1349 and mps.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
1350 left join eligible_staff_types as est
1351 on ct.id = est.call_type_id
1352 and ast.staff_type_id = est.staff_type_id
1353 left join staff_call_types as sct
1354 on s.id = sct.staff_id
1355 and ct.id = sct.call_type_id
1356 left join staff_rotations as sr
1357 on s.id = sr.staff_id
1358 and mps.schedule_on between sr.start_date and sr.end_date
1359 left join daily_rotations as dr
1360 on s.id = dr.staff_id
1361 and mps.schedule_on = dr.schedule_on
1362 left join rotations as r
1363 on r.id = ifnull(dr.rotation_id, sr.rotation_id)
1364 and r.active = 1
1365 left join rotation_call_types as rct
1366 on r.id = rct.rotation_id
1367 and ct.id = rct.call_type_id
1368 where
1369 mss.is_linkage = 1
1370 and (
1371 lp.id is null
1372 or ast.id is null
1373 or (
1374 ct.all_staff_types = 0
1375 and ast.id is not null
1376 and est.id is null
1377 )
1378 or (
1379 case
1380 when (
1381 mps.day_of_week_mask &
1382 ifnull(sct.days_of_week_mask, 0) &
1383 if(
1384 r.id is null,
1385 127,
1386 ifnull(rct.days_of_week_mask, 0)
1387 )
1388 ) > 0 then 3 /* primary */
1389 when (
1390 mps.day_of_week_mask &
1391 (
1392 ifnull(sct.days_of_week_mask, 0) |
1393 ifnull(sct.secondary_availability_days_of_week_mask, 0)
1394 ) &
1395 (
1396 if(
1397 r.id is null,
1398 127,
1399 ifnull(rct.days_of_week_mask, 0)
1400 ) |
1401 if(
1402 r.id is null,
1403 127,
1404 ifnull(rct.secondary_availability_days_of_week_mask, 0)
1405 )
1406 )
1407 ) > 0 then 2 /* secondary */
1408 when (
1409 ifnull(sct.backup, 0) |
1410 ifnull(rct.backup, 0)
1411 ) > 0 then 1 /* backup */
1412 else 0 /* not available */
1413 end
1414 ) = 0
1415 )
1416 group by
1417 mps_2.id,
1418 mss.staff_id,
1419 mps.schedule_on,
1420 mps.call_type_id
1421 order by null
1422
1423 (124.0ms) /* BrokenLinkageRequiredRotationsRule */
1424 insert into buffer_manual_violations_1913539992/* session_id */ (
1425 schedule_id,
1426 staff_id,
1427 violation_date,
1428 violation_details,
1429 violation_type
1430 )
1431 select straight_join
1432 mps_2.id as schedule_id,
1433 mss.staff_id,
1434 mps.schedule_on as violation_date,
1435 mps.call_type_id as violation_details,
1436 'BrokenLinkageRequiredRotationsRule' as violation_type
1437 from
1438 buffer_manual_staff_slots_1913539992/* session_id */ as mss
1439 inner join buffer_manual_populate_slots_1913539992/* session_id */ as mps
1440 on mss.schedule_id = mps.id
1441 and mps.should_be_populated = 0
1442 inner join buffer_manual_populate_slots_1913539992/* session_id */ as mps_2
1443 on mps.thread_id = mps_2.thread_id
1444 and mps_2.should_be_populated = 1
1445 left join buffer_manual_violations_1913539992/* session_id */ as mv
1446 on mps.id = mv.schedule_id
1447 and mss.staff_id = mv.staff_id
1448 and mv.violation_type = 'BrokenLinkageAvailabilityRule'
1449 left join required_rotations as rr
1450 on mps.call_type_id = rr.call_type_id
1451 left join staff_rotations as sr_2
1452 on mss.staff_id = sr_2.staff_id
1453 and rr.rotation_id = sr_2.rotation_id
1454 and mps.schedule_on >= sr_2.start_date
1455 where
1456 mss.is_linkage = 1
1457 and mv.id is null
1458 group by
1459 mps_2.id,
1460 mss.staff_id,
1461 mps.schedule_on,
1462 mps.call_type_id
1463 having
1464 sum(
1465 if(rr.id is not null and sr_2.id is null, 1, 0)
1466 ) > 0 /* RequiredRotationsRule */
1467 order by null
1468
1469Running Scheduler::Manual::Queries::Query08
1470 Block Load (123.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1471 (121.8ms) update buffer_manual_availabilities_1913539992 as ma
1472 inner join (
1473 select mps.thread_id, mv.staff_id
1474 from buffer_manual_violations_1913539992 as mv
1475 inner join buffer_manual_populate_slots_1913539992 as mps
1476 on mv.schedule_id = mps.id
1477 where mv.violation_type in (
1478 'BrokenLinkageAvailabilityRule',
1479 'BrokenLinkageRequiredRotationsRule',
1480 'BrokenLinkageCallOverlapRule'
1481 )
1482 group by mps.thread_id, mv.staff_id
1483 order by null
1484 ) as t1
1485 on ma.thread_id = t1.thread_id
1486 and ma.staff_id = t1.staff_id
1487 set ma.is_linkage = 0
1488 where ma.is_linkage = 1
1489
1490 (116.7ms) update buffer_manual_staff_slots_1913539992 as mss
1491 inner join buffer_manual_populate_slots_1913539992 as mps
1492 on mss.schedule_id = mps.id
1493 inner join buffer_manual_availabilities_1913539992 as ma
1494 on mps.thread_id = ma.thread_id
1495 and mss.staff_id = ma.staff_id
1496 set mss.is_linkage = 0
1497 where mss.is_linkage = 1
1498 and ma.is_linkage = 0
1499
1500 (122.6ms) delete mss
1501 from buffer_manual_staff_slots_1913539992 as mss
1502 inner join buffer_manual_populate_slots_1913539992 as mps
1503 on mss.schedule_id = mps.id
1504 and mps.should_be_populated = 0
1505 left join buffer_manual_availabilities_1913539992 as ma
1506 on mps.thread_id = ma.thread_id
1507 and mss.staff_id = ma.staff_id
1508 where mss.is_linkage = 0
1509 or ma.id is null
1510
1511 Block Load (122.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.display_order >= 48 and blocks.display_order <= 48) ORDER BY start_date DESC LIMIT 1
1512 Block Load (124.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1513Running Scheduler::Manual::Queries::Query11
1514 Block Load (124.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1515 (130.9ms) insert into buffer_manual_violations_1913539992/* session_id */ (
1516 schedule_id,
1517 staff_id,
1518 violation_date,
1519 violation_details,
1520 violation_type
1521 )
1522 select straight_join
1523 mps.id as schedule_id,
1524 mss.staff_id,
1525 r.schedule_on as violation_date,
1526 null as violation_details,
1527 'NoCallRequestsHiddenHardRule' as violation_type
1528 from
1529 buffer_manual_staff_slots_1913539992/* session_id */ as mss
1530 inner join buffer_manual_populate_slots_1913539992/* session_id */ as mps
1531 on mss.schedule_id = mps.id
1532 /* NoCallRequestsHiddenHardRule */
1533 inner join call_types as ct
1534 on mps.call_type_id = ct.id
1535 and ct.active = 1
1536 and ct.is_no_call_requestable = 1
1537 inner join assign_staff_types as ast
1538 on mss.staff_id = ast.staff_id
1539 and mps.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
1540 inner join request_settings as rs
1541 on ast.staff_type_id = rs.staff_type_id
1542 inner join requests as r
1543 on mps.schedule_on = r.schedule_on
1544 and mss.staff_id = r.staff_id
1545 and r.request_type = 0 /* type = no_call */
1546 and r.status in (1, 3) /* status = approved, fulfilled */
1547 left join request_call_types as rct
1548 on r.id = rct.request_id
1549 and mps.call_type_id = rct.call_type_id
1550 where (
1551 r.all_call_types = 1
1552 and (
1553 rs.call_only_all_call_switch = 0 /* any assignment */
1554 or (
1555 rs.call_only_all_call_switch = 1 /* calls only */
1556 and ct.assignment_type = 0 /* call */
1557 )
1558 )
1559 )
1560 or (
1561 r.all_call_types = 0
1562 and rct.id is not null
1563 )
1564 group by
1565 mps.id,
1566 mss.staff_id,
1567 r.schedule_on
1568 having
1569 count(distinct r.id) >= 1
1570 order by null
1571
1572Running Scheduler::Manual::Queries::Query12_1
1573 Block Load (123.5ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1574 (130.9ms) insert into buffer_manual_violations_1913539992 (
1575 schedule_id, staff_id, violation_date, violation_details, violation_type
1576 )
1577 select mps.id as schedule_id, mss.staff_id,
1578 sch.schedule_on as violation_date,
1579 CONCAT_WS(',', nli.target_type, nli.target_id) as violation_details,
1580 'NegativeLinkRule' as violation_type
1581 from buffer_manual_staff_slots_1913539992 as mss
1582 inner join buffer_manual_populate_slots_1913539992 as mps
1583 on mss.schedule_id = mps.id
1584 /* NegativeLinkRule */
1585 left join negative_links_influences as nli
1586 on mps.day_of_week_mask = nli.day_of_week_mask
1587 and mps.call_type_id = nli.source_id
1588 and nli.source_type = 'CallType'
1589 and nli.target_type = 'CallType'
1590 left join view_schedules_1913539992 as sch
1591 on date_add(mps.schedule_on, interval nli.offset day) = sch.schedule_on
1592 and nli.target_id = sch.call_type_id
1593 and mss.staff_id = sch.staff_id
1594 and not (
1595 mps.schedule_on = sch.schedule_on
1596 and mps.call_type_id = sch.call_type_id
1597 )
1598 where sch.id is not null
1599 order by null
1600
1601 (122.8ms) insert into buffer_manual_violations_1913539992 (
1602 schedule_id, staff_id, violation_date, violation_details, violation_type
1603 )
1604 select mps.id as schedule_id, mss.staff_id,
1605 mps_2.schedule_on as violation_date,
1606 CONCAT_WS(',', nli.target_type, nli.target_id) as violation_details,
1607 'NegativeLinkRule' as violation_type
1608 from buffer_manual_staff_slots_1913539992 as mss
1609 inner join buffer_manual_populate_slots_1913539992 as mps
1610 on mss.schedule_id = mps.id
1611 /* NegativeLinkRule */
1612 left join negative_links_influences as nli
1613 on mps.day_of_week_mask = nli.day_of_week_mask
1614 and mps.call_type_id = nli.source_id
1615 and nli.source_type = 'CallType'
1616 and nli.target_type = 'CallType'
1617 left join buffer_manual_populate_slots_1913539992 as mps_2
1618 on mps.thread_id = mps_2.thread_id
1619 and date_add(mps.schedule_on, interval nli.offset day) = mps_2.schedule_on
1620 and nli.target_id = mps_2.call_type_id
1621 and mps.id != mps_2.id
1622 left join buffer_manual_staff_slots_1913539992 as mss_2
1623 on mps_2.id = mss_2.schedule_id
1624 and mss.staff_id = mss_2.staff_id
1625 where mss_2.id is not null
1626 order by null
1627
1628Running Scheduler::Manual::Queries::Query12_2
1629 Block Load (228.2ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1630 (135.4ms) insert into buffer_manual_violations_1913539992/* session_id */ (
1631 schedule_id,
1632 staff_id,
1633 violation_date,
1634 violation_details,
1635 violation_type
1636 )
1637 select
1638 mps.id as schedule_id,
1639 mss.staff_id,
1640 v.schedule_on as violation_date,
1641 concat_ws(
1642 ',',
1643 nli.target_type,
1644 nli.target_id
1645 ) as violation_details,
1646 'NegativeLinkRule' as violation_type
1647 from
1648 buffer_manual_staff_slots_1913539992/* session_id */ as mss
1649 inner join buffer_manual_populate_slots_1913539992/* session_id */ as mps
1650 on mss.schedule_id = mps.id
1651 /* NegativeLinkRule */
1652 inner join negative_links_influences as nli
1653 on mps.day_of_week_mask = nli.day_of_week_mask
1654 and mps.call_type_id = nli.source_id
1655 and nli.source_type = 'CallType'
1656 and nli.target_id > 0
1657 and nli.target_type = 'Vacation'
1658 inner join vacations as v
1659 on date_add(
1660 mps.schedule_on,
1661 interval nli.offset day
1662 ) = v.schedule_on
1663 and mss.staff_id = v.staff_id
1664 and v.vacation_type = 0 /* vacation */
1665 and nli.target_id = v.non_clinical_type_id
1666 and v.status IN (3)
1667 order by null
1668
1669 (127.3ms) insert into buffer_manual_violations_1913539992/* session_id */ (
1670 schedule_id,
1671 staff_id,
1672 violation_date,
1673 violation_details,
1674 violation_type
1675 )
1676 select
1677 mps.id as schedule_id,
1678 mss.staff_id,
1679 v.schedule_on as violation_date,
1680 concat_ws(
1681 ',',
1682 nli.target_type,
1683 nli.target_id
1684 ) as violation_details,
1685 'NegativeLinkRule' as violation_type
1686 from
1687 buffer_manual_staff_slots_1913539992/* session_id */ as mss
1688 inner join buffer_manual_populate_slots_1913539992/* session_id */ as mps
1689 on mss.schedule_id = mps.id
1690 /* NegativeLinkRule */
1691 inner join negative_links_influences as nli
1692 on mps.day_of_week_mask = nli.day_of_week_mask
1693 and mps.call_type_id = nli.source_id
1694 and nli.source_type = 'CallType'
1695 and nli.target_id > 0
1696 and nli.target_type = 'NonClinicalType'
1697 inner join vacations as v
1698 on date_add(
1699 mps.schedule_on,
1700 interval nli.offset day
1701 ) = v.schedule_on
1702 and mss.staff_id = v.staff_id
1703 and v.vacation_type = 1 /* non-clinical */
1704 and nli.target_id = v.non_clinical_type_id
1705 and v.status in (3)
1706 order by null
1707
1708Running Scheduler::Manual::Queries::Query14
1709 Block Load (121.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1710Running Scheduler::Manual::Queries::Query15
1711 Block Load (124.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1712Running Scheduler::Manual::Queries::Query16
1713 Block Load (124.9ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1714Running Scheduler::Manual::Queries::Query17
1715 Block Load (126.6ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1716Running Scheduler::Manual::Queries::Query18
1717 Block Load (123.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1718Running Scheduler::Manual::Queries::Query18_2
1719 Block Load (123.9ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1720Running Scheduler::Manual::Queries::Query18_3
1721 Block Load (119.9ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1722Running Scheduler::Manual::Queries::Query18_4
1723 Block Load (122.5ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1724Running Scheduler::Manual::Queries::Query19
1725 Block Load (124.7ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1726Running Scheduler::Manual::Queries::Query19_2
1727 Block Load (125.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1728Running Scheduler::Manual::Queries::Query19_3
1729 Block Load (122.3ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1730Running Scheduler::Manual::Queries::Query19_4
1731 Block Load (123.9ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1732Running Scheduler::Manual::Queries::Query20
1733 Block Load (127.3ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1734 (577.0ms) /*
1735 This script is searching for dates where some specialization(s) will exceed the max number of allowed staff members.
1736 For example, if the specialization A allows us to have up to 2 different staff members (with the specialization A)
1737 within one day then this script add a violation message if assigning the staff member A (B, C, ...) will exceed the limit
1738 for that day.
1739 */
1740 -- We're adding all violation messages to this table
1741 insert into buffer_manual_violations_1913539992 (
1742 schedule_id, staff_id, violation_date, violation_details, violation_type
1743 )
1744 select mps_2.id as schedule_id, t1.staff_id, t1.schedule_on as violation_date,
1745 t1.specialization_id as violation_details, 'SpecializationOverlapRule' as violation_type
1746 from (
1747 -- Get the list of specializations added to this date in case of assigning this staff member
1748 select mps.thread_id,
1749 mps.id as schedule_id,
1750 mss.staff_id /* a staff member that we're checking for this assignment */,
1751 mss.staff_id as staff_id_2 /* a staff member who will add specializations to this date */,
1752 mps.schedule_on,
1753 mps.day_of_week_mask,
1754 vss.specialization_id,
1755 mps.call_type_id
1756 -- For all combinations of "assignment-staff member" that should be validated
1757 from buffer_manual_staff_slots_1913539992 as mss
1758 -- Get details about the thread id, date, etc. for the assignment we're checking now
1759 inner join buffer_manual_populate_slots_1913539992 as mps
1760 on mss.schedule_id = mps.id
1761 /* SpecializationOverlapRule */
1762 -- This "inner join" will cancel the validation for people who don't have specializations
1763 inner join view_staff_specializations as vss
1764 on mss.staff_id = vss.staff_id
1765 -- Filter specializations by applicable_call_types for max_scheduled limit
1766 inner join max_applicable_call_types as mact
1767 on vss.specialization_id = mact.specialization_id
1768 and mps.call_type_id = mact.call_type_id
1769 union
1770 -- Get the list of specializations that were already there on the date where this assignment will be made
1771 select mps.thread_id,
1772 mps.id as schedule_id,
1773 mss.staff_id /* a staff member that we're checking for this assignment */,
1774 sch.staff_id as staff_id_2 /* a staff member who already added specializations to this date */,
1775 mps.schedule_on,
1776 mps.day_of_week_mask,
1777 vss.specialization_id,
1778 sch.call_type_id
1779 -- For all combinations of "assignment-staff member" that should be validated
1780 from buffer_manual_staff_slots_1913539992 as mss
1781 -- Get details about the thread id, date, etc. for the assignment we're checking now
1782 inner join buffer_manual_populate_slots_1913539992 as mps
1783 on mss.schedule_id = mps.id
1784 /* SpecializationOverlapRule */
1785 -- These "inner joins" will cancel validation for people who don't have specializations
1786 -- or for call types that are not applicable for the given specialization
1787 inner join view_staff_specializations as vss
1788 on mss.staff_id = vss.staff_id
1789 inner join max_applicable_call_types as mact
1790 on vss.specialization_id = mact.specialization_id
1791 and mps.call_type_id = mact.call_type_id
1792 -- Get the list of staff members that have assignments on this date
1793 inner join view_schedules_1913539992 as sch
1794 on sch.client_id = 261
1795 and mps.schedule_on = sch.schedule_on
1796 -- And find out what specializations they have
1797 inner join view_staff_specializations as vss_2
1798 on sch.staff_id = vss_2.staff_id
1799 and vss.specialization_id = vss_2.specialization_id
1800 -- Filter specializations by applicable_call_types for max_scheduled limit
1801 inner join max_applicable_call_types as mact_2
1802 on vss.specialization_id = mact_2.specialization_id
1803 and sch.call_type_id = mact_2.call_type_id
1804 order by null
1805 ) t1
1806 -- Get the max_scheduled parameter for specializations
1807 inner join specializations as sp
1808 on t1.specialization_id = sp.id
1809 -- Evaluate conditions and throw a violation message (if needed) for the following specializations only:
1810 -- a) Specializations that are enabled on this day of the week;
1811 -- b) Specializations that are not allowed neither on this day of the week nor on all other days of the week (mask = 0).
1812 and if(t1.day_of_week_mask & sp.days_of_week_mask > 0 or sp.days_of_week_mask = 0, 1, 0) = 1
1813 -- The target slot for those validation messages is the slot clicked by a user
1814 -- (such slot is the only one who has should_be_populated = 1 in scope of this thread_id)
1815 inner join buffer_manual_populate_slots_1913539992 as mps_2
1816 on t1.thread_id = mps_2.thread_id
1817 and mps_2.should_be_populated = 1
1818 -- Group the data we found in the inner query and identify dates/specializations
1819 -- where an "assignment-staff" pair(s) that we're checking will exceed the limit
1820 group by mps_2.id, t1.schedule_id, t1.staff_id, t1.specialization_id, sp.max_scheduled
1821 -- Check the number of distinct staff members for each date-specialization pair
1822 having count(distinct t1.staff_id_2) > sp.max_scheduled
1823 order by null
1824
1825Running Scheduler::Manual::Queries::Query21
1826 Block Load (125.5ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1827Running Scheduler::Manual::Queries::Query21_1
1828 Block Load (144.5ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1829Running Scheduler::Manual::Queries::Query21_2
1830 Block Load (122.8ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1831Running Scheduler::Manual::Queries::Query21_3
1832 Block Load (125.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1833Running Scheduler::Manual::Queries::Query21_4
1834 Block Load (124.9ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1835Running Scheduler::Manual::Queries::Query22
1836 Block Load (124.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1837Running Scheduler::Manual::Queries::Query22_1
1838 Block Load (831.5ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1839Running Scheduler::Manual::Queries::Query22_2
1840 Block Load (120.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1841Running Scheduler::Manual::Queries::Query22_3
1842 Block Load (125.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1843Running Scheduler::Manual::Queries::Query22_4
1844 Block Load (124.2ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1845Running Scheduler::Manual::Queries::Query23
1846 Block Load (118.6ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1847 (123.1ms) insert into buffer_manual_violations_1913539992 (
1848 schedule_id, staff_id, violation_date, violation_details, violation_type
1849 )
1850 select mps.id as schedule_id, t1.staff_id, t1.period_starting_date as violation_date,
1851 concat(
1852 'calendar_schedule_id:', t1.calendar_schedule_id, ',',
1853 'call_type_id:', t1.call_type_id, ',',
1854 'limit:', t1.max_assignments, ',',
1855 'days:', if(t1.is_weekend = 0, 'weekday', 'weekend')
1856 ) as violation_details,
1857 'MaxAssignmentsRule' as violation_type
1858 from (
1859 select t1.thread_id, t1.staff_id, t1.calendar_schedule_id, p.start_date as period_starting_date, t1.call_type_id, t1.is_weekend,
1860 if(t1.is_weekend = 0, ct.max_weekday_assignments, ct.max_weekend_assignments) as max_assignments, (t1.scheduled + count(sch.id)) as scheduled
1861 from (
1862 select mps.thread_id, mss.staff_id, mps.calendar_schedule_id, mps.period_offset, mps.call_type_id,
1863 if((dayofweek(mps.schedule_on) - 1) in (0, 6), 1, 0) as is_weekend, count(mps.id) as scheduled
1864 from buffer_manual_staff_slots_1913539992 as mss
1865 inner join buffer_manual_populate_slots_1913539992 as mps
1866 on mss.schedule_id = mps.id
1867 group by mps.thread_id, mss.staff_id, mps.calendar_schedule_id, mps.period_offset, mps.call_type_id, is_weekend
1868 order by null
1869 ) as t1
1870 inner join buffer_periods_1913539992 as p
1871 on t1.calendar_schedule_id = p.calendar_schedule_id
1872 and t1.period_offset = p.period_offset
1873 inner join call_types as ct
1874 on t1.call_type_id = ct.id
1875 and t1.calendar_schedule_id = ct.calendar_schedule_id
1876 and ct.active = 1
1877 left join view_schedules_1913539992 as sch
1878 on t1.staff_id = sch.staff_id
1879 and sch.schedule_on between p.start_date and p.end_date
1880 and ct.id = sch.call_type_id
1881 and t1.is_weekend = if((dayofweek(sch.schedule_on) - 1) in (0, 6), 1, 0)
1882 group by t1.thread_id, t1.staff_id, t1.calendar_schedule_id, period_starting_date, t1.call_type_id, t1.is_weekend, max_assignments, t1.scheduled
1883 order by null
1884 ) as t1
1885 inner join buffer_manual_populate_slots_1913539992 as mps
1886 on t1.thread_id = mps.thread_id
1887 and mps.should_be_populated = 1
1888 where t1.scheduled > t1.max_assignments
1889 order by null
1890
1891Running Scheduler::Manual::Queries::Query25
1892 Block Load (119.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1893Running Scheduler::Manual::Queries::Query252
1894 Block Load (125.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1895Running Scheduler::Manual::Queries::Query26
1896 Block Load (118.3ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1897Running Scheduler::Manual::Queries::Query26_2
1898 Block Load (122.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1899Running Scheduler::Manual::Queries::Query27
1900 Block Load (123.2ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1901 (123.4ms) /* RotationPostCallRule */
1902 /* Exclude people and slots when a post-call is not allowed on the first day of a rotation */
1903 insert into buffer_manual_violations_1913539992 (
1904 schedule_id, staff_id, violation_date, violation_details, violation_type
1905 )
1906 select mps.id as schedule_id, mss.staff_id, mps.schedule_on as violation_date,
1907 concat_ws(',', r.id, r.name, r.abbreviation) as violation_details,
1908 'RotationPostCallRule' as violation_type
1909 from buffer_manual_staff_slots_1913539992 as mss
1910 inner join buffer_manual_populate_slots_1913539992 as mps
1911 on mss.schedule_id = mps.id
1912 /* RotationPostCallRule */
1913 inner join call_types as ct
1914 on mps.call_type_id = ct.id
1915 and ct.assignment_type = 0 /* call */
1916 inner join staff_rotations as sr
1917 on mss.staff_id = sr.staff_id
1918 and date_add(mps.schedule_on, interval 1 day) = sr.start_date
1919 inner join rotations as r
1920 on sr.rotation_id = r.id
1921 and r.post_call_allowed = 0
1922 order by null
1923
1924Running Scheduler::Manual::Queries::Query28
1925 Block Load (125.7ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1926 (118.4ms) update buffer_manual_violations_1913539992 as mv
1927 inner join buffer_manual_populate_slots_1913539992 as mps
1928 on mv.schedule_id = mps.id
1929 set mv.calendar_schedule_id = mps.calendar_schedule_id
1930
1931Running Scheduler::Manual::Queries::Query29
1932 Block Load (125.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1933Running Scheduler::Manual::Queries::Query29_2
1934 Block Load (126.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1935Running Scheduler::Manual::Queries::Query30
1936 Block Load (124.5ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
1937 (128.1ms) /* AssignmentLimitsPerPeriod, AssignmentLimitsPerWeek, AssignmentLimitsRolling, AssignmentLimitsConsecutive */
1938 create or replace view view_assignment_limit_call_types_1913539992 (
1939 assignment_limit_id,
1940 call_type_id
1941 )
1942 as
1943 select straight_join
1944 al.id as assignment_limit_id,
1945 ct.id as call_type_id
1946 from
1947 assignment_limits as al
1948 inner join assignment_limit_call_types as alct
1949 on al.id = alct.assignment_limit_id
1950 inner join call_types as ct
1951 on alct.call_type_id = ct.id
1952 and ct.active = 1
1953 where
1954 al.client_id = 261 /* client_id */
1955 and al.active = 1
1956 union
1957 select straight_join
1958 al.id as assignment_limit_id,
1959 ct.id as call_type_id
1960 from
1961 assignment_limits as al
1962 inner join call_types as ct
1963 on al.client_id = ct.client_id
1964 and al.calendar_schedule_id = ct.calendar_schedule_id
1965 and ct.active = 1
1966 where
1967 al.client_id = 261 /* client_id */
1968 and al.active = 1
1969 and al.all_current_schedule_assignments = 1
1970 union
1971 select straight_join
1972 al.id as assignment_limit_id,
1973 ct.id as call_type_id
1974 from
1975 assignment_limits as al
1976 inner join call_types as ct
1977 on al.client_id = ct.client_id
1978 and al.calendar_schedule_id != ct.calendar_schedule_id
1979 and ct.active = 1
1980 where
1981 al.client_id = 261 /* client_id */
1982 and al.active = 1
1983 and al.all_other_schedule_assignments = 1
1984 order by null
1985
1986 (128.3ms) /* AssignmentLimitsPerPeriod, AssignmentLimitsPerWeek, AssignmentLimitsRolling, AssignmentLimitsConsecutive */
1987 create or replace view view_assignment_limit_staff_types_1913539992 (
1988 assignment_limit_id,
1989 staff_type_id
1990 )
1991 as
1992 select straight_join
1993 al.id as assignment_limit_id,
1994 st.id as staff_type_id
1995 from
1996 assignment_limits as al
1997 inner join assignment_limit_staff_types as alst
1998 on al.id = alst.assignment_limit_id
1999 inner join staff_types as st
2000 on alst.staff_type_id = st.id
2001 and st.active = 1
2002 where
2003 al.client_id = 261 /* client_id */
2004 and al.active = 1
2005 union
2006 select straight_join
2007 al.id as assignment_limit_id,
2008 st.id as staff_type_id
2009 from
2010 assignment_limits as al
2011 inner join staff_types as st
2012 on al.client_id = st.client_id
2013 and st.active = 1
2014 where
2015 al.client_id = 261 /* client_id */
2016 and al.active = 1
2017 and al.all_staff_types = 1
2018 order by null
2019
2020Running Scheduler::Manual::Queries::Query30_01
2021 Block Load (122.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2022 (123.0ms) /* AssignmentLimitsPerPeriod */
2023 create or replace view view_assignment_limit_periods_1913539992 (
2024 assignment_limit_id, period_id, start_date, end_date
2025 )
2026 as
2027 select
2028 al.id as assignment_limit_id,
2029 if(
2030 bs.blocks_type = 0,
2031 if(
2032 (month(b.start_date) - pt.begin_period) >= 0,
2033 year(b.start_date) * 100 + (month(b.start_date) - pt.begin_period) div pt.timeframe_type + 1,
2034 (year(b.start_date) - 1) * 100 + (month(b.start_date) + 12 - pt.begin_period) div pt.timeframe_type + 1
2035 ),
2036 b.display_order
2037 ) as period_id,
2038 min(b.start_date) as start_date,
2039 max(b.end_date) as end_date
2040 from assignment_limits as al
2041 inner join calendar_schedules as cs
2042 on al.calendar_schedule_id = cs.id
2043 inner join block_schedules as bs
2044 on cs.block_schedule_id = bs.id
2045 inner join blocks as b
2046 on bs.id = b.block_schedule_id
2047 and b.end_date >= date_add(now(), interval -24 month)
2048 inner join population_timeframes as pt
2049 on pt.client_id = 261
2050 and al.timeframe_type = pt.timeframe_type
2051 where al.client_id = 261
2052 and al.active = 1
2053 and al.max_per_period_limit is not null
2054 group by al.id, period_id
2055 order by null
2056
2057 (134.0ms) /* AssignmentLimitsPerPeriod */
2058 insert into buffer_manual_violations_1913539992 (
2059 schedule_id, staff_id, violation_date, violation_details, violation_type
2060 )
2061 select mps.id as schedule_id, t1.staff_id, t1.period_start_date as violation_date,
2062 concat_ws(',', t1.assignment_limit_id, t1.assignment_limit_name, t1.assignments_limit, t1.assignments_count) as violation_details,
2063 'AssignmentLimitsPerPeriod' as violation_type
2064 from (
2065 select t1.thread_id, t1.staff_id, t1.assignment_limit_id, al.name as assignment_limit_name, t1.start_date as period_start_date,
2066 al.max_per_period_limit as assignments_limit,
2067 (t1.assignments_count + count(alst.assignment_limit_id)) as assignments_count
2068 from (
2069 select mps.thread_id, mss.staff_id, alct.assignment_limit_id, alp.start_date, alp.end_date,
2070 count(mps.id) as assignments_count
2071 from buffer_manual_staff_slots_1913539992 as mss
2072 inner join buffer_manual_populate_slots_1913539992 as mps
2073 on mss.schedule_id = mps.id
2074 inner join view_assignment_limit_call_types_1913539992 as alct
2075 on mps.call_type_id = alct.call_type_id
2076 inner join assignment_limits as al
2077 on alct.assignment_limit_id = al.id
2078 and (mps.day_of_week_mask & al.considered_days_of_week_mask) > 0
2079 and al.max_per_period_limit is not null
2080 inner join assign_staff_types as ast
2081 on mss.staff_id = ast.staff_id
2082 and mps.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
2083 inner join view_assignment_limit_staff_types_1913539992 as alst
2084 on alct.assignment_limit_id = alst.assignment_limit_id
2085 and ast.staff_type_id = alst.staff_type_id
2086 inner join view_assignment_limit_periods_1913539992 as alp
2087 on alct.assignment_limit_id = alp.assignment_limit_id
2088 and mps.schedule_on between alp.start_date and alp.end_date
2089 group by mps.thread_id, mss.staff_id, alct.assignment_limit_id, alp.start_date, alp.end_date
2090 order by null
2091 ) as t1
2092 inner join assignment_limits as al
2093 on t1.assignment_limit_id = al.id
2094 left join view_schedules_1913539992 as sc
2095 on t1.staff_id = sc.staff_id
2096 and sc.schedule_on between t1.start_date and t1.end_date
2097 and ((1 << (dayofweek(sc.schedule_on) - 1)) & al.considered_days_of_week_mask) > 0
2098 left join assign_staff_types as ast
2099 on t1.staff_id = ast.staff_id
2100 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
2101 left join view_assignment_limit_call_types_1913539992 as alct
2102 on t1.assignment_limit_id = alct.assignment_limit_id
2103 and sc.call_type_id = alct.call_type_id
2104 left join view_assignment_limit_staff_types_1913539992 as alst
2105 on alct.assignment_limit_id = alst.assignment_limit_id
2106 and ast.staff_type_id = alst.staff_type_id
2107 group by t1.thread_id, t1.staff_id, t1.assignment_limit_id, al.name, t1.start_date,
2108 al.max_per_period_limit, t1.assignments_count
2109 order by null
2110 ) as t1
2111 inner join buffer_manual_populate_slots_1913539992 as mps
2112 on t1.thread_id = mps.thread_id
2113 and mps.should_be_populated = 1
2114 where t1.assignments_count > t1.assignments_limit
2115 order by null
2116
2117 (125.0ms) DROP VIEW IF EXISTS view_assignment_limit_periods_1913539992
2118
2119Running Scheduler::Manual::Queries::Query30_02
2120 Block Load (122.8ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2121 (131.0ms) /* AssignmentLimitsPerWeek */
2122 insert into buffer_manual_violations_1913539992 (
2123 schedule_id, staff_id, violation_date, violation_details, violation_type
2124 )
2125 select mps.id as schedule_id, t1.staff_id, t1.week_start_date as violation_date,
2126 concat_ws(',', t1.assignment_limit_id, t1.assignment_limit_name, t1.assignments_limit, t1.assignments_count) as violation_details,
2127 'AssignmentLimitsPerWeek' as violation_type
2128 from (
2129 select t1.thread_id, t1.staff_id, t1.assignment_limit_id, al.name as assignment_limit_name, t1.start_date as week_start_date,
2130 al.max_weekly_limit as assignments_limit,
2131 (t1.assignments_count + count(alst.assignment_limit_id)) as assignments_count
2132 from (
2133 select mps.thread_id, mss.staff_id, alct.assignment_limit_id,
2134 if(
2135 cl.start_of_week = 0,
2136 date_add(mps.schedule_on, interval (1 - dayofweek(mps.schedule_on)) day),
2137 date_add(mps.schedule_on, interval (0 - weekday(mps.schedule_on)) day)
2138 ) as start_date,
2139 if(
2140 cl.start_of_week = 0,
2141 date_add(mps.schedule_on, interval (7 - dayofweek(mps.schedule_on)) day),
2142 date_add(mps.schedule_on, interval (6 - weekday(mps.schedule_on)) day)
2143 ) as end_date,
2144 count(mps.id) as assignments_count
2145 from buffer_manual_staff_slots_1913539992 as mss
2146 inner join buffer_manual_populate_slots_1913539992 as mps
2147 on mss.schedule_id = mps.id
2148 inner join view_assignment_limit_call_types_1913539992 as alct
2149 on mps.call_type_id = alct.call_type_id
2150 inner join assignment_limits as al
2151 on alct.assignment_limit_id = al.id
2152 and (mps.day_of_week_mask & al.considered_days_of_week_mask) > 0
2153 and al.max_weekly_limit is not null
2154 inner join assign_staff_types as ast
2155 on mss.staff_id = ast.staff_id
2156 and mps.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
2157 inner join view_assignment_limit_staff_types_1913539992 as alst
2158 on alct.assignment_limit_id = alst.assignment_limit_id
2159 and ast.staff_type_id = alst.staff_type_id
2160 inner join clients as cl
2161 on cl.id = 261
2162 group by mps.thread_id, mss.staff_id, alct.assignment_limit_id, start_date, end_date
2163 order by null
2164 ) as t1
2165 inner join assignment_limits as al
2166 on t1.assignment_limit_id = al.id
2167 left join view_schedules_1913539992 as sc
2168 on t1.staff_id = sc.staff_id
2169 and sc.schedule_on between t1.start_date and t1.end_date
2170 and ((1 << (dayofweek(sc.schedule_on) - 1)) & al.considered_days_of_week_mask) > 0
2171 left join assign_staff_types as ast
2172 on t1.staff_id = ast.staff_id
2173 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
2174 left join view_assignment_limit_call_types_1913539992 as alct
2175 on t1.assignment_limit_id = alct.assignment_limit_id
2176 and sc.call_type_id = alct.call_type_id
2177 left join view_assignment_limit_staff_types_1913539992 as alst
2178 on alct.assignment_limit_id = alst.assignment_limit_id
2179 and ast.staff_type_id = alst.staff_type_id
2180 group by t1.thread_id, t1.staff_id, t1.assignment_limit_id, al.name, t1.start_date,
2181 al.max_weekly_limit, t1.assignments_count
2182 order by null
2183 ) as t1
2184 inner join buffer_manual_populate_slots_1913539992 as mps
2185 on t1.thread_id = mps.thread_id
2186 and mps.should_be_populated = 1
2187 where t1.assignments_count > t1.assignments_limit
2188 order by null
2189
2190Running Scheduler::Manual::Queries::Query30_03
2191 Block Load (124.3ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2192 (127.3ms) /* AssignmentLimitsRolling */
2193 insert into buffer_manual_violations_1913539992 (
2194 schedule_id, staff_id, violation_date, violation_details, violation_type
2195 )
2196 select mps.id as schedule_id, t1.staff_id, t1.rolling_period_start_date as violation_date,
2197 concat_ws(',', t1.assignment_limit_id, t1.assignment_limit_name, t1.assignments_limit, t1.assignments_count) as violation_details,
2198 'AssignmentLimitsRolling' as violation_type
2199 from (
2200 select t1.thread_id, t1.staff_id, t1.assignment_limit_id, al.name as assignment_limit_name, t1.start_date as rolling_period_start_date,
2201 al.max_rolling_limit as assignments_limit,
2202 (t1.assignments_count + count(alst.assignment_limit_id)) as assignments_count
2203 from (
2204 select mps.thread_id, mss.staff_id, alct.assignment_limit_id,
2205 date_add(mps.schedule_on, interval (1 - ns.item_number) day) as start_date,
2206 date_add(mps.schedule_on, interval (al.max_rolling_period - ns.item_number) day) as end_date,
2207 count(mps.id) as assignments_count
2208 from buffer_manual_staff_slots_1913539992 as mss
2209 inner join buffer_manual_populate_slots_1913539992 as mps
2210 on mss.schedule_id = mps.id
2211 inner join view_assignment_limit_call_types_1913539992 as alct
2212 on mps.call_type_id = alct.call_type_id
2213 inner join assignment_limits as al
2214 on alct.assignment_limit_id = al.id
2215 and (mps.day_of_week_mask & al.considered_days_of_week_mask) > 0
2216 and al.max_rolling_period is not null
2217 and al.max_rolling_limit is not null
2218 inner join assign_staff_types as ast
2219 on mss.staff_id = ast.staff_id
2220 and mps.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
2221 inner join view_assignment_limit_staff_types_1913539992 as alst
2222 on alct.assignment_limit_id = alst.assignment_limit_id
2223 and ast.staff_type_id = alst.staff_type_id
2224 inner join numeric_sequence as ns
2225 on ns.item_number between 1 and al.max_rolling_period
2226 group by mps.thread_id, mss.staff_id, alct.assignment_limit_id, start_date, end_date
2227 order by null
2228 ) as t1
2229 inner join assignment_limits as al
2230 on t1.assignment_limit_id = al.id
2231 left join view_schedules_1913539992 as sc
2232 on t1.staff_id = sc.staff_id
2233 and sc.schedule_on between t1.start_date and t1.end_date
2234 and ((1 << (dayofweek(sc.schedule_on) - 1)) & al.considered_days_of_week_mask) > 0
2235 left join assign_staff_types as ast
2236 on t1.staff_id = ast.staff_id
2237 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
2238 left join view_assignment_limit_call_types_1913539992 as alct
2239 on t1.assignment_limit_id = alct.assignment_limit_id
2240 and sc.call_type_id = alct.call_type_id
2241 left join view_assignment_limit_staff_types_1913539992 as alst
2242 on alct.assignment_limit_id = alst.assignment_limit_id
2243 and ast.staff_type_id = alst.staff_type_id
2244 group by t1.thread_id, t1.staff_id, t1.assignment_limit_id, al.name, t1.start_date,
2245 al.max_rolling_limit, t1.assignments_count
2246 order by null
2247 ) as t1
2248 inner join buffer_manual_populate_slots_1913539992 as mps
2249 on t1.thread_id = mps.thread_id
2250 and mps.should_be_populated = 1
2251 where t1.assignments_count > t1.assignments_limit
2252 order by null
2253
2254Running Scheduler::Manual::Queries::Query30_04
2255 Block Load (119.1ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2256 (129.0ms) /* AssignmentLimitsConsecutive */
2257 create or replace view view_assignment_limit_consecutive_addition_1913539992 (
2258 thread_id, staff_id, assignment_limit_id, schedule_on, start_date, end_date
2259 )
2260 as
2261 select mps.thread_id, mss.staff_id, alct.assignment_limit_id, mps.schedule_on,
2262 date_add(mps.schedule_on, interval (1 - ns.item_number) day) as start_date,
2263 date_add(mps.schedule_on, interval ((al.max_consecutive_limit + 1) - ns.item_number) day) as end_date
2264 from buffer_manual_staff_slots_1913539992 as mss
2265 inner join buffer_manual_populate_slots_1913539992 as mps
2266 on mss.schedule_id = mps.id
2267 inner join view_assignment_limit_call_types_1913539992 as alct
2268 on mps.call_type_id = alct.call_type_id
2269 inner join assignment_limits as al
2270 on alct.assignment_limit_id = al.id
2271 and (mps.day_of_week_mask & al.considered_days_of_week_mask) > 0
2272 and al.max_consecutive_limit is not null
2273 inner join assign_staff_types as ast
2274 on mss.staff_id = ast.staff_id
2275 and mps.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
2276 inner join view_assignment_limit_staff_types_1913539992 as alst
2277 on alct.assignment_limit_id = alst.assignment_limit_id
2278 and ast.staff_type_id = alst.staff_type_id
2279 inner join numeric_sequence as ns
2280 on ns.item_number between 1 and (al.max_consecutive_limit + 1)
2281 group by mps.thread_id, mss.staff_id, alct.assignment_limit_id, mps.schedule_on, start_date, end_date
2282 order by null
2283
2284 (133.5ms) /* AssignmentLimitsConsecutive */
2285 insert into buffer_manual_violations_1913539992 (
2286 schedule_id, staff_id, violation_date, violation_details, violation_type
2287 )
2288 select mps.id as schedule_id, t1.staff_id, t1.start_date /* consecutive_period_start_date */ as violation_date,
2289 concat_ws(',', al.id /* assignment_limit_id */, al.name /* assignment_limit_name */, al.max_consecutive_limit) as violation_details,
2290 'AssignmentLimitsConsecutive' as violation_type
2291 from (
2292 select alca.thread_id, alca.staff_id, alca.assignment_limit_id, alca.schedule_on, alca.start_date, alca.end_date
2293 from view_assignment_limit_consecutive_addition_1913539992 as alca
2294 union
2295 select alca.thread_id, alca.staff_id, alca.assignment_limit_id, sc.schedule_on, alca.start_date, alca.end_date
2296 from view_assignment_limit_consecutive_addition_1913539992 as alca
2297 inner join assignment_limits as al
2298 on alca.assignment_limit_id = al.id
2299 inner join view_schedules_1913539992 as sc
2300 on alca.staff_id = sc.staff_id
2301 and sc.schedule_on between alca.start_date and alca.end_date
2302 and ((1 << (dayofweek(sc.schedule_on) - 1)) & al.considered_days_of_week_mask) > 0
2303 inner join view_assignment_limit_call_types_1913539992 as alct
2304 on alca.assignment_limit_id = alct.assignment_limit_id
2305 and sc.call_type_id = alct.call_type_id
2306 inner join assign_staff_types as ast
2307 on alca.staff_id = ast.staff_id
2308 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
2309 inner join view_assignment_limit_staff_types_1913539992 as alst
2310 on alca.assignment_limit_id = alst.assignment_limit_id
2311 and ast.staff_type_id = alst.staff_type_id
2312 group by alca.thread_id, alca.staff_id, alca.assignment_limit_id, sc.schedule_on, alca.start_date, alca.end_date
2313 order by null
2314 ) as t1
2315 inner join assignment_limits as al
2316 on t1.assignment_limit_id = al.id
2317 inner join buffer_manual_populate_slots_1913539992 as mps
2318 on t1.thread_id = mps.thread_id
2319 and mps.should_be_populated = 1
2320 group by mps.id, t1.staff_id, al.id, al.name, al.max_consecutive_limit, t1.start_date
2321 having count(distinct t1.schedule_on) > al.max_consecutive_limit
2322 order by null
2323
2324Running Scheduler::Manual::Queries::Query30_05
2325 Block Load (124.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2326 (123.8ms) DROP VIEW IF EXISTS view_assignment_limit_consecutive_addition_1913539992
2327
2328 (124.6ms) DROP VIEW IF EXISTS view_assignment_limit_staff_types_1913539992
2329
2330 (122.8ms) DROP VIEW IF EXISTS view_assignment_limit_call_types_1913539992
2331
2332Running Scheduler::Manual::Queries::QueryFillableThreads
2333 Block Load (124.5ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2334 (120.9ms) select distinct a.thread_id, a.staff_id
2335 from buffer_manual_availabilities_1913539992 as a
2336
2337Running Scheduler::Manual::Queries::QueryViolations
2338 Block Load (123.2ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2339 (118.2ms) select v.*, ps.call_type_id, ps.schedule_on, ps.thread_id
2340 from buffer_manual_violations_1913539992 as v
2341 inner join buffer_manual_populate_slots_1913539992 as ps
2342 on v.schedule_id = ps.id
2343
2344Running Scheduler::Manual::Queries::QueryFillableSlots
2345 Block Load (125.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2346 (123.4ms) select distinct ps.thread_id
2347 from buffer_manual_populate_slots_1913539992 as ps
2348 where ps.staff_id = 26121 and ps.call_type_id = 10165 and ps.should_be_populated=1
2349 limit 1
2350
2351 (122.8ms) select distinct ss.staff_id, ps.call_type_id, ps.schedule_on
2352 from buffer_manual_staff_slots_1913539992 as ss
2353 inner join buffer_manual_populate_slots_1913539992 as ps
2354 on ss.schedule_id = ps.id
2355 where ss.staff_id = 26121
2356 and ps.thread_id=0
2357
2358 PublishedBlock Load (119.5ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND (((published_blocks.assignment_ids IS NOT NULL) OR (published_blocks.days_of_week_mask < 127))) ORDER BY blocks.start_date LIMIT 1
2359 Block Load (121.8ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`id` = 28140 LIMIT 1
2360 Schedule Load (122.2ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-27' AND `schedules`.`call_type_id` = 10165 ORDER BY `schedules`.`id` ASC LIMIT 1
2361 Schedule Load (121.9ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-28' AND `schedules`.`call_type_id` = 11134 ORDER BY `schedules`.`id` ASC LIMIT 1
2362Running Scheduler::Manual::Queries::Query005
2363 Block Load (123.2ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2364 (128.9ms) drop view if exists view_schedules_1913539992
2365
2366Running Scheduler::Manual::Queries::CreateTables
2367 Block Load (125.8ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2368 (123.8ms) DROP TABLE IF EXISTS buffer_annual_hour_targets_1913539992
2369 (117.4ms) DROP TABLE IF EXISTS buffer_annual_point_targets_1913539992
2370 (126.4ms) DROP TABLE IF EXISTS buffer_annual_targets_staff_totals_1913539992
2371 (124.6ms) DROP TABLE IF EXISTS buffer_auto_populate_slots_1913539992
2372 (125.5ms) DROP TABLE IF EXISTS buffer_call_days_targets_1913539992
2373 (122.6ms) DROP TABLE IF EXISTS buffer_call_type_targets_1913539992
2374 (123.1ms) DROP TABLE IF EXISTS buffer_cumulative_cd_targets_1913539992
2375 (125.7ms) DROP TABLE IF EXISTS buffer_cumulative_ct_targets_1913539992
2376 (119.7ms) DROP TABLE IF EXISTS buffer_cumulative_dow_targets_1913539992
2377 (132.2ms) DROP TABLE IF EXISTS buffer_cumulative_hour_targets_1913539992
2378 (125.1ms) DROP TABLE IF EXISTS buffer_cumulative_oa_targets_1913539992
2379 (125.7ms) DROP TABLE IF EXISTS buffer_cumulative_point_targets_1913539992
2380 (125.1ms) DROP TABLE IF EXISTS buffer_current_cd_targets_1913539992
2381 (119.0ms) DROP TABLE IF EXISTS buffer_current_ct_targets_1913539992
2382 (125.0ms) DROP TABLE IF EXISTS buffer_current_dow_targets_1913539992
2383 (124.6ms) DROP TABLE IF EXISTS buffer_current_hour_targets_1913539992
2384 (117.5ms) DROP TABLE IF EXISTS buffer_current_oa_targets_1913539992
2385 (125.4ms) DROP TABLE IF EXISTS buffer_current_point_targets_1913539992
2386 (125.9ms) DROP TABLE IF EXISTS buffer_day_of_week_targets_1913539992
2387 (119.5ms) DROP TABLE IF EXISTS buffer_hour_targets_1913539992
2388 (123.6ms) DROP TABLE IF EXISTS buffer_linkage_call_days_targets_1913539992
2389 (125.5ms) DROP TABLE IF EXISTS buffer_linkage_call_type_targets_1913539992
2390 (125.1ms) DROP TABLE IF EXISTS buffer_linkage_targets_1913539992
2391 (116.8ms) DROP TABLE IF EXISTS buffer_linkage_hour_targets_1913539992
2392 (120.3ms) DROP TABLE IF EXISTS buffer_linkage_point_targets_1913539992
2393 (125.7ms) DROP TABLE IF EXISTS buffer_location_privileges_1913539992
2394 (123.1ms) DROP TABLE IF EXISTS buffer_periods_1913539992
2395 (125.2ms) DROP TABLE IF EXISTS buffer_point_targets_1913539992
2396 (125.8ms) DROP TABLE IF EXISTS buffer_schedules_1913539992
2397 (125.4ms) DROP TABLE IF EXISTS buffer_target_call_types_1913539992
2398 (122.9ms) DROP TABLE IF EXISTS buffer_target_daily_points_1913539992
2399 (122.8ms) DROP TABLE IF EXISTS buffer_target_dates_list_1913539992
2400 (126.1ms) DROP TABLE IF EXISTS buffer_target_primary_availabilities_1913539992
2401 (119.0ms) DROP TABLE IF EXISTS buffer_targets_1913539992
2402 (123.0ms) DROP TABLE IF EXISTS buffer_tmp_targets_availabilities_1913539992
2403 (117.2ms) DROP TABLE IF EXISTS buffer_tmp_targets_availabilities_exclusions_1913539992
2404 (121.4ms) DROP TABLE IF EXISTS buffer_tmp_targets_client_totals_1913539992
2405 (124.1ms) DROP TABLE IF EXISTS buffer_tmp_targets_scheduled_1913539992
2406 (123.0ms) DROP TABLE IF EXISTS buffer_tmp_targets_staff_totals_1913539992
2407 (116.9ms) DROP TABLE IF EXISTS buffer_manual_populate_slots_1913539992
2408 (143.4ms) DROP TABLE IF EXISTS buffer_manual_staff_slots_1913539992
2409 (125.6ms) DROP TABLE IF EXISTS buffer_manual_assigned_days_1913539992
2410 (131.7ms) DROP TABLE IF EXISTS buffer_manual_availabilities_1913539992
2411 (122.8ms) DROP TABLE IF EXISTS buffer_manual_violations_1913539992
2412 (124.8ms) DROP TABLE IF EXISTS buffer_periods_1913539992
2413 (117.2ms) DROP TABLE IF EXISTS buffer_manual_slots_to_ignore_1913539992
2414 (123.7ms) DROP TABLE IF EXISTS buffer_linkage_patterns_1913539992
2415 (125.3ms) DROP TABLE IF EXISTS buffer_schedules_linkage_patterns_1913539992
2416 (122.3ms) DROP TABLE IF EXISTS buffer_staff_assignment_dates_1913539992
2417 (122.2ms) DROP TABLE IF EXISTS buffer_location_privileges_1913539992
2418 (125.2ms) delete from buffer_target_dates
2419 where session_id = '1913539992'
2420
2421 (117.3ms) BEGIN
2422 AutopopulateExclusion Load (117.6ms) SELECT `autopopulate_exclusions`.* FROM `autopopulate_exclusions` WHERE `autopopulate_exclusions`.`client_id` = 261 AND `autopopulate_exclusions`.`schedule_on` = '2018-09-27' AND `autopopulate_exclusions`.`call_type_id` = 10165 ORDER BY `autopopulate_exclusions`.`id` ASC LIMIT 1
2423 CallType Load (122.4ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10165 LIMIT 1
2424 (125.4ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
2425 FROM call_types AS ct
2426 INNER JOIN calendar_schedules AS cs
2427 ON ct.calendar_schedule_id = cs.id
2428 INNER JOIN blocks AS b
2429 ON b.client_id = ct.client_id
2430 AND b.block_schedule_id = cs.block_schedule_id
2431 AND '2018-09-27' BETWEEN b.start_date AND b.end_date
2432 INNER JOIN published_blocks AS pb
2433 ON pb.client_id = ct.client_id
2434 AND pb.block_id = b.id
2435 AND pb.calendar_schedule_id = cs.id
2436 LEFT JOIN published_block_call_types AS pbct
2437 ON pbct.client_id = ct.client_id
2438 AND pbct.assignment_id = ct.id
2439 AND pbct.assignment_type = 'CallType'
2440 AND pbct.block_id = b.id
2441 AND (
2442 (1 << (DAYOFWEEK('2018-09-27') - 1) & pbct.days_of_week_mask) > 0
2443 )
2444 WHERE ct.id = 10165
2445 AND (
2446 (
2447 pb.assignment_ids IS NULL
2448 AND (1 << (DAYOFWEEK('2018-09-27') - 1) & pb.days_of_week_mask) > 0
2449 )
2450 OR pbct.id IS NOT NULL
2451 )
2452
2453 Staff Load (123.6ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 26121 LIMIT 1
2454 Schedule Exists (140.6ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10165 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-27' LIMIT 1
2455 SQL (143.5ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `request_id`, `weekend_on`, `dayofweek_on`) VALUES (261, 10165, 26121, '2018-09-27', '2018-05-29 13:24:13', '2018-05-29 13:24:13', 2361512, 0, 5)
2456 VisibleAssignment Load (244.0ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-27' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10165 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
2457 Request Load (124.7ms) SELECT `requests`.* FROM `requests` WHERE `requests`.`id` = 2361512 LIMIT 1
2458 PreAnnotation Load (124.0ms) SELECT `pre_annotations`.* FROM `pre_annotations` WHERE `pre_annotations`.`schedule_id` = 15981862 AND `pre_annotations`.`schedule_type` = 'Schedule' LIMIT 1
2459 RequestPreAnnotation Load (122.9ms) SELECT `request_pre_annotations`.* FROM `request_pre_annotations` WHERE `request_pre_annotations`.`request_id` = 2361512
2460 TargetAdjustmentEntry Load (117.5ms) SELECT `target_adjustment_entries`.* FROM `target_adjustment_entries` WHERE `target_adjustment_entries`.`call_type_id` = 10165 AND `target_adjustment_entries`.`schedule_on` = '2018-09-27' ORDER BY `target_adjustment_entries`.`id` ASC LIMIT 1
2461 TargetGroup Load (124.2ms) SELECT `target_groups`.* FROM `target_groups` INNER JOIN `target_group_calls` ON `target_groups`.`id` = `target_group_calls`.`target_group_id` WHERE `target_group_calls`.`call_type_id` = 10165 LIMIT 1
2462 Client Load (123.7ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
2463 CalendarSchedule Load (121.7ms) SELECT `calendar_schedules`.* FROM `calendar_schedules` WHERE `calendar_schedules`.`id` = 1167 LIMIT 1
2464 Block Load (122.1ms) SELECT `blocks`.* FROM `blocks` INNER JOIN `block_schedules` ON `blocks`.`block_schedule_id` = `block_schedules`.`id` WHERE `block_schedules`.`id` = 356 AND (blocks.start_date <= '2018-09-27' and blocks.end_date >= '2018-09-27') ORDER BY start_date asc, end_date asc LIMIT 1
2465 Client Load (122.4ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
2466 PublishedBlock Exists (119.6ms) SELECT 1 AS one FROM `published_blocks` WHERE `published_blocks`.`client_id` = 261 AND `published_blocks`.`block_id` = 23592 AND `published_blocks`.`calendar_schedule_id` = 1167 AND `published_blocks`.`assignment_ids` IS NULL LIMIT 1
2467 (121.8ms) SELECT `target_group_calls`.`call_type_id` FROM `target_group_calls` WHERE `target_group_calls`.`target_group_id` = 4
2468 PublishedBlockCallType Exists (126.0ms) SELECT 1 AS one FROM `published_block_call_types` WHERE `published_block_call_types`.`client_id` = 261 AND `published_block_call_types`.`block_id` = 23592 AND `published_block_call_types`.`calendar_schedule_id` = 1167 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` IN (10157, 10165, 10186, 10190) AND (days_of_week_mask & 16 > 0) LIMIT 1
2469 Schedule Load (123.1ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`call_type_id` = 10165 AND `schedules`.`schedule_on` = '2018-09-27' ORDER BY `schedules`.`id` ASC LIMIT 1
2470 Staff Load (117.5ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 26121 LIMIT 1
2471 AutopopulateExclusion Load (121.4ms) SELECT `autopopulate_exclusions`.* FROM `autopopulate_exclusions` WHERE `autopopulate_exclusions`.`client_id` = 261 AND `autopopulate_exclusions`.`schedule_on` = '2018-09-28' AND `autopopulate_exclusions`.`call_type_id` = 11134 ORDER BY `autopopulate_exclusions`.`id` ASC LIMIT 1
2472 CallType Load (122.0ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 11134 LIMIT 1
2473 (117.7ms) COMMIT
2474FLUSHED: nil:nil
2475 SQL (127.0ms) UPDATE `schedules` SET `schedules`.`populate_method` = 'approved_request', `schedules`.`creator_id` = NULL WHERE `schedules`.`client_id` = 261 AND `schedules`.`id` = 15981862
2476 Schedule Load (123.3ms) SELECT `schedules`.* FROM `schedules` WHERE `schedules`.`schedule_on` = '2018-09-27' AND `schedules`.`staff_id` = 26121 AND `schedules`.`call_type_id` = 10165
2477 SQL (124.6ms) UPDATE `requests` SET `requests`.`status` = 1 WHERE `requests`.`id` = 2361512
2478 CallType Load (118.1ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10165 LIMIT 1
2479INFO : (05-29 13:24:17) [2361512] Request fullfilled for Timothy Davis on 2018-09-27
2480 SQL (146.7ms) UPDATE `schedules` SET `schedules`.`populate_method` = 'auto_approved_request', `schedules`.`creator_id` = 30093 WHERE `schedules`.`client_id` = 261 AND `schedules`.`request_id` = 2361512
2481INFO : (05-29 13:24:17) end of requests processing
2482INFO : (05-29 13:24:17) begin to process specializations
2483 Block Load (122.5ms) SELECT `blocks`.* FROM `blocks` INNER JOIN `block_schedules` ON `blocks`.`block_schedule_id` = `block_schedules`.`id` WHERE `block_schedules`.`id` = 356 AND (blocks.start_date <= '2018-11-25' AND blocks.end_date >= '2018-11-25') ORDER BY start_date asc, end_date asc LIMIT 1
2484 Block Load (123.0ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2485 Client Load (125.0ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
2486 CallType Load (121.0ms) SELECT `call_types`.* FROM `call_types` INNER JOIN `eligible_call_types` ON `eligible_call_types`.`call_type_id` = `call_types`.`id` WHERE `call_types`.`calendar_schedule_id` = 1167 AND `call_types`.`active` = 1
2487 (121.9ms) SELECT `autopopulate_exclusions`.`schedule_on`, `autopopulate_exclusions`.`call_type_id` FROM `autopopulate_exclusions` WHERE `autopopulate_exclusions`.`client_id` = 261 AND `autopopulate_exclusions`.`schedule_on` IN ('2018-09-08', '2018-09-09', '2018-09-15', '2018-09-16', '2018-09-22', '2018-09-23', '2018-09-29', '2018-09-30', '2018-10-06', '2018-10-07', '2018-10-13', '2018-10-14', '2018-10-20', '2018-10-21', '2018-10-27', '2018-10-28', '2018-11-03', '2018-11-04', '2018-11-10', '2018-11-11', '2018-11-17', '2018-11-18', '2018-11-24', '2018-11-25')
2488INFO : (05-29 13:24:18) No applicable call types. Exiting...
2489 Block Load (119.3ms) SELECT `blocks`.* FROM `blocks` INNER JOIN `block_schedules` ON `blocks`.`block_schedule_id` = `block_schedules`.`id` WHERE `block_schedules`.`id` = 356 AND (blocks.start_date <= '2018-11-25' AND blocks.end_date >= '2018-11-25') ORDER BY start_date asc, end_date asc LIMIT 1
2490 Block Load (122.4ms) SELECT `blocks`.* FROM `blocks` WHERE `blocks`.`client_id` = 261 AND `blocks`.`block_schedule_id` = 356 AND (blocks.end_date < '2018-09-04') AND (blocks.id != 23592) ORDER BY start_date desc
2491 (123.5ms) SELECT `autopopulate_exclusions`.`schedule_on`, `autopopulate_exclusions`.`call_type_id` FROM `autopopulate_exclusions` WHERE `autopopulate_exclusions`.`client_id` = 261 AND `autopopulate_exclusions`.`schedule_on` IN ('2018-09-08', '2018-09-09', '2018-09-15', '2018-09-16', '2018-09-22', '2018-09-23', '2018-09-29', '2018-09-30', '2018-10-06', '2018-10-07', '2018-10-13', '2018-10-14', '2018-10-20', '2018-10-21', '2018-10-27', '2018-10-28', '2018-11-03', '2018-11-04', '2018-11-10', '2018-11-11', '2018-11-17', '2018-11-18', '2018-11-24', '2018-11-25')
2492 (117.4ms) select
2493 b.start_date,
2494 b.end_date,
2495 (pb.assignment_ids IS NULL) as fully_published,
2496 concat(pbct.assignment_type, '#', pbct.assignment_id) as assignment_uid,
2497 pbct.days_of_week_mask
2498 from blocks as b
2499 inner join published_blocks as pb
2500 on pb.block_id = b.id
2501 inner join published_block_call_types as pbct
2502 on pbct.published_block_id = pb.id
2503 where b.client_id = 261
2504 and pb.calendar_schedule_id = 1167
2505 and b.end_date BETWEEN '2018-09-08' AND '2018-11-25'
2506
2507INFO : (05-29 13:24:18) <-- clear: 0 - Scheduler::AutoPopulate::Queries::CreateTables
2508INFO : (05-29 13:24:18) <-- clear: 1 - Scheduler::AutoPopulate::Queries::AutoPopulateSlots
2509INFO : (05-29 13:24:18) <-- clear: 2 - Scheduler::AutoPopulate::Queries::Query003
2510INFO : (05-29 13:24:18) <-- clear: 3 - Scheduler::AutoPopulate::Queries::Query005
2511INFO : (05-29 13:24:18) <-- clear: 4 - Scheduler::AutoPopulate::Queries::Query01
2512INFO : (05-29 13:24:18) <-- clear: 5 - Scheduler::AutoPopulate::Queries::Query012
2513INFO : (05-29 13:24:18) <-- clear: 6 - Scheduler::AutoPopulate::Queries::QueryTargets
2514INFO : (05-29 13:24:18) <-- clear: 7 - Scheduler::AutoPopulate::Queries::Query013
2515INFO : (05-29 13:24:18) <-- clear: 8 - Scheduler::AutoPopulate::Queries::Query014
2516INFO : (05-29 13:24:18) <-- clear: 9 - Scheduler::AutoPopulate::Queries::Query015
2517INFO : (05-29 13:24:18) <-- clear: 10 - Scheduler::AutoPopulate::Queries::Query02
2518INFO : (05-29 13:24:18) <-- clear: 11 - Scheduler::AutoPopulate::Queries::Query03
2519INFO : (05-29 13:24:18) <-- clear: 12 - Scheduler::AutoPopulate::Queries::Query04
2520INFO : (05-29 13:24:18) <-- clear: 13 - Scheduler::AutoPopulate::Queries::Query045
2521INFO : (05-29 13:24:18) <-- clear: 14 - Scheduler::AutoPopulate::Queries::QueryA
2522INFO : (05-29 13:24:18) <-- clear: 15 - Scheduler::AutoPopulate::Queries::QueryB
2523INFO : (05-29 13:24:18) <-- clear: 16 - Scheduler::AutoPopulate::Queries::Query05
2524INFO : (05-29 13:24:18) <-- clear: 17 - Scheduler::AutoPopulate::Queries::Query06
2525INFO : (05-29 13:24:18) <-- clear: 18 - Scheduler::AutoPopulate::Queries::Query07
2526INFO : (05-29 13:24:18) <-- clear: 19 - Scheduler::AutoPopulate::Queries::Query0702
2527INFO : (05-29 13:24:18) <-- clear: 20 - Scheduler::AutoPopulate::Queries::Query0705
2528INFO : (05-29 13:24:18) <-- clear: 21 - Scheduler::AutoPopulate::Queries::Query0706
2529INFO : (05-29 13:24:18) <-- clear: 22 - Scheduler::AutoPopulate::Queries::Query0707
2530INFO : (05-29 13:24:18) <-- clear: 23 - Scheduler::AutoPopulate::Queries::Query0708
2531INFO : (05-29 13:24:18) <-- clear: 24 - Scheduler::AutoPopulate::Queries::Query0709
2532INFO : (05-29 13:24:18) <-- clear: 25 - Scheduler::AutoPopulate::Queries::Query07_10_AL
2533INFO : (05-29 13:24:18) <-- clear: 26 - Scheduler::AutoPopulate::Queries::Query07_10_AL_01
2534INFO : (05-29 13:24:18) <-- clear: 27 - Scheduler::AutoPopulate::Queries::Query07_10_AL_02
2535INFO : (05-29 13:24:18) <-- clear: 28 - Scheduler::AutoPopulate::Queries::Query07_10_AL_03
2536INFO : (05-29 13:24:18) <-- clear: 29 - Scheduler::AutoPopulate::Queries::Query07_10_AL_04
2537INFO : (05-29 13:24:18) <-- clear: 30 - Scheduler::AutoPopulate::Queries::Query08
2538INFO : (05-29 13:24:18) <-- clear: 31 - Scheduler::AutoPopulate::Queries::Query085
2539INFO : (05-29 13:24:18) <-- clear: 32 - Scheduler::AutoPopulate::Queries::Query09
2540INFO : (05-29 13:24:18) <-- clear: 33 - Scheduler::AutoPopulate::Queries::Query092
2541INFO : (05-29 13:24:18) <-- clear: 34 - Scheduler::AutoPopulate::Queries::Query093
2542INFO : (05-29 13:24:18) <-- clear: 35 - Scheduler::AutoPopulate::Queries::Query095
2543INFO : (05-29 13:24:18) <-- clear: 36 - Scheduler::AutoPopulate::Queries::Query097
2544INFO : (05-29 13:24:18) <-- clear: 37 - Scheduler::AutoPopulate::Queries::Query098
2545INFO : (05-29 13:24:18) <-- clear: 38 - Scheduler::AutoPopulate::Queries::Query09_09_AL_01
2546INFO : (05-29 13:24:18) <-- clear: 39 - Scheduler::AutoPopulate::Queries::Query09_09_AL_02
2547INFO : (05-29 13:24:18) <-- clear: 40 - Scheduler::AutoPopulate::Queries::Query09_09_AL_03
2548INFO : (05-29 13:24:18) <-- clear: 41 - Scheduler::AutoPopulate::Queries::Query09_09_AL_04
2549INFO : (05-29 13:24:18) <-- clear: 42 - Scheduler::AutoPopulate::Queries::Query09_12_Points
2550INFO : (05-29 13:24:18) <-- clear: 43 - Scheduler::AutoPopulate::Queries::Query09_12_Hours
2551INFO : (05-29 13:24:18) <-- clear: 44 - Scheduler::AutoPopulate::Queries::Query10
2552INFO : (05-29 13:24:18) <-- clear: 45 - Scheduler::AutoPopulate::Queries::QueryScore02
2553INFO : (05-29 13:24:18) <-- clear: 46 - Scheduler::AutoPopulate::Queries::QueryScore03
2554INFO : (05-29 13:24:18) <-- clear: 47 - Scheduler::AutoPopulate::Queries::QueryScore04
2555INFO : (05-29 13:24:18) <-- clear: 48 - Scheduler::AutoPopulate::Queries::Query11
2556INFO : (05-29 13:24:18) <-- clear: 49 - Scheduler::AutoPopulate::Queries::DropTables
2557 (123.8ms) DROP TABLE IF EXISTS buffer_annual_hour_targets_1913539992
2558 (116.9ms) DROP TABLE IF EXISTS buffer_annual_point_targets_1913539992
2559 (116.7ms) DROP TABLE IF EXISTS buffer_annual_targets_staff_totals_1913539992
2560 (124.2ms) DROP TABLE IF EXISTS buffer_auto_populate_slots_1913539992
2561 (122.8ms) DROP TABLE IF EXISTS buffer_call_days_targets_1913539992
2562 (124.6ms) DROP TABLE IF EXISTS buffer_call_type_targets_1913539992
2563 (122.2ms) DROP TABLE IF EXISTS buffer_cumulative_cd_targets_1913539992
2564 (117.1ms) DROP TABLE IF EXISTS buffer_cumulative_ct_targets_1913539992
2565 (122.8ms) DROP TABLE IF EXISTS buffer_cumulative_dow_targets_1913539992
2566 (122.9ms) DROP TABLE IF EXISTS buffer_cumulative_hour_targets_1913539992
2567 (117.1ms) DROP TABLE IF EXISTS buffer_cumulative_oa_targets_1913539992
2568 (122.9ms) DROP TABLE IF EXISTS buffer_cumulative_point_targets_1913539992
2569 (117.3ms) DROP TABLE IF EXISTS buffer_current_cd_targets_1913539992
2570 (122.4ms) DROP TABLE IF EXISTS buffer_current_ct_targets_1913539992
2571 (125.5ms) DROP TABLE IF EXISTS buffer_current_dow_targets_1913539992
2572 (117.7ms) DROP TABLE IF EXISTS buffer_current_hour_targets_1913539992
2573 (135.1ms) DROP TABLE IF EXISTS buffer_current_oa_targets_1913539992
2574 (124.2ms) DROP TABLE IF EXISTS buffer_current_point_targets_1913539992
2575 (129.8ms) DROP TABLE IF EXISTS buffer_day_of_week_targets_1913539992
2576 (125.1ms) DROP TABLE IF EXISTS buffer_hour_targets_1913539992
2577 (124.8ms) DROP TABLE IF EXISTS buffer_linkage_call_days_targets_1913539992
2578 (117.3ms) DROP TABLE IF EXISTS buffer_linkage_call_type_targets_1913539992
2579 (122.5ms) DROP TABLE IF EXISTS buffer_linkage_targets_1913539992
2580 (122.6ms) DROP TABLE IF EXISTS buffer_linkage_hour_targets_1913539992
2581 (122.7ms) DROP TABLE IF EXISTS buffer_linkage_point_targets_1913539992
2582 (123.6ms) DROP TABLE IF EXISTS buffer_location_privileges_1913539992
2583 (120.2ms) DROP TABLE IF EXISTS buffer_periods_1913539992
2584 (125.4ms) DROP TABLE IF EXISTS buffer_point_targets_1913539992
2585 (125.2ms) DROP TABLE IF EXISTS buffer_schedules_1913539992
2586 (122.9ms) DROP TABLE IF EXISTS buffer_target_call_types_1913539992
2587 (117.4ms) DROP TABLE IF EXISTS buffer_target_daily_points_1913539992
2588 (122.3ms) DROP TABLE IF EXISTS buffer_target_dates_list_1913539992
2589 (122.8ms) DROP TABLE IF EXISTS buffer_target_primary_availabilities_1913539992
2590 (122.9ms) DROP TABLE IF EXISTS buffer_targets_1913539992
2591 (123.6ms) DROP TABLE IF EXISTS buffer_tmp_targets_availabilities_1913539992
2592 (127.2ms) DROP TABLE IF EXISTS buffer_tmp_targets_availabilities_exclusions_1913539992
2593 (118.7ms) DROP TABLE IF EXISTS buffer_tmp_targets_client_totals_1913539992
2594 (126.0ms) DROP TABLE IF EXISTS buffer_tmp_targets_scheduled_1913539992
2595 (124.3ms) DROP TABLE IF EXISTS buffer_tmp_targets_staff_totals_1913539992
2596 (128.4ms) DROP TABLE IF EXISTS buffer_assignment_limit_call_types_1913539992
2597 (124.1ms) DROP TABLE IF EXISTS buffer_assignment_limit_periods_1913539992
2598 (124.2ms) DROP TABLE IF EXISTS buffer_assignment_limit_staff_types_1913539992
2599 (119.5ms) DROP TABLE IF EXISTS buffer_auto_populate_slots_1913539992
2600 (117.4ms) DROP TABLE IF EXISTS buffer_call_type_assignments_1913539992
2601 (122.6ms) DROP TABLE IF EXISTS buffer_combined_availabilities_1913539992
2602 (122.9ms) DROP TABLE IF EXISTS buffer_combined_availability_linkages_1913539992
2603 (117.0ms) DROP TABLE IF EXISTS buffer_counter_increments_1913539992
2604 (122.8ms) DROP TABLE IF EXISTS buffer_linkage_assigned_days_1913539992
2605 (122.6ms) DROP TABLE IF EXISTS buffer_linkage_assignments_count_consecutive_1913539992
2606 (119.9ms) DROP TABLE IF EXISTS buffer_linkage_assignments_count_periods_1913539992
2607 (123.4ms) DROP TABLE IF EXISTS buffer_linkage_assignments_count_rolling_1913539992
2608 (125.4ms) DROP TABLE IF EXISTS buffer_linkage_assignments_count_weeks_1913539992
2609 (119.5ms) DROP TABLE IF EXISTS buffer_linkage_call_type_assignments_1913539992
2610 (124.4ms) DROP TABLE IF EXISTS buffer_linkage_dow_targets_1913539992
2611 (127.2ms) DROP TABLE IF EXISTS buffer_linkage_patterns_1913539992
2612 (122.9ms) DROP TABLE IF EXISTS buffer_linkages_1913539992
2613 (120.0ms) DROP TABLE IF EXISTS buffer_location_privileges_1913539992
2614 (125.3ms) DROP TABLE IF EXISTS buffer_min_distances_1913539992
2615 (119.6ms) DROP TABLE IF EXISTS buffer_negative_relations_1913539992
2616 (122.9ms) DROP TABLE IF EXISTS buffer_rule_calc_filters_1913539992
2617 (123.1ms) DROP TABLE IF EXISTS buffer_rule_calc_schedules_1913539992
2618 (124.8ms) DROP TABLE IF EXISTS buffer_rule_scores_1913539992
2619 (117.9ms) DROP TABLE IF EXISTS buffer_rule_scores_with_corrections_1913539992
2620 (117.7ms) DROP TABLE IF EXISTS buffer_schedule_linkages_1913539992
2621 (116.0ms) DROP TABLE IF EXISTS buffer_schedules_linkage_patterns_1913539992
2622 (123.0ms) DROP TABLE IF EXISTS buffer_specialization_daily_counts_1913539992
2623 (122.8ms) DROP TABLE IF EXISTS buffer_staff_assigned_days_1913539992
2624 (117.3ms) DROP TABLE IF EXISTS buffer_staff_assignments_count_periods_1913539992
2625 (123.6ms) DROP TABLE IF EXISTS buffer_staff_assignments_count_rolling_1913539992
2626 (124.7ms) DROP TABLE IF EXISTS buffer_staff_assignments_count_weeks_1913539992
2627 (117.6ms) DROP TABLE IF EXISTS buffer_staff_assignments_count_consecutive_1913539992
2628 (122.8ms) DROP TABLE IF EXISTS buffer_staff_daily_counts_1913539992
2629 (123.9ms) DROP TABLE IF EXISTS buffer_staff_specializations_1913539992
2630 (121.3ms) DROP TABLE IF EXISTS buffer_static_availabilities_1913539992
2631 (123.1ms) DROP TABLE IF EXISTS buffer_target_assignments_1913539992
2632 (125.4ms) delete from buffer_target_dates
2633 where session_id = 1913539992
2634
2635INFO : (05-29 13:24:28) --> fill: 0 - Scheduler::AutoPopulate::Queries::CreateTables
2636 (121.4ms) CREATE TABLE IF NOT EXISTS buffer_assignment_limit_call_types_1913539992 LIKE buffer_assignment_limit_call_types
2637 (125.9ms) CREATE TABLE IF NOT EXISTS buffer_assignment_limit_periods_1913539992 LIKE buffer_assignment_limit_periods
2638 (125.3ms) CREATE TABLE IF NOT EXISTS buffer_assignment_limit_staff_types_1913539992 LIKE buffer_assignment_limit_staff_types
2639 (128.1ms) CREATE TABLE IF NOT EXISTS buffer_auto_populate_slots_1913539992 LIKE buffer_auto_populate_slots
2640 (126.1ms) CREATE TABLE IF NOT EXISTS buffer_call_type_assignments_1913539992 LIKE buffer_call_type_assignments
2641 (119.6ms) CREATE TABLE IF NOT EXISTS buffer_combined_availabilities_1913539992 LIKE buffer_combined_availabilities
2642 (125.9ms) CREATE TABLE IF NOT EXISTS buffer_combined_availability_linkages_1913539992 LIKE buffer_combined_availability_linkages
2643 (125.7ms) CREATE TABLE IF NOT EXISTS buffer_counter_increments_1913539992 LIKE buffer_counter_increments
2644 (119.6ms) CREATE TABLE IF NOT EXISTS buffer_linkage_assigned_days_1913539992 LIKE buffer_linkage_assigned_days
2645 (126.5ms) CREATE TABLE IF NOT EXISTS buffer_linkage_assignments_count_consecutive_1913539992 LIKE buffer_linkage_assignments_count_consecutive
2646 (125.5ms) CREATE TABLE IF NOT EXISTS buffer_linkage_assignments_count_periods_1913539992 LIKE buffer_linkage_assignments_count_periods
2647 (125.3ms) CREATE TABLE IF NOT EXISTS buffer_linkage_assignments_count_rolling_1913539992 LIKE buffer_linkage_assignments_count_rolling
2648 (124.1ms) CREATE TABLE IF NOT EXISTS buffer_linkage_assignments_count_weeks_1913539992 LIKE buffer_linkage_assignments_count_weeks
2649 (129.8ms) CREATE TABLE IF NOT EXISTS buffer_linkage_call_type_assignments_1913539992 LIKE buffer_linkage_call_type_assignments
2650 (128.3ms) CREATE TABLE IF NOT EXISTS buffer_linkage_dow_targets_1913539992 LIKE buffer_linkage_dow_targets
2651 (126.6ms) CREATE TABLE IF NOT EXISTS buffer_linkage_patterns_1913539992 LIKE buffer_linkage_patterns
2652 (127.5ms) CREATE TABLE IF NOT EXISTS buffer_linkages_1913539992 LIKE buffer_linkages
2653 (128.5ms) CREATE TABLE IF NOT EXISTS buffer_location_privileges_1913539992 LIKE buffer_location_privileges
2654 (121.0ms) CREATE TABLE IF NOT EXISTS buffer_min_distances_1913539992 LIKE buffer_min_distances
2655 (143.8ms) CREATE TABLE IF NOT EXISTS buffer_negative_relations_1913539992 LIKE buffer_negative_relations
2656 (121.1ms) CREATE TABLE IF NOT EXISTS buffer_rule_calc_filters_1913539992 LIKE buffer_rule_calc_filters
2657 (125.8ms) CREATE TABLE IF NOT EXISTS buffer_rule_calc_schedules_1913539992 LIKE buffer_rule_calc_schedules
2658 (125.5ms) CREATE TABLE IF NOT EXISTS buffer_rule_scores_1913539992 LIKE buffer_rule_scores
2659 (125.6ms) CREATE TABLE IF NOT EXISTS buffer_rule_scores_with_corrections_1913539992 LIKE buffer_rule_scores_with_corrections
2660 (120.6ms) CREATE TABLE IF NOT EXISTS buffer_schedule_linkages_1913539992 LIKE buffer_schedule_linkages
2661 (125.0ms) CREATE TABLE IF NOT EXISTS buffer_schedules_linkage_patterns_1913539992 LIKE buffer_schedules_linkage_patterns
2662 (128.4ms) CREATE TABLE IF NOT EXISTS buffer_specialization_daily_counts_1913539992 LIKE buffer_specialization_daily_counts
2663 (127.5ms) CREATE TABLE IF NOT EXISTS buffer_staff_assigned_days_1913539992 LIKE buffer_staff_assigned_days
2664 (121.3ms) CREATE TABLE IF NOT EXISTS buffer_staff_assignments_count_periods_1913539992 LIKE buffer_staff_assignments_count_periods
2665 (128.1ms) CREATE TABLE IF NOT EXISTS buffer_staff_assignments_count_rolling_1913539992 LIKE buffer_staff_assignments_count_rolling
2666 (126.6ms) CREATE TABLE IF NOT EXISTS buffer_staff_assignments_count_weeks_1913539992 LIKE buffer_staff_assignments_count_weeks
2667 (125.5ms) CREATE TABLE IF NOT EXISTS buffer_staff_assignments_count_consecutive_1913539992 LIKE buffer_staff_assignments_count_consecutive
2668 (119.3ms) CREATE TABLE IF NOT EXISTS buffer_staff_daily_counts_1913539992 LIKE buffer_staff_daily_counts
2669 (126.0ms) CREATE TABLE IF NOT EXISTS buffer_staff_specializations_1913539992 LIKE buffer_staff_specializations
2670 (125.2ms) CREATE TABLE IF NOT EXISTS buffer_static_availabilities_1913539992 LIKE buffer_static_availabilities
2671 (138.9ms) CREATE TABLE IF NOT EXISTS buffer_target_assignments_1913539992 LIKE buffer_target_assignments
2672 (128.4ms) CREATE TABLE IF NOT EXISTS buffer_annual_hour_targets_1913539992 LIKE buffer_annual_hour_targets
2673 (127.8ms) CREATE TABLE IF NOT EXISTS buffer_annual_point_targets_1913539992 LIKE buffer_annual_point_targets
2674 (122.7ms) CREATE TABLE IF NOT EXISTS buffer_annual_targets_staff_totals_1913539992 LIKE buffer_annual_targets_staff_totals
2675 (122.6ms) CREATE TABLE IF NOT EXISTS buffer_auto_populate_slots_1913539992 LIKE buffer_auto_populate_slots
2676 (125.6ms) CREATE TABLE IF NOT EXISTS buffer_call_days_targets_1913539992 LIKE buffer_call_days_targets
2677 (125.5ms) CREATE TABLE IF NOT EXISTS buffer_call_type_targets_1913539992 LIKE buffer_call_type_targets
2678 (120.0ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_cd_targets_1913539992 LIKE buffer_cumulative_cd_targets
2679 (125.7ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_ct_targets_1913539992 LIKE buffer_cumulative_ct_targets
2680 (125.9ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_dow_targets_1913539992 LIKE buffer_cumulative_dow_targets
2681 (127.2ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_hour_targets_1913539992 LIKE buffer_cumulative_hour_targets
2682 (126.7ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_oa_targets_1913539992 LIKE buffer_cumulative_oa_targets
2683 (142.4ms) CREATE TABLE IF NOT EXISTS buffer_cumulative_point_targets_1913539992 LIKE buffer_cumulative_point_targets
2684 (133.3ms) CREATE TABLE IF NOT EXISTS buffer_current_cd_targets_1913539992 LIKE buffer_current_cd_targets
2685 (129.0ms) CREATE TABLE IF NOT EXISTS buffer_current_ct_targets_1913539992 LIKE buffer_current_ct_targets
2686 (122.0ms) CREATE TABLE IF NOT EXISTS buffer_current_dow_targets_1913539992 LIKE buffer_current_dow_targets
2687 (129.6ms) CREATE TABLE IF NOT EXISTS buffer_current_hour_targets_1913539992 LIKE buffer_current_hour_targets
2688 (126.3ms) CREATE TABLE IF NOT EXISTS buffer_current_oa_targets_1913539992 LIKE buffer_current_oa_targets
2689 (125.5ms) CREATE TABLE IF NOT EXISTS buffer_current_point_targets_1913539992 LIKE buffer_current_point_targets
2690 (119.7ms) CREATE TABLE IF NOT EXISTS buffer_day_of_week_targets_1913539992 LIKE buffer_day_of_week_targets
2691 (122.8ms) CREATE TABLE IF NOT EXISTS buffer_hour_targets_1913539992 LIKE buffer_hour_targets
2692 (126.1ms) CREATE TABLE IF NOT EXISTS buffer_linkage_call_days_targets_1913539992 LIKE buffer_linkage_call_days_targets
2693 (143.6ms) CREATE TABLE IF NOT EXISTS buffer_linkage_call_type_targets_1913539992 LIKE buffer_linkage_call_type_targets
2694 (127.3ms) CREATE TABLE IF NOT EXISTS buffer_linkage_targets_1913539992 LIKE buffer_linkage_targets
2695 (125.1ms) CREATE TABLE IF NOT EXISTS buffer_linkage_hour_targets_1913539992 LIKE buffer_linkage_hour_targets
2696 (122.0ms) CREATE TABLE IF NOT EXISTS buffer_linkage_point_targets_1913539992 LIKE buffer_linkage_point_targets
2697 (124.0ms) CREATE TABLE IF NOT EXISTS buffer_location_privileges_1913539992 LIKE buffer_location_privileges
2698 (125.2ms) CREATE TABLE IF NOT EXISTS buffer_periods_1913539992 LIKE buffer_periods
2699 (125.7ms) CREATE TABLE IF NOT EXISTS buffer_point_targets_1913539992 LIKE buffer_point_targets
2700 (120.3ms) CREATE TABLE IF NOT EXISTS buffer_schedules_1913539992 LIKE buffer_schedules
2701 (125.7ms) CREATE TABLE IF NOT EXISTS buffer_target_call_types_1913539992 LIKE buffer_target_call_types
2702 (125.4ms) CREATE TABLE IF NOT EXISTS buffer_target_daily_points_1913539992 LIKE buffer_target_daily_points
2703 (125.6ms) CREATE TABLE IF NOT EXISTS buffer_target_dates_list_1913539992 LIKE buffer_target_dates_list
2704 (120.1ms) CREATE TABLE IF NOT EXISTS buffer_target_primary_availabilities_1913539992 LIKE buffer_target_primary_availabilities
2705 (127.3ms) CREATE TABLE IF NOT EXISTS buffer_targets_1913539992 LIKE buffer_targets
2706 (126.8ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_availabilities_1913539992 LIKE buffer_tmp_targets_availabilities
2707 (125.6ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_availabilities_exclusions_1913539992 LIKE buffer_tmp_targets_availabilities_exclusions
2708 (120.8ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_client_totals_1913539992 LIKE buffer_tmp_targets_client_totals
2709 (127.6ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_scheduled_1913539992 LIKE buffer_tmp_targets_scheduled
2710 (126.7ms) CREATE TABLE IF NOT EXISTS buffer_tmp_targets_staff_totals_1913539992 LIKE buffer_tmp_targets_staff_totals
2711INFO : (05-29 13:24:37) --> fill: 1 - Scheduler::AutoPopulate::Queries::AutoPopulateSlots
2712 (126.1ms) select
2713 b.start_date,
2714 b.end_date,
2715 (pb.assignment_ids IS NULL) as fully_published,
2716 concat(pbct.assignment_type, '#', pbct.assignment_id) as assignment_uid,
2717 pbct.days_of_week_mask
2718 from blocks as b
2719 inner join published_blocks as pb
2720 on pb.block_id = b.id
2721 inner join published_block_call_types as pbct
2722 on pbct.published_block_id = pb.id
2723 where b.client_id = 261
2724 and pb.calendar_schedule_id = 1167
2725 and b.end_date BETWEEN '2018-09-08' AND '2018-11-25'
2726
2727 AutopopulateExclusion Load (123.7ms) SELECT `autopopulate_exclusions`.* FROM `autopopulate_exclusions` WHERE `autopopulate_exclusions`.`client_id` = 261 AND `autopopulate_exclusions`.`schedule_on` IN ('2018-09-08', '2018-09-09', '2018-09-15', '2018-09-16', '2018-09-22', '2018-09-23', '2018-09-29', '2018-09-30', '2018-10-06', '2018-10-07', '2018-10-13', '2018-10-14', '2018-10-20', '2018-10-21', '2018-10-27', '2018-10-28', '2018-11-03', '2018-11-04', '2018-11-10', '2018-11-11', '2018-11-17', '2018-11-18', '2018-11-24', '2018-11-25')
2728 (126.7ms) INSERT INTO buffer_auto_populate_slots_1913539992
2729 (schedule_on, day_of_week_mask, call_type_id, display_order, should_be_populated)
2730 VALUES ('2018-09-08', 64, 10170, 36, 1), ('2018-09-08', 64, 10167, 81, 1), ('2018-09-08', 64, 10168, 83, 1), ('2018-09-08', 64, 10185, 107, 1), ('2018-09-09', 1, 10170, 36, 1), ('2018-09-09', 1, 10167, 81, 1), ('2018-09-09', 1, 10168, 83, 1), ('2018-09-09', 1, 10185, 107, 1), ('2018-09-15', 64, 10170, 36, 1), ('2018-09-15', 64, 10167, 81, 1), ('2018-09-15', 64, 10168, 83, 1), ('2018-09-15', 64, 10185, 107, 1), ('2018-09-16', 1, 10170, 36, 1), ('2018-09-16', 1, 10167, 81, 1), ('2018-09-16', 1, 10168, 83, 1), ('2018-09-16', 1, 10185, 107, 1), ('2018-09-22', 64, 10170, 36, 1), ('2018-09-22', 64, 10167, 81, 1), ('2018-09-22', 64, 10168, 83, 1), ('2018-09-22', 64, 10185, 107, 1), ('2018-09-23', 1, 10170, 36, 1), ('2018-09-23', 1, 10167, 81, 1), ('2018-09-23', 1, 10168, 83, 1), ('2018-09-23', 1, 10185, 107, 1), ('2018-09-29', 64, 10170, 36, 1), ('2018-09-29', 64, 10167, 81, 1), ('2018-09-29', 64, 10168, 83, 1), ('2018-09-29', 64, 10185, 107, 1), ('2018-09-30', 1, 10170, 36, 1), ('2018-09-30', 1, 10167, 81, 1), ('2018-09-30', 1, 10168, 83, 1), ('2018-09-30', 1, 10185, 107, 1), ('2018-10-06', 64, 10170, 36, 1), ('2018-10-06', 64, 10167, 81, 1), ('2018-10-06', 64, 10168, 83, 1), ('2018-10-06', 64, 10185, 107, 1), ('2018-10-07', 1, 10170, 36, 1), ('2018-10-07', 1, 10167, 81, 1), ('2018-10-07', 1, 10168, 83, 1), ('2018-10-07', 1, 10185, 107, 1), ('2018-10-13', 64, 10170, 36, 1), ('2018-10-13', 64, 10167, 81, 1), ('2018-10-13', 64, 10168, 83, 1), ('2018-10-13', 64, 10185, 107, 1), ('2018-10-14', 1, 10170, 36, 1), ('2018-10-14', 1, 10167, 81, 1), ('2018-10-14', 1, 10168, 83, 1), ('2018-10-14', 1, 10185, 107, 1), ('2018-10-20', 64, 10170, 36, 1), ('2018-10-20', 64, 10167, 81, 1), ('2018-10-20', 64, 10168, 83, 1), ('2018-10-20', 64, 10185, 107, 1), ('2018-10-21', 1, 10170, 36, 1), ('2018-10-21', 1, 10167, 81, 1), ('2018-10-21', 1, 10168, 83, 1), ('2018-10-21', 1, 10185, 107, 1), ('2018-10-27', 64, 10170, 36, 1), ('2018-10-27', 64, 10167, 81, 1), ('2018-10-27', 64, 10168, 83, 1), ('2018-10-27', 64, 10185, 107, 1), ('2018-10-28', 1, 10170, 36, 1), ('2018-10-28', 1, 10167, 81, 1), ('2018-10-28', 1, 10168, 83, 1), ('2018-10-28', 1, 10185, 107, 1), ('2018-11-03', 64, 10170, 36, 1), ('2018-11-03', 64, 10167, 81, 1), ('2018-11-03', 64, 10168, 83, 1), ('2018-11-03', 64, 10185, 107, 1), ('2018-11-04', 1, 10170, 36, 1), ('2018-11-04', 1, 10167, 81, 1), ('2018-11-04', 1, 10168, 83, 1), ('2018-11-04', 1, 10185, 107, 1), ('2018-11-10', 64, 10170, 36, 1), ('2018-11-10', 64, 10167, 81, 1), ('2018-11-10', 64, 10168, 83, 1), ('2018-11-10', 64, 10185, 107, 1), ('2018-11-11', 1, 10170, 36, 1), ('2018-11-11', 1, 10167, 81, 1), ('2018-11-11', 1, 10168, 83, 1), ('2018-11-11', 1, 10185, 107, 1), ('2018-11-17', 64, 10170, 36, 1), ('2018-11-17', 64, 10167, 81, 1), ('2018-11-17', 64, 10168, 83, 1), ('2018-11-17', 64, 10185, 107, 1), ('2018-11-18', 1, 10170, 36, 1), ('2018-11-18', 1, 10167, 81, 1), ('2018-11-18', 1, 10168, 83, 1), ('2018-11-18', 1, 10185, 107, 1), ('2018-11-24', 64, 10170, 36, 1), ('2018-11-24', 64, 10167, 81, 1), ('2018-11-24', 64, 10168, 83, 1), ('2018-11-24', 64, 10185, 107, 1), ('2018-11-25', 1, 10170, 36, 1), ('2018-11-25', 1, 10167, 81, 1), ('2018-11-25', 1, 10168, 83, 1), ('2018-11-25', 1, 10185, 107, 1)
2731
2732INFO : (05-29 13:24:38) --> fill: 2 - Scheduler::AutoPopulate::Queries::Query003
2733 (124.7ms) insert into buffer_auto_populate_slots_1913539992/* client_id */ (
2734 schedule_on,
2735 day_of_week_mask,
2736 call_type_id,
2737 display_order,
2738 should_be_populated
2739 )
2740 select distinct
2741 date_add(
2742 auto_populate_slots.schedule_on,
2743 interval soft_linkages.offset day
2744 ) as schedule_on,
2745 (1 << (
2746 dayofweek(
2747 date_add(
2748 auto_populate_slots.schedule_on,
2749 interval soft_linkages.offset day
2750 )
2751 ) - 1
2752 )
2753 ) as day_of_week_mask,
2754 soft_linkages.linked_call_type_id as call_type_id,
2755 call_types.display_order,
2756 0 as should_be_populated
2757 from
2758 buffer_auto_populate_slots_1913539992/* client_id */ as auto_populate_slots
2759 inner join soft_linkages
2760 on auto_populate_slots.call_type_id = soft_linkages.call_type_id
2761 and auto_populate_slots.day_of_week_mask = soft_linkages.day_of_week_mask
2762 left join buffer_auto_populate_slots_1913539992/* client_id */ as auto_populate_slots_2
2763 on date_add(
2764 auto_populate_slots.schedule_on,
2765 interval soft_linkages.offset day
2766 ) = auto_populate_slots_2.schedule_on
2767 and soft_linkages.linked_call_type_id = auto_populate_slots_2.call_type_id
2768 inner join call_types
2769 on soft_linkages.linked_call_type_id = call_types.id
2770 where auto_populate_slots_2.id is null
2771 order by null
2772
2773INFO : (05-29 13:24:38) --> fill: 3 - Scheduler::AutoPopulate::Queries::Query005
2774 (147.8ms) insert into buffer_auto_populate_slots_1913539992 (
2775 schedule_on,
2776 day_of_week_mask,
2777 call_type_id,
2778 display_order,
2779 should_be_populated
2780 )
2781 select distinct
2782 date_add(
2783 auto_populate_slots.schedule_on,
2784 interval linkage_relations.distance_in_days day
2785 ) as schedule_on,
2786 (1 << (
2787 dayofweek(
2788 date_add(
2789 auto_populate_slots.schedule_on,
2790 interval linkage_relations.distance_in_days day
2791 )
2792 ) - 1
2793 )
2794 ) as day_of_week_mask,
2795 linkage_relations.linked_call_type_id as call_type_id,
2796 call_types.display_order,
2797 0 as should_be_populated
2798 from
2799 buffer_auto_populate_slots_1913539992 as auto_populate_slots
2800 inner join linkage_relations
2801 on auto_populate_slots.call_type_id = linkage_relations.call_type_id
2802 and auto_populate_slots.day_of_week_mask = linkage_relations.day_of_week_mask
2803 left join buffer_auto_populate_slots_1913539992 as auto_populate_slots_2
2804 on date_add(
2805 auto_populate_slots.schedule_on,
2806 interval linkage_relations.distance_in_days day
2807 ) = auto_populate_slots_2.schedule_on
2808 and linkage_relations.linked_call_type_id = auto_populate_slots_2.call_type_id
2809 inner join call_types
2810 on linkage_relations.linked_call_type_id = call_types.id
2811 where auto_populate_slots_2.id is null
2812 order by null
2813
2814INFO : (05-29 13:24:38) --> fill: 4 - Scheduler::AutoPopulate::Queries::Query01
2815 (129.8ms) insert into linkage_relations (
2816 client_id,
2817 call_type_id,
2818 day_of_week_mask,
2819 linked_call_type_id,
2820 distance_in_days,
2821 linkage_template_id
2822 )
2823 select distinct
2824 261 /* client_id */ as client_id,
2825 aps.call_type_id,
2826 aps.day_of_week_mask,
2827 aps.call_type_id as linked_call_type_id,
2828 0 as distance_in_days,
2829 coalesce(
2830 lr.linkage_template_id,
2831 @linkage_template_max := @linkage_template_max + 1
2832 ) as linkage_template_id
2833 from
2834 buffer_auto_populate_slots_1913539992/* client_id */ as aps
2835 inner join (
2836 select @linkage_template_max := count(distinct linkage_template_id) - 1
2837 from linkage_relations
2838 where client_id = 261 /* client_id */
2839 order by null
2840 ) as lt
2841 on 1 = 1
2842 left join linkage_relations as lr use index (ix_linkage_relations_composite1)
2843 on aps.call_type_id = lr.call_type_id
2844 and aps.day_of_week_mask = lr.day_of_week_mask
2845 left join linkage_relations as lr_2 use index (ix_linkage_relations_composite1)
2846 on aps.call_type_id = lr_2.call_type_id
2847 and aps.day_of_week_mask = lr_2.day_of_week_mask
2848 and aps.call_type_id = lr_2.linked_call_type_id
2849 and lr_2.distance_in_days = 0
2850 where lr_2.id is null
2851 order by null
2852
2853 (155.0ms) insert into buffer_schedules_1913539992 (
2854 call_type_id,
2855 staff_id,
2856 schedule_on,
2857 day_of_week_mask,
2858 is_weekend,
2859 display_order,
2860 week_number,
2861 should_be_evaluated,
2862 should_be_populated,
2863 linkage_instance_id
2864 )
2865 select
2866 call_type_id,
2867 staff_id,
2868 schedule_on,
2869 day_of_week_mask,
2870 is_weekend,
2871 display_order,
2872 week_number,
2873 max(should_be_evaluated) as should_be_evaluated,
2874 max(should_be_populated) as should_be_populated,
2875 min(linkage_instance_id) as linkage_instance_id
2876 from (
2877 select
2878 auto_populate_slots_2.call_type_id,
2879 schedules.staff_id,
2880 auto_populate_slots_2.schedule_on,
2881 auto_populate_slots_2.day_of_week_mask,
2882 case
2883 when (auto_populate_slots_2.day_of_week_mask & 62 > 0) then 0
2884 else 1
2885 end as is_weekend,
2886 auto_populate_slots_2.display_order,
2887 yearweek(
2888 auto_populate_slots_2.schedule_on,
2889 case
2890 when (clients.start_of_week = 0) then 2
2891 else 7
2892 end
2893 ) as week_number,
2894 case
2895 when (schedules.staff_id is null) then 1
2896 else 0
2897 end as should_be_evaluated,
2898 (
2899 case
2900 when (
2901 auto_populate_slots_2.should_be_populated = 1
2902 and schedules.staff_id is null
2903 ) then 1
2904 else 0
2905 end
2906 ) as should_be_populated,
2907 (
2908 linkage_relations.linkage_template_id * 1000000 +
2909 yearweek(
2910 auto_populate_slots.schedule_on,
2911 case
2912 when (clients.start_of_week = 0) then 2
2913 else 7
2914 end
2915 )
2916 ) as linkage_instance_id
2917 from
2918 buffer_auto_populate_slots_1913539992 as auto_populate_slots
2919 inner join clients
2920 on clients.id = 261 /* client_id */
2921 inner join linkage_relations
2922 on auto_populate_slots.call_type_id = linkage_relations.call_type_id
2923 and auto_populate_slots.day_of_week_mask = linkage_relations.day_of_week_mask
2924 inner join buffer_auto_populate_slots_1913539992 as auto_populate_slots_2
2925 on date_add(
2926 auto_populate_slots.schedule_on,
2927 interval linkage_relations.distance_in_days day
2928 ) = auto_populate_slots_2.schedule_on
2929 and linkage_relations.linked_call_type_id = auto_populate_slots_2.call_type_id
2930 left join schedules
2931 on auto_populate_slots_2.call_type_id = schedules.call_type_id
2932 and auto_populate_slots_2.schedule_on = schedules.schedule_on
2933 order by null
2934 ) as t1
2935 group by
2936 call_type_id,
2937 staff_id,
2938 schedule_on,
2939 day_of_week_mask,
2940 display_order,
2941 week_number
2942 order by null
2943
2944INFO : (05-29 13:24:38) --> fill: 5 - Scheduler::AutoPopulate::Queries::Query012
2945 (150.4ms) update
2946 buffer_schedules_1913539992 as sc
2947 inner join call_types as ct
2948 on sc.call_type_id = ct.id
2949 inner join calendar_schedules as cs
2950 on ct.calendar_schedule_id = cs.id
2951 inner join blocks as b
2952 on cs.block_schedule_id = b.block_schedule_id
2953 and sc.schedule_on between b.start_date and b.end_date
2954 set
2955 sc.calendar_schedule_id = cs.id,
2956 sc.block_id = b.id
2957
2958 BlockSchedule Load (122.7ms) SELECT `block_schedules`.* FROM `block_schedules` WHERE `block_schedules`.`id` = 356 LIMIT 1
2959 (120.6ms) insert into buffer_periods_1913539992 (
2960 calendar_schedule_id,
2961 block_schedule_id,
2962 period_offset,
2963 start_block_display_order,
2964 end_block_display_order,
2965 start_date,
2966 end_date,
2967 should_be_populated,
2968 should_be_evaluated
2969 )
2970 select
2971 sc.calendar_schedule_id,
2972 b.block_schedule_id,
2973 b.display_order as period_offset,
2974 b.display_order as start_block_display_order,
2975 b.display_order as end_block_display_order,
2976 b.start_date as start_date,
2977 b.end_date as end_date,
2978 sc.should_be_populated as should_be_populated,
2979 sc.should_be_evaluated as should_be_evaluated
2980 from (
2981 select
2982 sc.block_id,
2983 sc.calendar_schedule_id,
2984 max(ps.should_be_populated) as should_be_populated,
2985 1 as should_be_evaluated
2986 from
2987 buffer_schedules_1913539992 as sc
2988 inner join buffer_auto_populate_slots_1913539992 as ps
2989 on sc.schedule_on = ps.schedule_on
2990 and sc.call_type_id = ps.call_type_id
2991 where sc.linkage_instance_id >= 0
2992 group by
2993 sc.calendar_schedule_id,
2994 sc.block_id
2995 order by null
2996 ) as sc
2997 inner join blocks as b
2998 on sc.block_id = b.id
2999 order by null
3000
3001 (129.1ms) update
3002 buffer_schedules_1913539992 as sc
3003 inner join buffer_periods_1913539992 as p
3004 on sc.calendar_schedule_id = p.calendar_schedule_id
3005 and sc.schedule_on between p.start_date and p.end_date
3006 set sc.period_offset = p.period_offset
3007
3008INFO : (05-29 13:24:39) --> fill: 6 - Scheduler::AutoPopulate::Queries::QueryTargets
3009 (123.2ms) delete from buffer_target_dates
3010 where session_id = 1913539992
3011
3012 (123.3ms) select distinct calendar_schedule_id
3013 from buffer_periods_1913539992
3014
3015 (244.1ms) insert into buffer_target_dates (
3016 session_id,
3017 client_id,
3018 calendar_schedule_id,
3019 block_id,
3020 start_date,
3021 end_date,
3022 block_display_order,
3023 period_offset,
3024 build_cd_targets,
3025 cd_targets_source,
3026 copy_cd_targets,
3027 build_ct_targets,
3028 ct_targets_source,
3029 copy_ct_targets,
3030 build_oa_targets,
3031 oa_targets_source,
3032 copy_oa_targets,
3033 build_dow_targets,
3034 dow_targets_source,
3035 copy_dow_targets,
3036 build_point_targets,
3037 point_targets_source,
3038 copy_point_targets,
3039 build_hour_targets,
3040 hour_targets_source,
3041 copy_hour_targets,
3042 is_published,
3043 affected_by_populate,
3044 within_cumulative_period
3045 )
3046 select
3047 1913539992 as session_id,
3048 261 as client_id,
3049 t1.calendar_schedule_id,
3050 t1.block_id,
3051 t1.start_date,
3052 t1.end_date,
3053 t1.block_display_order,
3054 t1.period_offset,
3055 case
3056 when (
3057 (
3058 FALSE
3059 )
3060 and t1.is_published = 0
3061 and coalesce(pb.has_unpublished, 1) = 1
3062 and cd_u.block_id is null
3063 ) then 1
3064 else 0
3065 end as build_cd_targets,
3066 case
3067 when (
3068 t1.is_published = 1
3069 or (
3070 pb.has_published = 1
3071 and pb.has_unpublished = 0
3072 )
3073 ) then 'published'
3074 when (
3075 coalesce(pb.has_published, 0) = 0
3076 and coalesce(pb.has_unpublished, 1) = 1
3077 and cd_u.block_id is not null
3078 ) then 'unpublished'
3079 when (
3080 pb.has_published = 1
3081 and pb.has_unpublished = 1
3082 and cd_u.block_id is not null
3083 ) then 'both'
3084 else ''
3085 end as cd_targets_source,
3086 0 as copy_cd_targets,
3087 case
3088 when (
3089 (
3090 FALSE
3091 )
3092 and t1.is_published = 0
3093 and coalesce(pb.has_unpublished, 1) = 1
3094 and ct_u.block_id is null
3095 ) then 1
3096 else 0
3097 end as build_ct_targets,
3098 case
3099 when (
3100 t1.is_published = 1
3101 or (
3102 pb.has_published = 1
3103 and pb.has_unpublished = 0
3104 )
3105 ) then 'published'
3106 when (
3107 coalesce(pb.has_published, 0) = 0
3108 and coalesce(pb.has_unpublished, 1) = 1
3109 and ct_u.block_id is not null
3110 ) then 'unpublished'
3111 when (
3112 pb.has_published = 1
3113 and pb.has_unpublished = 1
3114 and ct_u.block_id is not null
3115 ) then 'both'
3116 else ''
3117 end as ct_targets_source,
3118 0 as copy_ct_targets,
3119 case
3120 when (
3121 (
3122 FALSE
3123 )
3124 and t1.is_published = 0
3125 and oa_u.block_id is null
3126 ) then 1
3127 else 0
3128 end as build_oa_targets,
3129 case
3130 when (t1.is_published = 1) then 'published'
3131 when (oa_u.block_id is not null) then 'unpublished'
3132 else ''
3133 end as oa_targets_source,
3134 0 as copy_oa_targets,
3135 case
3136 when (
3137 (
3138 FALSE
3139 )
3140 and t1.is_published = 0
3141 and dow_u.block_id is null
3142 ) then 1
3143 else 0
3144 end as build_dow_targets,
3145 case
3146 when (t1.is_published = 1) then 'published'
3147 when (dow_u.block_id is not null) then 'unpublished'
3148 else ''
3149 end as dow_targets_source,
3150 0 as copy_dow_targets,
3151 case
3152 when (
3153 (
3154 t1.affected_by_populate = 1 /* CurrentPointTargetsRule, CurrentWeeklyPointTargetsRule */ OR t1.within_cumulative_period = 1 /* CumulativePointTargetsRule, CumulativeWeeklyPointTargetsRule */
3155 )
3156 and t1.is_published = 0
3157 and p_u.block_id is null
3158 ) then 1
3159 else 0
3160 end as build_point_targets,
3161 case
3162 when (t1.is_published = 1) then 'published'
3163 when (p_u.block_id is not null) then 'unpublished'
3164 else ''
3165 end as point_targets_source,
3166 0 as copy_point_targets,
3167 case
3168 when (
3169 (
3170 FALSE
3171 )
3172 and t1.is_published = 0
3173 and h_u.block_id is null
3174 ) then 1
3175 else 0
3176 end as build_hour_targets,
3177 case
3178 when (t1.is_published = 1) then 'published'
3179 when (h_u.block_id is not null) then 'unpublished'
3180 else ''
3181 end as hour_targets_source,
3182 0 as copy_hour_targets,
3183 t1.is_published,
3184 t1.affected_by_populate,
3185 t1.within_cumulative_period
3186 from (
3187 select
3188 t1.calendar_schedule_id,
3189 b.id as block_id,
3190 b.start_date,
3191 b.end_date,
3192 t1.block_display_order,
3193 p.period_offset,
3194 case
3195 when (t1.block_display_order between t1.start_block_display_order and t1.end_block_display_order) then 1
3196 else 0
3197 end as affected_by_populate,
3198 case
3199 when (t1.block_display_order between (t1.timeframe_ending - (4 - 1)) and t1.timeframe_ending) then 1
3200 else 0
3201 end as within_cumulative_period,
3202 case
3203 when (pb.id is not null) then 1
3204 else 0
3205 end as is_published
3206 from (
3207 select
3208 t1.calendar_schedule_id,
3209 t1.block_schedule_id,
3210 (t1.end_block_display_order - ns.item_number) as block_display_order,
3211 t1.start_block_display_order,
3212 t1.end_block_display_order,
3213 t1.timeframe_ending
3214 from (
3215 select
3216 calendar_schedule_id,
3217 block_schedule_id,
3218 min(start_block_display_order) as start_block_display_order,
3219 max(end_block_display_order) as end_block_display_order,
3220 max(
3221 case
3222 when (should_be_populated = 1) then end_block_display_order
3223 else null
3224 end
3225 ) as timeframe_ending
3226 from
3227 buffer_periods_1913539992
3228 group by
3229 calendar_schedule_id,
3230 block_schedule_id
3231 order by null
3232 ) as t1
3233 inner join numeric_sequence as ns
3234 on ns.item_number < greatest(
3235 t1.end_block_display_order - t1.start_block_display_order + 1,
3236 t1.end_block_display_order - t1.timeframe_ending + 4 /* cumulative targets period */
3237 )
3238 and t1.end_block_display_order >= ns.item_number
3239 where
3240 (t1.end_block_display_order - ns.item_number) /* block display order */
3241 between t1.start_block_display_order and t1.end_block_display_order
3242 or (t1.end_block_display_order - ns.item_number)
3243 between (t1.timeframe_ending - (4 /* cumulative targets period */ - 1)) and t1.timeframe_ending
3244 order by null
3245 ) as t1
3246 inner join blocks as b
3247 on t1.block_schedule_id = b.block_schedule_id
3248 and t1.block_display_order = b.display_order
3249 left join buffer_periods_1913539992 as p
3250 on t1.calendar_schedule_id = p.calendar_schedule_id
3251 and t1.block_display_order between p.start_block_display_order and p.end_block_display_order
3252 left join published_blocks as pb
3253 on b.id = pb.block_id
3254 and t1.calendar_schedule_id = pb.calendar_schedule_id
3255 and pb.assignment_ids is null
3256 and pb.days_of_week_mask = 127
3257 order by null
3258 ) as t1
3259 left join (
3260 select
3261 calendar_schedule_id,
3262 block_id
3263 from
3264 unpublished_call_days_targets
3265 where
3266 calendar_schedule_id in (1167,1219) /* list of calendar schedules */
3267 group by
3268 calendar_schedule_id,
3269 block_id
3270 order by null
3271 ) as cd_u
3272 on t1.calendar_schedule_id = cd_u.calendar_schedule_id
3273 and t1.block_id = cd_u.block_id
3274 left join (
3275 select
3276 calendar_schedule_id,
3277 block_id
3278 from
3279 unpublished_call_type_targets
3280 where
3281 calendar_schedule_id in (1167,1219) /* list of calendar schedules */
3282 group by
3283 calendar_schedule_id,
3284 block_id
3285 order by null
3286 ) as ct_u
3287 on t1.calendar_schedule_id = ct_u.calendar_schedule_id
3288 and t1.block_id = ct_u.block_id
3289 left join (
3290 select
3291 calendar_schedule_id,
3292 block_id
3293 from
3294 unpublished_targets
3295 where
3296 calendar_schedule_id in (1167,1219) /* list of calendar schedules */
3297 group by
3298 calendar_schedule_id,
3299 block_id
3300 order by null
3301 ) as oa_u
3302 on t1.calendar_schedule_id = oa_u.calendar_schedule_id
3303 and t1.block_id = oa_u.block_id
3304 left join (
3305 select
3306 calendar_schedule_id,
3307 block_id
3308 from
3309 unpublished_day_of_week_targets
3310 where
3311 calendar_schedule_id in (1167,1219) /* list of calendar schedules */
3312 group by
3313 calendar_schedule_id,
3314 block_id
3315 order by null
3316 ) as dow_u
3317 on t1.calendar_schedule_id = dow_u.calendar_schedule_id
3318 and t1.block_id = dow_u.block_id
3319 left join (
3320 select
3321 calendar_schedule_id,
3322 block_id
3323 from
3324 unpublished_point_targets
3325 where
3326 calendar_schedule_id in (1167,1219) /* list of calendar schedules */
3327 group by
3328 calendar_schedule_id,
3329 block_id
3330 order by null
3331 ) as p_u
3332 on t1.calendar_schedule_id = p_u.calendar_schedule_id
3333 and t1.block_id = p_u.block_id
3334 left join (
3335 select
3336 calendar_schedule_id,
3337 block_id
3338 from
3339 unpublished_hour_targets
3340 where
3341 calendar_schedule_id in (1167,1219) /* list of calendar schedules */
3342 group by
3343 calendar_schedule_id,
3344 block_id
3345 order by null
3346 ) as h_u
3347 on t1.calendar_schedule_id = h_u.calendar_schedule_id
3348 and t1.block_id = h_u.block_id
3349 left join (
3350 select
3351 pb.calendar_schedule_id,
3352 pb.block_id,
3353 max(
3354 case
3355 when (coalesce(pbct.days_of_week_mask, 0) > 0) then 1
3356 else 0
3357 end
3358 ) as has_published,
3359 max(
3360 case
3361 when (coalesce(pbct.days_of_week_mask, 0) < 127) then 1
3362 else 0
3363 end
3364 ) as has_unpublished
3365 from (
3366 select
3367 case
3368 when (tg.id is null) then ct.id
3369 else tg.id
3370 end as assignment_id,
3371 case
3372 when (tg.id is null) then 'CallType'
3373 else 'TargetGroup'
3374 end as assignment_type,
3375 ct.calendar_schedule_id
3376 from
3377 call_types as ct
3378 left join target_group_calls as tgc
3379 on ct.id = tgc.call_type_id
3380 left join target_groups as tg
3381 on tgc.target_group_id = tg.id
3382 and tg.active = 1
3383 where
3384 ct.calendar_schedule_id in (1167,1219) /* list of calendar schedules */
3385 and ct.active = 1
3386 and ct.included_in_targets > 0
3387 and ct.days_of_week_mask > 0
3388 group by
3389 assignment_id,
3390 assignment_type,
3391 ct.calendar_schedule_id
3392 order by null
3393 ) as ct
3394 inner join published_blocks as pb
3395 on ct.calendar_schedule_id = pb.calendar_schedule_id
3396 and (
3397 pb.assignment_ids is not null
3398 or pb.days_of_week_mask < 127
3399 )
3400 left join published_block_call_types as pbct
3401 on pb.id = pbct.published_block_id
3402 and ct.assignment_id = pbct.assignment_id
3403 and ct.assignment_type = pbct.assignment_type
3404 group by
3405 pb.calendar_schedule_id,
3406 pb.block_id
3407 order by null
3408 ) as pb
3409 on t1.calendar_schedule_id = pb.calendar_schedule_id
3410 and t1.block_id = pb.block_id
3411 order by null
3412
3413Execution Logger: Scheduler::AutoPopulate::Queries::Targets::Targets0101 - 492.555ms
3414 (123.6ms) select
3415 max(build_cd_targets) as build_cd_targets,
3416 max(build_ct_targets) as build_ct_targets,
3417 max(build_oa_targets) as build_oa_targets,
3418 max(build_dow_targets) as build_dow_targets,
3419 max(build_point_targets) as build_point_targets,
3420 max(build_hour_targets) as build_hour_targets
3421 from buffer_target_dates
3422 where session_id = 1913539992
3423 order by null
3424
3425Execution Logger: Scheduler::AutoPopulate::Queries::Targets::Targets02 - 124.074ms
3426 (125.2ms) /* CumulativePointTargetsRule */
3427 insert into buffer_cumulative_point_targets_1913539992 (
3428 staff_id,
3429 is_weekend,
3430 calendar_schedule_id,
3431 raw_target,
3432 adjusted_target,
3433 scheduled,
3434 other_scheduled,
3435 available_days
3436 )
3437 select
3438 t.staff_id,
3439 t.is_weekend,
3440 t.calendar_schedule_id,
3441 sum(t.raw_target) as raw_target,
3442 sum(t.adjusted_target) as adjusted_target,
3443 sum(t.scheduled) as scheduled,
3444 sum(t.other_scheduled) as other_scheduled,
3445 sum(t.available_days) as available_days
3446 from (
3447 select
3448 t.calendar_schedule_id,
3449 t.block_id,
3450 t.staff_id,
3451 t.is_weekend,
3452 t.raw_target,
3453 t.target as adjusted_target,
3454 t.scheduled,
3455 t.other_scheduled,
3456 t.available_days
3457 from buffer_target_dates as td
3458 inner join buffer_point_targets_1913539992 as t
3459 on td.calendar_schedule_id = t.calendar_schedule_id
3460 and td.block_id = t.block_id
3461 where td.session_id = 1913539992
3462 and td.build_point_targets = 1
3463 and td.within_cumulative_period = 1
3464 union
3465 select
3466 pt.calendar_schedule_id,
3467 pt.block_id,
3468 pt.staff_id,
3469 pt.is_weekend,
3470 pt.raw_target,
3471 pt.target,
3472 pt.scheduled,
3473 pt.other_scheduled,
3474 pt.available_days
3475 from buffer_target_dates as td
3476 inner join point_targets as pt
3477 on td.calendar_schedule_id = pt.calendar_schedule_id
3478 and td.block_id = pt.block_id
3479 where td.session_id = 1913539992
3480 and td.build_point_targets = 0
3481 and td.point_targets_source = 'published'
3482 and td.within_cumulative_period = 1
3483 union
3484 select
3485 upt.calendar_schedule_id,
3486 upt.block_id,
3487 upt.staff_id,
3488 upt.is_weekend,
3489 upt.raw_target,
3490 upt.target,
3491 upt.scheduled,
3492 upt.other_scheduled,
3493 upt.available_days
3494 from buffer_target_dates as td
3495 inner join unpublished_point_targets as upt
3496 on td.calendar_schedule_id = upt.calendar_schedule_id
3497 and td.block_id = upt.block_id
3498 where td.session_id = 1913539992
3499 and td.build_point_targets = 0
3500 and td.point_targets_source = 'unpublished'
3501 and td.within_cumulative_period = 1
3502 order by null
3503 ) as t
3504 group by
3505 t.staff_id,
3506 t.is_weekend,
3507 t.calendar_schedule_id
3508 order by null
3509
3510Execution Logger: Scheduler::AutoPopulate::Queries::Targets::Targets0702 - 125.884ms
3511 (128.6ms) /* CurrentPointTargetsRule */
3512 insert into buffer_current_point_targets_1913539992 (
3513 staff_id,
3514 is_weekend,
3515 period_offset,
3516 calendar_schedule_id,
3517 raw_target,
3518 adjusted_target,
3519 scheduled,
3520 other_scheduled,
3521 available_days
3522 )
3523 select
3524 t.staff_id,
3525 t.is_weekend,
3526 t.period_offset,
3527 t.calendar_schedule_id,
3528 sum(t.raw_target) as raw_target,
3529 sum(t.adjusted_target) as adjusted_target,
3530 sum(t.scheduled) as scheduled,
3531 sum(t.other_scheduled) as other_scheduled,
3532 sum(t.available_days) as available_days
3533 from (
3534 select
3535 t.calendar_schedule_id,
3536 t.block_id,
3537 t.staff_id,
3538 td.period_offset,
3539 t.is_weekend,
3540 t.raw_target,
3541 t.target as adjusted_target,
3542 t.scheduled,
3543 t.other_scheduled,
3544 t.available_days
3545 from buffer_target_dates as td
3546 inner join buffer_point_targets_1913539992 as t
3547 on td.calendar_schedule_id = t.calendar_schedule_id
3548 and td.block_id = t.block_id
3549 where td.session_id = 1913539992
3550 and td.build_point_targets = 1
3551 and td.affected_by_populate = 1
3552 union
3553 select
3554 pt.calendar_schedule_id,
3555 pt.block_id,
3556 pt.staff_id,
3557 td.period_offset,
3558 pt.is_weekend,
3559 pt.raw_target,
3560 pt.target,
3561 pt.scheduled,
3562 pt.other_scheduled,
3563 pt.available_days
3564 from buffer_target_dates as td
3565 inner join point_targets as pt
3566 on td.calendar_schedule_id = pt.calendar_schedule_id
3567 and td.block_id = pt.block_id
3568 where td.session_id = 1913539992
3569 and td.build_point_targets = 0
3570 and td.point_targets_source = 'published'
3571 and td.affected_by_populate = 1
3572 union
3573 select
3574 upt.calendar_schedule_id,
3575 upt.block_id,
3576 upt.staff_id,
3577 td.period_offset,
3578 upt.is_weekend,
3579 upt.raw_target,
3580 upt.target,
3581 upt.scheduled,
3582 upt.other_scheduled,
3583 upt.available_days
3584 from buffer_target_dates as td
3585 inner join unpublished_point_targets as upt
3586 on td.calendar_schedule_id = upt.calendar_schedule_id
3587 and td.block_id = upt.block_id
3588 where td.session_id = 1913539992
3589 and td.build_point_targets = 0
3590 and td.point_targets_source = 'unpublished'
3591 and td.affected_by_populate = 1
3592 order by null
3593 ) as t
3594 group by
3595 t.staff_id,
3596 t.is_weekend,
3597 t.period_offset,
3598 t.calendar_schedule_id
3599 order by null
3600
3601Execution Logger: Scheduler::AutoPopulate::Queries::Targets::Targets0703 - 129.255ms
3602 (126.7ms) /* CurrentPointTargetsRule, CurrentWeeklyPointTargetsRule, CumulativePointTargetsRule, CumulativeWeeklyPointTargetsRule */
3603 insert into buffer_point_targets_1913539992 (
3604 calendar_schedule_id,
3605 block_id,
3606 staff_id,
3607 is_weekend,
3608 raw_target,
3609 target,
3610 scheduled,
3611 other_scheduled,
3612 available_days,
3613 initial_target
3614 )
3615 select
3616 pt.calendar_schedule_id,
3617 pt.block_id,
3618 pt.staff_id,
3619 pt.is_weekend,
3620 pt.raw_target,
3621 pt.target,
3622 pt.scheduled,
3623 pt.other_scheduled,
3624 pt.available_days,
3625 pt.initial_target
3626 from buffer_target_dates as td
3627 inner join point_targets as pt
3628 on td.calendar_schedule_id = pt.calendar_schedule_id
3629 and td.block_id = pt.block_id
3630 where td.session_id = 1913539992
3631 and td.build_point_targets = 0
3632 and td.point_targets_source = 'published'
3633 and td.affected_by_populate = 1
3634 union
3635 select
3636 upt.calendar_schedule_id,
3637 upt.block_id,
3638 upt.staff_id,
3639 upt.is_weekend,
3640 upt.raw_target,
3641 upt.target,
3642 upt.scheduled,
3643 upt.other_scheduled,
3644 upt.available_days,
3645 upt.initial_target
3646 from buffer_target_dates as td
3647 inner join unpublished_point_targets as upt
3648 on td.calendar_schedule_id = upt.calendar_schedule_id
3649 and td.block_id = upt.block_id
3650 where td.session_id = 1913539992
3651 and td.build_point_targets = 0
3652 and td.point_targets_source = 'unpublished'
3653 and td.affected_by_populate = 1
3654 order by null
3655
3656Execution Logger: Scheduler::AutoPopulate::Queries::Targets::Targets07Reports - 127.28900000000002ms
3657INFO : (05-29 13:24:40) --> fill: 7 - Scheduler::AutoPopulate::Queries::Query013
3658 (204.0ms) insert into buffer_counter_increments_1913539992 (
3659 schedule_id,
3660 calls,
3661 points,
3662 hours,
3663 affects_cumulative_targets
3664 )
3665 select
3666 sc.id as schedule_id,
3667 case
3668 when (ct.included_in_targets > 0) then 1
3669 else 0
3670 end as calls,
3671 coalesce(
3672 case
3673 when (hl.observed_date is null or dp.point is not null) then dp.point
3674 else dp_2.point
3675 end,
3676 0.0
3677 ) as points,
3678 ct.hours,
3679 case
3680 when (b.display_order between (t1.timeframe_ending - (4 /* cumulative targets period */ - 1)) and t1.timeframe_ending) then 1
3681 else 0
3682 end as affects_cumulative_targets
3683 from
3684 buffer_schedules_1913539992 as sc
3685 inner join (
3686 select
3687 id,
3688 included_in_targets,
3689 coalesce(
3690 timestampdiff(
3691 minute,
3692 concat('1900-01-01 ', maketime(start_time_hour, start_time_minute, 0)),
3693 concat(
3694 '1900-01-0',
3695 case
3696 when ((
3697 start_time_hour | start_time_minute | end_time_hour | end_time_minute > 0
3698 )
3699 and (
3700 timediff(
3701 maketime(end_time_hour, end_time_minute, 0),
3702 maketime(start_time_hour, start_time_minute, 0)
3703 ) <= 0
3704 )
3705 ) then '2'
3706 else '1'
3707 end,
3708 ' ',
3709 maketime(end_time_hour, end_time_minute, 0)
3710 )
3711 ) / 60,
3712 0.0
3713 ) as hours
3714 from call_types
3715 where
3716 client_id = 261
3717 and active = 1
3718 order by null
3719 ) as ct
3720 on sc.call_type_id = ct.id
3721 inner join blocks as b
3722 on sc.block_id = b.id
3723 inner join (
3724 select
3725 calendar_schedule_id,
3726 max(
3727 case
3728 when (should_be_populated = 1) then end_block_display_order
3729 else null
3730 end
3731 ) as timeframe_ending
3732 from buffer_periods_1913539992
3733 group by calendar_schedule_id
3734 order by null
3735 ) as t1
3736 on sc.calendar_schedule_id = t1.calendar_schedule_id
3737 left join (
3738 select
3739 hd.observed_date,
3740 case
3741 when (hd.observed_date > hd.extended_date) then hd.extended_date
3742 else hd.observed_date
3743 end as date_from,
3744 case
3745 when (hd.observed_date < hd.extended_date) then hd.extended_date
3746 else hd.observed_date
3747 end as date_to
3748 from
3749 holidays as h
3750 inner join holiday_dates as hd
3751 on h.id = hd.holiday_id
3752 inner join (
3753 select
3754 year(min(schedule_on)) as year_from,
3755 year(max(schedule_on)) as year_to
3756 from buffer_schedules_1913539992
3757 where should_be_evaluated = 1
3758 ) as y
3759 on hd.year between y.year_from and y.year_to
3760 where
3761 h.client_id = 261
3762 and (
3763 h.observed = 1
3764 or h.extended = 1
3765 )
3766 order by null
3767 ) as hl
3768 on sc.schedule_on between hl.date_from and hl.date_to
3769 left join assignment_annotations as aa
3770 on ct.id = aa.assignmentable_id
3771 and aa.assignmentable_type = 'CallType'
3772 and aa.annotation_id = 0 /* annotation = "None" */
3773 and aa.applicable = 1
3774 left join assignment_annotation_daily_points as dp
3775 on aa.id = dp.assignment_annotation_id
3776 and case
3777 when (hl.observed_date is null) then (dayofweek(sc.schedule_on) - 1)
3778 when (sc.schedule_on = hl.observed_date) then 7
3779 else 8
3780 end = dp.day
3781 left join assignment_annotation_daily_points as dp_2
3782 on aa.id = dp_2.assignment_annotation_id
3783 and (dayofweek(sc.schedule_on) - 1) = dp_2.day
3784 where sc.should_be_evaluated = 1
3785 order by null
3786
3787INFO : (05-29 13:24:40) --> fill: 8 - Scheduler::AutoPopulate::Queries::Query014
3788 (123.8ms) -- Prepare the information about the blocks we're populating and the linkage patterns which will be used on those blocks
3789 insert into buffer_linkage_patterns_1913539992 (
3790 period_offset,
3791 calendar_schedule_id,
3792 block_id,
3793 block_start_date,
3794 block_start_dow,
3795 block_length,
3796 linkage_pattern_id,
3797 pattern_start_dow,
3798 days_before_start,
3799 pattern_length,
3800 start_offset,
3801 iterations_count
3802 )
3803 select
3804 b1.period_offset,
3805 b1.calendar_schedule_id,
3806 b1.block_id,
3807 b2.start_date as block_start_date,
3808 dayofweek(b2.start_date) as block_start_dow,
3809 (datediff(b2.end_date, b2.start_date) + 1) as block_length,
3810 lp.id as linkage_pattern_id,
3811 (lp.start_on + 1) as pattern_start_dow,
3812 lp.days_before_start,
3813 (lp.length * 7) as pattern_length,
3814 null as start_offset,
3815 null as iterations_count
3816 from (
3817 select
3818 calendar_schedule_id,
3819 block_id,
3820 period_offset
3821 from buffer_schedules_1913539992
3822 group by
3823 calendar_schedule_id,
3824 block_id,
3825 period_offset
3826 order by null
3827 ) as b1
3828 inner join blocks as b2
3829 on b1.block_id = b2.id
3830 inner join linkage_patterns as lp
3831 on lp.client_id = 261
3832 and b1.calendar_schedule_id = lp.calendar_schedule_id
3833 order by null
3834
3835 (123.7ms) -- Calculate the basic offset ("+" or "-") that will be applied to a linkage pattern if a block and a pattern are starting on different day of week
3836 update buffer_linkage_patterns_1913539992
3837 set start_offset = if(
3838 (pattern_start_dow + (case when (pattern_start_dow < block_start_dow) then 7 else 0 end) - block_start_dow) <= days_before_start,
3839 (pattern_start_dow + (case when (pattern_start_dow < block_start_dow) then 7 else 0 end) - block_start_dow),
3840 (block_start_dow + (case when (block_start_dow < pattern_start_dow) then 7 else 0 end) - pattern_start_dow) * (-1)
3841 )
3842
3843 (124.1ms) -- In some cases (when a block and a pattern are starting on different day of week or when a pattern is shorter than a block)
3844 -- a pattern should be repeated couple of times (in order to cover the entire block)
3845 update buffer_linkage_patterns_1913539992
3846 set iterations_count =
3847 ceiling(
3848 (
3849 block_length +
3850 case
3851 when (start_offset < 0) then abs(start_offset)
3852 else 0
3853 end
3854 ) * 1.0 / pattern_length
3855 )
3856
3857 (120.0ms) -- Generate an assignments sequence for every linkage pattern
3858 insert into buffer_schedules_linkage_patterns_1913539992 (
3859 call_type_id,
3860 staff_id,
3861 schedule_on,
3862 period_offset,
3863 day_of_week_mask,
3864 display_order,
3865 week_number,
3866 should_be_evaluated,
3867 should_be_populated,
3868 linkage_instance_id,
3869 block_id,
3870 calendar_schedule_id
3871 )
3872 select
3873 lps.assignment_id as call_type_id,
3874 null as staff_id,
3875 case
3876 when (lp.start_offset < 0)
3877 then date_add(lp.block_start_date, interval (lp.start_offset + ns.item_number * lp.pattern_length + lps.offset) day)
3878 else
3879 date_add(lp.block_start_date, interval ((lp.start_offset + ns.item_number * lp.pattern_length + lps.offset) mod lp.block_length) day)
3880 end as schedule_on,
3881 lp.period_offset,
3882 null as day_of_week_mask,
3883 null as display_order,
3884 null as week_number,
3885 0 as should_be_evaluated,
3886 0 as should_be_populated,
3887 lp.linkage_pattern_id as linkage_instance_id,
3888 lp.block_id,
3889 lp.calendar_schedule_id
3890 from
3891 numeric_sequence as ns
3892 inner join buffer_linkage_patterns_1913539992 as lp
3893 on ns.item_number <= (lp.iterations_count - 1)
3894 inner join linkage_pattern_slots as lps
3895 on lp.linkage_pattern_id = lps.linkage_pattern_id
3896 and lps.assignment_type = 'CallType'
3897 where
3898 case
3899 when (lp.start_offset < 0)
3900 then (lp.start_offset + ns.item_number * lp.pattern_length + lps.offset)
3901 else
3902 (ns.item_number * lp.pattern_length + lps.offset)
3903 end between 0 and (lp.block_length - 1)
3904 order by null
3905
3906 (122.2ms) -- Fill the columns that we left blank in the previous "INSERT"
3907 update
3908 buffer_schedules_linkage_patterns_1913539992 as slp
3909 inner join clients as cl
3910 on cl.id = 261
3911 inner join call_types as ct
3912 on slp.call_type_id = ct.id
3913 left join buffer_schedules_1913539992 as bs
3914 on slp.schedule_on = bs.schedule_on
3915 and slp.call_type_id = bs.call_type_id
3916 set
3917 slp.day_of_week_mask = (1 << (dayofweek(slp.schedule_on) - 1)),
3918 slp.display_order = ct.display_order,
3919 slp.week_number =
3920 yearweek(
3921 slp.schedule_on,
3922 case
3923 when (cl.start_of_week = 0) then 2
3924 else 7
3925 end
3926 ),
3927 slp.should_be_evaluated = coalesce(bs.should_be_evaluated, 0),
3928 slp.should_be_populated = coalesce(bs.should_be_populated, 0);
3929
3930 (124.3ms) -- Delete linkage patterns that don't have intersection with assignments we should auto-populate
3931 delete slp_1
3932 from
3933 buffer_schedules_linkage_patterns_1913539992 as slp_1
3934 inner join (
3935 select linkage_instance_id
3936 from buffer_schedules_linkage_patterns_1913539992
3937 group by linkage_instance_id
3938 having
3939 max(should_be_evaluated) = 0
3940 and max(should_be_populated) = 0
3941 order by null
3942 ) as slp_2
3943 on slp_1.linkage_instance_id = slp_2.linkage_instance_id
3944
3945 (118.2ms) -- Use a linkage pattern ID instead of linkage instance ID for those assignments that intersect with linkage patterns
3946 update
3947 buffer_schedules_linkage_patterns_1913539992 as slp
3948 inner join buffer_schedules_1913539992 as bs_1
3949 on slp.schedule_on = bs_1.schedule_on
3950 and slp.call_type_id = bs_1.call_type_id
3951 inner join buffer_schedules_1913539992 as bs_2
3952 on bs_1.linkage_instance_id = bs_2.linkage_instance_id
3953 set bs_2.linkage_instance_id = slp.linkage_instance_id
3954
3955 (122.8ms) -- Linkage pattern slots that don't have intersection with auto-populate assignments but are a part of a pattern that has such intersection
3956 -- should be copied over to the buffer schedules table (used during the auto-populate process)
3957 insert into buffer_schedules_1913539992 (
3958 call_type_id,
3959 staff_id,
3960 schedule_on,
3961 period_offset,
3962 day_of_week_mask,
3963 is_weekend,
3964 display_order,
3965 week_number,
3966 should_be_evaluated,
3967 should_be_populated,
3968 linkage_instance_id,
3969 block_id,
3970 calendar_schedule_id
3971 )
3972 select
3973 call_type_id,
3974 staff_id,
3975 schedule_on,
3976 period_offset,
3977 day_of_week_mask,
3978 case
3979 when (day_of_week_mask & 62 > 0) then 0
3980 else 1
3981 end as is_weekend,
3982 display_order,
3983 week_number,
3984 should_be_evaluated,
3985 should_be_populated,
3986 linkage_instance_id,
3987 block_id,
3988 calendar_schedule_id
3989 from buffer_schedules_linkage_patterns_1913539992
3990 where
3991 should_be_evaluated = 0
3992 and should_be_populated = 0
3993
3994INFO : (05-29 13:24:41) --> fill: 9 - Scheduler::AutoPopulate::Queries::Query015
3995 (158.9ms) insert into buffer_schedules_1913539992 (
3996 call_type_id,
3997 staff_id,
3998 schedule_on,
3999 day_of_week_mask,
4000 is_weekend,
4001 display_order,
4002 should_be_evaluated,
4003 should_be_populated,
4004 linkage_instance_id
4005 )
4006 select distinct
4007 schedules_call_overlap.call_type_id,
4008 schedules_call_overlap.staff_id,
4009 schedules_call_overlap.schedule_on,
4010 (1 << (dayofweek(schedules_call_overlap.schedule_on) - 1)) as day_of_week_mask,
4011 case
4012 when (dayofweek(schedules_call_overlap.schedule_on) between 2 and 6) then 0
4013 else 1
4014 end as is_weekend,
4015 call_types.display_order,
4016 0 as should_be_evaluated,
4017 0 as should_be_populated,
4018 -1 as linkage_instance_id
4019 from (
4020 select schedule_on
4021 from buffer_schedules_1913539992
4022 where should_be_evaluated = 1
4023 group by schedule_on
4024 order by null
4025 ) as buffer_schedules_1
4026 inner join schedules as schedules_call_overlap
4027 on schedules_call_overlap.client_id = 261
4028 and buffer_schedules_1.schedule_on = schedules_call_overlap.schedule_on
4029 left join buffer_schedules_1913539992 as buffer_schedules_2
4030 on schedules_call_overlap.schedule_on = buffer_schedules_2.schedule_on
4031 and schedules_call_overlap.call_type_id = buffer_schedules_2.call_type_id
4032 inner join call_types
4033 on schedules_call_overlap.call_type_id = call_types.id
4034 where buffer_schedules_2.id is null
4035 order by null
4036
4037INFO : (05-29 13:24:41) --> fill: 10 - Scheduler::AutoPopulate::Queries::Query02
4038INFO : (05-29 13:24:41) --> fill: 11 - Scheduler::AutoPopulate::Queries::Query03
4039INFO : (05-29 13:24:41) --> fill: 12 - Scheduler::AutoPopulate::Queries::Query04
4040INFO : (05-29 13:24:41) --> fill: 13 - Scheduler::AutoPopulate::Queries::Query045
4041INFO : (05-29 13:24:41) --> fill: 14 - Scheduler::AutoPopulate::Queries::QueryA
4042 (4133.3ms) insert into buffer_schedules_1913539992 (
4043 call_type_id,
4044 staff_id,
4045 schedule_on,
4046 day_of_week_mask,
4047 is_weekend,
4048 display_order,
4049 should_be_evaluated,
4050 should_be_populated,
4051 linkage_instance_id
4052 )
4053 select distinct straight_join
4054 schedules.call_type_id,
4055 schedules.staff_id,
4056 schedules.schedule_on,
4057 (1 << (dayofweek(schedules.schedule_on) - 1)) as day_of_week_mask,
4058 case
4059 when (dayofweek(schedules.schedule_on) between 2 and 6) then 0
4060 else 1
4061 end as is_weekend,
4062 call_types.display_order,
4063 0 as should_be_evaluated,
4064 0 as should_be_populated,
4065 -1 as linkage_instance_id
4066 from
4067 buffer_schedules_1913539992 as buffer_schedules_1
4068 inner join negative_links_influences use index (ix_unique_links)
4069 on buffer_schedules_1.day_of_week_mask = negative_links_influences.day_of_week_mask
4070 and buffer_schedules_1.call_type_id = negative_links_influences.source_id
4071 and negative_links_influences.source_type = 'CallType'
4072 and negative_links_influences.target_type = 'CallType'
4073 inner join schedules use index (ix_schedules_call_date)
4074 on date_add(
4075 buffer_schedules_1.schedule_on,
4076 interval negative_links_influences.offset day
4077 ) = schedules.schedule_on
4078 and negative_links_influences.target_id = schedules.call_type_id
4079 left join buffer_schedules_1913539992 as buffer_schedules_2 use index (ix_buffer_schedules_composite_1)
4080 on schedules.schedule_on = buffer_schedules_2.schedule_on
4081 and schedules.call_type_id = buffer_schedules_2.call_type_id
4082 inner join call_types
4083 on schedules.call_type_id = call_types.id
4084 where
4085 buffer_schedules_1.linkage_instance_id >= 0
4086 and buffer_schedules_1.should_be_evaluated = 1
4087 and buffer_schedules_2.id is null
4088 order by null
4089
4090INFO : (05-29 13:24:45) --> fill: 15 - Scheduler::AutoPopulate::Queries::QueryB
4091 (1943.9ms) insert into buffer_schedules_1913539992 (
4092 call_type_id,
4093 staff_id,
4094 schedule_on,
4095 day_of_week_mask,
4096 is_weekend,
4097 display_order,
4098 should_be_evaluated,
4099 should_be_populated,
4100 linkage_instance_id
4101 )
4102 select distinct straight_join
4103 (-1 * negative_links_influences.target_id) as call_type_id,
4104 vacations.staff_id,
4105 vacations.schedule_on,
4106 (1 << (dayofweek(vacations.schedule_on) - 1)) as day_of_week_mask,
4107 vacations.weekend_on as is_weekend,
4108 -1 as display_order,
4109 0 as should_be_evaluated,
4110 0 as should_be_populated,
4111 -1 as linkage_instance_id
4112 from
4113 buffer_schedules_1913539992 as buffer_schedules_1
4114 inner join negative_links_influences use index (ix_unique_links)
4115 on buffer_schedules_1.day_of_week_mask = negative_links_influences.day_of_week_mask
4116 and buffer_schedules_1.call_type_id = negative_links_influences.source_id
4117 and negative_links_influences.source_type = 'CallType'
4118 and negative_links_influences.target_id > 0
4119 and negative_links_influences.target_type in ('Vacation', 'NonClinicalType')
4120 inner join vacations use index (ix_vacations_on_schedule_and_client)
4121 on vacations.client_id = 261 /* client_id */
4122 and date_add(
4123 buffer_schedules_1.schedule_on,
4124 interval negative_links_influences.offset day
4125 ) = vacations.schedule_on
4126 and negative_links_influences.target_id = vacations.non_clinical_type_id
4127 and vacations.status in (3,0,4) /* based on the "non-working requests" settings */
4128 left join buffer_schedules_1913539992 as buffer_schedules_2 use index (ix_buffer_schedules_composite_1)
4129 on vacations.staff_id = buffer_schedules_2.staff_id
4130 and vacations.schedule_on = buffer_schedules_2.schedule_on
4131 and (-1 * negative_links_influences.target_id) = buffer_schedules_2.call_type_id
4132 where
4133 buffer_schedules_1.linkage_instance_id >= 0
4134 and buffer_schedules_1.should_be_evaluated = 1
4135 and buffer_schedules_2.id is null
4136 order by null
4137
4138INFO : (05-29 13:24:47) --> fill: 16 - Scheduler::AutoPopulate::Queries::Query05
4139 (136.0ms) insert into buffer_linkages_1913539992 (
4140 linkage_instance_id,
4141 slots_count_total,
4142 has_conflicts
4143 )
4144 select straight_join
4145 schedules.linkage_instance_id,
4146 count(1) as slots_count_total,
4147 if(linkage_conflicts.linkage_template_id is not null, 1, 0) as has_conflicts
4148 from
4149 buffer_schedules_1913539992 as schedules
4150 left join (
4151 select straight_join
4152 linkage_relations.linkage_template_id
4153 from linkage_relations
4154 inner join negative_links_influences use index (ix_unique_links)
4155 on linkage_relations.day_of_week_mask = negative_links_influences.day_of_week_mask
4156 and linkage_relations.call_type_id = negative_links_influences.source_id
4157 and negative_links_influences.source_type = 'CallType'
4158 and linkage_relations.linked_call_type_id = negative_links_influences.target_id
4159 and negative_links_influences.target_type = 'CallType'
4160 and linkage_relations.distance_in_days = negative_links_influences.offset
4161 where linkage_relations.client_id = 261 /* client_id */
4162 and (
4163 linkage_relations.call_type_id != linkage_relations.linked_call_type_id
4164 or linkage_relations.distance_in_days != 0
4165 )
4166 group by linkage_relations.linkage_template_id
4167 order by null
4168 ) as linkage_conflicts
4169 on (schedules.linkage_instance_id div 1000000) = linkage_conflicts.linkage_template_id
4170 where schedules.linkage_instance_id >= 0
4171 group by
4172 schedules.linkage_instance_id,
4173 has_conflicts
4174 order by null
4175
4176INFO : (05-29 13:24:47) --> fill: 17 - Scheduler::AutoPopulate::Queries::Query06
4177 (128.0ms) insert into buffer_target_assignments_1913539992 (
4178 call_type_id,
4179 target_group_id,
4180 assignment_id,
4181 assignment_type
4182 )
4183 select
4184 t1.call_type_id,
4185 ifnull(tg.id, 0) as target_group_id,
4186 if(tg.id is null, t1.call_type_id, tg.id) as assignment_id,
4187 if(tg.id is null, 'CallType', 'TargetGroup') as assignment_type
4188 from (
4189 select ct.id as call_type_id
4190 from
4191 buffer_schedules_1913539992 as sc
4192 inner join call_types as ct
4193 on sc.call_type_id = ct.id
4194 and ct.active = 1
4195 and ct.included_in_targets > 0
4196 where linkage_instance_id >= 0
4197 group by ct.id
4198 order by null
4199 ) as t1
4200 left join target_group_calls as tgc
4201 on t1.call_type_id = tgc.call_type_id
4202 left join target_groups as tg
4203 on tgc.target_group_id = tg.id
4204 and tg.active = 1
4205 order by null
4206
4207INFO : (05-29 13:24:47) --> fill: 18 - Scheduler::AutoPopulate::Queries::Query07
4208INFO : (05-29 13:24:47) --> fill: 19 - Scheduler::AutoPopulate::Queries::Query0702
4209INFO : (05-29 13:24:47) --> fill: 20 - Scheduler::AutoPopulate::Queries::Query0705
4210 (123.5ms) insert into buffer_linkage_call_type_assignments_1913539992 (
4211 linkage_instance_id,
4212 call_type_id,
4213 is_weekend,
4214 period_offset,
4215 calendar_schedule_id,
4216 max_assignments,
4217 assignments_count
4218 )
4219 select
4220 s.linkage_instance_id,
4221 s.call_type_id,
4222 s.is_weekend,
4223 s.period_offset,
4224 s.calendar_schedule_id,
4225 case
4226 when (s.is_weekend = 0) then ct.max_weekday_assignments
4227 else ct.max_weekend_assignments
4228 end as _max_assignments,
4229 sum(1) as assignments_count
4230 from buffer_schedules_1913539992 as s
4231 inner join call_types as ct
4232 on s.call_type_id = ct.id
4233 and ct.active = 1
4234 and (
4235 ct.max_weekday_assignments is not null
4236 or ct.max_weekend_assignments is not null
4237 )
4238 where s.linkage_instance_id >= 0
4239 and s.staff_id is null
4240 group by
4241 s.linkage_instance_id,
4242 s.call_type_id,
4243 s.is_weekend,
4244 s.period_offset,
4245 s.calendar_schedule_id,
4246 _max_assignments
4247 having _max_assignments >= 0
4248 order by null
4249
4250INFO : (05-29 13:24:48) --> fill: 21 - Scheduler::AutoPopulate::Queries::Query0706
4251 (121.1ms) insert into buffer_call_type_assignments_1913539992 (
4252 staff_id,
4253 call_type_id,
4254 is_weekend,
4255 period_offset,
4256 calendar_schedule_id,
4257 assignments_count
4258 )
4259 select
4260 sc.staff_id,
4261 sc.call_type_id,
4262 sc.weekend_on as is_weekend,
4263 p.period_offset,
4264 p.calendar_schedule_id,
4265 sum(1) as assignments_count
4266 from buffer_periods_1913539992 as p
4267 inner join call_types as ct
4268 on p.calendar_schedule_id = ct.calendar_schedule_id
4269 and ct.active = 1
4270 and (
4271 ct.max_weekday_assignments is not null
4272 or ct.max_weekend_assignments is not null
4273 )
4274 inner join schedules as sc
4275 on ct.id = sc.call_type_id
4276 and sc.schedule_on between p.start_date and p.end_date
4277 and sc.staff_id is not null
4278 where p.should_be_evaluated = 1
4279 group by
4280 sc.staff_id,
4281 sc.call_type_id,
4282 sc.weekend_on,
4283 p.period_offset,
4284 p.calendar_schedule_id
4285 order by null
4286
4287INFO : (05-29 13:24:48) --> fill: 22 - Scheduler::AutoPopulate::Queries::Query0707
4288INFO : (05-29 13:24:48) --> fill: 23 - Scheduler::AutoPopulate::Queries::Query0708
4289 (126.3ms) insert into buffer_linkage_assigned_days_1913539992 (
4290 linkage_instance_id,
4291 period_offset,
4292 week_number,
4293 schedule_on,
4294 is_weekend
4295 )
4296 select distinct
4297 sc.linkage_instance_id,
4298 sc.period_offset,
4299 sc.week_number,
4300 sc.schedule_on,
4301 sc.is_weekend
4302 from
4303 buffer_schedules_1913539992 as sc
4304 inner join call_types as ct
4305 on sc.call_type_id = ct.id
4306 and ct.unassigned_day = 0
4307 where
4308 sc.linkage_instance_id >= 0
4309 and sc.staff_id is null
4310 order by null
4311
4312INFO : (05-29 13:24:48) --> fill: 24 - Scheduler::AutoPopulate::Queries::Query0709
4313INFO : (05-29 13:24:48) --> fill: 25 - Scheduler::AutoPopulate::Queries::Query07_10_AL
4314 (127.7ms) /* AssignmentLimitsPerPeriod, AssignmentLimitsPerWeek, AssignmentLimitsRolling, AssignmentLimitsConsecutive */
4315 insert into buffer_assignment_limit_call_types_1913539992 (
4316 assignment_limit_id, call_type_id
4317 )
4318 select al.id as assignment_limit_id, ct.id as call_type_id
4319 from assignment_limits as al
4320 inner join assignment_limit_call_types as alct
4321 on al.id = alct.assignment_limit_id
4322 inner join call_types as ct
4323 on alct.call_type_id = ct.id
4324 and ct.active = 1
4325 where al.client_id = 261
4326 and al.active = 1
4327 union
4328 select al.id as assignment_limit_id, ct.id as call_type_id
4329 from assignment_limits as al
4330 inner join call_types as ct
4331 on al.client_id = ct.client_id
4332 and al.calendar_schedule_id = ct.calendar_schedule_id
4333 and ct.active = 1
4334 where al.client_id = 261
4335 and al.active = 1
4336 and al.all_current_schedule_assignments = 1
4337 union
4338 select al.id as assignment_limit_id, ct.id as call_type_id
4339 from assignment_limits as al
4340 inner join call_types as ct
4341 on al.client_id = ct.client_id
4342 and al.calendar_schedule_id != ct.calendar_schedule_id
4343 and ct.active = 1
4344 where al.client_id = 261
4345 and al.active = 1
4346 and al.all_other_schedule_assignments = 1
4347 order by null
4348
4349 (236.6ms) /* AssignmentLimitsPerPeriod, AssignmentLimitsPerWeek, AssignmentLimitsRolling, AssignmentLimitsConsecutive */
4350 insert into buffer_assignment_limit_staff_types_1913539992 (
4351 assignment_limit_id, staff_type_id
4352 )
4353 select al.id as assignment_limit_id, st.id as staff_type_id
4354 from assignment_limits as al
4355 inner join assignment_limit_staff_types as alst
4356 on al.id = alst.assignment_limit_id
4357 inner join staff_types as st
4358 on alst.staff_type_id = st.id
4359 and st.active = 1
4360 where al.client_id = 261
4361 and al.active = 1
4362 union
4363 select al.id as assignment_limit_id, st.id as staff_type_id
4364 from assignment_limits as al
4365 inner join staff_types as st
4366 on al.client_id = st.client_id
4367 and st.active = 1
4368 where al.client_id = 261
4369 and al.active = 1
4370 and al.all_staff_types = 1
4371 order by null
4372
4373INFO : (05-29 13:24:48) --> fill: 26 - Scheduler::AutoPopulate::Queries::Query07_10_AL_01
4374 (130.8ms) /* AssignmentLimitsPerPeriod */
4375 insert into buffer_assignment_limit_periods_1913539992 (
4376 assignment_limit_id, period_id, start_date, end_date
4377 )
4378 select
4379 al.id as assignment_limit_id,
4380 if(
4381 bs.blocks_type = 0,
4382 if(
4383 (month(b.start_date) - pt.begin_period) >= 0,
4384 year(b.start_date) * 100 + (month(b.start_date) - pt.begin_period) div pt.timeframe_type + 1,
4385 (year(b.start_date) - 1) * 100 + (month(b.start_date) + 12 - pt.begin_period) div pt.timeframe_type + 1
4386 ),
4387 b.display_order
4388 ) as period_id,
4389 min(b.start_date) as start_date,
4390 max(b.end_date) as end_date
4391 from assignment_limits as al
4392 inner join calendar_schedules as cs
4393 on al.calendar_schedule_id = cs.id
4394 inner join block_schedules as bs
4395 on cs.block_schedule_id = bs.id
4396 inner join blocks as b
4397 on bs.id = b.block_schedule_id
4398 and b.end_date >= date_add(now(), interval -24 month)
4399 inner join population_timeframes as pt
4400 on pt.client_id = 261
4401 and al.timeframe_type = pt.timeframe_type
4402 where al.client_id = 261
4403 and al.active = 1
4404 and al.max_per_period_limit is not null
4405 group by al.id, period_id
4406 order by null
4407
4408 (129.6ms) /* AssignmentLimitsPerPeriod */
4409 insert into buffer_linkage_assignments_count_periods_1913539992 (
4410 linkage_instance_id, assignment_limit_id, schedule_on, start_date, end_date, assignments_count
4411 )
4412 select sc.linkage_instance_id, alct.assignment_limit_id, sc.schedule_on, alp.start_date, alp.end_date,
4413 count(distinct sc.id) as assignments_count
4414 from buffer_schedules_1913539992 as sc
4415 inner join buffer_assignment_limit_call_types_1913539992 as alct
4416 on sc.call_type_id = alct.call_type_id
4417 inner join assignment_limits as al
4418 on alct.assignment_limit_id = al.id
4419 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
4420 and al.max_per_period_limit is not null
4421 inner join buffer_assignment_limit_periods_1913539992 as alp
4422 on alct.assignment_limit_id = alp.assignment_limit_id
4423 and sc.schedule_on between alp.start_date and alp.end_date
4424 where sc.linkage_instance_id >= 0
4425 and sc.staff_id is null
4426 group by sc.linkage_instance_id, alct.assignment_limit_id, sc.schedule_on, alp.start_date, alp.end_date
4427 order by null
4428
4429INFO : (05-29 13:24:48) --> fill: 27 - Scheduler::AutoPopulate::Queries::Query07_10_AL_02
4430 (126.6ms) /* AssignmentLimitsPerWeek */
4431 insert into buffer_linkage_assignments_count_weeks_1913539992 (
4432 linkage_instance_id, assignment_limit_id, schedule_on, start_date, end_date, assignments_count
4433 )
4434 select sc.linkage_instance_id, alct.assignment_limit_id, sc.schedule_on,
4435 if(
4436 cl.start_of_week = 0,
4437 date_add(sc.schedule_on, interval (1 - dayofweek(sc.schedule_on)) day),
4438 date_add(sc.schedule_on, interval (0 - weekday(sc.schedule_on)) day)
4439 ) as start_date,
4440 if(
4441 cl.start_of_week = 0,
4442 date_add(sc.schedule_on, interval (7 - dayofweek(sc.schedule_on)) day),
4443 date_add(sc.schedule_on, interval (6 - weekday(sc.schedule_on)) day)
4444 ) as end_date,
4445 count(distinct sc.id) as assignments_count
4446 from buffer_schedules_1913539992 as sc
4447 inner join buffer_assignment_limit_call_types_1913539992 as alct
4448 on sc.call_type_id = alct.call_type_id
4449 inner join assignment_limits as al
4450 on alct.assignment_limit_id = al.id
4451 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
4452 and al.max_weekly_limit is not null
4453 inner join clients as cl
4454 on cl.id = 261
4455 where sc.linkage_instance_id >= 0
4456 and sc.staff_id is null
4457 group by sc.linkage_instance_id, alct.assignment_limit_id, sc.schedule_on, start_date, end_date
4458 order by null
4459
4460INFO : (05-29 13:24:49) --> fill: 28 - Scheduler::AutoPopulate::Queries::Query07_10_AL_03
4461 (123.7ms) /* AssignmentLimitsRolling */
4462 insert into buffer_linkage_assignments_count_rolling_1913539992 (
4463 linkage_instance_id, assignment_limit_id, schedule_on, start_date, end_date, assignments_count
4464 )
4465 select sc.linkage_instance_id, alct.assignment_limit_id, sc.schedule_on,
4466 date_add(sc.schedule_on, interval (1 - ns.item_number) day) as start_date,
4467 date_add(sc.schedule_on, interval (al.max_rolling_period - ns.item_number) day) as end_date,
4468 count(distinct sc.id) as assignments_count
4469 from buffer_schedules_1913539992 as sc
4470 inner join buffer_assignment_limit_call_types_1913539992 as alct
4471 on sc.call_type_id = alct.call_type_id
4472 inner join assignment_limits as al
4473 on alct.assignment_limit_id = al.id
4474 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
4475 and al.max_rolling_period is not null
4476 and al.max_rolling_limit is not null
4477 inner join numeric_sequence as ns
4478 on ns.item_number between 1 and al.max_rolling_period
4479 where sc.linkage_instance_id >= 0
4480 and sc.staff_id is null
4481 group by sc.linkage_instance_id, alct.assignment_limit_id, sc.schedule_on, start_date, end_date
4482 order by null
4483
4484INFO : (05-29 13:24:49) --> fill: 29 - Scheduler::AutoPopulate::Queries::Query07_10_AL_04
4485 (116.2ms) /* AssignmentLimitsConsecutive */
4486 insert into buffer_linkage_assignments_count_consecutive_1913539992 (
4487 linkage_instance_id, assignment_limit_id, schedule_on, start_date, end_date
4488 )
4489 select sc.linkage_instance_id, alct.assignment_limit_id, sc.schedule_on,
4490 date_add(sc.schedule_on, interval (1 - ns.item_number) day) as start_date,
4491 date_add(sc.schedule_on, interval ((al.max_consecutive_limit + 1) - ns.item_number) day) as end_date
4492 from buffer_schedules_1913539992 as sc
4493 inner join buffer_assignment_limit_call_types_1913539992 as alct
4494 on sc.call_type_id = alct.call_type_id
4495 inner join assignment_limits as al
4496 on alct.assignment_limit_id = al.id
4497 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
4498 and al.max_consecutive_limit is not null
4499 inner join numeric_sequence as ns
4500 on ns.item_number between 1 and (al.max_consecutive_limit + 1)
4501 where sc.linkage_instance_id >= 0
4502 and sc.staff_id is null
4503 group by sc.linkage_instance_id, alct.assignment_limit_id, sc.schedule_on, start_date, end_date
4504 order by null
4505
4506INFO : (05-29 13:24:49) --> fill: 30 - Scheduler::AutoPopulate::Queries::Query08
4507 (132.4ms) insert into buffer_staff_daily_counts_1913539992 (
4508 staff_id, schedule_on, linkage_instance_id, slots_count
4509 )
4510 select staff_id, schedule_on, null as linkage_instance_id,
4511 count(1) as slots_count
4512 from buffer_schedules_1913539992
4513 where staff_id is not null
4514 and call_type_id > 0 /* VC */
4515 group by staff_id, schedule_on
4516 order by null
4517
4518 (126.5ms) insert into buffer_staff_daily_counts_1913539992 (
4519 staff_id, schedule_on, linkage_instance_id, slots_count
4520 )
4521 select staff_id, schedule_on, linkage_instance_id,
4522 count(1) as slots_count
4523 from buffer_schedules_1913539992
4524 where staff_id is not null
4525 and call_type_id > 0 /* VC */
4526 group by staff_id, schedule_on, linkage_instance_id
4527 order by null
4528
4529INFO : (05-29 13:24:49) --> fill: 31 - Scheduler::AutoPopulate::Queries::Query085
4530 (475.5ms) insert into buffer_staff_specializations_1913539992 (
4531 staff_id, specialization_id
4532 )
4533 select staff_id, specialization_id
4534 from view_staff_specializations
4535 where client_id = 261
4536 order by null
4537
4538 (144.1ms) insert into buffer_specialization_daily_counts_1913539992 (
4539 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
4540 )
4541 select sp.id as specialization_id,
4542 null as staff_id,
4543 bs_1.schedule_on,
4544 count(distinct st_sp.staff_id) as staffs_scheduled,
4545 sp.max_scheduled,
4546 if(bs_1.day_of_week_mask & sp.days_of_week_mask > 0 or sp.days_of_week_mask = 0, 1, 0) as should_be_evaluated
4547 from (
4548 select schedule_on, day_of_week_mask
4549 from buffer_schedules_1913539992
4550 where should_be_evaluated = 1
4551 group by schedule_on, day_of_week_mask
4552 order by null
4553 ) as bs_1
4554 inner join specializations as sp
4555 on sp.client_id = 261
4556 and sp.active = 1
4557 inner join buffer_schedules_1913539992 as bs_2
4558 on bs_1.schedule_on = bs_2.schedule_on
4559 and bs_2.call_type_id > 0 /* is not VC */
4560 inner join max_applicable_call_types as mact
4561 on sp.id = mact.specialization_id
4562 and bs_2.call_type_id = mact.call_type_id
4563 left join buffer_staff_specializations_1913539992 as st_sp
4564 on bs_2.staff_id = st_sp.staff_id
4565 and sp.id = st_sp.specialization_id
4566 group by sp.id, bs_1.schedule_on, sp.max_scheduled
4567 order by null
4568
4569 (121.2ms) insert into buffer_specialization_daily_counts_1913539992 (
4570 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
4571 )
4572 select sp.id as specialization_id,
4573 st_sp.staff_id,
4574 bs_1.schedule_on,
4575 1 as staffs_scheduled,
4576 sp.max_scheduled,
4577 if(bs_1.day_of_week_mask & sp.days_of_week_mask > 0 or sp.days_of_week_mask = 0, 1, 0) as should_be_evaluated
4578 from (
4579 select schedule_on, day_of_week_mask
4580 from buffer_schedules_1913539992
4581 where should_be_evaluated = 1
4582 group by schedule_on, day_of_week_mask
4583 order by null
4584 ) as bs_1
4585 inner join specializations as sp
4586 on sp.client_id = 261
4587 and sp.active = 1
4588 inner join buffer_schedules_1913539992 as bs_2
4589 on bs_1.schedule_on = bs_2.schedule_on
4590 and bs_2.call_type_id > 0 /* is not VC */
4591 inner join max_applicable_call_types as mact
4592 on sp.id = mact.specialization_id
4593 and bs_2.call_type_id = mact.call_type_id
4594 inner join buffer_staff_specializations_1913539992 as st_sp
4595 on bs_2.staff_id = st_sp.staff_id
4596 and sp.id = st_sp.specialization_id
4597 group by sp.id, st_sp.staff_id, bs_1.schedule_on, sp.max_scheduled
4598 order by null
4599
4600INFO : (05-29 13:24:50) --> fill: 32 - Scheduler::AutoPopulate::Queries::Query09
4601 (123.1ms) truncate table buffer_location_privileges_1913539992
4602
4603 (135.0ms) insert into buffer_location_privileges_1913539992 (
4604 staff_id,
4605 location_id,
4606 begin_date,
4607 end_date
4608 )
4609 select
4610 s.id as staff_id,
4611 l.location_id,
4612 '0000-00-00' as begin_date,
4613 '9999-12-31' as end_date
4614 from (
4615 select l.id as location_id
4616 from
4617 buffer_schedules_1913539992 as sc
4618 inner join call_types as ct
4619 on sc.call_type_id = ct.id
4620 and ct.active = 1
4621 inner join locations as l
4622 on ct.location_id = l.id
4623 and l.active = 1
4624 where sc.linkage_instance_id >= 0
4625 and sc.should_be_evaluated = 1
4626 group by l.id
4627 order by null
4628 ) as l
4629 inner join staffs as s
4630 on s.client_id = 261
4631 and s.active = 1
4632 and s.take_call = 1
4633 and s.auto_populatable = 1
4634 left join location_privileges as lp
4635 on s.id = lp.staff_id
4636 where lp.id is null
4637 union
4638 select
4639 lp.staff_id,
4640 lp.location_id,
4641 lp.begin_date,
4642 COALESCE(lp.end_date, '9999-12-31')
4643 from (
4644 select l.id as location_id
4645 from
4646 buffer_schedules_1913539992 as sc
4647 inner join call_types as ct
4648 on sc.call_type_id = ct.id
4649 and ct.active = 1
4650 inner join locations as l
4651 on ct.location_id = l.id
4652 and l.active = 1
4653 where sc.linkage_instance_id >= 0
4654 and sc.should_be_evaluated = 1
4655 group by l.id
4656 order by null
4657 ) as l
4658 inner join location_privileges as lp
4659 on l.location_id = lp.location_id
4660 order by null;
4661
4662 (6824.9ms) insert into buffer_static_availabilities_1913539992 (
4663 schedule_id,
4664 staff_id,
4665 staff_type_id,
4666 is_primary
4667 )
4668 select
4669 schedules.id as schedule_id,
4670 staffs.id as staff_id,
4671 assign_staff_types.staff_type_id,
4672 if(schedules.day_of_week_mask & staff_call_types.days_of_week_mask & ifnull(rotation_call_types.days_of_week_mask, 127) > 0, 1, 0) as is_primary
4673 from
4674 buffer_schedules_1913539992 as schedules
4675 /* AvailabilityRule */
4676 inner join call_types
4677 on schedules.call_type_id = call_types.id
4678 and call_types.active = 1
4679 and schedules.day_of_week_mask & call_types.days_of_week_mask > 0
4680 inner join staff_call_types
4681 on call_types.id = staff_call_types.call_type_id
4682 and schedules.day_of_week_mask & (staff_call_types.days_of_week_mask | staff_call_types.secondary_availability_days_of_week_mask) > 0
4683 inner join staffs
4684 on staff_call_types.staff_id = staffs.id
4685 and staffs.active = 1
4686 and staffs.take_call = 1
4687 and staffs.auto_populatable = 1
4688 inner join buffer_location_privileges_1913539992 as location_privileges
4689 on staffs.id = location_privileges.staff_id
4690 and call_types.location_id = location_privileges.location_id
4691 and schedules.schedule_on between location_privileges.begin_date and ifnull(location_privileges.end_date, '9999-12-31')
4692 inner join assign_staff_types
4693 on staffs.id = assign_staff_types.staff_id
4694 and schedules.schedule_on between assign_staff_types.begin_date and ifnull(assign_staff_types.end_date, '9999-12-31')
4695 left join eligible_staff_types
4696 on staff_call_types.call_type_id = eligible_staff_types.call_type_id
4697 and assign_staff_types.staff_type_id = eligible_staff_types.staff_type_id
4698 left join staff_rotations
4699 on staffs.id = staff_rotations.staff_id
4700 and schedules.schedule_on between staff_rotations.start_date and staff_rotations.end_date
4701 left join daily_rotations
4702 on staffs.id = daily_rotations.staff_id
4703 and schedules.schedule_on = daily_rotations.schedule_on
4704 left join rotations
4705 on rotations.id = ifnull(daily_rotations.rotation_id, staff_rotations.rotation_id)
4706 and rotations.active = 1
4707 left join rotation_call_types
4708 on rotations.id = rotation_call_types.rotation_id
4709 and staff_call_types.call_type_id = rotation_call_types.call_type_id
4710 and schedules.day_of_week_mask & (rotation_call_types.days_of_week_mask | rotation_call_types.secondary_availability_days_of_week_mask) > 0
4711 /* RequiredRotationsRule */
4712 left join required_rotations
4713 on staff_call_types.call_type_id = required_rotations.call_type_id
4714 left join staff_rotations as staff_rotations2
4715 on staffs.id = staff_rotations2.staff_id
4716 and required_rotations.rotation_id = staff_rotations2.rotation_id
4717 and schedules.schedule_on >= staff_rotations2.start_date
4718 /* NoCallRequestsHiddenHardRule */
4719 left join request_settings
4720 on assign_staff_types.staff_type_id = request_settings.staff_type_id
4721 left join requests
4722 on schedules.schedule_on = requests.schedule_on
4723 and staffs.id = requests.staff_id
4724 and requests.request_type = 0 /* type = no_call */
4725 and requests.status in (1, 3) /* status = approved or fulfilled */
4726 and call_types.is_no_call_requestable = 1
4727 left join request_call_types
4728 on requests.id = request_call_types.request_id
4729 and schedules.call_type_id = request_call_types.call_type_id
4730 where
4731 schedules.linkage_instance_id >= 0
4732 and schedules.should_be_evaluated = 1
4733 and (
4734 call_types.all_staff_types = 1
4735 or eligible_staff_types.id is not null
4736 )
4737 and (
4738 rotations.id is null
4739 or rotation_call_types.id is not null
4740 )
4741 and (
4742 requests.id is null
4743 or (
4744 requests.all_call_types = 1
4745 and request_settings.call_only_all_call_switch = 1 /* calls only */
4746 and call_types.assignment_type = 1 /* clinical */
4747 )
4748 or (
4749 requests.all_call_types = 0
4750 and request_call_types.id is null
4751 )
4752 )
4753 group by
4754 schedules.id,
4755 staffs.id,
4756 assign_staff_types.staff_type_id,
4757 is_primary
4758 having
4759 sum(if(required_rotations.id is not null and staff_rotations2.id is null, 1, 0)) = 0 /* RequiredRotationsRule */
4760 and is_primary IN (0,1) /* PrimaryAvailabilityRule */
4761 order by null
4762
4763INFO : (05-29 13:24:57) --> fill: 33 - Scheduler::AutoPopulate::Queries::Query092
4764 (156.4ms) /* RotationPostCallRule */
4765 /* Exclude people and slots when a post-call is not allowed on the first day of a rotation */
4766 delete sa
4767 from buffer_static_availabilities_1913539992 as sa
4768 inner join buffer_schedules_1913539992 as sc
4769 on sa.schedule_id = sc.id
4770 inner join call_types as ct
4771 on sc.call_type_id = ct.id
4772 and ct.assignment_type = 0 /* call */
4773 inner join staff_rotations as sr
4774 on sa.staff_id = sr.staff_id
4775 and date_add(sc.schedule_on, interval 1 day) = sr.start_date
4776 inner join rotations as r
4777 on sr.rotation_id = r.id
4778 and r.post_call_allowed = 0
4779
4780INFO : (05-29 13:24:57) --> fill: 34 - Scheduler::AutoPopulate::Queries::Query093
4781INFO : (05-29 13:24:57) --> fill: 35 - Scheduler::AutoPopulate::Queries::Query095
4782 (4070.9ms) insert into buffer_negative_relations_1913539992 (
4783 schedule_id,
4784 affected_by_schedule_id,
4785 staff_id
4786 )
4787 select
4788 b_schedules.id as schedule_id,
4789 b_schedules_negative_link.id as affected_by_schedule_id,
4790 b_schedules_negative_link.staff_id
4791 from
4792 buffer_schedules_1913539992 as b_schedules
4793 /* NegativeLinkRule */
4794 inner join negative_links_influences
4795 on b_schedules.day_of_week_mask = negative_links_influences.day_of_week_mask
4796 and b_schedules.call_type_id = negative_links_influences.source_id
4797 and negative_links_influences.source_type = 'CallType'
4798 and negative_links_influences.target_type = 'CallType'
4799 inner join buffer_schedules_1913539992 as b_schedules_negative_link
4800 on date_add(
4801 b_schedules.schedule_on,
4802 interval negative_links_influences.offset day
4803 ) = b_schedules_negative_link.schedule_on
4804 and negative_links_influences.target_id = b_schedules_negative_link.call_type_id
4805 and b_schedules.id != b_schedules_negative_link.id
4806 where
4807 b_schedules.linkage_instance_id >= 0
4808 and b_schedules.should_be_evaluated = 1
4809 order by null
4810
4811 (1422.8ms) insert into buffer_negative_relations_1913539992 (
4812 schedule_id,
4813 affected_by_schedule_id,
4814 staff_id
4815 )
4816 select
4817 b_schedules.id as schedule_id,
4818 b_schedules_negative_link.id as affected_by_schedule_id,
4819 b_schedules_negative_link.staff_id
4820 from
4821 buffer_schedules_1913539992 as b_schedules
4822 /* NegativeLinkRule */
4823 inner join negative_links_influences
4824 on b_schedules.day_of_week_mask = negative_links_influences.day_of_week_mask
4825 and b_schedules.call_type_id = negative_links_influences.source_id
4826 and negative_links_influences.source_type = 'CallType'
4827 and negative_links_influences.target_type in ('Vacation', 'NonClinicalType')
4828 inner join buffer_schedules_1913539992 as b_schedules_negative_link
4829 on date_add(
4830 b_schedules.schedule_on,
4831 interval negative_links_influences.offset day
4832 ) = b_schedules_negative_link.schedule_on
4833 and (-1 * negative_links_influences.target_id) = b_schedules_negative_link.call_type_id
4834 and b_schedules.id != b_schedules_negative_link.id
4835 where
4836 b_schedules.linkage_instance_id >= 0
4837 and b_schedules.should_be_evaluated = 1
4838 order by null
4839
4840 (167.3ms) delete from buffer_schedules_1913539992
4841 where call_type_id < 0 /* vacations and non-clinicals */
4842
4843INFO : (05-29 13:25:03) --> fill: 36 - Scheduler::AutoPopulate::Queries::Query097
4844 (750.0ms) insert into buffer_staff_assigned_days_1913539992 (
4845 staff_id, period_offset, week_number, schedule_on, is_weekend, is_assigned
4846 )
4847 select staffs.staff_id,
4848 if(days.within_period = 1, days.period_offset, null) as period_offset,
4849 yearweek(days.schedule_on, if(clients.start_of_week = 0, 2, 7)) as week_number,
4850 days.schedule_on,
4851 if(dayofweek(days.schedule_on) in (7, 1), 1, 0) as is_weekend,
4852 if(schedules.staff_id is not null or vacations.staff_id is not null, 1, 0) as is_assigned
4853 from (
4854 select distinct staff_id
4855 from buffer_static_availabilities_1913539992
4856 order by null
4857 ) as staffs
4858 inner join (
4859 select p.period_offset,
4860 date_add(date_add(p.start_date, interval -6 day), interval (digits_1.digit * 100 + digits_2.digit * 10 + digits_3.digit) day) as schedule_on,
4861 if((digits_1.digit * 100 + digits_2.digit * 10 + digits_3.digit) - 6 between 0 and datediff(p.end_date, p.start_date), 1, 0) as within_period
4862 from buffer_periods_1913539992 as p
4863 inner join (
4864 select 0 as digit union select 1 union select 2 union select 3 union select 4
4865 union select 5 union select 6 union select 7 union select 8 union select 9
4866 ) as digits_1
4867 inner join (
4868 select 0 as digit union select 1 union select 2 union select 3 union select 4
4869 union select 5 union select 6 union select 7 union select 8 union select 9
4870 ) as digits_2
4871 inner join (
4872 select 0 as digit union select 1 union select 2 union select 3 union select 4
4873 union select 5 union select 6 union select 7 union select 8 union select 9
4874 ) as digits_3
4875 where p.calendar_schedule_id = 1167
4876 and p.should_be_evaluated = 1
4877 and (digits_1.digit * 100 + digits_2.digit * 10 + digits_3.digit) <= datediff(p.end_date, p.start_date) + 12
4878 order by null
4879 ) as days
4880 inner join (
4881 select min(start_date) as start_date, max(end_date) as end_date
4882 from buffer_periods_1913539992
4883 where calendar_schedule_id = 1167
4884 and should_be_evaluated = 1
4885 order by null
4886 ) as limits
4887 inner join clients
4888 on clients.id = 261
4889 left join (
4890 select sc.staff_id, sc.schedule_on
4891 from buffer_periods_1913539992 as p
4892 inner join schedules as sc
4893 on sc.client_id = 261
4894 and sc.schedule_on between date_add(p.start_date, interval -6 day) and date_add(p.end_date, interval 6 day)
4895 inner join call_types as ct
4896 on sc.call_type_id = ct.id
4897 and ct.unassigned_day = 0
4898 where p.calendar_schedule_id = 1167
4899 and p.should_be_evaluated = 1
4900 group by sc.staff_id, sc.schedule_on
4901 order by null
4902 ) as schedules
4903 on staffs.staff_id = schedules.staff_id
4904 and days.schedule_on = schedules.schedule_on
4905 left join (
4906 select v.staff_id, v.schedule_on
4907 from buffer_periods_1913539992 as p
4908 inner join vacations as v
4909 on v.client_id = 261
4910 and v.schedule_on between date_add(p.start_date, interval -6 day) and date_add(p.end_date, interval 6 day)
4911 and v.status IN (3,0,4)
4912 inner join non_clinical_types as nct
4913 on v.non_clinical_type_id = nct.id
4914 and nct.active = 1
4915 and nct.unassigned_day = 0
4916 where p.calendar_schedule_id = 1167
4917 and p.should_be_evaluated = 1
4918 group by v.staff_id, v.schedule_on
4919 order by null
4920 ) as vacations
4921 on staffs.staff_id = vacations.staff_id
4922 and days.schedule_on = vacations.schedule_on
4923 where days.within_period = 1
4924 or yearweek(days.schedule_on, if(clients.start_of_week = 0, 2, 7)) in (
4925 yearweek(limits.start_date, if(clients.start_of_week = 0, 2, 7)),
4926 yearweek(limits.end_date, if(clients.start_of_week = 0, 2, 7))
4927 )
4928 order by null
4929
4930INFO : (05-29 13:25:03) --> fill: 37 - Scheduler::AutoPopulate::Queries::Query098
4931 (153.5ms) insert into buffer_combined_availabilities_1913539992 (
4932 schedule_id, staff_id, staff_type_id, is_primary, linkage_instance_id, has_violations
4933 )
4934 select sc.id as schedule_id, sa.staff_id, sa.staff_type_id, sa.is_primary,
4935 sc.linkage_instance_id, 0 as has_violations
4936 from buffer_schedules_1913539992 as sc
4937 /* Static availability */
4938 inner join buffer_static_availabilities_1913539992 as sa
4939 on sc.id = sa.schedule_id
4940 inner join buffer_linkages_1913539992 as l
4941 on sc.linkage_instance_id = l.linkage_instance_id
4942 where sc.should_be_evaluated = 1
4943 and l.has_conflicts = 0
4944
4945 (125.8ms) insert into buffer_schedule_linkages_1913539992 (
4946 staff_id, linkage_instance_id, slots_count
4947 )
4948 select staff_id, linkage_instance_id, count(1) as slots_count
4949 from buffer_schedules_1913539992 use index (ix_buffer_schedules_composite_2)
4950 where staff_id is not null
4951 and linkage_instance_id >= 0
4952 group by staff_id, linkage_instance_id
4953 order by null
4954
4955INFO : (05-29 13:25:04) --> fill: 38 - Scheduler::AutoPopulate::Queries::Query09_09_AL_01
4956 (3045.6ms) /* AssignmentLimitsPerPeriod */
4957 insert into buffer_staff_assignments_count_periods_1913539992 (
4958 assignment_limit_id, staff_id, start_date, end_date, assignments_count
4959 )
4960 select straight_join lac.assignment_limit_id, ca.staff_id, lac.start_date, lac.end_date,
4961 count(distinct sc.id) as assignments_count
4962 from (
4963 select linkage_instance_id, assignment_limit_id, start_date, end_date
4964 from buffer_linkage_assignments_count_periods_1913539992
4965 group by linkage_instance_id, assignment_limit_id, start_date, end_date
4966 order by null
4967 ) as lac
4968 inner join (
4969 select linkage_instance_id, staff_id
4970 from buffer_combined_availabilities_1913539992
4971 group by linkage_instance_id, staff_id
4972 order by null
4973 ) as ca
4974 on lac.linkage_instance_id = ca.linkage_instance_id
4975 inner join assignment_limits as al
4976 on lac.assignment_limit_id = al.id
4977 inner join schedules as sc
4978 on ca.staff_id = sc.staff_id
4979 and sc.schedule_on between lac.start_date and lac.end_date
4980 and ((1 << (dayofweek(sc.schedule_on) - 1)) & al.considered_days_of_week_mask) > 0
4981 inner join buffer_assignment_limit_call_types_1913539992 as alct
4982 on lac.assignment_limit_id = alct.assignment_limit_id
4983 and sc.call_type_id = alct.call_type_id
4984 inner join assign_staff_types as ast
4985 on sc.staff_id = ast.staff_id
4986 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
4987 inner join buffer_assignment_limit_staff_types_1913539992 as alst
4988 on lac.assignment_limit_id = alst.assignment_limit_id
4989 and ast.staff_type_id = alst.staff_type_id
4990 group by lac.assignment_limit_id, ca.staff_id, lac.start_date, lac.end_date
4991 order by null
4992
4993INFO : (05-29 13:25:07) --> fill: 39 - Scheduler::AutoPopulate::Queries::Query09_09_AL_02
4994 (125.2ms) /* AssignmentLimitsPerWeek */
4995 insert into buffer_staff_assignments_count_weeks_1913539992 (
4996 assignment_limit_id, staff_id, start_date, end_date, assignments_count
4997 )
4998 select straight_join lac.assignment_limit_id, ca.staff_id, lac.start_date, lac.end_date,
4999 count(distinct sc.id) as assignments_count
5000 from (
5001 select linkage_instance_id, assignment_limit_id, start_date, end_date
5002 from buffer_linkage_assignments_count_weeks_1913539992
5003 group by linkage_instance_id, assignment_limit_id, start_date, end_date
5004 order by null
5005 ) as lac
5006 inner join (
5007 select linkage_instance_id, staff_id
5008 from buffer_combined_availabilities_1913539992
5009 group by linkage_instance_id, staff_id
5010 order by null
5011 ) as ca
5012 on lac.linkage_instance_id = ca.linkage_instance_id
5013 inner join assignment_limits as al
5014 on lac.assignment_limit_id = al.id
5015 inner join schedules as sc
5016 on ca.staff_id = sc.staff_id
5017 and sc.schedule_on between lac.start_date and lac.end_date
5018 and ((1 << (dayofweek(sc.schedule_on) - 1)) & al.considered_days_of_week_mask) > 0
5019 inner join buffer_assignment_limit_call_types_1913539992 as alct
5020 on lac.assignment_limit_id = alct.assignment_limit_id
5021 and sc.call_type_id = alct.call_type_id
5022 inner join assign_staff_types as ast
5023 on sc.staff_id = ast.staff_id
5024 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
5025 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5026 on lac.assignment_limit_id = alst.assignment_limit_id
5027 and ast.staff_type_id = alst.staff_type_id
5028 group by lac.assignment_limit_id, ca.staff_id, lac.start_date, lac.end_date
5029 order by null
5030
5031INFO : (05-29 13:25:07) --> fill: 40 - Scheduler::AutoPopulate::Queries::Query09_09_AL_03
5032 (123.6ms) /* AssignmentLimitsRolling */
5033 insert into buffer_staff_assignments_count_rolling_1913539992 (
5034 assignment_limit_id, staff_id, start_date, end_date, assignments_count
5035 )
5036 select straight_join lac.assignment_limit_id, ca.staff_id, lac.start_date, lac.end_date,
5037 count(distinct sc.id) as assignments_count
5038 from (
5039 select linkage_instance_id, assignment_limit_id, start_date, end_date
5040 from buffer_linkage_assignments_count_rolling_1913539992
5041 group by linkage_instance_id, assignment_limit_id, start_date, end_date
5042 order by null
5043 ) as lac
5044 inner join (
5045 select linkage_instance_id, staff_id
5046 from buffer_combined_availabilities_1913539992
5047 group by linkage_instance_id, staff_id
5048 order by null
5049 ) as ca
5050 on lac.linkage_instance_id = ca.linkage_instance_id
5051 inner join assignment_limits as al
5052 on lac.assignment_limit_id = al.id
5053 inner join schedules as sc
5054 on ca.staff_id = sc.staff_id
5055 and sc.schedule_on between lac.start_date and lac.end_date
5056 and ((1 << (dayofweek(sc.schedule_on) - 1)) & al.considered_days_of_week_mask) > 0
5057 inner join buffer_assignment_limit_call_types_1913539992 as alct
5058 on lac.assignment_limit_id = alct.assignment_limit_id
5059 and sc.call_type_id = alct.call_type_id
5060 inner join assign_staff_types as ast
5061 on sc.staff_id = ast.staff_id
5062 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
5063 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5064 on lac.assignment_limit_id = alst.assignment_limit_id
5065 and ast.staff_type_id = alst.staff_type_id
5066 group by lac.assignment_limit_id, ca.staff_id, lac.start_date, lac.end_date
5067 order by null
5068
5069INFO : (05-29 13:25:07) --> fill: 41 - Scheduler::AutoPopulate::Queries::Query09_09_AL_04
5070 (122.7ms) /* AssignmentLimitsConsecutive */
5071 insert into buffer_staff_assignments_count_consecutive_1913539992 (
5072 assignment_limit_id, staff_id, schedule_on, start_date, end_date
5073 )
5074 select straight_join lac.assignment_limit_id, ca.staff_id, sc.schedule_on, lac.start_date, lac.end_date
5075 from (
5076 select linkage_instance_id, assignment_limit_id, start_date, end_date
5077 from buffer_linkage_assignments_count_consecutive_1913539992
5078 group by linkage_instance_id, assignment_limit_id, start_date, end_date
5079 order by null
5080 ) as lac
5081 inner join (
5082 select linkage_instance_id, staff_id
5083 from buffer_combined_availabilities_1913539992
5084 group by linkage_instance_id, staff_id
5085 order by null
5086 ) as ca
5087 on lac.linkage_instance_id = ca.linkage_instance_id
5088 inner join assignment_limits as al
5089 on lac.assignment_limit_id = al.id
5090 inner join schedules as sc
5091 on ca.staff_id = sc.staff_id
5092 and sc.schedule_on between lac.start_date and lac.end_date
5093 and ((1 << (dayofweek(sc.schedule_on) - 1)) & al.considered_days_of_week_mask) > 0
5094 inner join buffer_assignment_limit_call_types_1913539992 as alct
5095 on lac.assignment_limit_id = alct.assignment_limit_id
5096 and sc.call_type_id = alct.call_type_id
5097 inner join assign_staff_types as ast
5098 on sc.staff_id = ast.staff_id
5099 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
5100 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5101 on lac.assignment_limit_id = alst.assignment_limit_id
5102 and ast.staff_type_id = alst.staff_type_id
5103 group by lac.assignment_limit_id, ca.staff_id, sc.schedule_on, lac.start_date, lac.end_date
5104 order by null
5105
5106INFO : (05-29 13:25:07) --> fill: 42 - Scheduler::AutoPopulate::Queries::Query09_12_Points
5107INFO : (05-29 13:25:07) --> fill: 43 - Scheduler::AutoPopulate::Queries::Query09_12_Hours
5108INFO : (05-29 13:25:07) --> fill: 44 - Scheduler::AutoPopulate::Queries::Query10
5109 RuleSet Load (116.3ms) SELECT `rule_sets`.* FROM `rule_sets` WHERE `rule_sets`.`id` = 1232 LIMIT 1
5110 Client Load (122.1ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
5111 (123.3ms) select
5112 coalesce(max(
5113 case
5114 when (ct.max_weekday_assignments > 0) then 1
5115 else 0
5116 end
5117 ), 0) as weekday_flag,
5118 coalesce(max(
5119 case
5120 when (ct.max_weekend_assignments > 0) then 1
5121 else 0
5122 end
5123 ), 0) as weekend_flag
5124 from
5125 buffer_auto_populate_slots_1913539992 as aps
5126 inner join call_types as ct
5127 on aps.call_type_id = ct.id
5128
5129 RuleSet Load (125.3ms) SELECT `rule_sets`.* FROM `rule_sets` WHERE `rule_sets`.`id` = 1232 LIMIT 1
5130 Client Load (116.8ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
5131 RuleSet Load (127.9ms) SELECT `rule_sets`.* FROM `rule_sets` WHERE `rule_sets`.`id` = 1232 LIMIT 1
5132 Client Load (124.3ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
5133 (122.8ms) delete ca
5134 from buffer_combined_availabilities_1913539992 as ca
5135 inner join (
5136 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
5137 sum(lac.assignments_count) as assignments_count
5138 from (
5139 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5140 from buffer_combined_availabilities_1913539992 as ca
5141 inner join buffer_schedules_1913539992 as sc
5142 on ca.schedule_id = sc.id
5143 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5144 order by null
5145 ) as ca_sc
5146 inner join buffer_linkage_assignments_count_weeks_1913539992 as lac
5147 on ca_sc.linkage_instance_id = lac.linkage_instance_id
5148 and ca_sc.schedule_on = lac.schedule_on
5149 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5150 on lac.assignment_limit_id = alst.assignment_limit_id
5151 and ca_sc.staff_type_id = alst.staff_type_id
5152 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
5153 order by null
5154 ) as lac
5155 on ca.linkage_instance_id = lac.linkage_instance_id
5156 and ca.staff_id = lac.staff_id
5157 inner join assignment_limits as al
5158 on lac.assignment_limit_id = al.id
5159 left join buffer_staff_assignments_count_weeks_1913539992 as sac
5160 on lac.assignment_limit_id = sac.assignment_limit_id
5161 and lac.staff_id = sac.staff_id
5162 and lac.start_date = sac.start_date
5163 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_weekly_limit
5164
5165 (122.3ms) delete ca
5166 from buffer_combined_availabilities_1913539992 as ca
5167 inner join (
5168 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
5169 count(distinct if(sac.id is null, lac.schedule_on, null)) as assignments_count
5170 from (
5171 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5172 from buffer_combined_availabilities_1913539992 as ca
5173 inner join buffer_schedules_1913539992 as sc
5174 on ca.schedule_id = sc.id
5175 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5176 order by null
5177 ) as ca_sc
5178 inner join buffer_linkage_assignments_count_consecutive_1913539992 as lac
5179 on ca_sc.linkage_instance_id = lac.linkage_instance_id
5180 and ca_sc.schedule_on = lac.schedule_on
5181 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5182 on lac.assignment_limit_id = alst.assignment_limit_id
5183 and ca_sc.staff_type_id = alst.staff_type_id
5184 left join buffer_staff_assignments_count_consecutive_1913539992 as sac
5185 on lac.assignment_limit_id = sac.assignment_limit_id
5186 and ca_sc.staff_id = sac.staff_id
5187 and lac.schedule_on = sac.schedule_on
5188 and lac.start_date = sac.start_date
5189 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
5190 order by null
5191 ) as lac
5192 on ca.linkage_instance_id = lac.linkage_instance_id
5193 and ca.staff_id = lac.staff_id
5194 inner join assignment_limits as al
5195 on lac.assignment_limit_id = al.id
5196 left join (
5197 select assignment_limit_id, staff_id, start_date,
5198 count(schedule_on) as assignments_count
5199 from buffer_staff_assignments_count_consecutive_1913539992
5200 group by assignment_limit_id, staff_id, start_date
5201 ) as sac
5202 on lac.assignment_limit_id = sac.assignment_limit_id
5203 and lac.staff_id = sac.staff_id
5204 and lac.start_date = sac.start_date
5205 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_consecutive_limit
5206
5207 (175.1ms) delete ca
5208 from buffer_combined_availabilities_1913539992 as ca
5209 inner join (
5210 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
5211 sum(lac.assignments_count) as assignments_count
5212 from (
5213 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5214 from buffer_combined_availabilities_1913539992 as ca
5215 inner join buffer_schedules_1913539992 as sc
5216 on ca.schedule_id = sc.id
5217 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5218 order by null
5219 ) as ca_sc
5220 inner join buffer_linkage_assignments_count_periods_1913539992 as lac
5221 on ca_sc.linkage_instance_id = lac.linkage_instance_id
5222 and ca_sc.schedule_on = lac.schedule_on
5223 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5224 on lac.assignment_limit_id = alst.assignment_limit_id
5225 and ca_sc.staff_type_id = alst.staff_type_id
5226 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
5227 order by null
5228 ) as lac
5229 on ca.linkage_instance_id = lac.linkage_instance_id
5230 and ca.staff_id = lac.staff_id
5231 inner join assignment_limits as al
5232 on lac.assignment_limit_id = al.id
5233 left join buffer_staff_assignments_count_periods_1913539992 as sac
5234 on lac.assignment_limit_id = sac.assignment_limit_id
5235 and lac.staff_id = sac.staff_id
5236 and lac.start_date = sac.start_date
5237 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_per_period_limit
5238
5239 (124.7ms) delete ca
5240 from buffer_combined_availabilities_1913539992 as ca
5241 inner join (
5242 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
5243 sum(lac.assignments_count) as assignments_count
5244 from (
5245 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5246 from buffer_combined_availabilities_1913539992 as ca
5247 inner join buffer_schedules_1913539992 as sc
5248 on ca.schedule_id = sc.id
5249 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5250 order by null
5251 ) as ca_sc
5252 inner join buffer_linkage_assignments_count_rolling_1913539992 as lac
5253 on ca_sc.linkage_instance_id = lac.linkage_instance_id
5254 and ca_sc.schedule_on = lac.schedule_on
5255 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5256 on lac.assignment_limit_id = alst.assignment_limit_id
5257 and ca_sc.staff_type_id = alst.staff_type_id
5258 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
5259 order by null
5260 ) as lac
5261 on ca.linkage_instance_id = lac.linkage_instance_id
5262 and ca.staff_id = lac.staff_id
5263 inner join assignment_limits as al
5264 on lac.assignment_limit_id = al.id
5265 left join buffer_staff_assignments_count_rolling_1913539992 as sac
5266 on lac.assignment_limit_id = sac.assignment_limit_id
5267 and lac.staff_id = sac.staff_id
5268 and lac.start_date = sac.start_date
5269 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_rolling_limit
5270
5271 (267.9ms) /* NegativeLinkRule */
5272 delete ca
5273 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
5274 inner join buffer_negative_relations_1913539992 as nr use index (ix_buffer_negative_relations_composite_1)
5275 on ca.schedule_id = nr.schedule_id
5276 and ca.staff_id = nr.staff_id
5277
5278 (119.3ms) /* SpecializationOverlapRule */
5279 delete ca
5280 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
5281 inner join buffer_schedules_1913539992 as sc
5282 on ca.schedule_id = sc.id
5283 inner join buffer_staff_specializations_1913539992 as ssp
5284 on ca.staff_id = ssp.staff_id
5285 inner join max_applicable_call_types as mact
5286 on ssp.specialization_id = mact.specialization_id
5287 and sc.call_type_id = mact.call_type_id
5288 inner join buffer_specialization_daily_counts_1913539992 as sdc use index (ix_buffer_specialization_daily_counts_composite_1)
5289 on ssp.specialization_id = sdc.specialization_id
5290 and sc.schedule_on = sdc.schedule_on
5291 and sdc.staff_id is null
5292 left join buffer_specialization_daily_counts_1913539992 as sdc_2 use index (ix_buffer_specialization_daily_counts_composite_1)
5293 on ssp.specialization_id = sdc_2.specialization_id
5294 and sc.schedule_on = sdc_2.schedule_on
5295 and ca.staff_id = sdc_2.staff_id
5296 where sdc.should_be_evaluated = 1
5297 and (sdc.staffs_scheduled + if(sdc_2.id is null, 1, 0)) > sdc.max_scheduled
5298
5299 (124.3ms) /* BrokenLinkageRule */
5300 truncate table buffer_combined_availability_linkages_1913539992
5301
5302 (133.7ms) insert into buffer_combined_availability_linkages_1913539992 (
5303 staff_id,
5304 linkage_instance_id,
5305 slots_count,
5306 is_primary,
5307 has_violations
5308 )
5309 select
5310 staff_id,
5311 linkage_instance_id,
5312 count(1) as slots_count,
5313 min(is_primary) as is_primary,
5314 max(has_violations) as has_violations
5315 from buffer_combined_availabilities_1913539992 use index (ix_buffer_combined_availabilities_composite_2)
5316 group by
5317 staff_id,
5318 linkage_instance_id
5319 order by null
5320
5321 (308.0ms) delete ca
5322 from
5323 buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
5324 inner join buffer_schedules_1913539992 as sc
5325 on ca.schedule_id = sc.id
5326 inner join buffer_linkages_1913539992 as l
5327 on sc.linkage_instance_id = l.linkage_instance_id
5328 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
5329 on ca.staff_id = ls_1.staff_id
5330 and sc.linkage_instance_id = ls_1.linkage_instance_id
5331 left join buffer_schedule_linkages_1913539992 as ls_2 use index (ix_buffer_schedule_linkages_composite_1)
5332 on ca.staff_id = ls_2.staff_id
5333 and sc.linkage_instance_id = ls_2.linkage_instance_id
5334 where (ls_1.slots_count + coalesce(ls_2.slots_count, 0)) < l.slots_count_total /* not covering the whole chain */;
5335
5336INFO : (05-29 13:25:10) --> fill: 45 - Scheduler::AutoPopulate::Queries::QueryScore02
5337 (1447.0ms) insert into buffer_min_distances_1913539992 (
5338 schedule_id, staff_id, rule_name, min_distance_in_days
5339 )
5340 select b_schedules.id as schedule_id, availabilities.staff_id, 'CallDaysRule' as rule_name,
5341 min(abs(datediff(b_schedules.schedule_on, schedules.schedule_on))) as min_distance_in_days
5342 from buffer_schedules_1913539992 as b_schedules
5343 inner join buffer_combined_availabilities_1913539992 as availabilities
5344 on b_schedules.id = availabilities.schedule_id
5345 inner join schedules
5346 on availabilities.staff_id = schedules.staff_id
5347 and b_schedules.day_of_week_mask = (1 << (dayofweek(schedules.schedule_on) - 1))
5348 left join buffer_schedules_1913539992 as b_schedules_2
5349 on schedules.schedule_on = b_schedules_2.schedule_on
5350 and schedules.call_type_id = b_schedules_2.call_type_id
5351 and b_schedules.linkage_instance_id = b_schedules_2.linkage_instance_id
5352 where b_schedules_2.id is null
5353 group by b_schedules.id, availabilities.staff_id, rule_name
5354 order by null
5355
5356INFO : (05-29 13:25:11) --> fill: 46 - Scheduler::AutoPopulate::Queries::QueryScore03
5357 (134.2ms) insert into buffer_rule_calc_schedules_1913539992 (
5358 call_type_id, staff_id, schedule_on, day_of_week_mask
5359 )
5360 select schedules.call_type_id, schedules.staff_id,
5361 schedules.schedule_on, (1 << (dayofweek(schedules.schedule_on) - 1)) as day_of_week_mask
5362 from buffer_min_distances_1913539992 as min_distances
5363 inner join buffer_schedules_1913539992 as b_schedules
5364 on min_distances.schedule_id = b_schedules.id
5365 inner join schedules
5366 on min_distances.staff_id = schedules.staff_id
5367 and date_add(b_schedules.schedule_on, interval min_distances.min_distance_in_days day) = schedules.schedule_on
5368 where min_distances.rule_name in ('CallDaysRule')
5369 group by schedules.call_type_id, schedules.staff_id,
5370 schedules.schedule_on, (1 << (dayofweek(schedules.schedule_on) - 1))
5371 order by null
5372
5373 (137.4ms) insert into buffer_rule_calc_schedules_1913539992 (
5374 call_type_id, staff_id, schedule_on, day_of_week_mask
5375 )
5376 select schedules.call_type_id, schedules.staff_id,
5377 schedules.schedule_on, (1 << (dayofweek(schedules.schedule_on) - 1)) as day_of_week_mask
5378 from buffer_min_distances_1913539992 as min_distances
5379 inner join buffer_schedules_1913539992 as b_schedules
5380 on min_distances.schedule_id = b_schedules.id
5381 inner join schedules
5382 on min_distances.staff_id = schedules.staff_id
5383 and date_add(b_schedules.schedule_on, interval -min_distances.min_distance_in_days day) = schedules.schedule_on
5384 where min_distances.rule_name in ('CallDaysRule')
5385 group by schedules.call_type_id, schedules.staff_id,
5386 schedules.schedule_on, (1 << (dayofweek(schedules.schedule_on) - 1))
5387 order by null
5388
5389INFO : (05-29 13:25:11) --> fill: 47 - Scheduler::AutoPopulate::Queries::QueryScore04
5390INFO : (05-29 13:25:11) --> fill: 48 - Scheduler::AutoPopulate::Queries::Query11
5391 (117.5ms) update buffer_schedules_1913539992 as sc
5392 left join buffer_combined_availabilities_1913539992 as ca
5393 on sc.id = ca.schedule_id
5394 set sc.should_be_evaluated = 0,
5395 sc.should_be_populated = 0
5396 where sc.should_be_evaluated = 1
5397 and ca.id is null
5398
5399INFO : (05-29 13:25:11) --> fill: 49 - Scheduler::AutoPopulate::Queries::DropTables
5400INFO : (05-29 13:25:11) Setting up lists...
5401 (246.9ms) select b_schedules.schedule_on, b_schedules.call_type_id, b_schedules.linkage_instance_id, schedules.id as schedule_id
5402 from buffer_schedules_1913539992 as b_schedules
5403 left join schedules
5404 on schedules.client_id = 261
5405 and schedules.call_type_id = b_schedules.call_type_id
5406 and schedules.schedule_on = b_schedules.schedule_on
5407 where b_schedules.linkage_instance_id != -1
5408 order by b_schedules.linkage_instance_id, b_schedules.schedule_on
5409
5410INFO : (05-29 13:25:12) Begin to populate. Pre-set: 0. Unscheduled: 84.
5411INFO : (05-29 13:25:12) plan unit: [id:1201835] [2018-09-07 - BW Day (6)], [2018-09-07 - BUC], [2018-09-08 - BW3 PM], [2018-09-09 - BW1 PM], [2018-09-10 - PCBW]
5412INFO : (05-29 13:25:12) plan unit: [id:1201836] [2018-09-14 - BW Day (6)], [2018-09-14 - BUC], [2018-09-15 - BW3 PM], [2018-09-16 - BW1 PM], [2018-09-17 - PCBW]
5413INFO : (05-29 13:25:12) plan unit: [id:1201837] [2018-09-21 - BW Day (6)], [2018-09-21 - BUC], [2018-09-22 - BW3 PM], [2018-09-23 - BW1 PM], [2018-09-24 - PCBW]
5414INFO : (05-29 13:25:12) plan unit: [id:1201838] [2018-09-28 - BW Day (6)], [2018-09-28 - BUC], [2018-09-29 - BW3 PM], [2018-09-30 - BW1 PM], [2018-10-01 - PCBW]
5415INFO : (05-29 13:25:12) plan unit: [id:1201839] [2018-10-05 - BUC], [2018-10-05 - BW Day (6)], [2018-10-06 - BW3 PM], [2018-10-07 - BW1 PM], [2018-10-08 - PCBW]
5416INFO : (05-29 13:25:12) plan unit: [id:1201840] [2018-10-12 - BUC], [2018-10-12 - BW Day (6)], [2018-10-13 - BW3 PM], [2018-10-14 - BW1 PM], [2018-10-15 - PCBW]
5417INFO : (05-29 13:25:12) plan unit: [id:1201841] [2018-10-19 - BW Day (6)], [2018-10-19 - BUC], [2018-10-20 - BW3 PM], [2018-10-21 - BW1 PM], [2018-10-22 - PCBW]
5418INFO : (05-29 13:25:12) plan unit: [id:1201842] [2018-10-26 - BW Day (6)], [2018-10-26 - BUC], [2018-10-27 - BW3 PM], [2018-10-28 - BW1 PM], [2018-10-29 - PCBW]
5419INFO : (05-29 13:25:12) plan unit: [id:1201843] [2018-11-02 - BW Day (6)], [2018-11-02 - BUC], [2018-11-03 - BW3 PM], [2018-11-04 - BW1 PM], [2018-11-05 - PCBW]
5420INFO : (05-29 13:25:12) plan unit: [id:1201844] [2018-11-09 - BW Day (6)], [2018-11-09 - BUC], [2018-11-10 - BW3 PM], [2018-11-11 - BW1 PM], [2018-11-12 - PCBW]
5421INFO : (05-29 13:25:12) plan unit: [id:1201845] [2018-11-16 - BUC], [2018-11-16 - BW Day (6)], [2018-11-17 - BW3 PM], [2018-11-18 - BW1 PM], [2018-11-19 - PCBW]
5422INFO : (05-29 13:25:12) plan unit: [id:1201846] [2018-11-23 - BUC], [2018-11-23 - BW Day (6)], [2018-11-24 - BW3 PM], [2018-11-25 - BW1 PM], [2018-11-26 - PCBW]
5423INFO : (05-29 13:25:12) plan unit: [id:2201835] [2018-09-07 - BW Day (4)], [2018-09-07 - BW4], [2018-09-08 - BW3 AM], [2018-09-09 - BW4 AM], [2018-09-09 - BUC]
5424INFO : (05-29 13:25:12) plan unit: [id:2201836] [2018-09-14 - BW Day (4)], [2018-09-14 - BW4], [2018-09-15 - BW3 AM], [2018-09-16 - BW4 AM], [2018-09-16 - BUC]
5425INFO : (05-29 13:25:12) plan unit: [id:2201837] [2018-09-21 - BW Day (4)], [2018-09-21 - BW4], [2018-09-22 - BW3 AM], [2018-09-23 - BW4 AM], [2018-09-23 - BUC]
5426INFO : (05-29 13:25:12) plan unit: [id:2201838] [2018-09-28 - BW Day (4)], [2018-09-28 - BW4], [2018-09-29 - BW3 AM], [2018-09-30 - BUC], [2018-09-30 - BW4 AM]
5427INFO : (05-29 13:25:12) plan unit: [id:2201839] [2018-10-05 - BW Day (4)], [2018-10-05 - BW4], [2018-10-06 - BW3 AM], [2018-10-07 - BUC], [2018-10-07 - BW4 AM]
5428INFO : (05-29 13:25:12) plan unit: [id:2201840] [2018-10-12 - BW4], [2018-10-12 - BW Day (4)], [2018-10-13 - BW3 AM], [2018-10-14 - BW4 AM], [2018-10-14 - BUC]
5429INFO : (05-29 13:25:12) plan unit: [id:2201841] [2018-10-19 - BW4], [2018-10-19 - BW Day (4)], [2018-10-20 - BW3 AM], [2018-10-21 - BW4 AM], [2018-10-21 - BUC]
5430INFO : (05-29 13:25:12) plan unit: [id:2201842] [2018-10-26 - BW Day (4)], [2018-10-26 - BW4], [2018-10-27 - BW3 AM], [2018-10-28 - BW4 AM], [2018-10-28 - BUC]
5431INFO : (05-29 13:25:12) plan unit: [id:2201843] [2018-11-02 - BW Day (4)], [2018-11-02 - BW4], [2018-11-03 - BW3 AM], [2018-11-04 - BW4 AM], [2018-11-04 - BUC]
5432INFO : (05-29 13:25:12) plan unit: [id:2201844] [2018-11-09 - BW Day (4)], [2018-11-09 - BW4], [2018-11-10 - BW3 AM], [2018-11-11 - BW4 AM], [2018-11-11 - BUC]
5433INFO : (05-29 13:25:12) plan unit: [id:2201845] [2018-11-16 - BW Day (4)], [2018-11-16 - BW4], [2018-11-17 - BW3 AM], [2018-11-18 - BUC], [2018-11-18 - BW4 AM]
5434INFO : (05-29 13:25:12) plan unit: [id:2201846] [2018-11-23 - BW4], [2018-11-23 - BW Day (4)], [2018-11-24 - BW3 AM], [2018-11-25 - BUC], [2018-11-25 - BW4 AM]
5435INFO : (05-29 13:25:12) plan unit: [id:13201835] [2018-09-06 - BWPeri], [2018-09-07 - BWPeri], [2018-09-08 - BWPeri], [2018-09-09 - BWPeri]
5436INFO : (05-29 13:25:12) plan unit: [id:13201836] [2018-09-13 - BWPeri], [2018-09-14 - BWPeri], [2018-09-15 - BWPeri], [2018-09-16 - BWPeri]
5437INFO : (05-29 13:25:12) plan unit: [id:13201837] [2018-09-20 - BWPeri], [2018-09-21 - BWPeri], [2018-09-22 - BWPeri], [2018-09-23 - BWPeri]
5438INFO : (05-29 13:25:12) plan unit: [id:13201838] [2018-09-27 - BWPeri], [2018-09-28 - BWPeri], [2018-09-29 - BWPeri], [2018-09-30 - BWPeri]
5439INFO : (05-29 13:25:12) plan unit: [id:13201839] [2018-10-04 - BWPeri], [2018-10-05 - BWPeri], [2018-10-06 - BWPeri], [2018-10-07 - BWPeri]
5440INFO : (05-29 13:25:12) plan unit: [id:13201840] [2018-10-11 - BWPeri], [2018-10-12 - BWPeri], [2018-10-13 - BWPeri], [2018-10-14 - BWPeri]
5441INFO : (05-29 13:25:12) plan unit: [id:13201841] [2018-10-18 - BWPeri], [2018-10-19 - BWPeri], [2018-10-20 - BWPeri], [2018-10-21 - BWPeri]
5442INFO : (05-29 13:25:12) plan unit: [id:13201842] [2018-10-25 - BWPeri], [2018-10-26 - BWPeri], [2018-10-27 - BWPeri], [2018-10-28 - BWPeri]
5443INFO : (05-29 13:25:12) plan unit: [id:13201843] [2018-11-01 - BWPeri], [2018-11-02 - BWPeri], [2018-11-03 - BWPeri], [2018-11-04 - BWPeri]
5444INFO : (05-29 13:25:12) plan unit: [id:13201844] [2018-11-08 - BWPeri], [2018-11-09 - BWPeri], [2018-11-10 - BWPeri], [2018-11-11 - BWPeri]
5445INFO : (05-29 13:25:12) plan unit: [id:13201845] [2018-11-15 - BWPeri], [2018-11-16 - BWPeri], [2018-11-17 - BWPeri], [2018-11-18 - BWPeri]
5446INFO : (05-29 13:25:12) plan unit: [id:13201846] [2018-11-22 - BWPeri], [2018-11-23 - BWPeri], [2018-11-24 - BWPeri], [2018-11-25 - BWPeri]
5447INFO : (05-29 13:25:12) plan unit: [id:14201835] [2018-09-07 - CHDay], [2018-09-07 - CHCall], [2018-09-08 - CHCall2], [2018-09-09 - CHCall], [2018-09-10 - CHDay 4]
5448INFO : (05-29 13:25:12) plan unit: [id:14201836] [2018-09-14 - CHDay], [2018-09-14 - CHCall], [2018-09-15 - CHCall2], [2018-09-16 - CHCall], [2018-09-17 - CHDay 4]
5449INFO : (05-29 13:25:12) plan unit: [id:14201837] [2018-09-21 - CHCall], [2018-09-21 - CHDay], [2018-09-22 - CHCall2], [2018-09-23 - CHCall], [2018-09-24 - CHDay 4]
5450INFO : (05-29 13:25:12) plan unit: [id:14201838] [2018-09-28 - CHCall], [2018-09-28 - CHDay], [2018-09-29 - CHCall2], [2018-09-30 - CHCall], [2018-10-01 - CHDay 4]
5451INFO : (05-29 13:25:12) plan unit: [id:14201839] [2018-10-05 - CHDay], [2018-10-05 - CHCall], [2018-10-06 - CHCall2], [2018-10-07 - CHCall], [2018-10-08 - CHDay 4]
5452INFO : (05-29 13:25:12) plan unit: [id:14201840] [2018-10-12 - CHDay], [2018-10-12 - CHCall], [2018-10-13 - CHCall2], [2018-10-14 - CHCall], [2018-10-15 - CHDay 4]
5453INFO : (05-29 13:25:12) plan unit: [id:14201841] [2018-10-19 - CHCall], [2018-10-19 - CHDay], [2018-10-20 - CHCall2], [2018-10-21 - CHCall], [2018-10-22 - CHDay 4]
5454INFO : (05-29 13:25:12) plan unit: [id:14201842] [2018-10-26 - CHDay], [2018-10-26 - CHCall], [2018-10-27 - CHCall2], [2018-10-28 - CHCall], [2018-10-29 - CHDay 4]
5455INFO : (05-29 13:25:12) plan unit: [id:14201843] [2018-11-02 - CHDay], [2018-11-02 - CHCall], [2018-11-03 - CHCall2], [2018-11-04 - CHCall], [2018-11-05 - CHDay 4]
5456INFO : (05-29 13:25:12) plan unit: [id:14201844] [2018-11-09 - CHDay], [2018-11-09 - CHCall], [2018-11-10 - CHCall2], [2018-11-11 - CHCall], [2018-11-12 - CHDay 4]
5457INFO : (05-29 13:25:12) plan unit: [id:14201845] [2018-11-16 - CHCall], [2018-11-16 - CHDay], [2018-11-17 - CHCall2], [2018-11-18 - CHCall], [2018-11-19 - CHDay 4]
5458INFO : (05-29 13:25:12) plan unit: [id:14201846] [2018-11-23 - CHDay], [2018-11-23 - CHCall], [2018-11-24 - CHCall2], [2018-11-25 - CHCall], [2018-11-26 - CHDay 4]
5459INFO : (05-29 13:25:12) plan unit: [id:15201835] [2018-09-07 - CHCall2], [2018-09-07 - CHDay 2], [2018-09-08 - CHCall], [2018-09-09 - CHCall2]
5460INFO : (05-29 13:25:12) plan unit: [id:15201836] [2018-09-14 - CHDay 2], [2018-09-14 - CHCall2], [2018-09-15 - CHCall], [2018-09-16 - CHCall2]
5461INFO : (05-29 13:25:12) plan unit: [id:15201837] [2018-09-21 - CHDay 2], [2018-09-21 - CHCall2], [2018-09-22 - CHCall], [2018-09-23 - CHCall2]
5462INFO : (05-29 13:25:12) plan unit: [id:15201838] [2018-09-28 - CHCall2], [2018-09-28 - CHDay 2], [2018-09-29 - CHCall], [2018-09-30 - CHCall2]
5463INFO : (05-29 13:25:12) plan unit: [id:15201839] [2018-10-05 - CHCall2], [2018-10-05 - CHDay 2], [2018-10-06 - CHCall], [2018-10-07 - CHCall2]
5464INFO : (05-29 13:25:12) plan unit: [id:15201840] [2018-10-12 - CHDay 2], [2018-10-12 - CHCall2], [2018-10-13 - CHCall], [2018-10-14 - CHCall2]
5465INFO : (05-29 13:25:12) plan unit: [id:15201841] [2018-10-19 - CHCall2], [2018-10-19 - CHDay 2], [2018-10-20 - CHCall], [2018-10-21 - CHCall2]
5466INFO : (05-29 13:25:12) plan unit: [id:15201842] [2018-10-26 - CHCall2], [2018-10-26 - CHDay 2], [2018-10-27 - CHCall], [2018-10-28 - CHCall2]
5467INFO : (05-29 13:25:12) plan unit: [id:15201843] [2018-11-02 - CHDay 2], [2018-11-02 - CHCall2], [2018-11-03 - CHCall], [2018-11-04 - CHCall2]
5468INFO : (05-29 13:25:12) plan unit: [id:15201844] [2018-11-09 - CHDay 2], [2018-11-09 - CHCall2], [2018-11-10 - CHCall], [2018-11-11 - CHCall2]
5469INFO : (05-29 13:25:12) plan unit: [id:15201845] [2018-11-16 - CHCall2], [2018-11-16 - CHDay 2], [2018-11-17 - CHCall], [2018-11-18 - CHCall2]
5470INFO : (05-29 13:25:12) plan unit: [id:15201846] [2018-11-23 - CHCall2], [2018-11-23 - CHDay 2], [2018-11-24 - CHCall], [2018-11-25 - CHCall2]
5471INFO : (05-29 13:25:12) plan unit: [id:18201835] [2018-09-07 - BL2], [2018-09-08 - BL1], [2018-09-09 - BL2]
5472INFO : (05-29 13:25:12) plan unit: [id:18201836] [2018-09-14 - BL2], [2018-09-15 - BL1], [2018-09-16 - BL2]
5473INFO : (05-29 13:25:12) plan unit: [id:18201837] [2018-09-21 - BL2], [2018-09-22 - BL1], [2018-09-23 - BL2]
5474INFO : (05-29 13:25:12) plan unit: [id:18201838] [2018-09-28 - BL2], [2018-09-29 - BL1], [2018-09-30 - BL2]
5475INFO : (05-29 13:25:12) plan unit: [id:18201839] [2018-10-05 - BL2], [2018-10-06 - BL1], [2018-10-07 - BL2]
5476INFO : (05-29 13:25:12) plan unit: [id:18201840] [2018-10-12 - BL2], [2018-10-13 - BL1], [2018-10-14 - BL2]
5477INFO : (05-29 13:25:12) plan unit: [id:18201841] [2018-10-19 - BL2], [2018-10-20 - BL1], [2018-10-21 - BL2]
5478INFO : (05-29 13:25:12) plan unit: [id:18201842] [2018-10-26 - BL2], [2018-10-27 - BL1], [2018-10-28 - BL2]
5479INFO : (05-29 13:25:12) plan unit: [id:18201843] [2018-11-02 - BL2], [2018-11-03 - BL1], [2018-11-04 - BL2]
5480INFO : (05-29 13:25:12) plan unit: [id:18201844] [2018-11-09 - BL2], [2018-11-10 - BL1], [2018-11-11 - BL2]
5481INFO : (05-29 13:25:12) plan unit: [id:18201845] [2018-11-16 - BL2], [2018-11-17 - BL1], [2018-11-18 - BL2]
5482INFO : (05-29 13:25:12) plan unit: [id:18201846] [2018-11-23 - BL2], [2018-11-24 - BL1], [2018-11-25 - BL2]
5483INFO : (05-29 13:25:12) plan unit: [id:19201835] [2018-09-06 - BLPeri1/Cath Call], [2018-09-07 - BLPeri1/Cath Call], [2018-09-08 - BLPeri1/Cath Call], [2018-09-09 - BLPeri1/Cath Call]
5484INFO : (05-29 13:25:12) plan unit: [id:19201836] [2018-09-13 - BLPeri1/Cath Call], [2018-09-14 - BLPeri1/Cath Call], [2018-09-15 - BLPeri1/Cath Call], [2018-09-16 - BLPeri1/Cath Call]
5485INFO : (05-29 13:25:12) plan unit: [id:19201837] [2018-09-20 - BLPeri1/Cath Call], [2018-09-21 - BLPeri1/Cath Call], [2018-09-22 - BLPeri1/Cath Call], [2018-09-23 - BLPeri1/Cath Call]
5486INFO : (05-29 13:25:12) plan unit: [id:19201838] [2018-09-27 - BLPeri1/Cath Call], [2018-09-28 - BLPeri1/Cath Call], [2018-09-29 - BLPeri1/Cath Call], [2018-09-30 - BLPeri1/Cath Call]
5487INFO : (05-29 13:25:12) plan unit: [id:19201839] [2018-10-04 - BLPeri1/Cath Call], [2018-10-05 - BLPeri1/Cath Call], [2018-10-06 - BLPeri1/Cath Call], [2018-10-07 - BLPeri1/Cath Call]
5488INFO : (05-29 13:25:12) plan unit: [id:19201840] [2018-10-11 - BLPeri1/Cath Call], [2018-10-12 - BLPeri1/Cath Call], [2018-10-13 - BLPeri1/Cath Call], [2018-10-14 - BLPeri1/Cath Call]
5489INFO : (05-29 13:25:12) plan unit: [id:19201841] [2018-10-18 - BLPeri1/Cath Call], [2018-10-19 - BLPeri1/Cath Call], [2018-10-20 - BLPeri1/Cath Call], [2018-10-21 - BLPeri1/Cath Call]
5490INFO : (05-29 13:25:12) plan unit: [id:19201842] [2018-10-25 - BLPeri1/Cath Call], [2018-10-26 - BLPeri1/Cath Call], [2018-10-27 - BLPeri1/Cath Call], [2018-10-28 - BLPeri1/Cath Call]
5491INFO : (05-29 13:25:12) plan unit: [id:19201843] [2018-11-01 - BLPeri1/Cath Call], [2018-11-02 - BLPeri1/Cath Call], [2018-11-03 - BLPeri1/Cath Call], [2018-11-04 - BLPeri1/Cath Call]
5492INFO : (05-29 13:25:12) plan unit: [id:19201844] [2018-11-08 - BLPeri1/Cath Call], [2018-11-09 - BLPeri1/Cath Call], [2018-11-10 - BLPeri1/Cath Call], [2018-11-11 - BLPeri1/Cath Call]
5493INFO : (05-29 13:25:12) plan unit: [id:19201845] [2018-11-15 - BLPeri1/Cath Call], [2018-11-16 - BLPeri1/Cath Call], [2018-11-17 - BLPeri1/Cath Call], [2018-11-18 - BLPeri1/Cath Call]
5494INFO : (05-29 13:25:12) plan unit: [id:19201846] [2018-11-22 - BLPeri1/Cath Call], [2018-11-23 - BLPeri1/Cath Call], [2018-11-24 - BLPeri1/Cath Call], [2018-11-25 - BLPeri1/Cath Call]
5495 (115.9ms) select
5496 coalesce(max(
5497 case
5498 when (ct.max_weekday_assignments > 0) then 1
5499 else 0
5500 end
5501 ), 0) as weekday_flag,
5502 coalesce(max(
5503 case
5504 when (ct.max_weekend_assignments > 0) then 1
5505 else 0
5506 end
5507 ), 0) as weekend_flag
5508 from
5509 buffer_auto_populate_slots_1913539992 as aps
5510 inner join call_types as ct
5511 on aps.call_type_id = ct.id
5512
5513 (121.6ms) delete ca
5514 from buffer_combined_availabilities_1913539992 as ca
5515 inner join (
5516 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
5517 sum(lac.assignments_count) as assignments_count
5518 from (
5519 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5520 from buffer_combined_availabilities_1913539992 as ca
5521 inner join buffer_schedules_1913539992 as sc
5522 on ca.schedule_id = sc.id
5523 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5524 order by null
5525 ) as ca_sc
5526 inner join buffer_linkage_assignments_count_weeks_1913539992 as lac
5527 on ca_sc.linkage_instance_id = lac.linkage_instance_id
5528 and ca_sc.schedule_on = lac.schedule_on
5529 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5530 on lac.assignment_limit_id = alst.assignment_limit_id
5531 and ca_sc.staff_type_id = alst.staff_type_id
5532 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
5533 order by null
5534 ) as lac
5535 on ca.linkage_instance_id = lac.linkage_instance_id
5536 and ca.staff_id = lac.staff_id
5537 inner join assignment_limits as al
5538 on lac.assignment_limit_id = al.id
5539 left join buffer_staff_assignments_count_weeks_1913539992 as sac
5540 on lac.assignment_limit_id = sac.assignment_limit_id
5541 and lac.staff_id = sac.staff_id
5542 and lac.start_date = sac.start_date
5543 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_weekly_limit
5544
5545 (123.2ms) delete ca
5546 from buffer_combined_availabilities_1913539992 as ca
5547 inner join (
5548 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
5549 count(distinct if(sac.id is null, lac.schedule_on, null)) as assignments_count
5550 from (
5551 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5552 from buffer_combined_availabilities_1913539992 as ca
5553 inner join buffer_schedules_1913539992 as sc
5554 on ca.schedule_id = sc.id
5555 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5556 order by null
5557 ) as ca_sc
5558 inner join buffer_linkage_assignments_count_consecutive_1913539992 as lac
5559 on ca_sc.linkage_instance_id = lac.linkage_instance_id
5560 and ca_sc.schedule_on = lac.schedule_on
5561 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5562 on lac.assignment_limit_id = alst.assignment_limit_id
5563 and ca_sc.staff_type_id = alst.staff_type_id
5564 left join buffer_staff_assignments_count_consecutive_1913539992 as sac
5565 on lac.assignment_limit_id = sac.assignment_limit_id
5566 and ca_sc.staff_id = sac.staff_id
5567 and lac.schedule_on = sac.schedule_on
5568 and lac.start_date = sac.start_date
5569 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
5570 order by null
5571 ) as lac
5572 on ca.linkage_instance_id = lac.linkage_instance_id
5573 and ca.staff_id = lac.staff_id
5574 inner join assignment_limits as al
5575 on lac.assignment_limit_id = al.id
5576 left join (
5577 select assignment_limit_id, staff_id, start_date,
5578 count(schedule_on) as assignments_count
5579 from buffer_staff_assignments_count_consecutive_1913539992
5580 group by assignment_limit_id, staff_id, start_date
5581 ) as sac
5582 on lac.assignment_limit_id = sac.assignment_limit_id
5583 and lac.staff_id = sac.staff_id
5584 and lac.start_date = sac.start_date
5585 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_consecutive_limit
5586
5587 (119.9ms) delete ca
5588 from buffer_combined_availabilities_1913539992 as ca
5589 inner join (
5590 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
5591 sum(lac.assignments_count) as assignments_count
5592 from (
5593 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5594 from buffer_combined_availabilities_1913539992 as ca
5595 inner join buffer_schedules_1913539992 as sc
5596 on ca.schedule_id = sc.id
5597 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5598 order by null
5599 ) as ca_sc
5600 inner join buffer_linkage_assignments_count_periods_1913539992 as lac
5601 on ca_sc.linkage_instance_id = lac.linkage_instance_id
5602 and ca_sc.schedule_on = lac.schedule_on
5603 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5604 on lac.assignment_limit_id = alst.assignment_limit_id
5605 and ca_sc.staff_type_id = alst.staff_type_id
5606 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
5607 order by null
5608 ) as lac
5609 on ca.linkage_instance_id = lac.linkage_instance_id
5610 and ca.staff_id = lac.staff_id
5611 inner join assignment_limits as al
5612 on lac.assignment_limit_id = al.id
5613 left join buffer_staff_assignments_count_periods_1913539992 as sac
5614 on lac.assignment_limit_id = sac.assignment_limit_id
5615 and lac.staff_id = sac.staff_id
5616 and lac.start_date = sac.start_date
5617 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_per_period_limit
5618
5619 (121.4ms) delete ca
5620 from buffer_combined_availabilities_1913539992 as ca
5621 inner join (
5622 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
5623 sum(lac.assignments_count) as assignments_count
5624 from (
5625 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5626 from buffer_combined_availabilities_1913539992 as ca
5627 inner join buffer_schedules_1913539992 as sc
5628 on ca.schedule_id = sc.id
5629 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
5630 order by null
5631 ) as ca_sc
5632 inner join buffer_linkage_assignments_count_rolling_1913539992 as lac
5633 on ca_sc.linkage_instance_id = lac.linkage_instance_id
5634 and ca_sc.schedule_on = lac.schedule_on
5635 inner join buffer_assignment_limit_staff_types_1913539992 as alst
5636 on lac.assignment_limit_id = alst.assignment_limit_id
5637 and ca_sc.staff_type_id = alst.staff_type_id
5638 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
5639 order by null
5640 ) as lac
5641 on ca.linkage_instance_id = lac.linkage_instance_id
5642 and ca.staff_id = lac.staff_id
5643 inner join assignment_limits as al
5644 on lac.assignment_limit_id = al.id
5645 left join buffer_staff_assignments_count_rolling_1913539992 as sac
5646 on lac.assignment_limit_id = sac.assignment_limit_id
5647 and lac.staff_id = sac.staff_id
5648 and lac.start_date = sac.start_date
5649 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_rolling_limit
5650
5651 (125.9ms) /* NegativeLinkRule */
5652 delete ca
5653 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
5654 inner join buffer_negative_relations_1913539992 as nr use index (ix_buffer_negative_relations_composite_1)
5655 on ca.schedule_id = nr.schedule_id
5656 and ca.staff_id = nr.staff_id
5657
5658 (123.5ms) /* SpecializationOverlapRule */
5659 delete ca
5660 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
5661 inner join buffer_schedules_1913539992 as sc
5662 on ca.schedule_id = sc.id
5663 inner join buffer_staff_specializations_1913539992 as ssp
5664 on ca.staff_id = ssp.staff_id
5665 inner join max_applicable_call_types as mact
5666 on ssp.specialization_id = mact.specialization_id
5667 and sc.call_type_id = mact.call_type_id
5668 inner join buffer_specialization_daily_counts_1913539992 as sdc use index (ix_buffer_specialization_daily_counts_composite_1)
5669 on ssp.specialization_id = sdc.specialization_id
5670 and sc.schedule_on = sdc.schedule_on
5671 and sdc.staff_id is null
5672 left join buffer_specialization_daily_counts_1913539992 as sdc_2 use index (ix_buffer_specialization_daily_counts_composite_1)
5673 on ssp.specialization_id = sdc_2.specialization_id
5674 and sc.schedule_on = sdc_2.schedule_on
5675 and ca.staff_id = sdc_2.staff_id
5676 where sdc.should_be_evaluated = 1
5677 and (sdc.staffs_scheduled + if(sdc_2.id is null, 1, 0)) > sdc.max_scheduled
5678
5679 (123.2ms) /* BrokenLinkageRule */
5680 truncate table buffer_combined_availability_linkages_1913539992
5681
5682 (125.1ms) insert into buffer_combined_availability_linkages_1913539992 (
5683 staff_id,
5684 linkage_instance_id,
5685 slots_count,
5686 is_primary,
5687 has_violations
5688 )
5689 select
5690 staff_id,
5691 linkage_instance_id,
5692 count(1) as slots_count,
5693 min(is_primary) as is_primary,
5694 max(has_violations) as has_violations
5695 from buffer_combined_availabilities_1913539992 use index (ix_buffer_combined_availabilities_composite_2)
5696 group by
5697 staff_id,
5698 linkage_instance_id
5699 order by null
5700
5701 (133.2ms) delete ca
5702 from
5703 buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
5704 inner join buffer_schedules_1913539992 as sc
5705 on ca.schedule_id = sc.id
5706 inner join buffer_linkages_1913539992 as l
5707 on sc.linkage_instance_id = l.linkage_instance_id
5708 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
5709 on ca.staff_id = ls_1.staff_id
5710 and sc.linkage_instance_id = ls_1.linkage_instance_id
5711 left join buffer_schedule_linkages_1913539992 as ls_2 use index (ix_buffer_schedule_linkages_composite_1)
5712 on ca.staff_id = ls_2.staff_id
5713 and sc.linkage_instance_id = ls_2.linkage_instance_id
5714 where (ls_1.slots_count + coalesce(ls_2.slots_count, 0)) < l.slots_count_total /* not covering the whole chain */;
5715
5716 (234.9ms) select straight_join
5717 sc.schedule_on,
5718 sc.call_type_id,
5719 count(distinct ca.staff_id) as available_members_count,
5720 group_concat(
5721 distinct concat(if(ls_1.is_primary = 1, 'p', 's'), ca.staff_id)
5722 order by ls_1.is_primary desc, ca.staff_id
5723 separator ', '
5724 ) as available_members_ids,
5725 sc.linkage_instance_id,
5726 l.slots_count_total as linkage_slots_count
5727 from buffer_combined_availabilities_1913539992 as ca
5728 inner join buffer_schedules_1913539992 as sc
5729 on ca.schedule_id = sc.id
5730 inner join buffer_linkages_1913539992 as l
5731 on sc.linkage_instance_id = l.linkage_instance_id
5732 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
5733 on ca.staff_id = ls_1.staff_id
5734 and sc.linkage_instance_id = ls_1.linkage_instance_id
5735 and ls_1.has_violations = 0
5736 where sc.should_be_evaluated = 1
5737 and sc.should_be_populated = 1
5738 group by sc.schedule_on, sc.call_type_id, sc.linkage_instance_id, l.slots_count_total
5739 order by available_members_count, sc.schedule_on, sc.display_order
5740 limit 1
5741
5742 (123.1ms) truncate table buffer_rule_scores_1913539992
5743
5744 (117.3ms) truncate table buffer_rule_calc_filters_1913539992
5745
5746 (124.9ms) insert into buffer_rule_calc_filters_1913539992 (
5747 linkage_instance_id,
5748 staff_id
5749 ) values (14201835, 17213)
5750
5751 (127.1ms) /* CallDaysRule */
5752 insert into buffer_rule_scores_1913539992 (
5753 linkage_instance_id,
5754 schedule_id,
5755 staff_id,
5756 rule_name,
5757 value
5758 )
5759 select
5760 b_schedules.linkage_instance_id,
5761 b_schedules.id as schedule_id,
5762 availabilities.staff_id,
5763 'CallDaysRule' as _rule_name,
5764 (min(abs(datediff(b_schedules.schedule_on, rc_schedules.schedule_on))) div 7) as value
5765 from
5766 buffer_rule_calc_filters_1913539992 as filters
5767 inner join buffer_schedules_1913539992 as b_schedules
5768 on filters.linkage_instance_id = b_schedules.linkage_instance_id
5769 inner join buffer_combined_availabilities_1913539992 as availabilities
5770 on b_schedules.id = availabilities.schedule_id
5771 and filters.staff_id = availabilities.staff_id
5772 left join buffer_rule_calc_schedules_1913539992 as rc_schedules
5773 on availabilities.staff_id = rc_schedules.staff_id
5774 and b_schedules.day_of_week_mask = rc_schedules.day_of_week_mask
5775 group by
5776 b_schedules.linkage_instance_id,
5777 b_schedules.id,
5778 availabilities.staff_id,
5779 _rule_name
5780 order by null
5781
5782 (118.5ms) /* CumulativePointTargetsRule */
5783 insert into buffer_rule_scores_1913539992 (
5784 linkage_instance_id,
5785 schedule_id,
5786 staff_id,
5787 rule_name,
5788 value
5789 )
5790 select
5791 b_schedules.linkage_instance_id,
5792 b_schedules.id as schedule_id,
5793 availabilities.staff_id,
5794 'CumulativePointTargetsRule' as rule_name,
5795 ((b_targets.raw_target - b_targets.scheduled) /
5796 b_targets.raw_target) as value
5797 from
5798 buffer_rule_calc_filters_1913539992 as filters
5799 inner join buffer_schedules_1913539992 as b_schedules
5800 on filters.linkage_instance_id = b_schedules.linkage_instance_id
5801 inner join buffer_combined_availabilities_1913539992 as availabilities
5802 on b_schedules.id = availabilities.schedule_id
5803 and filters.staff_id = availabilities.staff_id
5804 inner join buffer_cumulative_point_targets_1913539992 as b_targets
5805 on availabilities.staff_id = b_targets.staff_id
5806 and b_schedules.is_weekend = b_targets.is_weekend
5807 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
5808 order by null;
5809
5810 (126.2ms) /* CurrentPointTargetsRule */
5811 insert into buffer_rule_scores_1913539992 (
5812 linkage_instance_id,
5813 schedule_id,
5814 staff_id,
5815 rule_name,
5816 value
5817 )
5818 select
5819 b_schedules.linkage_instance_id,
5820 b_schedules.id as schedule_id,
5821 availabilities.staff_id,
5822 'CurrentPointTargetsRule' as rule_name,
5823 ((b_targets.adjusted_target - b_targets.scheduled) / b_targets.adjusted_target) as value
5824 from
5825 buffer_rule_calc_filters_1913539992 as filters
5826 inner join buffer_schedules_1913539992 as b_schedules
5827 on filters.linkage_instance_id = b_schedules.linkage_instance_id
5828 inner join buffer_combined_availabilities_1913539992 as availabilities
5829 on b_schedules.id = availabilities.schedule_id
5830 and filters.staff_id = availabilities.staff_id
5831 inner join buffer_current_point_targets_1913539992 as b_targets
5832 on availabilities.staff_id = b_targets.staff_id
5833 and b_schedules.is_weekend = b_targets.is_weekend
5834 and b_schedules.period_offset = b_targets.period_offset
5835 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
5836 order by null
5837
5838 (123.9ms) truncate table buffer_rule_scores_with_corrections_1913539992
5839
5840 (123.1ms) insert into buffer_rule_scores_with_corrections_1913539992 (
5841 linkage_instance_id, schedule_id, staff_id, rule_name, value
5842 )
5843 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id, rule_scores.rule_name,
5844 ifnull(rule_scores.value, max_values.max_value + 1) as value
5845 from buffer_rule_scores_1913539992 as rule_scores
5846 inner join (
5847 select rule_name, max(value) as max_value
5848 from buffer_rule_scores_1913539992
5849 group by rule_name
5850 order by null
5851 ) as max_values
5852 on rule_scores.rule_name = max_values.rule_name
5853 order by null
5854
5855 (118.8ms) select linkage_instance_id, staff_id, avg(slot_scores) as scores
5856 from (
5857 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id,
5858 sum(
5859 if((total_values.total_value > 0), (rule_scores.value / total_values.total_value), 0) *
5860 rules.weight *
5861 total_values.slots_count
5862 ) as slot_scores
5863 from buffer_rule_scores_with_corrections_1913539992 as rule_scores
5864 inner join (
5865 select rule_name, sum(abs(value)) as total_value,
5866 count(distinct schedule_id) as slots_count
5867 from buffer_rule_scores_with_corrections_1913539992
5868 group by rule_name
5869 order by null
5870 ) as total_values
5871 on rule_scores.rule_name = total_values.rule_name
5872 inner join rules
5873 on rule_scores.rule_name = rules.type
5874 where rules.rule_set_id = 1232
5875 and rules.applied = 1
5876 group by rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id
5877 order by null
5878 ) as staff_scores
5879 group by linkage_instance_id, staff_id
5880 order by round(avg(slot_scores), 5) desc, rand()
5881 limit 1
5882
5883 PublishedBlock Load (125.1ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-07' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
5884 PublishedBlockCallType Load (124.6ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10832 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
5885INFO : (05-29 13:27:29) Not creating schedule because of call type linkage behavior settings: [2018-09-07 - CHDay]
5886 PublishedBlock Load (124.1ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-07' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
5887 PublishedBlockCallType Load (121.6ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
5888 (121.2ms) BEGIN
5889 (120.4ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
5890 FROM call_types AS ct
5891 INNER JOIN calendar_schedules AS cs
5892 ON ct.calendar_schedule_id = cs.id
5893 INNER JOIN blocks AS b
5894 ON b.client_id = ct.client_id
5895 AND b.block_schedule_id = cs.block_schedule_id
5896 AND '2018-09-07' BETWEEN b.start_date AND b.end_date
5897 INNER JOIN published_blocks AS pb
5898 ON pb.client_id = ct.client_id
5899 AND pb.block_id = b.id
5900 AND pb.calendar_schedule_id = cs.id
5901 LEFT JOIN published_block_call_types AS pbct
5902 ON pbct.client_id = ct.client_id
5903 AND pbct.assignment_id = ct.id
5904 AND pbct.assignment_type = 'CallType'
5905 AND pbct.block_id = b.id
5906 AND (
5907 (1 << (DAYOFWEEK('2018-09-07') - 1) & pbct.days_of_week_mask) > 0
5908 )
5909 WHERE ct.id = 10167
5910 AND (
5911 (
5912 pb.assignment_ids IS NULL
5913 AND (1 << (DAYOFWEEK('2018-09-07') - 1) & pb.days_of_week_mask) > 0
5914 )
5915 OR pbct.id IS NOT NULL
5916 )
5917
5918 CallType Load (118.4ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
5919 Client Load (125.1ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
5920 Staff Load (116.7ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17213 LIMIT 1
5921 Schedule Exists (125.2ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-07' LIMIT 1
5922 SQL (146.6ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17213, '2018-09-07', '2018-05-29 13:27:30', '2018-05-29 13:27:30', 0, 6, 'auto_populate_step', 30093)
5923 VisibleAssignment Load (131.8ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-07' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
5924 (124.6ms) COMMIT
5925FLUSHED: nil:nil
5926 PublishedBlock Load (119.7ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-08' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
5927 PublishedBlockCallType Load (123.3ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10168 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
5928 (121.6ms) BEGIN
5929 (124.5ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
5930 FROM call_types AS ct
5931 INNER JOIN calendar_schedules AS cs
5932 ON ct.calendar_schedule_id = cs.id
5933 INNER JOIN blocks AS b
5934 ON b.client_id = ct.client_id
5935 AND b.block_schedule_id = cs.block_schedule_id
5936 AND '2018-09-08' BETWEEN b.start_date AND b.end_date
5937 INNER JOIN published_blocks AS pb
5938 ON pb.client_id = ct.client_id
5939 AND pb.block_id = b.id
5940 AND pb.calendar_schedule_id = cs.id
5941 LEFT JOIN published_block_call_types AS pbct
5942 ON pbct.client_id = ct.client_id
5943 AND pbct.assignment_id = ct.id
5944 AND pbct.assignment_type = 'CallType'
5945 AND pbct.block_id = b.id
5946 AND (
5947 (1 << (DAYOFWEEK('2018-09-08') - 1) & pbct.days_of_week_mask) > 0
5948 )
5949 WHERE ct.id = 10168
5950 AND (
5951 (
5952 pb.assignment_ids IS NULL
5953 AND (1 << (DAYOFWEEK('2018-09-08') - 1) & pb.days_of_week_mask) > 0
5954 )
5955 OR pbct.id IS NOT NULL
5956 )
5957
5958 CallType Load (121.2ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10168 LIMIT 1
5959 Client Load (124.8ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
5960 Staff Load (120.1ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17213 LIMIT 1
5961 Schedule Exists (121.6ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10168 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-08' LIMIT 1
5962 SQL (123.8ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10168, 17213, '2018-09-08', '2018-05-29 13:27:31', '2018-05-29 13:27:31', 1, 7, 'auto_populate_step', 30093)
5963 VisibleAssignment Load (121.9ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-08' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10168 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
5964 (123.4ms) COMMIT
5965FLUSHED: nil:nil
5966 PublishedBlock Load (124.6ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-09' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
5967 PublishedBlockCallType Load (116.9ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
5968 (138.8ms) BEGIN
5969 (124.2ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
5970 FROM call_types AS ct
5971 INNER JOIN calendar_schedules AS cs
5972 ON ct.calendar_schedule_id = cs.id
5973 INNER JOIN blocks AS b
5974 ON b.client_id = ct.client_id
5975 AND b.block_schedule_id = cs.block_schedule_id
5976 AND '2018-09-09' BETWEEN b.start_date AND b.end_date
5977 INNER JOIN published_blocks AS pb
5978 ON pb.client_id = ct.client_id
5979 AND pb.block_id = b.id
5980 AND pb.calendar_schedule_id = cs.id
5981 LEFT JOIN published_block_call_types AS pbct
5982 ON pbct.client_id = ct.client_id
5983 AND pbct.assignment_id = ct.id
5984 AND pbct.assignment_type = 'CallType'
5985 AND pbct.block_id = b.id
5986 AND (
5987 (1 << (DAYOFWEEK('2018-09-09') - 1) & pbct.days_of_week_mask) > 0
5988 )
5989 WHERE ct.id = 10167
5990 AND (
5991 (
5992 pb.assignment_ids IS NULL
5993 AND (1 << (DAYOFWEEK('2018-09-09') - 1) & pb.days_of_week_mask) > 0
5994 )
5995 OR pbct.id IS NOT NULL
5996 )
5997
5998 CallType Load (126.3ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
5999 Client Load (251.0ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
6000 Staff Load (123.1ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17213 LIMIT 1
6001 Schedule Exists (115.4ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-09' LIMIT 1
6002 SQL (128.3ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17213, '2018-09-09', '2018-05-29 13:27:33', '2018-05-29 13:27:33', 1, 1, 'auto_populate_step', 30093)
6003 VisibleAssignment Load (123.8ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-09' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
6004 (127.3ms) COMMIT
6005FLUSHED: nil:nil
6006 (119.8ms) UPDATE buffer_schedules_1913539992
6007 SET staff_id = 17213,
6008 should_be_populated = 0,
6009 should_be_evaluated = 0
6010 WHERE
6011 call_type_id = 10167
6012 AND schedule_on = '2018-09-07'
6013
6014 (120.0ms) delete from buffer_combined_availabilities_1913539992
6015 where linkage_instance_id = 14201835
6016
6017 (117.6ms) UPDATE buffer_rule_calc_schedules_1913539992
6018 SET staff_id = 17213
6019 WHERE call_type_id = 10167
6020 AND schedule_on = '2018-09-07'
6021
6022 (119.3ms) INSERT INTO buffer_rule_calc_schedules_1913539992
6023 SET staff_id = 17213,
6024 call_type_id = 10167,
6025 schedule_on = '2018-09-07',
6026 day_of_week_mask = 32
6027
6028 (131.8ms) /* NegativeLinkRule */
6029 UPDATE buffer_negative_relations_1913539992
6030 SET staff_id = 17213
6031 WHERE affected_by_schedule_id = (
6032 SELECT id
6033 FROM buffer_schedules_1913539992
6034 WHERE schedule_on = '2018-09-07'
6035 AND call_type_id = 10167
6036 )
6037
6038 (124.0ms) /* SpecializationOverlapRule */
6039 update buffer_staff_specializations_1913539992 as st_sp
6040 inner join max_applicable_call_types as mact
6041 on st_sp.specialization_id = mact.specialization_id
6042 and mact.call_type_id = 10167
6043 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
6044 on st_sp.specialization_id = sp_dc.specialization_id
6045 and sp_dc.staff_id is null
6046 and sp_dc.schedule_on = '2018-09-07'
6047 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
6048 on st_sp.specialization_id = sp_dc_2.specialization_id
6049 and st_sp.staff_id = sp_dc_2.staff_id
6050 and sp_dc_2.schedule_on = '2018-09-07'
6051 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
6052 where st_sp.staff_id = 17213
6053 and sp_dc_2.id is null
6054
6055 (122.5ms) insert into buffer_specialization_daily_counts_1913539992 (
6056 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
6057 )
6058 select sp.id as specialization_id,
6059 17213 as staff_id,
6060 '2018-09-07' as schedule_on,
6061 1 as staffs_scheduled,
6062 sp.max_scheduled,
6063 sp_dc.should_be_evaluated
6064 from buffer_staff_specializations_1913539992 as st_sp
6065 inner join specializations as sp
6066 on st_sp.specialization_id = sp.id
6067 inner join max_applicable_call_types as mact
6068 on st_sp.specialization_id = mact.specialization_id
6069 and mact.call_type_id = 10167
6070 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
6071 on st_sp.specialization_id = sp_dc.specialization_id
6072 and sp_dc.staff_id is null
6073 and sp_dc.schedule_on = '2018-09-07'
6074 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
6075 on st_sp.specialization_id = sp_dc_2.specialization_id
6076 and st_sp.staff_id = sp_dc_2.staff_id
6077 and sp_dc_2.schedule_on = '2018-09-07'
6078 where st_sp.staff_id = 17213
6079 and sp_dc_2.id is null
6080
6081 (118.2ms) /* MaxAssignmentsRule */
6082 delete from buffer_linkage_call_type_assignments_1913539992
6083 where linkage_instance_id = 14201835;
6084
6085 (125.4ms) /* MaxAssignmentsRule */
6086 update
6087 buffer_schedules_1913539992 as sc
6088 inner join call_types as ct
6089 on sc.call_type_id = ct.id
6090 and ct.active = 1
6091 inner join buffer_call_type_assignments_1913539992 as cta
6092 on sc.staff_id = cta.staff_id
6093 and sc.call_type_id = cta.call_type_id
6094 and sc.is_weekend = cta.is_weekend
6095 and sc.period_offset = cta.period_offset
6096 and sc.calendar_schedule_id = cta.calendar_schedule_id
6097 set cta.assignments_count = cta.assignments_count + 1
6098 where
6099 sc.schedule_on = '2018-09-07'
6100 and sc.call_type_id = 10167
6101 and sc.staff_id = 17213
6102
6103 (125.6ms) insert into buffer_call_type_assignments_1913539992 (
6104 staff_id,
6105 call_type_id,
6106 is_weekend,
6107 period_offset,
6108 calendar_schedule_id,
6109 assignments_count
6110 )
6111 select
6112 sc.staff_id,
6113 sc.call_type_id,
6114 sc.is_weekend,
6115 sc.period_offset,
6116 sc.calendar_schedule_id,
6117 1 as assignments_count
6118 from buffer_schedules_1913539992 as sc
6119 where
6120 sc.staff_id = 17213
6121 and sc.schedule_on = '2018-09-07'
6122 and sc.call_type_id = 10167
6123
6124 (116.7ms) /* UnassignedDaysRule */
6125 delete from buffer_linkage_assigned_days_1913539992
6126 where linkage_instance_id = 14201835
6127
6128 (126.0ms) /* UnassignedDaysRule */
6129 UPDATE buffer_staff_assigned_days_1913539992 as sad
6130 inner join call_types as ct
6131 on ct.id = 10167
6132 and ct.unassigned_day = 0
6133 SET sad.is_assigned = 1
6134 WHERE sad.staff_id = 17213
6135 AND sad.schedule_on = '2018-09-07'
6136
6137 (124.3ms) truncate table buffer_tmp_targets_scheduled_1913539992
6138
6139 (128.7ms) insert into buffer_tmp_targets_scheduled_1913539992 (
6140 block_id,
6141 calendar_schedule_id,
6142 staff_id,
6143 assignment_id,
6144 assignment_type,
6145 day_of_week_mask,
6146 is_weekend,
6147 scheduled,
6148 other_scheduled
6149 )
6150 select
6151 pt.block_id,
6152 pt.calendar_schedule_id,
6153 pt.staff_id,
6154 0 as assignment_id,
6155 '' as assignment_type,
6156 0 as day_of_week_mask,
6157 pt.is_weekend,
6158 case
6159 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
6160 else 0.0
6161 end as scheduled,
6162 case
6163 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
6164 else 0.0
6165 end as other_scheduled
6166 from
6167 buffer_schedules_1913539992 as sc
6168 inner join buffer_counter_increments_1913539992 as ci
6169 on sc.id = ci.schedule_id
6170 and ci.points != 0
6171 inner join assign_staff_types as ast
6172 on sc.staff_id = ast.staff_id
6173 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
6174 inner join staff_types as st
6175 on ast.staff_type_id = st.id
6176 inner join buffer_point_targets_1913539992 as pt
6177 on sc.block_id = pt.block_id
6178 and st.point_hour_schedule_id = pt.calendar_schedule_id
6179 and sc.staff_id = pt.staff_id
6180 and sc.is_weekend = pt.is_weekend
6181 where
6182 sc.schedule_on = '2018-09-07'
6183 and sc.call_type_id = 10167
6184 and sc.staff_id = 17213
6185 order by null
6186
6187 (126.6ms) select 1 from buffer_tmp_targets_scheduled_1913539992
6188
6189 (124.0ms) update
6190 buffer_tmp_targets_scheduled_1913539992 as sch_t
6191 inner join buffer_point_targets_1913539992 as pt
6192 on sch_t.block_id = pt.block_id
6193 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
6194 and sch_t.staff_id = pt.staff_id
6195 and sch_t.is_weekend = pt.is_weekend
6196 set
6197 pt.scheduled = pt.scheduled + sch_t.scheduled,
6198 pt.scheduled_delta = sch_t.scheduled,
6199 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
6200 pt.other_scheduled_delta = sch_t.other_scheduled
6201
6202 (124.3ms) select 1 from buffer_tmp_targets_scheduled_1913539992
6203 where other_scheduled != 0
6204
6205 (124.9ms) update
6206 buffer_current_point_targets_1913539992 as cr_pt
6207 inner join (
6208 select
6209 pt.staff_id,
6210 part_of_week.is_weekend,
6211 td.period_offset,
6212 pt.calendar_schedule_id,
6213 sum(pt.raw_target_delta) as raw_target_delta,
6214 sum(pt.target_delta) as adjusted_target_delta,
6215 sum(pt.scheduled_delta) as scheduled_delta,
6216 sum(pt.other_scheduled_delta) as other_scheduled_delta
6217 from
6218 buffer_tmp_targets_scheduled_1913539992 as sch_t
6219 inner join buffer_target_dates as td
6220 on td.session_id = 1913539992
6221 and sch_t.block_id = td.block_id
6222 and sch_t.calendar_schedule_id = td.calendar_schedule_id
6223 inner join buffer_point_targets_1913539992 as pt
6224 on sch_t.block_id = pt.block_id
6225 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
6226 and (
6227 sch_t.staff_id = pt.staff_id
6228 or sch_t.other_scheduled != 0
6229 )
6230 and sch_t.is_weekend = pt.is_weekend
6231 inner join (
6232 select 0 as is_weekend
6233 union select 1
6234
6235 ) as part_of_week
6236 on sch_t.is_weekend = part_of_week.is_weekend
6237 or part_of_week.is_weekend = -1
6238 group by
6239 pt.staff_id,
6240 part_of_week.is_weekend,
6241 td.period_offset,
6242 pt.calendar_schedule_id
6243 order by null
6244 ) as pt
6245 on cr_pt.staff_id = pt.staff_id
6246 and cr_pt.is_weekend = pt.is_weekend
6247 and cr_pt.period_offset = pt.period_offset
6248 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
6249 set
6250 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
6251 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
6252 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
6253 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
6254
6255 (125.9ms) update
6256 buffer_cumulative_point_targets_1913539992 as cu_pt
6257 inner join (
6258 select
6259 pt.staff_id,
6260 part_of_week.is_weekend,
6261 pt.calendar_schedule_id,
6262 sum(pt.raw_target_delta) as raw_target_delta,
6263 sum(pt.target_delta) as adjusted_target_delta,
6264 sum(pt.scheduled_delta) as scheduled_delta,
6265 sum(pt.other_scheduled_delta) as other_scheduled_delta
6266 from
6267 buffer_tmp_targets_scheduled_1913539992 as sch_t
6268 inner join buffer_target_dates as td
6269 on td.session_id = 1913539992
6270 and sch_t.block_id = td.block_id
6271 and sch_t.calendar_schedule_id = td.calendar_schedule_id
6272 and td.within_cumulative_period = 1
6273 inner join buffer_point_targets_1913539992 as pt
6274 on sch_t.block_id = pt.block_id
6275 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
6276 and (
6277 sch_t.staff_id = pt.staff_id
6278 or sch_t.other_scheduled != 0
6279 )
6280 and sch_t.is_weekend = pt.is_weekend
6281 inner join (
6282 select 0 as is_weekend
6283 union select 1
6284
6285 ) as part_of_week
6286 on sch_t.is_weekend = part_of_week.is_weekend
6287 or part_of_week.is_weekend = -1
6288 group by
6289 pt.staff_id,
6290 part_of_week.is_weekend,
6291 pt.calendar_schedule_id
6292 order by null
6293 ) as pt
6294 on cu_pt.staff_id = pt.staff_id
6295 and cu_pt.is_weekend = pt.is_weekend
6296 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
6297 set
6298 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
6299 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
6300 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
6301 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
6302
6303 (128.7ms) update
6304 buffer_tmp_targets_scheduled_1913539992 as sch_t
6305 inner join buffer_point_targets_1913539992 as pt
6306 on sch_t.block_id = pt.block_id
6307 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
6308 and (
6309 sch_t.staff_id = pt.staff_id
6310 or sch_t.other_scheduled != 0
6311 )
6312 and sch_t.is_weekend = pt.is_weekend
6313 set
6314 pt.raw_target_delta = 0,
6315 pt.target_delta = 0,
6316 pt.scheduled_delta = 0,
6317 pt.other_scheduled_delta = 0
6318
6319 (250.8ms) /* AssignmentLimitsPerPeriod */
6320 /* Unique Key: assignment_limit_id, staff_id, start_date */
6321 insert into buffer_staff_assignments_count_periods_1913539992 (
6322 assignment_limit_id, staff_id, start_date, end_date, assignments_count
6323 )
6324 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
6325 1 as assignments_count
6326 from buffer_schedules_1913539992 as sc
6327 inner join buffer_assignment_limit_call_types_1913539992 as alct
6328 on sc.call_type_id = alct.call_type_id
6329 inner join assignment_limits as al
6330 on alct.assignment_limit_id = al.id
6331 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
6332 and al.max_per_period_limit is not null
6333 inner join assign_staff_types as ast
6334 on sc.staff_id = ast.staff_id
6335 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
6336 inner join buffer_assignment_limit_staff_types_1913539992 as alst
6337 on alct.assignment_limit_id = alst.assignment_limit_id
6338 and ast.staff_type_id = alst.staff_type_id
6339 inner join (
6340 select assignment_limit_id, start_date, end_date
6341 from buffer_linkage_assignments_count_periods_1913539992
6342 group by assignment_limit_id, start_date, end_date
6343 order by null
6344 ) as lac
6345 on alct.assignment_limit_id = lac.assignment_limit_id
6346 and sc.schedule_on between lac.start_date and lac.end_date
6347 where sc.schedule_on = '2018-09-07'
6348 and sc.call_type_id = 10167
6349 and sc.staff_id = 17213
6350 on duplicate key update
6351 assignments_count = assignments_count + 1
6352
6353 (123.9ms) /* AssignmentLimitsPerWeek */
6354 /* Unique Key: assignment_limit_id, staff_id, start_date */
6355 insert into buffer_staff_assignments_count_weeks_1913539992 (
6356 assignment_limit_id, staff_id, start_date, end_date, assignments_count
6357 )
6358 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
6359 1 as assignments_count
6360 from buffer_schedules_1913539992 as sc
6361 inner join buffer_assignment_limit_call_types_1913539992 as alct
6362 on sc.call_type_id = alct.call_type_id
6363 inner join assignment_limits as al
6364 on alct.assignment_limit_id = al.id
6365 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
6366 and al.max_weekly_limit is not null
6367 inner join assign_staff_types as ast
6368 on sc.staff_id = ast.staff_id
6369 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
6370 inner join buffer_assignment_limit_staff_types_1913539992 as alst
6371 on alct.assignment_limit_id = alst.assignment_limit_id
6372 and ast.staff_type_id = alst.staff_type_id
6373 inner join (
6374 select assignment_limit_id, start_date, end_date
6375 from buffer_linkage_assignments_count_weeks_1913539992
6376 group by assignment_limit_id, start_date, end_date
6377 order by null
6378 ) as lac
6379 on alct.assignment_limit_id = lac.assignment_limit_id
6380 and sc.schedule_on between lac.start_date and lac.end_date
6381 where sc.schedule_on = '2018-09-07'
6382 and sc.call_type_id = 10167
6383 and sc.staff_id = 17213
6384 on duplicate key update
6385 assignments_count = assignments_count + 1
6386
6387 (127.9ms) /* AssignmentLimitsRolling */
6388 /* Unique Key: assignment_limit_id, staff_id, start_date */
6389 insert into buffer_staff_assignments_count_rolling_1913539992 (
6390 assignment_limit_id, staff_id, start_date, end_date, assignments_count
6391 )
6392 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
6393 1 as assignments_count
6394 from buffer_schedules_1913539992 as sc
6395 inner join buffer_assignment_limit_call_types_1913539992 as alct
6396 on sc.call_type_id = alct.call_type_id
6397 inner join assignment_limits as al
6398 on alct.assignment_limit_id = al.id
6399 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
6400 and al.max_rolling_period is not null
6401 and al.max_rolling_limit is not null
6402 inner join assign_staff_types as ast
6403 on sc.staff_id = ast.staff_id
6404 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
6405 inner join buffer_assignment_limit_staff_types_1913539992 as alst
6406 on alct.assignment_limit_id = alst.assignment_limit_id
6407 and ast.staff_type_id = alst.staff_type_id
6408 inner join (
6409 select assignment_limit_id, start_date, end_date
6410 from buffer_linkage_assignments_count_rolling_1913539992
6411 group by assignment_limit_id, start_date, end_date
6412 order by null
6413 ) as lac
6414 on alct.assignment_limit_id = lac.assignment_limit_id
6415 and sc.schedule_on between lac.start_date and lac.end_date
6416 where sc.schedule_on = '2018-09-07'
6417 and sc.call_type_id = 10167
6418 and sc.staff_id = 17213
6419 on duplicate key update
6420 assignments_count = assignments_count + 1
6421
6422 (117.3ms) /* AssignmentLimitsConsecutive */
6423 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
6424 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
6425 assignment_limit_id, staff_id, schedule_on, start_date, end_date
6426 )
6427 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
6428 from buffer_schedules_1913539992 as sc
6429 inner join buffer_assignment_limit_call_types_1913539992 as alct
6430 on sc.call_type_id = alct.call_type_id
6431 inner join assignment_limits as al
6432 on alct.assignment_limit_id = al.id
6433 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
6434 and al.max_consecutive_limit is not null
6435 inner join assign_staff_types as ast
6436 on sc.staff_id = ast.staff_id
6437 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
6438 inner join buffer_assignment_limit_staff_types_1913539992 as alst
6439 on alct.assignment_limit_id = alst.assignment_limit_id
6440 and ast.staff_type_id = alst.staff_type_id
6441 inner join (
6442 select assignment_limit_id, start_date, end_date
6443 from buffer_linkage_assignments_count_consecutive_1913539992
6444 group by assignment_limit_id, start_date, end_date
6445 order by null
6446 ) as lac
6447 on alct.assignment_limit_id = lac.assignment_limit_id
6448 and sc.schedule_on between lac.start_date and lac.end_date
6449 where sc.schedule_on = '2018-09-07'
6450 and sc.call_type_id = 10167
6451 and sc.staff_id = 17213
6452
6453 (126.2ms) UPDATE buffer_schedules_1913539992
6454 SET staff_id = 17213,
6455 should_be_populated = 0,
6456 should_be_evaluated = 0
6457 WHERE
6458 call_type_id = 10168
6459 AND schedule_on = '2018-09-08'
6460
6461 (119.2ms) delete from buffer_combined_availabilities_1913539992
6462 where linkage_instance_id = 14201835
6463
6464 (122.7ms) UPDATE buffer_rule_calc_schedules_1913539992
6465 SET staff_id = 17213
6466 WHERE call_type_id = 10168
6467 AND schedule_on = '2018-09-08'
6468
6469 (125.4ms) INSERT INTO buffer_rule_calc_schedules_1913539992
6470 SET staff_id = 17213,
6471 call_type_id = 10168,
6472 schedule_on = '2018-09-08',
6473 day_of_week_mask = 64
6474
6475 (125.5ms) /* NegativeLinkRule */
6476 UPDATE buffer_negative_relations_1913539992
6477 SET staff_id = 17213
6478 WHERE affected_by_schedule_id = (
6479 SELECT id
6480 FROM buffer_schedules_1913539992
6481 WHERE schedule_on = '2018-09-08'
6482 AND call_type_id = 10168
6483 )
6484
6485 (116.0ms) /* SpecializationOverlapRule */
6486 update buffer_staff_specializations_1913539992 as st_sp
6487 inner join max_applicable_call_types as mact
6488 on st_sp.specialization_id = mact.specialization_id
6489 and mact.call_type_id = 10168
6490 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
6491 on st_sp.specialization_id = sp_dc.specialization_id
6492 and sp_dc.staff_id is null
6493 and sp_dc.schedule_on = '2018-09-08'
6494 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
6495 on st_sp.specialization_id = sp_dc_2.specialization_id
6496 and st_sp.staff_id = sp_dc_2.staff_id
6497 and sp_dc_2.schedule_on = '2018-09-08'
6498 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
6499 where st_sp.staff_id = 17213
6500 and sp_dc_2.id is null
6501
6502 (122.2ms) insert into buffer_specialization_daily_counts_1913539992 (
6503 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
6504 )
6505 select sp.id as specialization_id,
6506 17213 as staff_id,
6507 '2018-09-08' as schedule_on,
6508 1 as staffs_scheduled,
6509 sp.max_scheduled,
6510 sp_dc.should_be_evaluated
6511 from buffer_staff_specializations_1913539992 as st_sp
6512 inner join specializations as sp
6513 on st_sp.specialization_id = sp.id
6514 inner join max_applicable_call_types as mact
6515 on st_sp.specialization_id = mact.specialization_id
6516 and mact.call_type_id = 10168
6517 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
6518 on st_sp.specialization_id = sp_dc.specialization_id
6519 and sp_dc.staff_id is null
6520 and sp_dc.schedule_on = '2018-09-08'
6521 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
6522 on st_sp.specialization_id = sp_dc_2.specialization_id
6523 and st_sp.staff_id = sp_dc_2.staff_id
6524 and sp_dc_2.schedule_on = '2018-09-08'
6525 where st_sp.staff_id = 17213
6526 and sp_dc_2.id is null
6527
6528 (125.7ms) /* MaxAssignmentsRule */
6529 delete from buffer_linkage_call_type_assignments_1913539992
6530 where linkage_instance_id = 14201835;
6531
6532 (119.3ms) /* MaxAssignmentsRule */
6533 update
6534 buffer_schedules_1913539992 as sc
6535 inner join call_types as ct
6536 on sc.call_type_id = ct.id
6537 and ct.active = 1
6538 inner join buffer_call_type_assignments_1913539992 as cta
6539 on sc.staff_id = cta.staff_id
6540 and sc.call_type_id = cta.call_type_id
6541 and sc.is_weekend = cta.is_weekend
6542 and sc.period_offset = cta.period_offset
6543 and sc.calendar_schedule_id = cta.calendar_schedule_id
6544 set cta.assignments_count = cta.assignments_count + 1
6545 where
6546 sc.schedule_on = '2018-09-08'
6547 and sc.call_type_id = 10168
6548 and sc.staff_id = 17213
6549
6550 (128.0ms) insert into buffer_call_type_assignments_1913539992 (
6551 staff_id,
6552 call_type_id,
6553 is_weekend,
6554 period_offset,
6555 calendar_schedule_id,
6556 assignments_count
6557 )
6558 select
6559 sc.staff_id,
6560 sc.call_type_id,
6561 sc.is_weekend,
6562 sc.period_offset,
6563 sc.calendar_schedule_id,
6564 1 as assignments_count
6565 from buffer_schedules_1913539992 as sc
6566 where
6567 sc.staff_id = 17213
6568 and sc.schedule_on = '2018-09-08'
6569 and sc.call_type_id = 10168
6570
6571 (121.7ms) /* UnassignedDaysRule */
6572 delete from buffer_linkage_assigned_days_1913539992
6573 where linkage_instance_id = 14201835
6574
6575 (124.1ms) /* UnassignedDaysRule */
6576 UPDATE buffer_staff_assigned_days_1913539992 as sad
6577 inner join call_types as ct
6578 on ct.id = 10168
6579 and ct.unassigned_day = 0
6580 SET sad.is_assigned = 1
6581 WHERE sad.staff_id = 17213
6582 AND sad.schedule_on = '2018-09-08'
6583
6584 (120.3ms) truncate table buffer_tmp_targets_scheduled_1913539992
6585
6586 (126.0ms) insert into buffer_tmp_targets_scheduled_1913539992 (
6587 block_id,
6588 calendar_schedule_id,
6589 staff_id,
6590 assignment_id,
6591 assignment_type,
6592 day_of_week_mask,
6593 is_weekend,
6594 scheduled,
6595 other_scheduled
6596 )
6597 select
6598 pt.block_id,
6599 pt.calendar_schedule_id,
6600 pt.staff_id,
6601 0 as assignment_id,
6602 '' as assignment_type,
6603 0 as day_of_week_mask,
6604 pt.is_weekend,
6605 case
6606 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
6607 else 0.0
6608 end as scheduled,
6609 case
6610 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
6611 else 0.0
6612 end as other_scheduled
6613 from
6614 buffer_schedules_1913539992 as sc
6615 inner join buffer_counter_increments_1913539992 as ci
6616 on sc.id = ci.schedule_id
6617 and ci.points != 0
6618 inner join assign_staff_types as ast
6619 on sc.staff_id = ast.staff_id
6620 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
6621 inner join staff_types as st
6622 on ast.staff_type_id = st.id
6623 inner join buffer_point_targets_1913539992 as pt
6624 on sc.block_id = pt.block_id
6625 and st.point_hour_schedule_id = pt.calendar_schedule_id
6626 and sc.staff_id = pt.staff_id
6627 and sc.is_weekend = pt.is_weekend
6628 where
6629 sc.schedule_on = '2018-09-08'
6630 and sc.call_type_id = 10168
6631 and sc.staff_id = 17213
6632 order by null
6633
6634 (124.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
6635
6636 (118.7ms) update
6637 buffer_tmp_targets_scheduled_1913539992 as sch_t
6638 inner join buffer_point_targets_1913539992 as pt
6639 on sch_t.block_id = pt.block_id
6640 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
6641 and sch_t.staff_id = pt.staff_id
6642 and sch_t.is_weekend = pt.is_weekend
6643 set
6644 pt.scheduled = pt.scheduled + sch_t.scheduled,
6645 pt.scheduled_delta = sch_t.scheduled,
6646 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
6647 pt.other_scheduled_delta = sch_t.other_scheduled
6648
6649 (120.7ms) select 1 from buffer_tmp_targets_scheduled_1913539992
6650 where other_scheduled != 0
6651
6652 (127.2ms) update
6653 buffer_current_point_targets_1913539992 as cr_pt
6654 inner join (
6655 select
6656 pt.staff_id,
6657 part_of_week.is_weekend,
6658 td.period_offset,
6659 pt.calendar_schedule_id,
6660 sum(pt.raw_target_delta) as raw_target_delta,
6661 sum(pt.target_delta) as adjusted_target_delta,
6662 sum(pt.scheduled_delta) as scheduled_delta,
6663 sum(pt.other_scheduled_delta) as other_scheduled_delta
6664 from
6665 buffer_tmp_targets_scheduled_1913539992 as sch_t
6666 inner join buffer_target_dates as td
6667 on td.session_id = 1913539992
6668 and sch_t.block_id = td.block_id
6669 and sch_t.calendar_schedule_id = td.calendar_schedule_id
6670 inner join buffer_point_targets_1913539992 as pt
6671 on sch_t.block_id = pt.block_id
6672 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
6673 and (
6674 sch_t.staff_id = pt.staff_id
6675 or sch_t.other_scheduled != 0
6676 )
6677 and sch_t.is_weekend = pt.is_weekend
6678 inner join (
6679 select 0 as is_weekend
6680 union select 1
6681
6682 ) as part_of_week
6683 on sch_t.is_weekend = part_of_week.is_weekend
6684 or part_of_week.is_weekend = -1
6685 group by
6686 pt.staff_id,
6687 part_of_week.is_weekend,
6688 td.period_offset,
6689 pt.calendar_schedule_id
6690 order by null
6691 ) as pt
6692 on cr_pt.staff_id = pt.staff_id
6693 and cr_pt.is_weekend = pt.is_weekend
6694 and cr_pt.period_offset = pt.period_offset
6695 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
6696 set
6697 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
6698 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
6699 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
6700 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
6701
6702 (117.9ms) update
6703 buffer_cumulative_point_targets_1913539992 as cu_pt
6704 inner join (
6705 select
6706 pt.staff_id,
6707 part_of_week.is_weekend,
6708 pt.calendar_schedule_id,
6709 sum(pt.raw_target_delta) as raw_target_delta,
6710 sum(pt.target_delta) as adjusted_target_delta,
6711 sum(pt.scheduled_delta) as scheduled_delta,
6712 sum(pt.other_scheduled_delta) as other_scheduled_delta
6713 from
6714 buffer_tmp_targets_scheduled_1913539992 as sch_t
6715 inner join buffer_target_dates as td
6716 on td.session_id = 1913539992
6717 and sch_t.block_id = td.block_id
6718 and sch_t.calendar_schedule_id = td.calendar_schedule_id
6719 and td.within_cumulative_period = 1
6720 inner join buffer_point_targets_1913539992 as pt
6721 on sch_t.block_id = pt.block_id
6722 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
6723 and (
6724 sch_t.staff_id = pt.staff_id
6725 or sch_t.other_scheduled != 0
6726 )
6727 and sch_t.is_weekend = pt.is_weekend
6728 inner join (
6729 select 0 as is_weekend
6730 union select 1
6731
6732 ) as part_of_week
6733 on sch_t.is_weekend = part_of_week.is_weekend
6734 or part_of_week.is_weekend = -1
6735 group by
6736 pt.staff_id,
6737 part_of_week.is_weekend,
6738 pt.calendar_schedule_id
6739 order by null
6740 ) as pt
6741 on cu_pt.staff_id = pt.staff_id
6742 and cu_pt.is_weekend = pt.is_weekend
6743 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
6744 set
6745 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
6746 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
6747 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
6748 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
6749
6750 (127.3ms) update
6751 buffer_tmp_targets_scheduled_1913539992 as sch_t
6752 inner join buffer_point_targets_1913539992 as pt
6753 on sch_t.block_id = pt.block_id
6754 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
6755 and (
6756 sch_t.staff_id = pt.staff_id
6757 or sch_t.other_scheduled != 0
6758 )
6759 and sch_t.is_weekend = pt.is_weekend
6760 set
6761 pt.raw_target_delta = 0,
6762 pt.target_delta = 0,
6763 pt.scheduled_delta = 0,
6764 pt.other_scheduled_delta = 0
6765
6766 (123.7ms) /* AssignmentLimitsPerPeriod */
6767 /* Unique Key: assignment_limit_id, staff_id, start_date */
6768 insert into buffer_staff_assignments_count_periods_1913539992 (
6769 assignment_limit_id, staff_id, start_date, end_date, assignments_count
6770 )
6771 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
6772 1 as assignments_count
6773 from buffer_schedules_1913539992 as sc
6774 inner join buffer_assignment_limit_call_types_1913539992 as alct
6775 on sc.call_type_id = alct.call_type_id
6776 inner join assignment_limits as al
6777 on alct.assignment_limit_id = al.id
6778 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
6779 and al.max_per_period_limit is not null
6780 inner join assign_staff_types as ast
6781 on sc.staff_id = ast.staff_id
6782 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
6783 inner join buffer_assignment_limit_staff_types_1913539992 as alst
6784 on alct.assignment_limit_id = alst.assignment_limit_id
6785 and ast.staff_type_id = alst.staff_type_id
6786 inner join (
6787 select assignment_limit_id, start_date, end_date
6788 from buffer_linkage_assignments_count_periods_1913539992
6789 group by assignment_limit_id, start_date, end_date
6790 order by null
6791 ) as lac
6792 on alct.assignment_limit_id = lac.assignment_limit_id
6793 and sc.schedule_on between lac.start_date and lac.end_date
6794 where sc.schedule_on = '2018-09-08'
6795 and sc.call_type_id = 10168
6796 and sc.staff_id = 17213
6797 on duplicate key update
6798 assignments_count = assignments_count + 1
6799
6800 (122.0ms) /* AssignmentLimitsPerWeek */
6801 /* Unique Key: assignment_limit_id, staff_id, start_date */
6802 insert into buffer_staff_assignments_count_weeks_1913539992 (
6803 assignment_limit_id, staff_id, start_date, end_date, assignments_count
6804 )
6805 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
6806 1 as assignments_count
6807 from buffer_schedules_1913539992 as sc
6808 inner join buffer_assignment_limit_call_types_1913539992 as alct
6809 on sc.call_type_id = alct.call_type_id
6810 inner join assignment_limits as al
6811 on alct.assignment_limit_id = al.id
6812 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
6813 and al.max_weekly_limit is not null
6814 inner join assign_staff_types as ast
6815 on sc.staff_id = ast.staff_id
6816 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
6817 inner join buffer_assignment_limit_staff_types_1913539992 as alst
6818 on alct.assignment_limit_id = alst.assignment_limit_id
6819 and ast.staff_type_id = alst.staff_type_id
6820 inner join (
6821 select assignment_limit_id, start_date, end_date
6822 from buffer_linkage_assignments_count_weeks_1913539992
6823 group by assignment_limit_id, start_date, end_date
6824 order by null
6825 ) as lac
6826 on alct.assignment_limit_id = lac.assignment_limit_id
6827 and sc.schedule_on between lac.start_date and lac.end_date
6828 where sc.schedule_on = '2018-09-08'
6829 and sc.call_type_id = 10168
6830 and sc.staff_id = 17213
6831 on duplicate key update
6832 assignments_count = assignments_count + 1
6833
6834 (119.6ms) /* AssignmentLimitsRolling */
6835 /* Unique Key: assignment_limit_id, staff_id, start_date */
6836 insert into buffer_staff_assignments_count_rolling_1913539992 (
6837 assignment_limit_id, staff_id, start_date, end_date, assignments_count
6838 )
6839 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
6840 1 as assignments_count
6841 from buffer_schedules_1913539992 as sc
6842 inner join buffer_assignment_limit_call_types_1913539992 as alct
6843 on sc.call_type_id = alct.call_type_id
6844 inner join assignment_limits as al
6845 on alct.assignment_limit_id = al.id
6846 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
6847 and al.max_rolling_period is not null
6848 and al.max_rolling_limit is not null
6849 inner join assign_staff_types as ast
6850 on sc.staff_id = ast.staff_id
6851 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
6852 inner join buffer_assignment_limit_staff_types_1913539992 as alst
6853 on alct.assignment_limit_id = alst.assignment_limit_id
6854 and ast.staff_type_id = alst.staff_type_id
6855 inner join (
6856 select assignment_limit_id, start_date, end_date
6857 from buffer_linkage_assignments_count_rolling_1913539992
6858 group by assignment_limit_id, start_date, end_date
6859 order by null
6860 ) as lac
6861 on alct.assignment_limit_id = lac.assignment_limit_id
6862 and sc.schedule_on between lac.start_date and lac.end_date
6863 where sc.schedule_on = '2018-09-08'
6864 and sc.call_type_id = 10168
6865 and sc.staff_id = 17213
6866 on duplicate key update
6867 assignments_count = assignments_count + 1
6868
6869 (122.5ms) /* AssignmentLimitsConsecutive */
6870 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
6871 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
6872 assignment_limit_id, staff_id, schedule_on, start_date, end_date
6873 )
6874 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
6875 from buffer_schedules_1913539992 as sc
6876 inner join buffer_assignment_limit_call_types_1913539992 as alct
6877 on sc.call_type_id = alct.call_type_id
6878 inner join assignment_limits as al
6879 on alct.assignment_limit_id = al.id
6880 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
6881 and al.max_consecutive_limit is not null
6882 inner join assign_staff_types as ast
6883 on sc.staff_id = ast.staff_id
6884 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
6885 inner join buffer_assignment_limit_staff_types_1913539992 as alst
6886 on alct.assignment_limit_id = alst.assignment_limit_id
6887 and ast.staff_type_id = alst.staff_type_id
6888 inner join (
6889 select assignment_limit_id, start_date, end_date
6890 from buffer_linkage_assignments_count_consecutive_1913539992
6891 group by assignment_limit_id, start_date, end_date
6892 order by null
6893 ) as lac
6894 on alct.assignment_limit_id = lac.assignment_limit_id
6895 and sc.schedule_on between lac.start_date and lac.end_date
6896 where sc.schedule_on = '2018-09-08'
6897 and sc.call_type_id = 10168
6898 and sc.staff_id = 17213
6899
6900 (123.2ms) UPDATE buffer_schedules_1913539992
6901 SET staff_id = 17213,
6902 should_be_populated = 0,
6903 should_be_evaluated = 0
6904 WHERE
6905 call_type_id = 10167
6906 AND schedule_on = '2018-09-09'
6907
6908 (119.7ms) delete from buffer_combined_availabilities_1913539992
6909 where linkage_instance_id = 14201835
6910
6911 (120.7ms) UPDATE buffer_rule_calc_schedules_1913539992
6912 SET staff_id = 17213
6913 WHERE call_type_id = 10167
6914 AND schedule_on = '2018-09-09'
6915
6916 (125.2ms) INSERT INTO buffer_rule_calc_schedules_1913539992
6917 SET staff_id = 17213,
6918 call_type_id = 10167,
6919 schedule_on = '2018-09-09',
6920 day_of_week_mask = 1
6921
6922 (128.0ms) /* NegativeLinkRule */
6923 UPDATE buffer_negative_relations_1913539992
6924 SET staff_id = 17213
6925 WHERE affected_by_schedule_id = (
6926 SELECT id
6927 FROM buffer_schedules_1913539992
6928 WHERE schedule_on = '2018-09-09'
6929 AND call_type_id = 10167
6930 )
6931
6932 (124.4ms) /* SpecializationOverlapRule */
6933 update buffer_staff_specializations_1913539992 as st_sp
6934 inner join max_applicable_call_types as mact
6935 on st_sp.specialization_id = mact.specialization_id
6936 and mact.call_type_id = 10167
6937 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
6938 on st_sp.specialization_id = sp_dc.specialization_id
6939 and sp_dc.staff_id is null
6940 and sp_dc.schedule_on = '2018-09-09'
6941 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
6942 on st_sp.specialization_id = sp_dc_2.specialization_id
6943 and st_sp.staff_id = sp_dc_2.staff_id
6944 and sp_dc_2.schedule_on = '2018-09-09'
6945 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
6946 where st_sp.staff_id = 17213
6947 and sp_dc_2.id is null
6948
6949 (122.3ms) insert into buffer_specialization_daily_counts_1913539992 (
6950 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
6951 )
6952 select sp.id as specialization_id,
6953 17213 as staff_id,
6954 '2018-09-09' as schedule_on,
6955 1 as staffs_scheduled,
6956 sp.max_scheduled,
6957 sp_dc.should_be_evaluated
6958 from buffer_staff_specializations_1913539992 as st_sp
6959 inner join specializations as sp
6960 on st_sp.specialization_id = sp.id
6961 inner join max_applicable_call_types as mact
6962 on st_sp.specialization_id = mact.specialization_id
6963 and mact.call_type_id = 10167
6964 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
6965 on st_sp.specialization_id = sp_dc.specialization_id
6966 and sp_dc.staff_id is null
6967 and sp_dc.schedule_on = '2018-09-09'
6968 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
6969 on st_sp.specialization_id = sp_dc_2.specialization_id
6970 and st_sp.staff_id = sp_dc_2.staff_id
6971 and sp_dc_2.schedule_on = '2018-09-09'
6972 where st_sp.staff_id = 17213
6973 and sp_dc_2.id is null
6974
6975 (124.8ms) /* MaxAssignmentsRule */
6976 delete from buffer_linkage_call_type_assignments_1913539992
6977 where linkage_instance_id = 14201835;
6978
6979 (122.7ms) /* MaxAssignmentsRule */
6980 update
6981 buffer_schedules_1913539992 as sc
6982 inner join call_types as ct
6983 on sc.call_type_id = ct.id
6984 and ct.active = 1
6985 inner join buffer_call_type_assignments_1913539992 as cta
6986 on sc.staff_id = cta.staff_id
6987 and sc.call_type_id = cta.call_type_id
6988 and sc.is_weekend = cta.is_weekend
6989 and sc.period_offset = cta.period_offset
6990 and sc.calendar_schedule_id = cta.calendar_schedule_id
6991 set cta.assignments_count = cta.assignments_count + 1
6992 where
6993 sc.schedule_on = '2018-09-09'
6994 and sc.call_type_id = 10167
6995 and sc.staff_id = 17213
6996
6997 (119.7ms) insert into buffer_call_type_assignments_1913539992 (
6998 staff_id,
6999 call_type_id,
7000 is_weekend,
7001 period_offset,
7002 calendar_schedule_id,
7003 assignments_count
7004 )
7005 select
7006 sc.staff_id,
7007 sc.call_type_id,
7008 sc.is_weekend,
7009 sc.period_offset,
7010 sc.calendar_schedule_id,
7011 1 as assignments_count
7012 from buffer_schedules_1913539992 as sc
7013 where
7014 sc.staff_id = 17213
7015 and sc.schedule_on = '2018-09-09'
7016 and sc.call_type_id = 10167
7017
7018 (120.3ms) /* UnassignedDaysRule */
7019 delete from buffer_linkage_assigned_days_1913539992
7020 where linkage_instance_id = 14201835
7021
7022 (125.7ms) /* UnassignedDaysRule */
7023 UPDATE buffer_staff_assigned_days_1913539992 as sad
7024 inner join call_types as ct
7025 on ct.id = 10167
7026 and ct.unassigned_day = 0
7027 SET sad.is_assigned = 1
7028 WHERE sad.staff_id = 17213
7029 AND sad.schedule_on = '2018-09-09'
7030
7031 (130.4ms) truncate table buffer_tmp_targets_scheduled_1913539992
7032
7033 (128.9ms) insert into buffer_tmp_targets_scheduled_1913539992 (
7034 block_id,
7035 calendar_schedule_id,
7036 staff_id,
7037 assignment_id,
7038 assignment_type,
7039 day_of_week_mask,
7040 is_weekend,
7041 scheduled,
7042 other_scheduled
7043 )
7044 select
7045 pt.block_id,
7046 pt.calendar_schedule_id,
7047 pt.staff_id,
7048 0 as assignment_id,
7049 '' as assignment_type,
7050 0 as day_of_week_mask,
7051 pt.is_weekend,
7052 case
7053 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
7054 else 0.0
7055 end as scheduled,
7056 case
7057 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
7058 else 0.0
7059 end as other_scheduled
7060 from
7061 buffer_schedules_1913539992 as sc
7062 inner join buffer_counter_increments_1913539992 as ci
7063 on sc.id = ci.schedule_id
7064 and ci.points != 0
7065 inner join assign_staff_types as ast
7066 on sc.staff_id = ast.staff_id
7067 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
7068 inner join staff_types as st
7069 on ast.staff_type_id = st.id
7070 inner join buffer_point_targets_1913539992 as pt
7071 on sc.block_id = pt.block_id
7072 and st.point_hour_schedule_id = pt.calendar_schedule_id
7073 and sc.staff_id = pt.staff_id
7074 and sc.is_weekend = pt.is_weekend
7075 where
7076 sc.schedule_on = '2018-09-09'
7077 and sc.call_type_id = 10167
7078 and sc.staff_id = 17213
7079 order by null
7080
7081 (123.1ms) select 1 from buffer_tmp_targets_scheduled_1913539992
7082
7083 (119.3ms) update
7084 buffer_tmp_targets_scheduled_1913539992 as sch_t
7085 inner join buffer_point_targets_1913539992 as pt
7086 on sch_t.block_id = pt.block_id
7087 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
7088 and sch_t.staff_id = pt.staff_id
7089 and sch_t.is_weekend = pt.is_weekend
7090 set
7091 pt.scheduled = pt.scheduled + sch_t.scheduled,
7092 pt.scheduled_delta = sch_t.scheduled,
7093 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
7094 pt.other_scheduled_delta = sch_t.other_scheduled
7095
7096 (123.1ms) select 1 from buffer_tmp_targets_scheduled_1913539992
7097 where other_scheduled != 0
7098
7099 (125.5ms) update
7100 buffer_current_point_targets_1913539992 as cr_pt
7101 inner join (
7102 select
7103 pt.staff_id,
7104 part_of_week.is_weekend,
7105 td.period_offset,
7106 pt.calendar_schedule_id,
7107 sum(pt.raw_target_delta) as raw_target_delta,
7108 sum(pt.target_delta) as adjusted_target_delta,
7109 sum(pt.scheduled_delta) as scheduled_delta,
7110 sum(pt.other_scheduled_delta) as other_scheduled_delta
7111 from
7112 buffer_tmp_targets_scheduled_1913539992 as sch_t
7113 inner join buffer_target_dates as td
7114 on td.session_id = 1913539992
7115 and sch_t.block_id = td.block_id
7116 and sch_t.calendar_schedule_id = td.calendar_schedule_id
7117 inner join buffer_point_targets_1913539992 as pt
7118 on sch_t.block_id = pt.block_id
7119 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
7120 and (
7121 sch_t.staff_id = pt.staff_id
7122 or sch_t.other_scheduled != 0
7123 )
7124 and sch_t.is_weekend = pt.is_weekend
7125 inner join (
7126 select 0 as is_weekend
7127 union select 1
7128
7129 ) as part_of_week
7130 on sch_t.is_weekend = part_of_week.is_weekend
7131 or part_of_week.is_weekend = -1
7132 group by
7133 pt.staff_id,
7134 part_of_week.is_weekend,
7135 td.period_offset,
7136 pt.calendar_schedule_id
7137 order by null
7138 ) as pt
7139 on cr_pt.staff_id = pt.staff_id
7140 and cr_pt.is_weekend = pt.is_weekend
7141 and cr_pt.period_offset = pt.period_offset
7142 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
7143 set
7144 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
7145 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
7146 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
7147 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
7148
7149 (126.0ms) update
7150 buffer_cumulative_point_targets_1913539992 as cu_pt
7151 inner join (
7152 select
7153 pt.staff_id,
7154 part_of_week.is_weekend,
7155 pt.calendar_schedule_id,
7156 sum(pt.raw_target_delta) as raw_target_delta,
7157 sum(pt.target_delta) as adjusted_target_delta,
7158 sum(pt.scheduled_delta) as scheduled_delta,
7159 sum(pt.other_scheduled_delta) as other_scheduled_delta
7160 from
7161 buffer_tmp_targets_scheduled_1913539992 as sch_t
7162 inner join buffer_target_dates as td
7163 on td.session_id = 1913539992
7164 and sch_t.block_id = td.block_id
7165 and sch_t.calendar_schedule_id = td.calendar_schedule_id
7166 and td.within_cumulative_period = 1
7167 inner join buffer_point_targets_1913539992 as pt
7168 on sch_t.block_id = pt.block_id
7169 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
7170 and (
7171 sch_t.staff_id = pt.staff_id
7172 or sch_t.other_scheduled != 0
7173 )
7174 and sch_t.is_weekend = pt.is_weekend
7175 inner join (
7176 select 0 as is_weekend
7177 union select 1
7178
7179 ) as part_of_week
7180 on sch_t.is_weekend = part_of_week.is_weekend
7181 or part_of_week.is_weekend = -1
7182 group by
7183 pt.staff_id,
7184 part_of_week.is_weekend,
7185 pt.calendar_schedule_id
7186 order by null
7187 ) as pt
7188 on cu_pt.staff_id = pt.staff_id
7189 and cu_pt.is_weekend = pt.is_weekend
7190 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
7191 set
7192 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
7193 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
7194 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
7195 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
7196
7197 (121.4ms) update
7198 buffer_tmp_targets_scheduled_1913539992 as sch_t
7199 inner join buffer_point_targets_1913539992 as pt
7200 on sch_t.block_id = pt.block_id
7201 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
7202 and (
7203 sch_t.staff_id = pt.staff_id
7204 or sch_t.other_scheduled != 0
7205 )
7206 and sch_t.is_weekend = pt.is_weekend
7207 set
7208 pt.raw_target_delta = 0,
7209 pt.target_delta = 0,
7210 pt.scheduled_delta = 0,
7211 pt.other_scheduled_delta = 0
7212
7213 (125.5ms) /* AssignmentLimitsPerPeriod */
7214 /* Unique Key: assignment_limit_id, staff_id, start_date */
7215 insert into buffer_staff_assignments_count_periods_1913539992 (
7216 assignment_limit_id, staff_id, start_date, end_date, assignments_count
7217 )
7218 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
7219 1 as assignments_count
7220 from buffer_schedules_1913539992 as sc
7221 inner join buffer_assignment_limit_call_types_1913539992 as alct
7222 on sc.call_type_id = alct.call_type_id
7223 inner join assignment_limits as al
7224 on alct.assignment_limit_id = al.id
7225 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
7226 and al.max_per_period_limit is not null
7227 inner join assign_staff_types as ast
7228 on sc.staff_id = ast.staff_id
7229 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
7230 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7231 on alct.assignment_limit_id = alst.assignment_limit_id
7232 and ast.staff_type_id = alst.staff_type_id
7233 inner join (
7234 select assignment_limit_id, start_date, end_date
7235 from buffer_linkage_assignments_count_periods_1913539992
7236 group by assignment_limit_id, start_date, end_date
7237 order by null
7238 ) as lac
7239 on alct.assignment_limit_id = lac.assignment_limit_id
7240 and sc.schedule_on between lac.start_date and lac.end_date
7241 where sc.schedule_on = '2018-09-09'
7242 and sc.call_type_id = 10167
7243 and sc.staff_id = 17213
7244 on duplicate key update
7245 assignments_count = assignments_count + 1
7246
7247 (123.4ms) /* AssignmentLimitsPerWeek */
7248 /* Unique Key: assignment_limit_id, staff_id, start_date */
7249 insert into buffer_staff_assignments_count_weeks_1913539992 (
7250 assignment_limit_id, staff_id, start_date, end_date, assignments_count
7251 )
7252 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
7253 1 as assignments_count
7254 from buffer_schedules_1913539992 as sc
7255 inner join buffer_assignment_limit_call_types_1913539992 as alct
7256 on sc.call_type_id = alct.call_type_id
7257 inner join assignment_limits as al
7258 on alct.assignment_limit_id = al.id
7259 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
7260 and al.max_weekly_limit is not null
7261 inner join assign_staff_types as ast
7262 on sc.staff_id = ast.staff_id
7263 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
7264 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7265 on alct.assignment_limit_id = alst.assignment_limit_id
7266 and ast.staff_type_id = alst.staff_type_id
7267 inner join (
7268 select assignment_limit_id, start_date, end_date
7269 from buffer_linkage_assignments_count_weeks_1913539992
7270 group by assignment_limit_id, start_date, end_date
7271 order by null
7272 ) as lac
7273 on alct.assignment_limit_id = lac.assignment_limit_id
7274 and sc.schedule_on between lac.start_date and lac.end_date
7275 where sc.schedule_on = '2018-09-09'
7276 and sc.call_type_id = 10167
7277 and sc.staff_id = 17213
7278 on duplicate key update
7279 assignments_count = assignments_count + 1
7280
7281 (124.7ms) /* AssignmentLimitsRolling */
7282 /* Unique Key: assignment_limit_id, staff_id, start_date */
7283 insert into buffer_staff_assignments_count_rolling_1913539992 (
7284 assignment_limit_id, staff_id, start_date, end_date, assignments_count
7285 )
7286 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
7287 1 as assignments_count
7288 from buffer_schedules_1913539992 as sc
7289 inner join buffer_assignment_limit_call_types_1913539992 as alct
7290 on sc.call_type_id = alct.call_type_id
7291 inner join assignment_limits as al
7292 on alct.assignment_limit_id = al.id
7293 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
7294 and al.max_rolling_period is not null
7295 and al.max_rolling_limit is not null
7296 inner join assign_staff_types as ast
7297 on sc.staff_id = ast.staff_id
7298 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
7299 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7300 on alct.assignment_limit_id = alst.assignment_limit_id
7301 and ast.staff_type_id = alst.staff_type_id
7302 inner join (
7303 select assignment_limit_id, start_date, end_date
7304 from buffer_linkage_assignments_count_rolling_1913539992
7305 group by assignment_limit_id, start_date, end_date
7306 order by null
7307 ) as lac
7308 on alct.assignment_limit_id = lac.assignment_limit_id
7309 and sc.schedule_on between lac.start_date and lac.end_date
7310 where sc.schedule_on = '2018-09-09'
7311 and sc.call_type_id = 10167
7312 and sc.staff_id = 17213
7313 on duplicate key update
7314 assignments_count = assignments_count + 1
7315
7316 (119.1ms) /* AssignmentLimitsConsecutive */
7317 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
7318 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
7319 assignment_limit_id, staff_id, schedule_on, start_date, end_date
7320 )
7321 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
7322 from buffer_schedules_1913539992 as sc
7323 inner join buffer_assignment_limit_call_types_1913539992 as alct
7324 on sc.call_type_id = alct.call_type_id
7325 inner join assignment_limits as al
7326 on alct.assignment_limit_id = al.id
7327 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
7328 and al.max_consecutive_limit is not null
7329 inner join assign_staff_types as ast
7330 on sc.staff_id = ast.staff_id
7331 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
7332 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7333 on alct.assignment_limit_id = alst.assignment_limit_id
7334 and ast.staff_type_id = alst.staff_type_id
7335 inner join (
7336 select assignment_limit_id, start_date, end_date
7337 from buffer_linkage_assignments_count_consecutive_1913539992
7338 group by assignment_limit_id, start_date, end_date
7339 order by null
7340 ) as lac
7341 on alct.assignment_limit_id = lac.assignment_limit_id
7342 and sc.schedule_on between lac.start_date and lac.end_date
7343 where sc.schedule_on = '2018-09-09'
7344 and sc.call_type_id = 10167
7345 and sc.staff_id = 17213
7346
7347 (124.1ms) UPDATE buffer_schedules_1913539992
7348 SET staff_id = 17213,
7349 should_be_populated = 0,
7350 should_be_evaluated = 0
7351 WHERE
7352 call_type_id = 10960
7353 AND schedule_on = '2018-09-10'
7354
7355 (124.2ms) delete from buffer_combined_availabilities_1913539992
7356 where linkage_instance_id = 14201835
7357
7358 (117.1ms) UPDATE buffer_rule_calc_schedules_1913539992
7359 SET staff_id = 17213
7360 WHERE call_type_id = 10960
7361 AND schedule_on = '2018-09-10'
7362
7363 (122.8ms) INSERT INTO buffer_rule_calc_schedules_1913539992
7364 SET staff_id = 17213,
7365 call_type_id = 10960,
7366 schedule_on = '2018-09-10',
7367 day_of_week_mask = 2
7368
7369 (120.9ms) /* NegativeLinkRule */
7370 UPDATE buffer_negative_relations_1913539992
7371 SET staff_id = 17213
7372 WHERE affected_by_schedule_id = (
7373 SELECT id
7374 FROM buffer_schedules_1913539992
7375 WHERE schedule_on = '2018-09-10'
7376 AND call_type_id = 10960
7377 )
7378
7379 (120.2ms) /* SpecializationOverlapRule */
7380 update buffer_staff_specializations_1913539992 as st_sp
7381 inner join max_applicable_call_types as mact
7382 on st_sp.specialization_id = mact.specialization_id
7383 and mact.call_type_id = 10960
7384 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
7385 on st_sp.specialization_id = sp_dc.specialization_id
7386 and sp_dc.staff_id is null
7387 and sp_dc.schedule_on = '2018-09-10'
7388 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
7389 on st_sp.specialization_id = sp_dc_2.specialization_id
7390 and st_sp.staff_id = sp_dc_2.staff_id
7391 and sp_dc_2.schedule_on = '2018-09-10'
7392 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
7393 where st_sp.staff_id = 17213
7394 and sp_dc_2.id is null
7395
7396 (122.7ms) insert into buffer_specialization_daily_counts_1913539992 (
7397 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
7398 )
7399 select sp.id as specialization_id,
7400 17213 as staff_id,
7401 '2018-09-10' as schedule_on,
7402 1 as staffs_scheduled,
7403 sp.max_scheduled,
7404 sp_dc.should_be_evaluated
7405 from buffer_staff_specializations_1913539992 as st_sp
7406 inner join specializations as sp
7407 on st_sp.specialization_id = sp.id
7408 inner join max_applicable_call_types as mact
7409 on st_sp.specialization_id = mact.specialization_id
7410 and mact.call_type_id = 10960
7411 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
7412 on st_sp.specialization_id = sp_dc.specialization_id
7413 and sp_dc.staff_id is null
7414 and sp_dc.schedule_on = '2018-09-10'
7415 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
7416 on st_sp.specialization_id = sp_dc_2.specialization_id
7417 and st_sp.staff_id = sp_dc_2.staff_id
7418 and sp_dc_2.schedule_on = '2018-09-10'
7419 where st_sp.staff_id = 17213
7420 and sp_dc_2.id is null
7421
7422 (124.4ms) /* MaxAssignmentsRule */
7423 delete from buffer_linkage_call_type_assignments_1913539992
7424 where linkage_instance_id = 14201835;
7425
7426 (119.0ms) /* MaxAssignmentsRule */
7427 update
7428 buffer_schedules_1913539992 as sc
7429 inner join call_types as ct
7430 on sc.call_type_id = ct.id
7431 and ct.active = 1
7432 inner join buffer_call_type_assignments_1913539992 as cta
7433 on sc.staff_id = cta.staff_id
7434 and sc.call_type_id = cta.call_type_id
7435 and sc.is_weekend = cta.is_weekend
7436 and sc.period_offset = cta.period_offset
7437 and sc.calendar_schedule_id = cta.calendar_schedule_id
7438 set cta.assignments_count = cta.assignments_count + 1
7439 where
7440 sc.schedule_on = '2018-09-10'
7441 and sc.call_type_id = 10960
7442 and sc.staff_id = 17213
7443
7444 (126.6ms) insert into buffer_call_type_assignments_1913539992 (
7445 staff_id,
7446 call_type_id,
7447 is_weekend,
7448 period_offset,
7449 calendar_schedule_id,
7450 assignments_count
7451 )
7452 select
7453 sc.staff_id,
7454 sc.call_type_id,
7455 sc.is_weekend,
7456 sc.period_offset,
7457 sc.calendar_schedule_id,
7458 1 as assignments_count
7459 from buffer_schedules_1913539992 as sc
7460 where
7461 sc.staff_id = 17213
7462 and sc.schedule_on = '2018-09-10'
7463 and sc.call_type_id = 10960
7464
7465 (123.2ms) /* UnassignedDaysRule */
7466 delete from buffer_linkage_assigned_days_1913539992
7467 where linkage_instance_id = 14201835
7468
7469 (117.0ms) /* UnassignedDaysRule */
7470 UPDATE buffer_staff_assigned_days_1913539992 as sad
7471 inner join call_types as ct
7472 on ct.id = 10960
7473 and ct.unassigned_day = 0
7474 SET sad.is_assigned = 1
7475 WHERE sad.staff_id = 17213
7476 AND sad.schedule_on = '2018-09-10'
7477
7478 (124.5ms) truncate table buffer_tmp_targets_scheduled_1913539992
7479
7480 (124.0ms) insert into buffer_tmp_targets_scheduled_1913539992 (
7481 block_id,
7482 calendar_schedule_id,
7483 staff_id,
7484 assignment_id,
7485 assignment_type,
7486 day_of_week_mask,
7487 is_weekend,
7488 scheduled,
7489 other_scheduled
7490 )
7491 select
7492 pt.block_id,
7493 pt.calendar_schedule_id,
7494 pt.staff_id,
7495 0 as assignment_id,
7496 '' as assignment_type,
7497 0 as day_of_week_mask,
7498 pt.is_weekend,
7499 case
7500 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
7501 else 0.0
7502 end as scheduled,
7503 case
7504 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
7505 else 0.0
7506 end as other_scheduled
7507 from
7508 buffer_schedules_1913539992 as sc
7509 inner join buffer_counter_increments_1913539992 as ci
7510 on sc.id = ci.schedule_id
7511 and ci.points != 0
7512 inner join assign_staff_types as ast
7513 on sc.staff_id = ast.staff_id
7514 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
7515 inner join staff_types as st
7516 on ast.staff_type_id = st.id
7517 inner join buffer_point_targets_1913539992 as pt
7518 on sc.block_id = pt.block_id
7519 and st.point_hour_schedule_id = pt.calendar_schedule_id
7520 and sc.staff_id = pt.staff_id
7521 and sc.is_weekend = pt.is_weekend
7522 where
7523 sc.schedule_on = '2018-09-10'
7524 and sc.call_type_id = 10960
7525 and sc.staff_id = 17213
7526 order by null
7527
7528 (117.4ms) select 1 from buffer_tmp_targets_scheduled_1913539992
7529
7530 (127.5ms) /* AssignmentLimitsPerPeriod */
7531 /* Unique Key: assignment_limit_id, staff_id, start_date */
7532 insert into buffer_staff_assignments_count_periods_1913539992 (
7533 assignment_limit_id, staff_id, start_date, end_date, assignments_count
7534 )
7535 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
7536 1 as assignments_count
7537 from buffer_schedules_1913539992 as sc
7538 inner join buffer_assignment_limit_call_types_1913539992 as alct
7539 on sc.call_type_id = alct.call_type_id
7540 inner join assignment_limits as al
7541 on alct.assignment_limit_id = al.id
7542 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
7543 and al.max_per_period_limit is not null
7544 inner join assign_staff_types as ast
7545 on sc.staff_id = ast.staff_id
7546 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
7547 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7548 on alct.assignment_limit_id = alst.assignment_limit_id
7549 and ast.staff_type_id = alst.staff_type_id
7550 inner join (
7551 select assignment_limit_id, start_date, end_date
7552 from buffer_linkage_assignments_count_periods_1913539992
7553 group by assignment_limit_id, start_date, end_date
7554 order by null
7555 ) as lac
7556 on alct.assignment_limit_id = lac.assignment_limit_id
7557 and sc.schedule_on between lac.start_date and lac.end_date
7558 where sc.schedule_on = '2018-09-10'
7559 and sc.call_type_id = 10960
7560 and sc.staff_id = 17213
7561 on duplicate key update
7562 assignments_count = assignments_count + 1
7563
7564 (123.8ms) /* AssignmentLimitsPerWeek */
7565 /* Unique Key: assignment_limit_id, staff_id, start_date */
7566 insert into buffer_staff_assignments_count_weeks_1913539992 (
7567 assignment_limit_id, staff_id, start_date, end_date, assignments_count
7568 )
7569 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
7570 1 as assignments_count
7571 from buffer_schedules_1913539992 as sc
7572 inner join buffer_assignment_limit_call_types_1913539992 as alct
7573 on sc.call_type_id = alct.call_type_id
7574 inner join assignment_limits as al
7575 on alct.assignment_limit_id = al.id
7576 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
7577 and al.max_weekly_limit is not null
7578 inner join assign_staff_types as ast
7579 on sc.staff_id = ast.staff_id
7580 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
7581 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7582 on alct.assignment_limit_id = alst.assignment_limit_id
7583 and ast.staff_type_id = alst.staff_type_id
7584 inner join (
7585 select assignment_limit_id, start_date, end_date
7586 from buffer_linkage_assignments_count_weeks_1913539992
7587 group by assignment_limit_id, start_date, end_date
7588 order by null
7589 ) as lac
7590 on alct.assignment_limit_id = lac.assignment_limit_id
7591 and sc.schedule_on between lac.start_date and lac.end_date
7592 where sc.schedule_on = '2018-09-10'
7593 and sc.call_type_id = 10960
7594 and sc.staff_id = 17213
7595 on duplicate key update
7596 assignments_count = assignments_count + 1
7597
7598 (122.1ms) /* AssignmentLimitsRolling */
7599 /* Unique Key: assignment_limit_id, staff_id, start_date */
7600 insert into buffer_staff_assignments_count_rolling_1913539992 (
7601 assignment_limit_id, staff_id, start_date, end_date, assignments_count
7602 )
7603 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
7604 1 as assignments_count
7605 from buffer_schedules_1913539992 as sc
7606 inner join buffer_assignment_limit_call_types_1913539992 as alct
7607 on sc.call_type_id = alct.call_type_id
7608 inner join assignment_limits as al
7609 on alct.assignment_limit_id = al.id
7610 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
7611 and al.max_rolling_period is not null
7612 and al.max_rolling_limit is not null
7613 inner join assign_staff_types as ast
7614 on sc.staff_id = ast.staff_id
7615 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
7616 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7617 on alct.assignment_limit_id = alst.assignment_limit_id
7618 and ast.staff_type_id = alst.staff_type_id
7619 inner join (
7620 select assignment_limit_id, start_date, end_date
7621 from buffer_linkage_assignments_count_rolling_1913539992
7622 group by assignment_limit_id, start_date, end_date
7623 order by null
7624 ) as lac
7625 on alct.assignment_limit_id = lac.assignment_limit_id
7626 and sc.schedule_on between lac.start_date and lac.end_date
7627 where sc.schedule_on = '2018-09-10'
7628 and sc.call_type_id = 10960
7629 and sc.staff_id = 17213
7630 on duplicate key update
7631 assignments_count = assignments_count + 1
7632
7633 (122.1ms) /* AssignmentLimitsConsecutive */
7634 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
7635 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
7636 assignment_limit_id, staff_id, schedule_on, start_date, end_date
7637 )
7638 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
7639 from buffer_schedules_1913539992 as sc
7640 inner join buffer_assignment_limit_call_types_1913539992 as alct
7641 on sc.call_type_id = alct.call_type_id
7642 inner join assignment_limits as al
7643 on alct.assignment_limit_id = al.id
7644 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
7645 and al.max_consecutive_limit is not null
7646 inner join assign_staff_types as ast
7647 on sc.staff_id = ast.staff_id
7648 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
7649 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7650 on alct.assignment_limit_id = alst.assignment_limit_id
7651 and ast.staff_type_id = alst.staff_type_id
7652 inner join (
7653 select assignment_limit_id, start_date, end_date
7654 from buffer_linkage_assignments_count_consecutive_1913539992
7655 group by assignment_limit_id, start_date, end_date
7656 order by null
7657 ) as lac
7658 on alct.assignment_limit_id = lac.assignment_limit_id
7659 and sc.schedule_on between lac.start_date and lac.end_date
7660 where sc.schedule_on = '2018-09-10'
7661 and sc.call_type_id = 10960
7662 and sc.staff_id = 17213
7663
7664INFO : (05-29 13:27:44) scheduled for: plan unit: [id:14201835] [2018-09-07 - CHDay], [2018-09-07 - CHCall], [2018-09-08 - CHCall2], [2018-09-09 - CHCall], [2018-09-10 - CHDay 4], Stephanie Hughes. DEPTH(1)
7665 (128.3ms) select
7666 coalesce(max(
7667 case
7668 when (ct.max_weekday_assignments > 0) then 1
7669 else 0
7670 end
7671 ), 0) as weekday_flag,
7672 coalesce(max(
7673 case
7674 when (ct.max_weekend_assignments > 0) then 1
7675 else 0
7676 end
7677 ), 0) as weekend_flag
7678 from
7679 buffer_auto_populate_slots_1913539992 as aps
7680 inner join call_types as ct
7681 on aps.call_type_id = ct.id
7682
7683 (122.2ms) delete ca
7684 from buffer_combined_availabilities_1913539992 as ca
7685 inner join (
7686 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
7687 sum(lac.assignments_count) as assignments_count
7688 from (
7689 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
7690 from buffer_combined_availabilities_1913539992 as ca
7691 inner join buffer_schedules_1913539992 as sc
7692 on ca.schedule_id = sc.id
7693 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
7694 order by null
7695 ) as ca_sc
7696 inner join buffer_linkage_assignments_count_weeks_1913539992 as lac
7697 on ca_sc.linkage_instance_id = lac.linkage_instance_id
7698 and ca_sc.schedule_on = lac.schedule_on
7699 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7700 on lac.assignment_limit_id = alst.assignment_limit_id
7701 and ca_sc.staff_type_id = alst.staff_type_id
7702 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
7703 order by null
7704 ) as lac
7705 on ca.linkage_instance_id = lac.linkage_instance_id
7706 and ca.staff_id = lac.staff_id
7707 inner join assignment_limits as al
7708 on lac.assignment_limit_id = al.id
7709 left join buffer_staff_assignments_count_weeks_1913539992 as sac
7710 on lac.assignment_limit_id = sac.assignment_limit_id
7711 and lac.staff_id = sac.staff_id
7712 and lac.start_date = sac.start_date
7713 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_weekly_limit
7714
7715 (122.3ms) delete ca
7716 from buffer_combined_availabilities_1913539992 as ca
7717 inner join (
7718 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
7719 count(distinct if(sac.id is null, lac.schedule_on, null)) as assignments_count
7720 from (
7721 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
7722 from buffer_combined_availabilities_1913539992 as ca
7723 inner join buffer_schedules_1913539992 as sc
7724 on ca.schedule_id = sc.id
7725 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
7726 order by null
7727 ) as ca_sc
7728 inner join buffer_linkage_assignments_count_consecutive_1913539992 as lac
7729 on ca_sc.linkage_instance_id = lac.linkage_instance_id
7730 and ca_sc.schedule_on = lac.schedule_on
7731 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7732 on lac.assignment_limit_id = alst.assignment_limit_id
7733 and ca_sc.staff_type_id = alst.staff_type_id
7734 left join buffer_staff_assignments_count_consecutive_1913539992 as sac
7735 on lac.assignment_limit_id = sac.assignment_limit_id
7736 and ca_sc.staff_id = sac.staff_id
7737 and lac.schedule_on = sac.schedule_on
7738 and lac.start_date = sac.start_date
7739 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
7740 order by null
7741 ) as lac
7742 on ca.linkage_instance_id = lac.linkage_instance_id
7743 and ca.staff_id = lac.staff_id
7744 inner join assignment_limits as al
7745 on lac.assignment_limit_id = al.id
7746 left join (
7747 select assignment_limit_id, staff_id, start_date,
7748 count(schedule_on) as assignments_count
7749 from buffer_staff_assignments_count_consecutive_1913539992
7750 group by assignment_limit_id, staff_id, start_date
7751 ) as sac
7752 on lac.assignment_limit_id = sac.assignment_limit_id
7753 and lac.staff_id = sac.staff_id
7754 and lac.start_date = sac.start_date
7755 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_consecutive_limit
7756
7757 (123.0ms) delete ca
7758 from buffer_combined_availabilities_1913539992 as ca
7759 inner join (
7760 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
7761 sum(lac.assignments_count) as assignments_count
7762 from (
7763 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
7764 from buffer_combined_availabilities_1913539992 as ca
7765 inner join buffer_schedules_1913539992 as sc
7766 on ca.schedule_id = sc.id
7767 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
7768 order by null
7769 ) as ca_sc
7770 inner join buffer_linkage_assignments_count_periods_1913539992 as lac
7771 on ca_sc.linkage_instance_id = lac.linkage_instance_id
7772 and ca_sc.schedule_on = lac.schedule_on
7773 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7774 on lac.assignment_limit_id = alst.assignment_limit_id
7775 and ca_sc.staff_type_id = alst.staff_type_id
7776 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
7777 order by null
7778 ) as lac
7779 on ca.linkage_instance_id = lac.linkage_instance_id
7780 and ca.staff_id = lac.staff_id
7781 inner join assignment_limits as al
7782 on lac.assignment_limit_id = al.id
7783 left join buffer_staff_assignments_count_periods_1913539992 as sac
7784 on lac.assignment_limit_id = sac.assignment_limit_id
7785 and lac.staff_id = sac.staff_id
7786 and lac.start_date = sac.start_date
7787 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_per_period_limit
7788
7789 (239.4ms) delete ca
7790 from buffer_combined_availabilities_1913539992 as ca
7791 inner join (
7792 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
7793 sum(lac.assignments_count) as assignments_count
7794 from (
7795 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
7796 from buffer_combined_availabilities_1913539992 as ca
7797 inner join buffer_schedules_1913539992 as sc
7798 on ca.schedule_id = sc.id
7799 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
7800 order by null
7801 ) as ca_sc
7802 inner join buffer_linkage_assignments_count_rolling_1913539992 as lac
7803 on ca_sc.linkage_instance_id = lac.linkage_instance_id
7804 and ca_sc.schedule_on = lac.schedule_on
7805 inner join buffer_assignment_limit_staff_types_1913539992 as alst
7806 on lac.assignment_limit_id = alst.assignment_limit_id
7807 and ca_sc.staff_type_id = alst.staff_type_id
7808 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
7809 order by null
7810 ) as lac
7811 on ca.linkage_instance_id = lac.linkage_instance_id
7812 and ca.staff_id = lac.staff_id
7813 inner join assignment_limits as al
7814 on lac.assignment_limit_id = al.id
7815 left join buffer_staff_assignments_count_rolling_1913539992 as sac
7816 on lac.assignment_limit_id = sac.assignment_limit_id
7817 and lac.staff_id = sac.staff_id
7818 and lac.start_date = sac.start_date
7819 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_rolling_limit
7820
7821 (123.0ms) /* NegativeLinkRule */
7822 delete ca
7823 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
7824 inner join buffer_negative_relations_1913539992 as nr use index (ix_buffer_negative_relations_composite_1)
7825 on ca.schedule_id = nr.schedule_id
7826 and ca.staff_id = nr.staff_id
7827
7828 (122.4ms) /* SpecializationOverlapRule */
7829 delete ca
7830 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
7831 inner join buffer_schedules_1913539992 as sc
7832 on ca.schedule_id = sc.id
7833 inner join buffer_staff_specializations_1913539992 as ssp
7834 on ca.staff_id = ssp.staff_id
7835 inner join max_applicable_call_types as mact
7836 on ssp.specialization_id = mact.specialization_id
7837 and sc.call_type_id = mact.call_type_id
7838 inner join buffer_specialization_daily_counts_1913539992 as sdc use index (ix_buffer_specialization_daily_counts_composite_1)
7839 on ssp.specialization_id = sdc.specialization_id
7840 and sc.schedule_on = sdc.schedule_on
7841 and sdc.staff_id is null
7842 left join buffer_specialization_daily_counts_1913539992 as sdc_2 use index (ix_buffer_specialization_daily_counts_composite_1)
7843 on ssp.specialization_id = sdc_2.specialization_id
7844 and sc.schedule_on = sdc_2.schedule_on
7845 and ca.staff_id = sdc_2.staff_id
7846 where sdc.should_be_evaluated = 1
7847 and (sdc.staffs_scheduled + if(sdc_2.id is null, 1, 0)) > sdc.max_scheduled
7848
7849 (124.7ms) /* BrokenLinkageRule */
7850 truncate table buffer_combined_availability_linkages_1913539992
7851
7852 (127.4ms) insert into buffer_combined_availability_linkages_1913539992 (
7853 staff_id,
7854 linkage_instance_id,
7855 slots_count,
7856 is_primary,
7857 has_violations
7858 )
7859 select
7860 staff_id,
7861 linkage_instance_id,
7862 count(1) as slots_count,
7863 min(is_primary) as is_primary,
7864 max(has_violations) as has_violations
7865 from buffer_combined_availabilities_1913539992 use index (ix_buffer_combined_availabilities_composite_2)
7866 group by
7867 staff_id,
7868 linkage_instance_id
7869 order by null
7870
7871 (128.9ms) delete ca
7872 from
7873 buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
7874 inner join buffer_schedules_1913539992 as sc
7875 on ca.schedule_id = sc.id
7876 inner join buffer_linkages_1913539992 as l
7877 on sc.linkage_instance_id = l.linkage_instance_id
7878 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
7879 on ca.staff_id = ls_1.staff_id
7880 and sc.linkage_instance_id = ls_1.linkage_instance_id
7881 left join buffer_schedule_linkages_1913539992 as ls_2 use index (ix_buffer_schedule_linkages_composite_1)
7882 on ca.staff_id = ls_2.staff_id
7883 and sc.linkage_instance_id = ls_2.linkage_instance_id
7884 where (ls_1.slots_count + coalesce(ls_2.slots_count, 0)) < l.slots_count_total /* not covering the whole chain */;
7885
7886 (152.0ms) select straight_join
7887 sc.schedule_on,
7888 sc.call_type_id,
7889 count(distinct ca.staff_id) as available_members_count,
7890 group_concat(
7891 distinct concat(if(ls_1.is_primary = 1, 'p', 's'), ca.staff_id)
7892 order by ls_1.is_primary desc, ca.staff_id
7893 separator ', '
7894 ) as available_members_ids,
7895 sc.linkage_instance_id,
7896 l.slots_count_total as linkage_slots_count
7897 from buffer_combined_availabilities_1913539992 as ca
7898 inner join buffer_schedules_1913539992 as sc
7899 on ca.schedule_id = sc.id
7900 inner join buffer_linkages_1913539992 as l
7901 on sc.linkage_instance_id = l.linkage_instance_id
7902 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
7903 on ca.staff_id = ls_1.staff_id
7904 and sc.linkage_instance_id = ls_1.linkage_instance_id
7905 and ls_1.has_violations = 0
7906 where sc.should_be_evaluated = 1
7907 and sc.should_be_populated = 1
7908 group by sc.schedule_on, sc.call_type_id, sc.linkage_instance_id, l.slots_count_total
7909 order by available_members_count, sc.schedule_on, sc.display_order
7910 limit 1
7911
7912 (124.1ms) truncate table buffer_rule_scores_1913539992
7913
7914 (124.7ms) truncate table buffer_rule_calc_filters_1913539992
7915
7916 (120.1ms) insert into buffer_rule_calc_filters_1913539992 (
7917 linkage_instance_id,
7918 staff_id
7919 ) values (14201836, 17223)
7920
7921 (126.1ms) /* CallDaysRule */
7922 insert into buffer_rule_scores_1913539992 (
7923 linkage_instance_id,
7924 schedule_id,
7925 staff_id,
7926 rule_name,
7927 value
7928 )
7929 select
7930 b_schedules.linkage_instance_id,
7931 b_schedules.id as schedule_id,
7932 availabilities.staff_id,
7933 'CallDaysRule' as _rule_name,
7934 (min(abs(datediff(b_schedules.schedule_on, rc_schedules.schedule_on))) div 7) as value
7935 from
7936 buffer_rule_calc_filters_1913539992 as filters
7937 inner join buffer_schedules_1913539992 as b_schedules
7938 on filters.linkage_instance_id = b_schedules.linkage_instance_id
7939 inner join buffer_combined_availabilities_1913539992 as availabilities
7940 on b_schedules.id = availabilities.schedule_id
7941 and filters.staff_id = availabilities.staff_id
7942 left join buffer_rule_calc_schedules_1913539992 as rc_schedules
7943 on availabilities.staff_id = rc_schedules.staff_id
7944 and b_schedules.day_of_week_mask = rc_schedules.day_of_week_mask
7945 group by
7946 b_schedules.linkage_instance_id,
7947 b_schedules.id,
7948 availabilities.staff_id,
7949 _rule_name
7950 order by null
7951
7952 (122.4ms) /* CumulativePointTargetsRule */
7953 insert into buffer_rule_scores_1913539992 (
7954 linkage_instance_id,
7955 schedule_id,
7956 staff_id,
7957 rule_name,
7958 value
7959 )
7960 select
7961 b_schedules.linkage_instance_id,
7962 b_schedules.id as schedule_id,
7963 availabilities.staff_id,
7964 'CumulativePointTargetsRule' as rule_name,
7965 ((b_targets.raw_target - b_targets.scheduled) /
7966 b_targets.raw_target) as value
7967 from
7968 buffer_rule_calc_filters_1913539992 as filters
7969 inner join buffer_schedules_1913539992 as b_schedules
7970 on filters.linkage_instance_id = b_schedules.linkage_instance_id
7971 inner join buffer_combined_availabilities_1913539992 as availabilities
7972 on b_schedules.id = availabilities.schedule_id
7973 and filters.staff_id = availabilities.staff_id
7974 inner join buffer_cumulative_point_targets_1913539992 as b_targets
7975 on availabilities.staff_id = b_targets.staff_id
7976 and b_schedules.is_weekend = b_targets.is_weekend
7977 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
7978 order by null;
7979
7980 (126.4ms) /* CurrentPointTargetsRule */
7981 insert into buffer_rule_scores_1913539992 (
7982 linkage_instance_id,
7983 schedule_id,
7984 staff_id,
7985 rule_name,
7986 value
7987 )
7988 select
7989 b_schedules.linkage_instance_id,
7990 b_schedules.id as schedule_id,
7991 availabilities.staff_id,
7992 'CurrentPointTargetsRule' as rule_name,
7993 ((b_targets.adjusted_target - b_targets.scheduled) / b_targets.adjusted_target) as value
7994 from
7995 buffer_rule_calc_filters_1913539992 as filters
7996 inner join buffer_schedules_1913539992 as b_schedules
7997 on filters.linkage_instance_id = b_schedules.linkage_instance_id
7998 inner join buffer_combined_availabilities_1913539992 as availabilities
7999 on b_schedules.id = availabilities.schedule_id
8000 and filters.staff_id = availabilities.staff_id
8001 inner join buffer_current_point_targets_1913539992 as b_targets
8002 on availabilities.staff_id = b_targets.staff_id
8003 and b_schedules.is_weekend = b_targets.is_weekend
8004 and b_schedules.period_offset = b_targets.period_offset
8005 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
8006 order by null
8007
8008 (121.0ms) truncate table buffer_rule_scores_with_corrections_1913539992
8009
8010 (123.9ms) insert into buffer_rule_scores_with_corrections_1913539992 (
8011 linkage_instance_id, schedule_id, staff_id, rule_name, value
8012 )
8013 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id, rule_scores.rule_name,
8014 ifnull(rule_scores.value, max_values.max_value + 1) as value
8015 from buffer_rule_scores_1913539992 as rule_scores
8016 inner join (
8017 select rule_name, max(value) as max_value
8018 from buffer_rule_scores_1913539992
8019 group by rule_name
8020 order by null
8021 ) as max_values
8022 on rule_scores.rule_name = max_values.rule_name
8023 order by null
8024
8025 (123.7ms) select linkage_instance_id, staff_id, avg(slot_scores) as scores
8026 from (
8027 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id,
8028 sum(
8029 if((total_values.total_value > 0), (rule_scores.value / total_values.total_value), 0) *
8030 rules.weight *
8031 total_values.slots_count
8032 ) as slot_scores
8033 from buffer_rule_scores_with_corrections_1913539992 as rule_scores
8034 inner join (
8035 select rule_name, sum(abs(value)) as total_value,
8036 count(distinct schedule_id) as slots_count
8037 from buffer_rule_scores_with_corrections_1913539992
8038 group by rule_name
8039 order by null
8040 ) as total_values
8041 on rule_scores.rule_name = total_values.rule_name
8042 inner join rules
8043 on rule_scores.rule_name = rules.type
8044 where rules.rule_set_id = 1232
8045 and rules.applied = 1
8046 group by rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id
8047 order by null
8048 ) as staff_scores
8049 group by linkage_instance_id, staff_id
8050 order by round(avg(slot_scores), 5) desc, rand()
8051 limit 1
8052
8053 PublishedBlock Load (120.1ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-14' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
8054 PublishedBlockCallType Load (123.0ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10832 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
8055INFO : (05-29 13:27:48) Not creating schedule because of call type linkage behavior settings: [2018-09-14 - CHDay]
8056 PublishedBlock Load (118.5ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-14' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
8057 PublishedBlockCallType Load (135.7ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
8058 (121.7ms) BEGIN
8059 (123.9ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
8060 FROM call_types AS ct
8061 INNER JOIN calendar_schedules AS cs
8062 ON ct.calendar_schedule_id = cs.id
8063 INNER JOIN blocks AS b
8064 ON b.client_id = ct.client_id
8065 AND b.block_schedule_id = cs.block_schedule_id
8066 AND '2018-09-14' BETWEEN b.start_date AND b.end_date
8067 INNER JOIN published_blocks AS pb
8068 ON pb.client_id = ct.client_id
8069 AND pb.block_id = b.id
8070 AND pb.calendar_schedule_id = cs.id
8071 LEFT JOIN published_block_call_types AS pbct
8072 ON pbct.client_id = ct.client_id
8073 AND pbct.assignment_id = ct.id
8074 AND pbct.assignment_type = 'CallType'
8075 AND pbct.block_id = b.id
8076 AND (
8077 (1 << (DAYOFWEEK('2018-09-14') - 1) & pbct.days_of_week_mask) > 0
8078 )
8079 WHERE ct.id = 10167
8080 AND (
8081 (
8082 pb.assignment_ids IS NULL
8083 AND (1 << (DAYOFWEEK('2018-09-14') - 1) & pb.days_of_week_mask) > 0
8084 )
8085 OR pbct.id IS NOT NULL
8086 )
8087
8088 CallType Load (131.3ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
8089 Client Load (121.7ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
8090 Staff Load (118.9ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17223 LIMIT 1
8091 Schedule Exists (122.2ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-14' LIMIT 1
8092 SQL (142.6ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17223, '2018-09-14', '2018-05-29 13:27:49', '2018-05-29 13:27:49', 0, 6, 'auto_populate_step', 30093)
8093 VisibleAssignment Load (118.6ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-14' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
8094 (123.4ms) COMMIT
8095FLUSHED: nil:nil
8096 PublishedBlock Load (128.6ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-15' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
8097 PublishedBlockCallType Load (119.2ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10168 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
8098 (121.3ms) BEGIN
8099 (123.7ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
8100 FROM call_types AS ct
8101 INNER JOIN calendar_schedules AS cs
8102 ON ct.calendar_schedule_id = cs.id
8103 INNER JOIN blocks AS b
8104 ON b.client_id = ct.client_id
8105 AND b.block_schedule_id = cs.block_schedule_id
8106 AND '2018-09-15' BETWEEN b.start_date AND b.end_date
8107 INNER JOIN published_blocks AS pb
8108 ON pb.client_id = ct.client_id
8109 AND pb.block_id = b.id
8110 AND pb.calendar_schedule_id = cs.id
8111 LEFT JOIN published_block_call_types AS pbct
8112 ON pbct.client_id = ct.client_id
8113 AND pbct.assignment_id = ct.id
8114 AND pbct.assignment_type = 'CallType'
8115 AND pbct.block_id = b.id
8116 AND (
8117 (1 << (DAYOFWEEK('2018-09-15') - 1) & pbct.days_of_week_mask) > 0
8118 )
8119 WHERE ct.id = 10168
8120 AND (
8121 (
8122 pb.assignment_ids IS NULL
8123 AND (1 << (DAYOFWEEK('2018-09-15') - 1) & pb.days_of_week_mask) > 0
8124 )
8125 OR pbct.id IS NOT NULL
8126 )
8127
8128 CallType Load (121.6ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10168 LIMIT 1
8129 Client Load (118.8ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
8130 Staff Load (121.9ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17223 LIMIT 1
8131 Schedule Exists (121.6ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10168 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-15' LIMIT 1
8132 SQL (125.7ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10168, 17223, '2018-09-15', '2018-05-29 13:27:50', '2018-05-29 13:27:50', 1, 7, 'auto_populate_step', 30093)
8133 VisibleAssignment Load (117.3ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-15' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10168 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
8134 (123.2ms) COMMIT
8135FLUSHED: nil:nil
8136 PublishedBlock Load (124.6ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-16' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
8137 PublishedBlockCallType Load (123.1ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
8138 (119.0ms) BEGIN
8139 (124.8ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
8140 FROM call_types AS ct
8141 INNER JOIN calendar_schedules AS cs
8142 ON ct.calendar_schedule_id = cs.id
8143 INNER JOIN blocks AS b
8144 ON b.client_id = ct.client_id
8145 AND b.block_schedule_id = cs.block_schedule_id
8146 AND '2018-09-16' BETWEEN b.start_date AND b.end_date
8147 INNER JOIN published_blocks AS pb
8148 ON pb.client_id = ct.client_id
8149 AND pb.block_id = b.id
8150 AND pb.calendar_schedule_id = cs.id
8151 LEFT JOIN published_block_call_types AS pbct
8152 ON pbct.client_id = ct.client_id
8153 AND pbct.assignment_id = ct.id
8154 AND pbct.assignment_type = 'CallType'
8155 AND pbct.block_id = b.id
8156 AND (
8157 (1 << (DAYOFWEEK('2018-09-16') - 1) & pbct.days_of_week_mask) > 0
8158 )
8159 WHERE ct.id = 10167
8160 AND (
8161 (
8162 pb.assignment_ids IS NULL
8163 AND (1 << (DAYOFWEEK('2018-09-16') - 1) & pb.days_of_week_mask) > 0
8164 )
8165 OR pbct.id IS NOT NULL
8166 )
8167
8168 CallType Load (124.1ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
8169 Client Load (117.4ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
8170 Staff Load (123.4ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17223 LIMIT 1
8171 Schedule Exists (125.8ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-16' LIMIT 1
8172 SQL (127.2ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17223, '2018-09-16', '2018-05-29 13:27:52', '2018-05-29 13:27:52', 1, 1, 'auto_populate_step', 30093)
8173 VisibleAssignment Load (120.9ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-16' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
8174 (121.5ms) COMMIT
8175FLUSHED: nil:nil
8176 (118.8ms) UPDATE buffer_schedules_1913539992
8177 SET staff_id = 17223,
8178 should_be_populated = 0,
8179 should_be_evaluated = 0
8180 WHERE
8181 call_type_id = 10167
8182 AND schedule_on = '2018-09-14'
8183
8184 (125.0ms) delete from buffer_combined_availabilities_1913539992
8185 where linkage_instance_id = 14201836
8186
8187 (115.1ms) UPDATE buffer_rule_calc_schedules_1913539992
8188 SET staff_id = 17223
8189 WHERE call_type_id = 10167
8190 AND schedule_on = '2018-09-14'
8191
8192 (126.6ms) INSERT INTO buffer_rule_calc_schedules_1913539992
8193 SET staff_id = 17223,
8194 call_type_id = 10167,
8195 schedule_on = '2018-09-14',
8196 day_of_week_mask = 32
8197
8198 (125.7ms) /* NegativeLinkRule */
8199 UPDATE buffer_negative_relations_1913539992
8200 SET staff_id = 17223
8201 WHERE affected_by_schedule_id = (
8202 SELECT id
8203 FROM buffer_schedules_1913539992
8204 WHERE schedule_on = '2018-09-14'
8205 AND call_type_id = 10167
8206 )
8207
8208 (122.0ms) /* SpecializationOverlapRule */
8209 update buffer_staff_specializations_1913539992 as st_sp
8210 inner join max_applicable_call_types as mact
8211 on st_sp.specialization_id = mact.specialization_id
8212 and mact.call_type_id = 10167
8213 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
8214 on st_sp.specialization_id = sp_dc.specialization_id
8215 and sp_dc.staff_id is null
8216 and sp_dc.schedule_on = '2018-09-14'
8217 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
8218 on st_sp.specialization_id = sp_dc_2.specialization_id
8219 and st_sp.staff_id = sp_dc_2.staff_id
8220 and sp_dc_2.schedule_on = '2018-09-14'
8221 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
8222 where st_sp.staff_id = 17223
8223 and sp_dc_2.id is null
8224
8225 (122.5ms) insert into buffer_specialization_daily_counts_1913539992 (
8226 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
8227 )
8228 select sp.id as specialization_id,
8229 17223 as staff_id,
8230 '2018-09-14' as schedule_on,
8231 1 as staffs_scheduled,
8232 sp.max_scheduled,
8233 sp_dc.should_be_evaluated
8234 from buffer_staff_specializations_1913539992 as st_sp
8235 inner join specializations as sp
8236 on st_sp.specialization_id = sp.id
8237 inner join max_applicable_call_types as mact
8238 on st_sp.specialization_id = mact.specialization_id
8239 and mact.call_type_id = 10167
8240 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
8241 on st_sp.specialization_id = sp_dc.specialization_id
8242 and sp_dc.staff_id is null
8243 and sp_dc.schedule_on = '2018-09-14'
8244 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
8245 on st_sp.specialization_id = sp_dc_2.specialization_id
8246 and st_sp.staff_id = sp_dc_2.staff_id
8247 and sp_dc_2.schedule_on = '2018-09-14'
8248 where st_sp.staff_id = 17223
8249 and sp_dc_2.id is null
8250
8251 (124.5ms) /* MaxAssignmentsRule */
8252 delete from buffer_linkage_call_type_assignments_1913539992
8253 where linkage_instance_id = 14201836;
8254
8255 (121.4ms) /* MaxAssignmentsRule */
8256 update
8257 buffer_schedules_1913539992 as sc
8258 inner join call_types as ct
8259 on sc.call_type_id = ct.id
8260 and ct.active = 1
8261 inner join buffer_call_type_assignments_1913539992 as cta
8262 on sc.staff_id = cta.staff_id
8263 and sc.call_type_id = cta.call_type_id
8264 and sc.is_weekend = cta.is_weekend
8265 and sc.period_offset = cta.period_offset
8266 and sc.calendar_schedule_id = cta.calendar_schedule_id
8267 set cta.assignments_count = cta.assignments_count + 1
8268 where
8269 sc.schedule_on = '2018-09-14'
8270 and sc.call_type_id = 10167
8271 and sc.staff_id = 17223
8272
8273 (234.8ms) insert into buffer_call_type_assignments_1913539992 (
8274 staff_id,
8275 call_type_id,
8276 is_weekend,
8277 period_offset,
8278 calendar_schedule_id,
8279 assignments_count
8280 )
8281 select
8282 sc.staff_id,
8283 sc.call_type_id,
8284 sc.is_weekend,
8285 sc.period_offset,
8286 sc.calendar_schedule_id,
8287 1 as assignments_count
8288 from buffer_schedules_1913539992 as sc
8289 where
8290 sc.staff_id = 17223
8291 and sc.schedule_on = '2018-09-14'
8292 and sc.call_type_id = 10167
8293
8294 (122.6ms) /* UnassignedDaysRule */
8295 delete from buffer_linkage_assigned_days_1913539992
8296 where linkage_instance_id = 14201836
8297
8298 (125.5ms) /* UnassignedDaysRule */
8299 UPDATE buffer_staff_assigned_days_1913539992 as sad
8300 inner join call_types as ct
8301 on ct.id = 10167
8302 and ct.unassigned_day = 0
8303 SET sad.is_assigned = 1
8304 WHERE sad.staff_id = 17223
8305 AND sad.schedule_on = '2018-09-14'
8306
8307 (125.1ms) truncate table buffer_tmp_targets_scheduled_1913539992
8308
8309 (126.0ms) insert into buffer_tmp_targets_scheduled_1913539992 (
8310 block_id,
8311 calendar_schedule_id,
8312 staff_id,
8313 assignment_id,
8314 assignment_type,
8315 day_of_week_mask,
8316 is_weekend,
8317 scheduled,
8318 other_scheduled
8319 )
8320 select
8321 pt.block_id,
8322 pt.calendar_schedule_id,
8323 pt.staff_id,
8324 0 as assignment_id,
8325 '' as assignment_type,
8326 0 as day_of_week_mask,
8327 pt.is_weekend,
8328 case
8329 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
8330 else 0.0
8331 end as scheduled,
8332 case
8333 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
8334 else 0.0
8335 end as other_scheduled
8336 from
8337 buffer_schedules_1913539992 as sc
8338 inner join buffer_counter_increments_1913539992 as ci
8339 on sc.id = ci.schedule_id
8340 and ci.points != 0
8341 inner join assign_staff_types as ast
8342 on sc.staff_id = ast.staff_id
8343 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
8344 inner join staff_types as st
8345 on ast.staff_type_id = st.id
8346 inner join buffer_point_targets_1913539992 as pt
8347 on sc.block_id = pt.block_id
8348 and st.point_hour_schedule_id = pt.calendar_schedule_id
8349 and sc.staff_id = pt.staff_id
8350 and sc.is_weekend = pt.is_weekend
8351 where
8352 sc.schedule_on = '2018-09-14'
8353 and sc.call_type_id = 10167
8354 and sc.staff_id = 17223
8355 order by null
8356
8357 (118.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
8358
8359 (126.2ms) update
8360 buffer_tmp_targets_scheduled_1913539992 as sch_t
8361 inner join buffer_point_targets_1913539992 as pt
8362 on sch_t.block_id = pt.block_id
8363 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
8364 and sch_t.staff_id = pt.staff_id
8365 and sch_t.is_weekend = pt.is_weekend
8366 set
8367 pt.scheduled = pt.scheduled + sch_t.scheduled,
8368 pt.scheduled_delta = sch_t.scheduled,
8369 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
8370 pt.other_scheduled_delta = sch_t.other_scheduled
8371
8372 (122.5ms) select 1 from buffer_tmp_targets_scheduled_1913539992
8373 where other_scheduled != 0
8374
8375 (119.3ms) update
8376 buffer_current_point_targets_1913539992 as cr_pt
8377 inner join (
8378 select
8379 pt.staff_id,
8380 part_of_week.is_weekend,
8381 td.period_offset,
8382 pt.calendar_schedule_id,
8383 sum(pt.raw_target_delta) as raw_target_delta,
8384 sum(pt.target_delta) as adjusted_target_delta,
8385 sum(pt.scheduled_delta) as scheduled_delta,
8386 sum(pt.other_scheduled_delta) as other_scheduled_delta
8387 from
8388 buffer_tmp_targets_scheduled_1913539992 as sch_t
8389 inner join buffer_target_dates as td
8390 on td.session_id = 1913539992
8391 and sch_t.block_id = td.block_id
8392 and sch_t.calendar_schedule_id = td.calendar_schedule_id
8393 inner join buffer_point_targets_1913539992 as pt
8394 on sch_t.block_id = pt.block_id
8395 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
8396 and (
8397 sch_t.staff_id = pt.staff_id
8398 or sch_t.other_scheduled != 0
8399 )
8400 and sch_t.is_weekend = pt.is_weekend
8401 inner join (
8402 select 0 as is_weekend
8403 union select 1
8404
8405 ) as part_of_week
8406 on sch_t.is_weekend = part_of_week.is_weekend
8407 or part_of_week.is_weekend = -1
8408 group by
8409 pt.staff_id,
8410 part_of_week.is_weekend,
8411 td.period_offset,
8412 pt.calendar_schedule_id
8413 order by null
8414 ) as pt
8415 on cr_pt.staff_id = pt.staff_id
8416 and cr_pt.is_weekend = pt.is_weekend
8417 and cr_pt.period_offset = pt.period_offset
8418 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
8419 set
8420 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
8421 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
8422 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
8423 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
8424
8425 (125.5ms) update
8426 buffer_cumulative_point_targets_1913539992 as cu_pt
8427 inner join (
8428 select
8429 pt.staff_id,
8430 part_of_week.is_weekend,
8431 pt.calendar_schedule_id,
8432 sum(pt.raw_target_delta) as raw_target_delta,
8433 sum(pt.target_delta) as adjusted_target_delta,
8434 sum(pt.scheduled_delta) as scheduled_delta,
8435 sum(pt.other_scheduled_delta) as other_scheduled_delta
8436 from
8437 buffer_tmp_targets_scheduled_1913539992 as sch_t
8438 inner join buffer_target_dates as td
8439 on td.session_id = 1913539992
8440 and sch_t.block_id = td.block_id
8441 and sch_t.calendar_schedule_id = td.calendar_schedule_id
8442 and td.within_cumulative_period = 1
8443 inner join buffer_point_targets_1913539992 as pt
8444 on sch_t.block_id = pt.block_id
8445 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
8446 and (
8447 sch_t.staff_id = pt.staff_id
8448 or sch_t.other_scheduled != 0
8449 )
8450 and sch_t.is_weekend = pt.is_weekend
8451 inner join (
8452 select 0 as is_weekend
8453 union select 1
8454
8455 ) as part_of_week
8456 on sch_t.is_weekend = part_of_week.is_weekend
8457 or part_of_week.is_weekend = -1
8458 group by
8459 pt.staff_id,
8460 part_of_week.is_weekend,
8461 pt.calendar_schedule_id
8462 order by null
8463 ) as pt
8464 on cu_pt.staff_id = pt.staff_id
8465 and cu_pt.is_weekend = pt.is_weekend
8466 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
8467 set
8468 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
8469 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
8470 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
8471 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
8472
8473 (118.8ms) update
8474 buffer_tmp_targets_scheduled_1913539992 as sch_t
8475 inner join buffer_point_targets_1913539992 as pt
8476 on sch_t.block_id = pt.block_id
8477 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
8478 and (
8479 sch_t.staff_id = pt.staff_id
8480 or sch_t.other_scheduled != 0
8481 )
8482 and sch_t.is_weekend = pt.is_weekend
8483 set
8484 pt.raw_target_delta = 0,
8485 pt.target_delta = 0,
8486 pt.scheduled_delta = 0,
8487 pt.other_scheduled_delta = 0
8488
8489 (121.9ms) /* AssignmentLimitsPerPeriod */
8490 /* Unique Key: assignment_limit_id, staff_id, start_date */
8491 insert into buffer_staff_assignments_count_periods_1913539992 (
8492 assignment_limit_id, staff_id, start_date, end_date, assignments_count
8493 )
8494 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
8495 1 as assignments_count
8496 from buffer_schedules_1913539992 as sc
8497 inner join buffer_assignment_limit_call_types_1913539992 as alct
8498 on sc.call_type_id = alct.call_type_id
8499 inner join assignment_limits as al
8500 on alct.assignment_limit_id = al.id
8501 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
8502 and al.max_per_period_limit is not null
8503 inner join assign_staff_types as ast
8504 on sc.staff_id = ast.staff_id
8505 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
8506 inner join buffer_assignment_limit_staff_types_1913539992 as alst
8507 on alct.assignment_limit_id = alst.assignment_limit_id
8508 and ast.staff_type_id = alst.staff_type_id
8509 inner join (
8510 select assignment_limit_id, start_date, end_date
8511 from buffer_linkage_assignments_count_periods_1913539992
8512 group by assignment_limit_id, start_date, end_date
8513 order by null
8514 ) as lac
8515 on alct.assignment_limit_id = lac.assignment_limit_id
8516 and sc.schedule_on between lac.start_date and lac.end_date
8517 where sc.schedule_on = '2018-09-14'
8518 and sc.call_type_id = 10167
8519 and sc.staff_id = 17223
8520 on duplicate key update
8521 assignments_count = assignments_count + 1
8522
8523 (123.8ms) /* AssignmentLimitsPerWeek */
8524 /* Unique Key: assignment_limit_id, staff_id, start_date */
8525 insert into buffer_staff_assignments_count_weeks_1913539992 (
8526 assignment_limit_id, staff_id, start_date, end_date, assignments_count
8527 )
8528 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
8529 1 as assignments_count
8530 from buffer_schedules_1913539992 as sc
8531 inner join buffer_assignment_limit_call_types_1913539992 as alct
8532 on sc.call_type_id = alct.call_type_id
8533 inner join assignment_limits as al
8534 on alct.assignment_limit_id = al.id
8535 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
8536 and al.max_weekly_limit is not null
8537 inner join assign_staff_types as ast
8538 on sc.staff_id = ast.staff_id
8539 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
8540 inner join buffer_assignment_limit_staff_types_1913539992 as alst
8541 on alct.assignment_limit_id = alst.assignment_limit_id
8542 and ast.staff_type_id = alst.staff_type_id
8543 inner join (
8544 select assignment_limit_id, start_date, end_date
8545 from buffer_linkage_assignments_count_weeks_1913539992
8546 group by assignment_limit_id, start_date, end_date
8547 order by null
8548 ) as lac
8549 on alct.assignment_limit_id = lac.assignment_limit_id
8550 and sc.schedule_on between lac.start_date and lac.end_date
8551 where sc.schedule_on = '2018-09-14'
8552 and sc.call_type_id = 10167
8553 and sc.staff_id = 17223
8554 on duplicate key update
8555 assignments_count = assignments_count + 1
8556
8557 (122.4ms) /* AssignmentLimitsRolling */
8558 /* Unique Key: assignment_limit_id, staff_id, start_date */
8559 insert into buffer_staff_assignments_count_rolling_1913539992 (
8560 assignment_limit_id, staff_id, start_date, end_date, assignments_count
8561 )
8562 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
8563 1 as assignments_count
8564 from buffer_schedules_1913539992 as sc
8565 inner join buffer_assignment_limit_call_types_1913539992 as alct
8566 on sc.call_type_id = alct.call_type_id
8567 inner join assignment_limits as al
8568 on alct.assignment_limit_id = al.id
8569 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
8570 and al.max_rolling_period is not null
8571 and al.max_rolling_limit is not null
8572 inner join assign_staff_types as ast
8573 on sc.staff_id = ast.staff_id
8574 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
8575 inner join buffer_assignment_limit_staff_types_1913539992 as alst
8576 on alct.assignment_limit_id = alst.assignment_limit_id
8577 and ast.staff_type_id = alst.staff_type_id
8578 inner join (
8579 select assignment_limit_id, start_date, end_date
8580 from buffer_linkage_assignments_count_rolling_1913539992
8581 group by assignment_limit_id, start_date, end_date
8582 order by null
8583 ) as lac
8584 on alct.assignment_limit_id = lac.assignment_limit_id
8585 and sc.schedule_on between lac.start_date and lac.end_date
8586 where sc.schedule_on = '2018-09-14'
8587 and sc.call_type_id = 10167
8588 and sc.staff_id = 17223
8589 on duplicate key update
8590 assignments_count = assignments_count + 1
8591
8592 (116.0ms) /* AssignmentLimitsConsecutive */
8593 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
8594 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
8595 assignment_limit_id, staff_id, schedule_on, start_date, end_date
8596 )
8597 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
8598 from buffer_schedules_1913539992 as sc
8599 inner join buffer_assignment_limit_call_types_1913539992 as alct
8600 on sc.call_type_id = alct.call_type_id
8601 inner join assignment_limits as al
8602 on alct.assignment_limit_id = al.id
8603 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
8604 and al.max_consecutive_limit is not null
8605 inner join assign_staff_types as ast
8606 on sc.staff_id = ast.staff_id
8607 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
8608 inner join buffer_assignment_limit_staff_types_1913539992 as alst
8609 on alct.assignment_limit_id = alst.assignment_limit_id
8610 and ast.staff_type_id = alst.staff_type_id
8611 inner join (
8612 select assignment_limit_id, start_date, end_date
8613 from buffer_linkage_assignments_count_consecutive_1913539992
8614 group by assignment_limit_id, start_date, end_date
8615 order by null
8616 ) as lac
8617 on alct.assignment_limit_id = lac.assignment_limit_id
8618 and sc.schedule_on between lac.start_date and lac.end_date
8619 where sc.schedule_on = '2018-09-14'
8620 and sc.call_type_id = 10167
8621 and sc.staff_id = 17223
8622
8623 (124.7ms) UPDATE buffer_schedules_1913539992
8624 SET staff_id = 17223,
8625 should_be_populated = 0,
8626 should_be_evaluated = 0
8627 WHERE
8628 call_type_id = 10168
8629 AND schedule_on = '2018-09-15'
8630
8631 (127.7ms) delete from buffer_combined_availabilities_1913539992
8632 where linkage_instance_id = 14201836
8633
8634 (115.4ms) UPDATE buffer_rule_calc_schedules_1913539992
8635 SET staff_id = 17223
8636 WHERE call_type_id = 10168
8637 AND schedule_on = '2018-09-15'
8638
8639 (125.3ms) INSERT INTO buffer_rule_calc_schedules_1913539992
8640 SET staff_id = 17223,
8641 call_type_id = 10168,
8642 schedule_on = '2018-09-15',
8643 day_of_week_mask = 64
8644
8645 (127.8ms) /* NegativeLinkRule */
8646 UPDATE buffer_negative_relations_1913539992
8647 SET staff_id = 17223
8648 WHERE affected_by_schedule_id = (
8649 SELECT id
8650 FROM buffer_schedules_1913539992
8651 WHERE schedule_on = '2018-09-15'
8652 AND call_type_id = 10168
8653 )
8654
8655 (121.2ms) /* SpecializationOverlapRule */
8656 update buffer_staff_specializations_1913539992 as st_sp
8657 inner join max_applicable_call_types as mact
8658 on st_sp.specialization_id = mact.specialization_id
8659 and mact.call_type_id = 10168
8660 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
8661 on st_sp.specialization_id = sp_dc.specialization_id
8662 and sp_dc.staff_id is null
8663 and sp_dc.schedule_on = '2018-09-15'
8664 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
8665 on st_sp.specialization_id = sp_dc_2.specialization_id
8666 and st_sp.staff_id = sp_dc_2.staff_id
8667 and sp_dc_2.schedule_on = '2018-09-15'
8668 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
8669 where st_sp.staff_id = 17223
8670 and sp_dc_2.id is null
8671
8672 (122.9ms) insert into buffer_specialization_daily_counts_1913539992 (
8673 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
8674 )
8675 select sp.id as specialization_id,
8676 17223 as staff_id,
8677 '2018-09-15' as schedule_on,
8678 1 as staffs_scheduled,
8679 sp.max_scheduled,
8680 sp_dc.should_be_evaluated
8681 from buffer_staff_specializations_1913539992 as st_sp
8682 inner join specializations as sp
8683 on st_sp.specialization_id = sp.id
8684 inner join max_applicable_call_types as mact
8685 on st_sp.specialization_id = mact.specialization_id
8686 and mact.call_type_id = 10168
8687 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
8688 on st_sp.specialization_id = sp_dc.specialization_id
8689 and sp_dc.staff_id is null
8690 and sp_dc.schedule_on = '2018-09-15'
8691 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
8692 on st_sp.specialization_id = sp_dc_2.specialization_id
8693 and st_sp.staff_id = sp_dc_2.staff_id
8694 and sp_dc_2.schedule_on = '2018-09-15'
8695 where st_sp.staff_id = 17223
8696 and sp_dc_2.id is null
8697
8698 (124.2ms) /* MaxAssignmentsRule */
8699 delete from buffer_linkage_call_type_assignments_1913539992
8700 where linkage_instance_id = 14201836;
8701
8702 (118.0ms) /* MaxAssignmentsRule */
8703 update
8704 buffer_schedules_1913539992 as sc
8705 inner join call_types as ct
8706 on sc.call_type_id = ct.id
8707 and ct.active = 1
8708 inner join buffer_call_type_assignments_1913539992 as cta
8709 on sc.staff_id = cta.staff_id
8710 and sc.call_type_id = cta.call_type_id
8711 and sc.is_weekend = cta.is_weekend
8712 and sc.period_offset = cta.period_offset
8713 and sc.calendar_schedule_id = cta.calendar_schedule_id
8714 set cta.assignments_count = cta.assignments_count + 1
8715 where
8716 sc.schedule_on = '2018-09-15'
8717 and sc.call_type_id = 10168
8718 and sc.staff_id = 17223
8719
8720 (124.4ms) insert into buffer_call_type_assignments_1913539992 (
8721 staff_id,
8722 call_type_id,
8723 is_weekend,
8724 period_offset,
8725 calendar_schedule_id,
8726 assignments_count
8727 )
8728 select
8729 sc.staff_id,
8730 sc.call_type_id,
8731 sc.is_weekend,
8732 sc.period_offset,
8733 sc.calendar_schedule_id,
8734 1 as assignments_count
8735 from buffer_schedules_1913539992 as sc
8736 where
8737 sc.staff_id = 17223
8738 and sc.schedule_on = '2018-09-15'
8739 and sc.call_type_id = 10168
8740
8741 (120.9ms) /* UnassignedDaysRule */
8742 delete from buffer_linkage_assigned_days_1913539992
8743 where linkage_instance_id = 14201836
8744
8745 (125.3ms) /* UnassignedDaysRule */
8746 UPDATE buffer_staff_assigned_days_1913539992 as sad
8747 inner join call_types as ct
8748 on ct.id = 10168
8749 and ct.unassigned_day = 0
8750 SET sad.is_assigned = 1
8751 WHERE sad.staff_id = 17223
8752 AND sad.schedule_on = '2018-09-15'
8753
8754 (118.6ms) truncate table buffer_tmp_targets_scheduled_1913539992
8755
8756 (126.0ms) insert into buffer_tmp_targets_scheduled_1913539992 (
8757 block_id,
8758 calendar_schedule_id,
8759 staff_id,
8760 assignment_id,
8761 assignment_type,
8762 day_of_week_mask,
8763 is_weekend,
8764 scheduled,
8765 other_scheduled
8766 )
8767 select
8768 pt.block_id,
8769 pt.calendar_schedule_id,
8770 pt.staff_id,
8771 0 as assignment_id,
8772 '' as assignment_type,
8773 0 as day_of_week_mask,
8774 pt.is_weekend,
8775 case
8776 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
8777 else 0.0
8778 end as scheduled,
8779 case
8780 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
8781 else 0.0
8782 end as other_scheduled
8783 from
8784 buffer_schedules_1913539992 as sc
8785 inner join buffer_counter_increments_1913539992 as ci
8786 on sc.id = ci.schedule_id
8787 and ci.points != 0
8788 inner join assign_staff_types as ast
8789 on sc.staff_id = ast.staff_id
8790 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
8791 inner join staff_types as st
8792 on ast.staff_type_id = st.id
8793 inner join buffer_point_targets_1913539992 as pt
8794 on sc.block_id = pt.block_id
8795 and st.point_hour_schedule_id = pt.calendar_schedule_id
8796 and sc.staff_id = pt.staff_id
8797 and sc.is_weekend = pt.is_weekend
8798 where
8799 sc.schedule_on = '2018-09-15'
8800 and sc.call_type_id = 10168
8801 and sc.staff_id = 17223
8802 order by null
8803
8804 (117.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
8805
8806 (145.4ms) update
8807 buffer_tmp_targets_scheduled_1913539992 as sch_t
8808 inner join buffer_point_targets_1913539992 as pt
8809 on sch_t.block_id = pt.block_id
8810 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
8811 and sch_t.staff_id = pt.staff_id
8812 and sch_t.is_weekend = pt.is_weekend
8813 set
8814 pt.scheduled = pt.scheduled + sch_t.scheduled,
8815 pt.scheduled_delta = sch_t.scheduled,
8816 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
8817 pt.other_scheduled_delta = sch_t.other_scheduled
8818
8819 (123.4ms) select 1 from buffer_tmp_targets_scheduled_1913539992
8820 where other_scheduled != 0
8821
8822 (119.1ms) update
8823 buffer_current_point_targets_1913539992 as cr_pt
8824 inner join (
8825 select
8826 pt.staff_id,
8827 part_of_week.is_weekend,
8828 td.period_offset,
8829 pt.calendar_schedule_id,
8830 sum(pt.raw_target_delta) as raw_target_delta,
8831 sum(pt.target_delta) as adjusted_target_delta,
8832 sum(pt.scheduled_delta) as scheduled_delta,
8833 sum(pt.other_scheduled_delta) as other_scheduled_delta
8834 from
8835 buffer_tmp_targets_scheduled_1913539992 as sch_t
8836 inner join buffer_target_dates as td
8837 on td.session_id = 1913539992
8838 and sch_t.block_id = td.block_id
8839 and sch_t.calendar_schedule_id = td.calendar_schedule_id
8840 inner join buffer_point_targets_1913539992 as pt
8841 on sch_t.block_id = pt.block_id
8842 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
8843 and (
8844 sch_t.staff_id = pt.staff_id
8845 or sch_t.other_scheduled != 0
8846 )
8847 and sch_t.is_weekend = pt.is_weekend
8848 inner join (
8849 select 0 as is_weekend
8850 union select 1
8851
8852 ) as part_of_week
8853 on sch_t.is_weekend = part_of_week.is_weekend
8854 or part_of_week.is_weekend = -1
8855 group by
8856 pt.staff_id,
8857 part_of_week.is_weekend,
8858 td.period_offset,
8859 pt.calendar_schedule_id
8860 order by null
8861 ) as pt
8862 on cr_pt.staff_id = pt.staff_id
8863 and cr_pt.is_weekend = pt.is_weekend
8864 and cr_pt.period_offset = pt.period_offset
8865 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
8866 set
8867 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
8868 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
8869 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
8870 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
8871
8872 (125.5ms) update
8873 buffer_cumulative_point_targets_1913539992 as cu_pt
8874 inner join (
8875 select
8876 pt.staff_id,
8877 part_of_week.is_weekend,
8878 pt.calendar_schedule_id,
8879 sum(pt.raw_target_delta) as raw_target_delta,
8880 sum(pt.target_delta) as adjusted_target_delta,
8881 sum(pt.scheduled_delta) as scheduled_delta,
8882 sum(pt.other_scheduled_delta) as other_scheduled_delta
8883 from
8884 buffer_tmp_targets_scheduled_1913539992 as sch_t
8885 inner join buffer_target_dates as td
8886 on td.session_id = 1913539992
8887 and sch_t.block_id = td.block_id
8888 and sch_t.calendar_schedule_id = td.calendar_schedule_id
8889 and td.within_cumulative_period = 1
8890 inner join buffer_point_targets_1913539992 as pt
8891 on sch_t.block_id = pt.block_id
8892 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
8893 and (
8894 sch_t.staff_id = pt.staff_id
8895 or sch_t.other_scheduled != 0
8896 )
8897 and sch_t.is_weekend = pt.is_weekend
8898 inner join (
8899 select 0 as is_weekend
8900 union select 1
8901
8902 ) as part_of_week
8903 on sch_t.is_weekend = part_of_week.is_weekend
8904 or part_of_week.is_weekend = -1
8905 group by
8906 pt.staff_id,
8907 part_of_week.is_weekend,
8908 pt.calendar_schedule_id
8909 order by null
8910 ) as pt
8911 on cu_pt.staff_id = pt.staff_id
8912 and cu_pt.is_weekend = pt.is_weekend
8913 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
8914 set
8915 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
8916 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
8917 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
8918 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
8919
8920 (124.9ms) update
8921 buffer_tmp_targets_scheduled_1913539992 as sch_t
8922 inner join buffer_point_targets_1913539992 as pt
8923 on sch_t.block_id = pt.block_id
8924 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
8925 and (
8926 sch_t.staff_id = pt.staff_id
8927 or sch_t.other_scheduled != 0
8928 )
8929 and sch_t.is_weekend = pt.is_weekend
8930 set
8931 pt.raw_target_delta = 0,
8932 pt.target_delta = 0,
8933 pt.scheduled_delta = 0,
8934 pt.other_scheduled_delta = 0
8935
8936 (123.2ms) /* AssignmentLimitsPerPeriod */
8937 /* Unique Key: assignment_limit_id, staff_id, start_date */
8938 insert into buffer_staff_assignments_count_periods_1913539992 (
8939 assignment_limit_id, staff_id, start_date, end_date, assignments_count
8940 )
8941 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
8942 1 as assignments_count
8943 from buffer_schedules_1913539992 as sc
8944 inner join buffer_assignment_limit_call_types_1913539992 as alct
8945 on sc.call_type_id = alct.call_type_id
8946 inner join assignment_limits as al
8947 on alct.assignment_limit_id = al.id
8948 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
8949 and al.max_per_period_limit is not null
8950 inner join assign_staff_types as ast
8951 on sc.staff_id = ast.staff_id
8952 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
8953 inner join buffer_assignment_limit_staff_types_1913539992 as alst
8954 on alct.assignment_limit_id = alst.assignment_limit_id
8955 and ast.staff_type_id = alst.staff_type_id
8956 inner join (
8957 select assignment_limit_id, start_date, end_date
8958 from buffer_linkage_assignments_count_periods_1913539992
8959 group by assignment_limit_id, start_date, end_date
8960 order by null
8961 ) as lac
8962 on alct.assignment_limit_id = lac.assignment_limit_id
8963 and sc.schedule_on between lac.start_date and lac.end_date
8964 where sc.schedule_on = '2018-09-15'
8965 and sc.call_type_id = 10168
8966 and sc.staff_id = 17223
8967 on duplicate key update
8968 assignments_count = assignments_count + 1
8969
8970 (122.9ms) /* AssignmentLimitsPerWeek */
8971 /* Unique Key: assignment_limit_id, staff_id, start_date */
8972 insert into buffer_staff_assignments_count_weeks_1913539992 (
8973 assignment_limit_id, staff_id, start_date, end_date, assignments_count
8974 )
8975 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
8976 1 as assignments_count
8977 from buffer_schedules_1913539992 as sc
8978 inner join buffer_assignment_limit_call_types_1913539992 as alct
8979 on sc.call_type_id = alct.call_type_id
8980 inner join assignment_limits as al
8981 on alct.assignment_limit_id = al.id
8982 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
8983 and al.max_weekly_limit is not null
8984 inner join assign_staff_types as ast
8985 on sc.staff_id = ast.staff_id
8986 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
8987 inner join buffer_assignment_limit_staff_types_1913539992 as alst
8988 on alct.assignment_limit_id = alst.assignment_limit_id
8989 and ast.staff_type_id = alst.staff_type_id
8990 inner join (
8991 select assignment_limit_id, start_date, end_date
8992 from buffer_linkage_assignments_count_weeks_1913539992
8993 group by assignment_limit_id, start_date, end_date
8994 order by null
8995 ) as lac
8996 on alct.assignment_limit_id = lac.assignment_limit_id
8997 and sc.schedule_on between lac.start_date and lac.end_date
8998 where sc.schedule_on = '2018-09-15'
8999 and sc.call_type_id = 10168
9000 and sc.staff_id = 17223
9001 on duplicate key update
9002 assignments_count = assignments_count + 1
9003
9004 (121.8ms) /* AssignmentLimitsRolling */
9005 /* Unique Key: assignment_limit_id, staff_id, start_date */
9006 insert into buffer_staff_assignments_count_rolling_1913539992 (
9007 assignment_limit_id, staff_id, start_date, end_date, assignments_count
9008 )
9009 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
9010 1 as assignments_count
9011 from buffer_schedules_1913539992 as sc
9012 inner join buffer_assignment_limit_call_types_1913539992 as alct
9013 on sc.call_type_id = alct.call_type_id
9014 inner join assignment_limits as al
9015 on alct.assignment_limit_id = al.id
9016 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9017 and al.max_rolling_period is not null
9018 and al.max_rolling_limit is not null
9019 inner join assign_staff_types as ast
9020 on sc.staff_id = ast.staff_id
9021 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9022 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9023 on alct.assignment_limit_id = alst.assignment_limit_id
9024 and ast.staff_type_id = alst.staff_type_id
9025 inner join (
9026 select assignment_limit_id, start_date, end_date
9027 from buffer_linkage_assignments_count_rolling_1913539992
9028 group by assignment_limit_id, start_date, end_date
9029 order by null
9030 ) as lac
9031 on alct.assignment_limit_id = lac.assignment_limit_id
9032 and sc.schedule_on between lac.start_date and lac.end_date
9033 where sc.schedule_on = '2018-09-15'
9034 and sc.call_type_id = 10168
9035 and sc.staff_id = 17223
9036 on duplicate key update
9037 assignments_count = assignments_count + 1
9038
9039 (122.1ms) /* AssignmentLimitsConsecutive */
9040 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
9041 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
9042 assignment_limit_id, staff_id, schedule_on, start_date, end_date
9043 )
9044 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
9045 from buffer_schedules_1913539992 as sc
9046 inner join buffer_assignment_limit_call_types_1913539992 as alct
9047 on sc.call_type_id = alct.call_type_id
9048 inner join assignment_limits as al
9049 on alct.assignment_limit_id = al.id
9050 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9051 and al.max_consecutive_limit is not null
9052 inner join assign_staff_types as ast
9053 on sc.staff_id = ast.staff_id
9054 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9055 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9056 on alct.assignment_limit_id = alst.assignment_limit_id
9057 and ast.staff_type_id = alst.staff_type_id
9058 inner join (
9059 select assignment_limit_id, start_date, end_date
9060 from buffer_linkage_assignments_count_consecutive_1913539992
9061 group by assignment_limit_id, start_date, end_date
9062 order by null
9063 ) as lac
9064 on alct.assignment_limit_id = lac.assignment_limit_id
9065 and sc.schedule_on between lac.start_date and lac.end_date
9066 where sc.schedule_on = '2018-09-15'
9067 and sc.call_type_id = 10168
9068 and sc.staff_id = 17223
9069
9070 (121.2ms) UPDATE buffer_schedules_1913539992
9071 SET staff_id = 17223,
9072 should_be_populated = 0,
9073 should_be_evaluated = 0
9074 WHERE
9075 call_type_id = 10167
9076 AND schedule_on = '2018-09-16'
9077
9078 (124.2ms) delete from buffer_combined_availabilities_1913539992
9079 where linkage_instance_id = 14201836
9080
9081 (125.3ms) UPDATE buffer_rule_calc_schedules_1913539992
9082 SET staff_id = 17223
9083 WHERE call_type_id = 10167
9084 AND schedule_on = '2018-09-16'
9085
9086 (118.7ms) INSERT INTO buffer_rule_calc_schedules_1913539992
9087 SET staff_id = 17223,
9088 call_type_id = 10167,
9089 schedule_on = '2018-09-16',
9090 day_of_week_mask = 1
9091
9092 (125.4ms) /* NegativeLinkRule */
9093 UPDATE buffer_negative_relations_1913539992
9094 SET staff_id = 17223
9095 WHERE affected_by_schedule_id = (
9096 SELECT id
9097 FROM buffer_schedules_1913539992
9098 WHERE schedule_on = '2018-09-16'
9099 AND call_type_id = 10167
9100 )
9101
9102 (125.4ms) /* SpecializationOverlapRule */
9103 update buffer_staff_specializations_1913539992 as st_sp
9104 inner join max_applicable_call_types as mact
9105 on st_sp.specialization_id = mact.specialization_id
9106 and mact.call_type_id = 10167
9107 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
9108 on st_sp.specialization_id = sp_dc.specialization_id
9109 and sp_dc.staff_id is null
9110 and sp_dc.schedule_on = '2018-09-16'
9111 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
9112 on st_sp.specialization_id = sp_dc_2.specialization_id
9113 and st_sp.staff_id = sp_dc_2.staff_id
9114 and sp_dc_2.schedule_on = '2018-09-16'
9115 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
9116 where st_sp.staff_id = 17223
9117 and sp_dc_2.id is null
9118
9119 (116.8ms) insert into buffer_specialization_daily_counts_1913539992 (
9120 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
9121 )
9122 select sp.id as specialization_id,
9123 17223 as staff_id,
9124 '2018-09-16' as schedule_on,
9125 1 as staffs_scheduled,
9126 sp.max_scheduled,
9127 sp_dc.should_be_evaluated
9128 from buffer_staff_specializations_1913539992 as st_sp
9129 inner join specializations as sp
9130 on st_sp.specialization_id = sp.id
9131 inner join max_applicable_call_types as mact
9132 on st_sp.specialization_id = mact.specialization_id
9133 and mact.call_type_id = 10167
9134 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
9135 on st_sp.specialization_id = sp_dc.specialization_id
9136 and sp_dc.staff_id is null
9137 and sp_dc.schedule_on = '2018-09-16'
9138 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
9139 on st_sp.specialization_id = sp_dc_2.specialization_id
9140 and st_sp.staff_id = sp_dc_2.staff_id
9141 and sp_dc_2.schedule_on = '2018-09-16'
9142 where st_sp.staff_id = 17223
9143 and sp_dc_2.id is null
9144
9145 (124.4ms) /* MaxAssignmentsRule */
9146 delete from buffer_linkage_call_type_assignments_1913539992
9147 where linkage_instance_id = 14201836;
9148
9149 (122.4ms) /* MaxAssignmentsRule */
9150 update
9151 buffer_schedules_1913539992 as sc
9152 inner join call_types as ct
9153 on sc.call_type_id = ct.id
9154 and ct.active = 1
9155 inner join buffer_call_type_assignments_1913539992 as cta
9156 on sc.staff_id = cta.staff_id
9157 and sc.call_type_id = cta.call_type_id
9158 and sc.is_weekend = cta.is_weekend
9159 and sc.period_offset = cta.period_offset
9160 and sc.calendar_schedule_id = cta.calendar_schedule_id
9161 set cta.assignments_count = cta.assignments_count + 1
9162 where
9163 sc.schedule_on = '2018-09-16'
9164 and sc.call_type_id = 10167
9165 and sc.staff_id = 17223
9166
9167 (124.6ms) insert into buffer_call_type_assignments_1913539992 (
9168 staff_id,
9169 call_type_id,
9170 is_weekend,
9171 period_offset,
9172 calendar_schedule_id,
9173 assignments_count
9174 )
9175 select
9176 sc.staff_id,
9177 sc.call_type_id,
9178 sc.is_weekend,
9179 sc.period_offset,
9180 sc.calendar_schedule_id,
9181 1 as assignments_count
9182 from buffer_schedules_1913539992 as sc
9183 where
9184 sc.staff_id = 17223
9185 and sc.schedule_on = '2018-09-16'
9186 and sc.call_type_id = 10167
9187
9188 (118.0ms) /* UnassignedDaysRule */
9189 delete from buffer_linkage_assigned_days_1913539992
9190 where linkage_instance_id = 14201836
9191
9192 (125.5ms) /* UnassignedDaysRule */
9193 UPDATE buffer_staff_assigned_days_1913539992 as sad
9194 inner join call_types as ct
9195 on ct.id = 10167
9196 and ct.unassigned_day = 0
9197 SET sad.is_assigned = 1
9198 WHERE sad.staff_id = 17223
9199 AND sad.schedule_on = '2018-09-16'
9200
9201 (124.5ms) truncate table buffer_tmp_targets_scheduled_1913539992
9202
9203 (543.6ms) insert into buffer_tmp_targets_scheduled_1913539992 (
9204 block_id,
9205 calendar_schedule_id,
9206 staff_id,
9207 assignment_id,
9208 assignment_type,
9209 day_of_week_mask,
9210 is_weekend,
9211 scheduled,
9212 other_scheduled
9213 )
9214 select
9215 pt.block_id,
9216 pt.calendar_schedule_id,
9217 pt.staff_id,
9218 0 as assignment_id,
9219 '' as assignment_type,
9220 0 as day_of_week_mask,
9221 pt.is_weekend,
9222 case
9223 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
9224 else 0.0
9225 end as scheduled,
9226 case
9227 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
9228 else 0.0
9229 end as other_scheduled
9230 from
9231 buffer_schedules_1913539992 as sc
9232 inner join buffer_counter_increments_1913539992 as ci
9233 on sc.id = ci.schedule_id
9234 and ci.points != 0
9235 inner join assign_staff_types as ast
9236 on sc.staff_id = ast.staff_id
9237 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
9238 inner join staff_types as st
9239 on ast.staff_type_id = st.id
9240 inner join buffer_point_targets_1913539992 as pt
9241 on sc.block_id = pt.block_id
9242 and st.point_hour_schedule_id = pt.calendar_schedule_id
9243 and sc.staff_id = pt.staff_id
9244 and sc.is_weekend = pt.is_weekend
9245 where
9246 sc.schedule_on = '2018-09-16'
9247 and sc.call_type_id = 10167
9248 and sc.staff_id = 17223
9249 order by null
9250
9251 (118.6ms) select 1 from buffer_tmp_targets_scheduled_1913539992
9252
9253 (123.9ms) update
9254 buffer_tmp_targets_scheduled_1913539992 as sch_t
9255 inner join buffer_point_targets_1913539992 as pt
9256 on sch_t.block_id = pt.block_id
9257 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
9258 and sch_t.staff_id = pt.staff_id
9259 and sch_t.is_weekend = pt.is_weekend
9260 set
9261 pt.scheduled = pt.scheduled + sch_t.scheduled,
9262 pt.scheduled_delta = sch_t.scheduled,
9263 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
9264 pt.other_scheduled_delta = sch_t.other_scheduled
9265
9266 (123.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
9267 where other_scheduled != 0
9268
9269 (125.7ms) update
9270 buffer_current_point_targets_1913539992 as cr_pt
9271 inner join (
9272 select
9273 pt.staff_id,
9274 part_of_week.is_weekend,
9275 td.period_offset,
9276 pt.calendar_schedule_id,
9277 sum(pt.raw_target_delta) as raw_target_delta,
9278 sum(pt.target_delta) as adjusted_target_delta,
9279 sum(pt.scheduled_delta) as scheduled_delta,
9280 sum(pt.other_scheduled_delta) as other_scheduled_delta
9281 from
9282 buffer_tmp_targets_scheduled_1913539992 as sch_t
9283 inner join buffer_target_dates as td
9284 on td.session_id = 1913539992
9285 and sch_t.block_id = td.block_id
9286 and sch_t.calendar_schedule_id = td.calendar_schedule_id
9287 inner join buffer_point_targets_1913539992 as pt
9288 on sch_t.block_id = pt.block_id
9289 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
9290 and (
9291 sch_t.staff_id = pt.staff_id
9292 or sch_t.other_scheduled != 0
9293 )
9294 and sch_t.is_weekend = pt.is_weekend
9295 inner join (
9296 select 0 as is_weekend
9297 union select 1
9298
9299 ) as part_of_week
9300 on sch_t.is_weekend = part_of_week.is_weekend
9301 or part_of_week.is_weekend = -1
9302 group by
9303 pt.staff_id,
9304 part_of_week.is_weekend,
9305 td.period_offset,
9306 pt.calendar_schedule_id
9307 order by null
9308 ) as pt
9309 on cr_pt.staff_id = pt.staff_id
9310 and cr_pt.is_weekend = pt.is_weekend
9311 and cr_pt.period_offset = pt.period_offset
9312 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
9313 set
9314 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
9315 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
9316 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
9317 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
9318
9319 (125.3ms) update
9320 buffer_cumulative_point_targets_1913539992 as cu_pt
9321 inner join (
9322 select
9323 pt.staff_id,
9324 part_of_week.is_weekend,
9325 pt.calendar_schedule_id,
9326 sum(pt.raw_target_delta) as raw_target_delta,
9327 sum(pt.target_delta) as adjusted_target_delta,
9328 sum(pt.scheduled_delta) as scheduled_delta,
9329 sum(pt.other_scheduled_delta) as other_scheduled_delta
9330 from
9331 buffer_tmp_targets_scheduled_1913539992 as sch_t
9332 inner join buffer_target_dates as td
9333 on td.session_id = 1913539992
9334 and sch_t.block_id = td.block_id
9335 and sch_t.calendar_schedule_id = td.calendar_schedule_id
9336 and td.within_cumulative_period = 1
9337 inner join buffer_point_targets_1913539992 as pt
9338 on sch_t.block_id = pt.block_id
9339 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
9340 and (
9341 sch_t.staff_id = pt.staff_id
9342 or sch_t.other_scheduled != 0
9343 )
9344 and sch_t.is_weekend = pt.is_weekend
9345 inner join (
9346 select 0 as is_weekend
9347 union select 1
9348
9349 ) as part_of_week
9350 on sch_t.is_weekend = part_of_week.is_weekend
9351 or part_of_week.is_weekend = -1
9352 group by
9353 pt.staff_id,
9354 part_of_week.is_weekend,
9355 pt.calendar_schedule_id
9356 order by null
9357 ) as pt
9358 on cu_pt.staff_id = pt.staff_id
9359 and cu_pt.is_weekend = pt.is_weekend
9360 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
9361 set
9362 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
9363 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
9364 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
9365 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
9366
9367 (130.0ms) update
9368 buffer_tmp_targets_scheduled_1913539992 as sch_t
9369 inner join buffer_point_targets_1913539992 as pt
9370 on sch_t.block_id = pt.block_id
9371 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
9372 and (
9373 sch_t.staff_id = pt.staff_id
9374 or sch_t.other_scheduled != 0
9375 )
9376 and sch_t.is_weekend = pt.is_weekend
9377 set
9378 pt.raw_target_delta = 0,
9379 pt.target_delta = 0,
9380 pt.scheduled_delta = 0,
9381 pt.other_scheduled_delta = 0
9382
9383 (130.9ms) /* AssignmentLimitsPerPeriod */
9384 /* Unique Key: assignment_limit_id, staff_id, start_date */
9385 insert into buffer_staff_assignments_count_periods_1913539992 (
9386 assignment_limit_id, staff_id, start_date, end_date, assignments_count
9387 )
9388 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
9389 1 as assignments_count
9390 from buffer_schedules_1913539992 as sc
9391 inner join buffer_assignment_limit_call_types_1913539992 as alct
9392 on sc.call_type_id = alct.call_type_id
9393 inner join assignment_limits as al
9394 on alct.assignment_limit_id = al.id
9395 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9396 and al.max_per_period_limit is not null
9397 inner join assign_staff_types as ast
9398 on sc.staff_id = ast.staff_id
9399 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9400 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9401 on alct.assignment_limit_id = alst.assignment_limit_id
9402 and ast.staff_type_id = alst.staff_type_id
9403 inner join (
9404 select assignment_limit_id, start_date, end_date
9405 from buffer_linkage_assignments_count_periods_1913539992
9406 group by assignment_limit_id, start_date, end_date
9407 order by null
9408 ) as lac
9409 on alct.assignment_limit_id = lac.assignment_limit_id
9410 and sc.schedule_on between lac.start_date and lac.end_date
9411 where sc.schedule_on = '2018-09-16'
9412 and sc.call_type_id = 10167
9413 and sc.staff_id = 17223
9414 on duplicate key update
9415 assignments_count = assignments_count + 1
9416
9417 (123.6ms) /* AssignmentLimitsPerWeek */
9418 /* Unique Key: assignment_limit_id, staff_id, start_date */
9419 insert into buffer_staff_assignments_count_weeks_1913539992 (
9420 assignment_limit_id, staff_id, start_date, end_date, assignments_count
9421 )
9422 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
9423 1 as assignments_count
9424 from buffer_schedules_1913539992 as sc
9425 inner join buffer_assignment_limit_call_types_1913539992 as alct
9426 on sc.call_type_id = alct.call_type_id
9427 inner join assignment_limits as al
9428 on alct.assignment_limit_id = al.id
9429 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9430 and al.max_weekly_limit is not null
9431 inner join assign_staff_types as ast
9432 on sc.staff_id = ast.staff_id
9433 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9434 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9435 on alct.assignment_limit_id = alst.assignment_limit_id
9436 and ast.staff_type_id = alst.staff_type_id
9437 inner join (
9438 select assignment_limit_id, start_date, end_date
9439 from buffer_linkage_assignments_count_weeks_1913539992
9440 group by assignment_limit_id, start_date, end_date
9441 order by null
9442 ) as lac
9443 on alct.assignment_limit_id = lac.assignment_limit_id
9444 and sc.schedule_on between lac.start_date and lac.end_date
9445 where sc.schedule_on = '2018-09-16'
9446 and sc.call_type_id = 10167
9447 and sc.staff_id = 17223
9448 on duplicate key update
9449 assignments_count = assignments_count + 1
9450
9451 (122.8ms) /* AssignmentLimitsRolling */
9452 /* Unique Key: assignment_limit_id, staff_id, start_date */
9453 insert into buffer_staff_assignments_count_rolling_1913539992 (
9454 assignment_limit_id, staff_id, start_date, end_date, assignments_count
9455 )
9456 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
9457 1 as assignments_count
9458 from buffer_schedules_1913539992 as sc
9459 inner join buffer_assignment_limit_call_types_1913539992 as alct
9460 on sc.call_type_id = alct.call_type_id
9461 inner join assignment_limits as al
9462 on alct.assignment_limit_id = al.id
9463 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9464 and al.max_rolling_period is not null
9465 and al.max_rolling_limit is not null
9466 inner join assign_staff_types as ast
9467 on sc.staff_id = ast.staff_id
9468 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9469 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9470 on alct.assignment_limit_id = alst.assignment_limit_id
9471 and ast.staff_type_id = alst.staff_type_id
9472 inner join (
9473 select assignment_limit_id, start_date, end_date
9474 from buffer_linkage_assignments_count_rolling_1913539992
9475 group by assignment_limit_id, start_date, end_date
9476 order by null
9477 ) as lac
9478 on alct.assignment_limit_id = lac.assignment_limit_id
9479 and sc.schedule_on between lac.start_date and lac.end_date
9480 where sc.schedule_on = '2018-09-16'
9481 and sc.call_type_id = 10167
9482 and sc.staff_id = 17223
9483 on duplicate key update
9484 assignments_count = assignments_count + 1
9485
9486 (118.8ms) /* AssignmentLimitsConsecutive */
9487 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
9488 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
9489 assignment_limit_id, staff_id, schedule_on, start_date, end_date
9490 )
9491 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
9492 from buffer_schedules_1913539992 as sc
9493 inner join buffer_assignment_limit_call_types_1913539992 as alct
9494 on sc.call_type_id = alct.call_type_id
9495 inner join assignment_limits as al
9496 on alct.assignment_limit_id = al.id
9497 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9498 and al.max_consecutive_limit is not null
9499 inner join assign_staff_types as ast
9500 on sc.staff_id = ast.staff_id
9501 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9502 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9503 on alct.assignment_limit_id = alst.assignment_limit_id
9504 and ast.staff_type_id = alst.staff_type_id
9505 inner join (
9506 select assignment_limit_id, start_date, end_date
9507 from buffer_linkage_assignments_count_consecutive_1913539992
9508 group by assignment_limit_id, start_date, end_date
9509 order by null
9510 ) as lac
9511 on alct.assignment_limit_id = lac.assignment_limit_id
9512 and sc.schedule_on between lac.start_date and lac.end_date
9513 where sc.schedule_on = '2018-09-16'
9514 and sc.call_type_id = 10167
9515 and sc.staff_id = 17223
9516
9517 (129.4ms) UPDATE buffer_schedules_1913539992
9518 SET staff_id = 17223,
9519 should_be_populated = 0,
9520 should_be_evaluated = 0
9521 WHERE
9522 call_type_id = 10960
9523 AND schedule_on = '2018-09-17'
9524
9525 (122.8ms) delete from buffer_combined_availabilities_1913539992
9526 where linkage_instance_id = 14201836
9527
9528 (120.5ms) UPDATE buffer_rule_calc_schedules_1913539992
9529 SET staff_id = 17223
9530 WHERE call_type_id = 10960
9531 AND schedule_on = '2018-09-17'
9532
9533 (119.4ms) INSERT INTO buffer_rule_calc_schedules_1913539992
9534 SET staff_id = 17223,
9535 call_type_id = 10960,
9536 schedule_on = '2018-09-17',
9537 day_of_week_mask = 2
9538
9539 (115.4ms) /* NegativeLinkRule */
9540 UPDATE buffer_negative_relations_1913539992
9541 SET staff_id = 17223
9542 WHERE affected_by_schedule_id = (
9543 SELECT id
9544 FROM buffer_schedules_1913539992
9545 WHERE schedule_on = '2018-09-17'
9546 AND call_type_id = 10960
9547 )
9548
9549 (119.7ms) /* SpecializationOverlapRule */
9550 update buffer_staff_specializations_1913539992 as st_sp
9551 inner join max_applicable_call_types as mact
9552 on st_sp.specialization_id = mact.specialization_id
9553 and mact.call_type_id = 10960
9554 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
9555 on st_sp.specialization_id = sp_dc.specialization_id
9556 and sp_dc.staff_id is null
9557 and sp_dc.schedule_on = '2018-09-17'
9558 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
9559 on st_sp.specialization_id = sp_dc_2.specialization_id
9560 and st_sp.staff_id = sp_dc_2.staff_id
9561 and sp_dc_2.schedule_on = '2018-09-17'
9562 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
9563 where st_sp.staff_id = 17223
9564 and sp_dc_2.id is null
9565
9566 (126.2ms) insert into buffer_specialization_daily_counts_1913539992 (
9567 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
9568 )
9569 select sp.id as specialization_id,
9570 17223 as staff_id,
9571 '2018-09-17' as schedule_on,
9572 1 as staffs_scheduled,
9573 sp.max_scheduled,
9574 sp_dc.should_be_evaluated
9575 from buffer_staff_specializations_1913539992 as st_sp
9576 inner join specializations as sp
9577 on st_sp.specialization_id = sp.id
9578 inner join max_applicable_call_types as mact
9579 on st_sp.specialization_id = mact.specialization_id
9580 and mact.call_type_id = 10960
9581 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
9582 on st_sp.specialization_id = sp_dc.specialization_id
9583 and sp_dc.staff_id is null
9584 and sp_dc.schedule_on = '2018-09-17'
9585 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
9586 on st_sp.specialization_id = sp_dc_2.specialization_id
9587 and st_sp.staff_id = sp_dc_2.staff_id
9588 and sp_dc_2.schedule_on = '2018-09-17'
9589 where st_sp.staff_id = 17223
9590 and sp_dc_2.id is null
9591
9592 (124.2ms) /* MaxAssignmentsRule */
9593 delete from buffer_linkage_call_type_assignments_1913539992
9594 where linkage_instance_id = 14201836;
9595
9596 (117.9ms) /* MaxAssignmentsRule */
9597 update
9598 buffer_schedules_1913539992 as sc
9599 inner join call_types as ct
9600 on sc.call_type_id = ct.id
9601 and ct.active = 1
9602 inner join buffer_call_type_assignments_1913539992 as cta
9603 on sc.staff_id = cta.staff_id
9604 and sc.call_type_id = cta.call_type_id
9605 and sc.is_weekend = cta.is_weekend
9606 and sc.period_offset = cta.period_offset
9607 and sc.calendar_schedule_id = cta.calendar_schedule_id
9608 set cta.assignments_count = cta.assignments_count + 1
9609 where
9610 sc.schedule_on = '2018-09-17'
9611 and sc.call_type_id = 10960
9612 and sc.staff_id = 17223
9613
9614 (127.7ms) insert into buffer_call_type_assignments_1913539992 (
9615 staff_id,
9616 call_type_id,
9617 is_weekend,
9618 period_offset,
9619 calendar_schedule_id,
9620 assignments_count
9621 )
9622 select
9623 sc.staff_id,
9624 sc.call_type_id,
9625 sc.is_weekend,
9626 sc.period_offset,
9627 sc.calendar_schedule_id,
9628 1 as assignments_count
9629 from buffer_schedules_1913539992 as sc
9630 where
9631 sc.staff_id = 17223
9632 and sc.schedule_on = '2018-09-17'
9633 and sc.call_type_id = 10960
9634
9635 (123.1ms) /* UnassignedDaysRule */
9636 delete from buffer_linkage_assigned_days_1913539992
9637 where linkage_instance_id = 14201836
9638
9639 (123.3ms) /* UnassignedDaysRule */
9640 UPDATE buffer_staff_assigned_days_1913539992 as sad
9641 inner join call_types as ct
9642 on ct.id = 10960
9643 and ct.unassigned_day = 0
9644 SET sad.is_assigned = 1
9645 WHERE sad.staff_id = 17223
9646 AND sad.schedule_on = '2018-09-17'
9647
9648 (120.1ms) truncate table buffer_tmp_targets_scheduled_1913539992
9649
9650 (123.1ms) insert into buffer_tmp_targets_scheduled_1913539992 (
9651 block_id,
9652 calendar_schedule_id,
9653 staff_id,
9654 assignment_id,
9655 assignment_type,
9656 day_of_week_mask,
9657 is_weekend,
9658 scheduled,
9659 other_scheduled
9660 )
9661 select
9662 pt.block_id,
9663 pt.calendar_schedule_id,
9664 pt.staff_id,
9665 0 as assignment_id,
9666 '' as assignment_type,
9667 0 as day_of_week_mask,
9668 pt.is_weekend,
9669 case
9670 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
9671 else 0.0
9672 end as scheduled,
9673 case
9674 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
9675 else 0.0
9676 end as other_scheduled
9677 from
9678 buffer_schedules_1913539992 as sc
9679 inner join buffer_counter_increments_1913539992 as ci
9680 on sc.id = ci.schedule_id
9681 and ci.points != 0
9682 inner join assign_staff_types as ast
9683 on sc.staff_id = ast.staff_id
9684 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
9685 inner join staff_types as st
9686 on ast.staff_type_id = st.id
9687 inner join buffer_point_targets_1913539992 as pt
9688 on sc.block_id = pt.block_id
9689 and st.point_hour_schedule_id = pt.calendar_schedule_id
9690 and sc.staff_id = pt.staff_id
9691 and sc.is_weekend = pt.is_weekend
9692 where
9693 sc.schedule_on = '2018-09-17'
9694 and sc.call_type_id = 10960
9695 and sc.staff_id = 17223
9696 order by null
9697
9698 (122.0ms) select 1 from buffer_tmp_targets_scheduled_1913539992
9699
9700 (118.9ms) /* AssignmentLimitsPerPeriod */
9701 /* Unique Key: assignment_limit_id, staff_id, start_date */
9702 insert into buffer_staff_assignments_count_periods_1913539992 (
9703 assignment_limit_id, staff_id, start_date, end_date, assignments_count
9704 )
9705 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
9706 1 as assignments_count
9707 from buffer_schedules_1913539992 as sc
9708 inner join buffer_assignment_limit_call_types_1913539992 as alct
9709 on sc.call_type_id = alct.call_type_id
9710 inner join assignment_limits as al
9711 on alct.assignment_limit_id = al.id
9712 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9713 and al.max_per_period_limit is not null
9714 inner join assign_staff_types as ast
9715 on sc.staff_id = ast.staff_id
9716 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9717 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9718 on alct.assignment_limit_id = alst.assignment_limit_id
9719 and ast.staff_type_id = alst.staff_type_id
9720 inner join (
9721 select assignment_limit_id, start_date, end_date
9722 from buffer_linkage_assignments_count_periods_1913539992
9723 group by assignment_limit_id, start_date, end_date
9724 order by null
9725 ) as lac
9726 on alct.assignment_limit_id = lac.assignment_limit_id
9727 and sc.schedule_on between lac.start_date and lac.end_date
9728 where sc.schedule_on = '2018-09-17'
9729 and sc.call_type_id = 10960
9730 and sc.staff_id = 17223
9731 on duplicate key update
9732 assignments_count = assignments_count + 1
9733
9734 (123.2ms) /* AssignmentLimitsPerWeek */
9735 /* Unique Key: assignment_limit_id, staff_id, start_date */
9736 insert into buffer_staff_assignments_count_weeks_1913539992 (
9737 assignment_limit_id, staff_id, start_date, end_date, assignments_count
9738 )
9739 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
9740 1 as assignments_count
9741 from buffer_schedules_1913539992 as sc
9742 inner join buffer_assignment_limit_call_types_1913539992 as alct
9743 on sc.call_type_id = alct.call_type_id
9744 inner join assignment_limits as al
9745 on alct.assignment_limit_id = al.id
9746 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9747 and al.max_weekly_limit is not null
9748 inner join assign_staff_types as ast
9749 on sc.staff_id = ast.staff_id
9750 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9751 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9752 on alct.assignment_limit_id = alst.assignment_limit_id
9753 and ast.staff_type_id = alst.staff_type_id
9754 inner join (
9755 select assignment_limit_id, start_date, end_date
9756 from buffer_linkage_assignments_count_weeks_1913539992
9757 group by assignment_limit_id, start_date, end_date
9758 order by null
9759 ) as lac
9760 on alct.assignment_limit_id = lac.assignment_limit_id
9761 and sc.schedule_on between lac.start_date and lac.end_date
9762 where sc.schedule_on = '2018-09-17'
9763 and sc.call_type_id = 10960
9764 and sc.staff_id = 17223
9765 on duplicate key update
9766 assignments_count = assignments_count + 1
9767
9768 (121.8ms) /* AssignmentLimitsRolling */
9769 /* Unique Key: assignment_limit_id, staff_id, start_date */
9770 insert into buffer_staff_assignments_count_rolling_1913539992 (
9771 assignment_limit_id, staff_id, start_date, end_date, assignments_count
9772 )
9773 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
9774 1 as assignments_count
9775 from buffer_schedules_1913539992 as sc
9776 inner join buffer_assignment_limit_call_types_1913539992 as alct
9777 on sc.call_type_id = alct.call_type_id
9778 inner join assignment_limits as al
9779 on alct.assignment_limit_id = al.id
9780 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9781 and al.max_rolling_period is not null
9782 and al.max_rolling_limit is not null
9783 inner join assign_staff_types as ast
9784 on sc.staff_id = ast.staff_id
9785 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9786 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9787 on alct.assignment_limit_id = alst.assignment_limit_id
9788 and ast.staff_type_id = alst.staff_type_id
9789 inner join (
9790 select assignment_limit_id, start_date, end_date
9791 from buffer_linkage_assignments_count_rolling_1913539992
9792 group by assignment_limit_id, start_date, end_date
9793 order by null
9794 ) as lac
9795 on alct.assignment_limit_id = lac.assignment_limit_id
9796 and sc.schedule_on between lac.start_date and lac.end_date
9797 where sc.schedule_on = '2018-09-17'
9798 and sc.call_type_id = 10960
9799 and sc.staff_id = 17223
9800 on duplicate key update
9801 assignments_count = assignments_count + 1
9802
9803 (116.2ms) /* AssignmentLimitsConsecutive */
9804 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
9805 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
9806 assignment_limit_id, staff_id, schedule_on, start_date, end_date
9807 )
9808 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
9809 from buffer_schedules_1913539992 as sc
9810 inner join buffer_assignment_limit_call_types_1913539992 as alct
9811 on sc.call_type_id = alct.call_type_id
9812 inner join assignment_limits as al
9813 on alct.assignment_limit_id = al.id
9814 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
9815 and al.max_consecutive_limit is not null
9816 inner join assign_staff_types as ast
9817 on sc.staff_id = ast.staff_id
9818 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
9819 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9820 on alct.assignment_limit_id = alst.assignment_limit_id
9821 and ast.staff_type_id = alst.staff_type_id
9822 inner join (
9823 select assignment_limit_id, start_date, end_date
9824 from buffer_linkage_assignments_count_consecutive_1913539992
9825 group by assignment_limit_id, start_date, end_date
9826 order by null
9827 ) as lac
9828 on alct.assignment_limit_id = lac.assignment_limit_id
9829 and sc.schedule_on between lac.start_date and lac.end_date
9830 where sc.schedule_on = '2018-09-17'
9831 and sc.call_type_id = 10960
9832 and sc.staff_id = 17223
9833
9834INFO : (05-29 13:28:04) scheduled for: plan unit: [id:14201836] [2018-09-14 - CHDay], [2018-09-14 - CHCall], [2018-09-15 - CHCall2], [2018-09-16 - CHCall], [2018-09-17 - CHDay 4], Rebecca Cox. DEPTH(2)
9835 (123.9ms) select
9836 coalesce(max(
9837 case
9838 when (ct.max_weekday_assignments > 0) then 1
9839 else 0
9840 end
9841 ), 0) as weekday_flag,
9842 coalesce(max(
9843 case
9844 when (ct.max_weekend_assignments > 0) then 1
9845 else 0
9846 end
9847 ), 0) as weekend_flag
9848 from
9849 buffer_auto_populate_slots_1913539992 as aps
9850 inner join call_types as ct
9851 on aps.call_type_id = ct.id
9852
9853 (125.8ms) delete ca
9854 from buffer_combined_availabilities_1913539992 as ca
9855 inner join (
9856 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
9857 sum(lac.assignments_count) as assignments_count
9858 from (
9859 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
9860 from buffer_combined_availabilities_1913539992 as ca
9861 inner join buffer_schedules_1913539992 as sc
9862 on ca.schedule_id = sc.id
9863 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
9864 order by null
9865 ) as ca_sc
9866 inner join buffer_linkage_assignments_count_weeks_1913539992 as lac
9867 on ca_sc.linkage_instance_id = lac.linkage_instance_id
9868 and ca_sc.schedule_on = lac.schedule_on
9869 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9870 on lac.assignment_limit_id = alst.assignment_limit_id
9871 and ca_sc.staff_type_id = alst.staff_type_id
9872 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
9873 order by null
9874 ) as lac
9875 on ca.linkage_instance_id = lac.linkage_instance_id
9876 and ca.staff_id = lac.staff_id
9877 inner join assignment_limits as al
9878 on lac.assignment_limit_id = al.id
9879 left join buffer_staff_assignments_count_weeks_1913539992 as sac
9880 on lac.assignment_limit_id = sac.assignment_limit_id
9881 and lac.staff_id = sac.staff_id
9882 and lac.start_date = sac.start_date
9883 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_weekly_limit
9884
9885 (239.9ms) delete ca
9886 from buffer_combined_availabilities_1913539992 as ca
9887 inner join (
9888 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
9889 count(distinct if(sac.id is null, lac.schedule_on, null)) as assignments_count
9890 from (
9891 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
9892 from buffer_combined_availabilities_1913539992 as ca
9893 inner join buffer_schedules_1913539992 as sc
9894 on ca.schedule_id = sc.id
9895 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
9896 order by null
9897 ) as ca_sc
9898 inner join buffer_linkage_assignments_count_consecutive_1913539992 as lac
9899 on ca_sc.linkage_instance_id = lac.linkage_instance_id
9900 and ca_sc.schedule_on = lac.schedule_on
9901 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9902 on lac.assignment_limit_id = alst.assignment_limit_id
9903 and ca_sc.staff_type_id = alst.staff_type_id
9904 left join buffer_staff_assignments_count_consecutive_1913539992 as sac
9905 on lac.assignment_limit_id = sac.assignment_limit_id
9906 and ca_sc.staff_id = sac.staff_id
9907 and lac.schedule_on = sac.schedule_on
9908 and lac.start_date = sac.start_date
9909 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
9910 order by null
9911 ) as lac
9912 on ca.linkage_instance_id = lac.linkage_instance_id
9913 and ca.staff_id = lac.staff_id
9914 inner join assignment_limits as al
9915 on lac.assignment_limit_id = al.id
9916 left join (
9917 select assignment_limit_id, staff_id, start_date,
9918 count(schedule_on) as assignments_count
9919 from buffer_staff_assignments_count_consecutive_1913539992
9920 group by assignment_limit_id, staff_id, start_date
9921 ) as sac
9922 on lac.assignment_limit_id = sac.assignment_limit_id
9923 and lac.staff_id = sac.staff_id
9924 and lac.start_date = sac.start_date
9925 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_consecutive_limit
9926
9927 (131.1ms) delete ca
9928 from buffer_combined_availabilities_1913539992 as ca
9929 inner join (
9930 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
9931 sum(lac.assignments_count) as assignments_count
9932 from (
9933 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
9934 from buffer_combined_availabilities_1913539992 as ca
9935 inner join buffer_schedules_1913539992 as sc
9936 on ca.schedule_id = sc.id
9937 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
9938 order by null
9939 ) as ca_sc
9940 inner join buffer_linkage_assignments_count_periods_1913539992 as lac
9941 on ca_sc.linkage_instance_id = lac.linkage_instance_id
9942 and ca_sc.schedule_on = lac.schedule_on
9943 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9944 on lac.assignment_limit_id = alst.assignment_limit_id
9945 and ca_sc.staff_type_id = alst.staff_type_id
9946 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
9947 order by null
9948 ) as lac
9949 on ca.linkage_instance_id = lac.linkage_instance_id
9950 and ca.staff_id = lac.staff_id
9951 inner join assignment_limits as al
9952 on lac.assignment_limit_id = al.id
9953 left join buffer_staff_assignments_count_periods_1913539992 as sac
9954 on lac.assignment_limit_id = sac.assignment_limit_id
9955 and lac.staff_id = sac.staff_id
9956 and lac.start_date = sac.start_date
9957 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_per_period_limit
9958
9959 (126.0ms) delete ca
9960 from buffer_combined_availabilities_1913539992 as ca
9961 inner join (
9962 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
9963 sum(lac.assignments_count) as assignments_count
9964 from (
9965 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
9966 from buffer_combined_availabilities_1913539992 as ca
9967 inner join buffer_schedules_1913539992 as sc
9968 on ca.schedule_id = sc.id
9969 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
9970 order by null
9971 ) as ca_sc
9972 inner join buffer_linkage_assignments_count_rolling_1913539992 as lac
9973 on ca_sc.linkage_instance_id = lac.linkage_instance_id
9974 and ca_sc.schedule_on = lac.schedule_on
9975 inner join buffer_assignment_limit_staff_types_1913539992 as alst
9976 on lac.assignment_limit_id = alst.assignment_limit_id
9977 and ca_sc.staff_type_id = alst.staff_type_id
9978 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
9979 order by null
9980 ) as lac
9981 on ca.linkage_instance_id = lac.linkage_instance_id
9982 and ca.staff_id = lac.staff_id
9983 inner join assignment_limits as al
9984 on lac.assignment_limit_id = al.id
9985 left join buffer_staff_assignments_count_rolling_1913539992 as sac
9986 on lac.assignment_limit_id = sac.assignment_limit_id
9987 and lac.staff_id = sac.staff_id
9988 and lac.start_date = sac.start_date
9989 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_rolling_limit
9990
9991 (128.5ms) /* NegativeLinkRule */
9992 delete ca
9993 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
9994 inner join buffer_negative_relations_1913539992 as nr use index (ix_buffer_negative_relations_composite_1)
9995 on ca.schedule_id = nr.schedule_id
9996 and ca.staff_id = nr.staff_id
9997
9998 (122.1ms) /* SpecializationOverlapRule */
9999 delete ca
10000 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
10001 inner join buffer_schedules_1913539992 as sc
10002 on ca.schedule_id = sc.id
10003 inner join buffer_staff_specializations_1913539992 as ssp
10004 on ca.staff_id = ssp.staff_id
10005 inner join max_applicable_call_types as mact
10006 on ssp.specialization_id = mact.specialization_id
10007 and sc.call_type_id = mact.call_type_id
10008 inner join buffer_specialization_daily_counts_1913539992 as sdc use index (ix_buffer_specialization_daily_counts_composite_1)
10009 on ssp.specialization_id = sdc.specialization_id
10010 and sc.schedule_on = sdc.schedule_on
10011 and sdc.staff_id is null
10012 left join buffer_specialization_daily_counts_1913539992 as sdc_2 use index (ix_buffer_specialization_daily_counts_composite_1)
10013 on ssp.specialization_id = sdc_2.specialization_id
10014 and sc.schedule_on = sdc_2.schedule_on
10015 and ca.staff_id = sdc_2.staff_id
10016 where sdc.should_be_evaluated = 1
10017 and (sdc.staffs_scheduled + if(sdc_2.id is null, 1, 0)) > sdc.max_scheduled
10018
10019 (126.4ms) /* BrokenLinkageRule */
10020 truncate table buffer_combined_availability_linkages_1913539992
10021
10022 (127.1ms) insert into buffer_combined_availability_linkages_1913539992 (
10023 staff_id,
10024 linkage_instance_id,
10025 slots_count,
10026 is_primary,
10027 has_violations
10028 )
10029 select
10030 staff_id,
10031 linkage_instance_id,
10032 count(1) as slots_count,
10033 min(is_primary) as is_primary,
10034 max(has_violations) as has_violations
10035 from buffer_combined_availabilities_1913539992 use index (ix_buffer_combined_availabilities_composite_2)
10036 group by
10037 staff_id,
10038 linkage_instance_id
10039 order by null
10040
10041 (128.7ms) delete ca
10042 from
10043 buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
10044 inner join buffer_schedules_1913539992 as sc
10045 on ca.schedule_id = sc.id
10046 inner join buffer_linkages_1913539992 as l
10047 on sc.linkage_instance_id = l.linkage_instance_id
10048 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
10049 on ca.staff_id = ls_1.staff_id
10050 and sc.linkage_instance_id = ls_1.linkage_instance_id
10051 left join buffer_schedule_linkages_1913539992 as ls_2 use index (ix_buffer_schedule_linkages_composite_1)
10052 on ca.staff_id = ls_2.staff_id
10053 and sc.linkage_instance_id = ls_2.linkage_instance_id
10054 where (ls_1.slots_count + coalesce(ls_2.slots_count, 0)) < l.slots_count_total /* not covering the whole chain */;
10055
10056 (155.6ms) select straight_join
10057 sc.schedule_on,
10058 sc.call_type_id,
10059 count(distinct ca.staff_id) as available_members_count,
10060 group_concat(
10061 distinct concat(if(ls_1.is_primary = 1, 'p', 's'), ca.staff_id)
10062 order by ls_1.is_primary desc, ca.staff_id
10063 separator ', '
10064 ) as available_members_ids,
10065 sc.linkage_instance_id,
10066 l.slots_count_total as linkage_slots_count
10067 from buffer_combined_availabilities_1913539992 as ca
10068 inner join buffer_schedules_1913539992 as sc
10069 on ca.schedule_id = sc.id
10070 inner join buffer_linkages_1913539992 as l
10071 on sc.linkage_instance_id = l.linkage_instance_id
10072 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
10073 on ca.staff_id = ls_1.staff_id
10074 and sc.linkage_instance_id = ls_1.linkage_instance_id
10075 and ls_1.has_violations = 0
10076 where sc.should_be_evaluated = 1
10077 and sc.should_be_populated = 1
10078 group by sc.schedule_on, sc.call_type_id, sc.linkage_instance_id, l.slots_count_total
10079 order by available_members_count, sc.schedule_on, sc.display_order
10080 limit 1
10081
10082 (127.2ms) truncate table buffer_rule_scores_1913539992
10083
10084 (127.3ms) truncate table buffer_rule_calc_filters_1913539992
10085
10086 (125.4ms) insert into buffer_rule_calc_filters_1913539992 (
10087 linkage_instance_id,
10088 staff_id
10089 ) values (14201837, 21025)
10090
10091 (127.6ms) /* CallDaysRule */
10092 insert into buffer_rule_scores_1913539992 (
10093 linkage_instance_id,
10094 schedule_id,
10095 staff_id,
10096 rule_name,
10097 value
10098 )
10099 select
10100 b_schedules.linkage_instance_id,
10101 b_schedules.id as schedule_id,
10102 availabilities.staff_id,
10103 'CallDaysRule' as _rule_name,
10104 (min(abs(datediff(b_schedules.schedule_on, rc_schedules.schedule_on))) div 7) as value
10105 from
10106 buffer_rule_calc_filters_1913539992 as filters
10107 inner join buffer_schedules_1913539992 as b_schedules
10108 on filters.linkage_instance_id = b_schedules.linkage_instance_id
10109 inner join buffer_combined_availabilities_1913539992 as availabilities
10110 on b_schedules.id = availabilities.schedule_id
10111 and filters.staff_id = availabilities.staff_id
10112 left join buffer_rule_calc_schedules_1913539992 as rc_schedules
10113 on availabilities.staff_id = rc_schedules.staff_id
10114 and b_schedules.day_of_week_mask = rc_schedules.day_of_week_mask
10115 group by
10116 b_schedules.linkage_instance_id,
10117 b_schedules.id,
10118 availabilities.staff_id,
10119 _rule_name
10120 order by null
10121
10122 (128.0ms) /* CumulativePointTargetsRule */
10123 insert into buffer_rule_scores_1913539992 (
10124 linkage_instance_id,
10125 schedule_id,
10126 staff_id,
10127 rule_name,
10128 value
10129 )
10130 select
10131 b_schedules.linkage_instance_id,
10132 b_schedules.id as schedule_id,
10133 availabilities.staff_id,
10134 'CumulativePointTargetsRule' as rule_name,
10135 ((b_targets.raw_target - b_targets.scheduled) /
10136 b_targets.raw_target) as value
10137 from
10138 buffer_rule_calc_filters_1913539992 as filters
10139 inner join buffer_schedules_1913539992 as b_schedules
10140 on filters.linkage_instance_id = b_schedules.linkage_instance_id
10141 inner join buffer_combined_availabilities_1913539992 as availabilities
10142 on b_schedules.id = availabilities.schedule_id
10143 and filters.staff_id = availabilities.staff_id
10144 inner join buffer_cumulative_point_targets_1913539992 as b_targets
10145 on availabilities.staff_id = b_targets.staff_id
10146 and b_schedules.is_weekend = b_targets.is_weekend
10147 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
10148 order by null;
10149
10150 (122.9ms) /* CurrentPointTargetsRule */
10151 insert into buffer_rule_scores_1913539992 (
10152 linkage_instance_id,
10153 schedule_id,
10154 staff_id,
10155 rule_name,
10156 value
10157 )
10158 select
10159 b_schedules.linkage_instance_id,
10160 b_schedules.id as schedule_id,
10161 availabilities.staff_id,
10162 'CurrentPointTargetsRule' as rule_name,
10163 ((b_targets.adjusted_target - b_targets.scheduled) / b_targets.adjusted_target) as value
10164 from
10165 buffer_rule_calc_filters_1913539992 as filters
10166 inner join buffer_schedules_1913539992 as b_schedules
10167 on filters.linkage_instance_id = b_schedules.linkage_instance_id
10168 inner join buffer_combined_availabilities_1913539992 as availabilities
10169 on b_schedules.id = availabilities.schedule_id
10170 and filters.staff_id = availabilities.staff_id
10171 inner join buffer_current_point_targets_1913539992 as b_targets
10172 on availabilities.staff_id = b_targets.staff_id
10173 and b_schedules.is_weekend = b_targets.is_weekend
10174 and b_schedules.period_offset = b_targets.period_offset
10175 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
10176 order by null
10177
10178 (128.6ms) truncate table buffer_rule_scores_with_corrections_1913539992
10179
10180 (125.1ms) insert into buffer_rule_scores_with_corrections_1913539992 (
10181 linkage_instance_id, schedule_id, staff_id, rule_name, value
10182 )
10183 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id, rule_scores.rule_name,
10184 ifnull(rule_scores.value, max_values.max_value + 1) as value
10185 from buffer_rule_scores_1913539992 as rule_scores
10186 inner join (
10187 select rule_name, max(value) as max_value
10188 from buffer_rule_scores_1913539992
10189 group by rule_name
10190 order by null
10191 ) as max_values
10192 on rule_scores.rule_name = max_values.rule_name
10193 order by null
10194
10195 (123.6ms) select linkage_instance_id, staff_id, avg(slot_scores) as scores
10196 from (
10197 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id,
10198 sum(
10199 if((total_values.total_value > 0), (rule_scores.value / total_values.total_value), 0) *
10200 rules.weight *
10201 total_values.slots_count
10202 ) as slot_scores
10203 from buffer_rule_scores_with_corrections_1913539992 as rule_scores
10204 inner join (
10205 select rule_name, sum(abs(value)) as total_value,
10206 count(distinct schedule_id) as slots_count
10207 from buffer_rule_scores_with_corrections_1913539992
10208 group by rule_name
10209 order by null
10210 ) as total_values
10211 on rule_scores.rule_name = total_values.rule_name
10212 inner join rules
10213 on rule_scores.rule_name = rules.type
10214 where rules.rule_set_id = 1232
10215 and rules.applied = 1
10216 group by rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id
10217 order by null
10218 ) as staff_scores
10219 group by linkage_instance_id, staff_id
10220 order by round(avg(slot_scores), 5) desc, rand()
10221 limit 1
10222
10223 PublishedBlock Load (124.0ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-21' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
10224 PublishedBlockCallType Load (123.1ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
10225 (123.2ms) BEGIN
10226 (125.5ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
10227 FROM call_types AS ct
10228 INNER JOIN calendar_schedules AS cs
10229 ON ct.calendar_schedule_id = cs.id
10230 INNER JOIN blocks AS b
10231 ON b.client_id = ct.client_id
10232 AND b.block_schedule_id = cs.block_schedule_id
10233 AND '2018-09-21' BETWEEN b.start_date AND b.end_date
10234 INNER JOIN published_blocks AS pb
10235 ON pb.client_id = ct.client_id
10236 AND pb.block_id = b.id
10237 AND pb.calendar_schedule_id = cs.id
10238 LEFT JOIN published_block_call_types AS pbct
10239 ON pbct.client_id = ct.client_id
10240 AND pbct.assignment_id = ct.id
10241 AND pbct.assignment_type = 'CallType'
10242 AND pbct.block_id = b.id
10243 AND (
10244 (1 << (DAYOFWEEK('2018-09-21') - 1) & pbct.days_of_week_mask) > 0
10245 )
10246 WHERE ct.id = 10167
10247 AND (
10248 (
10249 pb.assignment_ids IS NULL
10250 AND (1 << (DAYOFWEEK('2018-09-21') - 1) & pb.days_of_week_mask) > 0
10251 )
10252 OR pbct.id IS NOT NULL
10253 )
10254
10255 CallType Load (122.6ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
10256 Client Load (125.0ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
10257 Staff Load (119.8ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 21025 LIMIT 1
10258 Schedule Exists (121.2ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-21' LIMIT 1
10259 SQL (144.2ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 21025, '2018-09-21', '2018-05-29 13:28:10', '2018-05-29 13:28:10', 0, 6, 'auto_populate_step', 30093)
10260 VisibleAssignment Load (116.8ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-21' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
10261 (125.5ms) COMMIT
10262FLUSHED: nil:nil
10263 PublishedBlock Load (122.9ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-21' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
10264 PublishedBlockCallType Load (122.8ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10832 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
10265INFO : (05-29 13:28:10) Not creating schedule because of call type linkage behavior settings: [2018-09-21 - CHDay]
10266 PublishedBlock Load (117.1ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-22' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
10267 PublishedBlockCallType Load (124.1ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10168 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
10268 (121.4ms) BEGIN
10269 (238.8ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
10270 FROM call_types AS ct
10271 INNER JOIN calendar_schedules AS cs
10272 ON ct.calendar_schedule_id = cs.id
10273 INNER JOIN blocks AS b
10274 ON b.client_id = ct.client_id
10275 AND b.block_schedule_id = cs.block_schedule_id
10276 AND '2018-09-22' BETWEEN b.start_date AND b.end_date
10277 INNER JOIN published_blocks AS pb
10278 ON pb.client_id = ct.client_id
10279 AND pb.block_id = b.id
10280 AND pb.calendar_schedule_id = cs.id
10281 LEFT JOIN published_block_call_types AS pbct
10282 ON pbct.client_id = ct.client_id
10283 AND pbct.assignment_id = ct.id
10284 AND pbct.assignment_type = 'CallType'
10285 AND pbct.block_id = b.id
10286 AND (
10287 (1 << (DAYOFWEEK('2018-09-22') - 1) & pbct.days_of_week_mask) > 0
10288 )
10289 WHERE ct.id = 10168
10290 AND (
10291 (
10292 pb.assignment_ids IS NULL
10293 AND (1 << (DAYOFWEEK('2018-09-22') - 1) & pb.days_of_week_mask) > 0
10294 )
10295 OR pbct.id IS NOT NULL
10296 )
10297
10298 CallType Load (124.8ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10168 LIMIT 1
10299 Client Load (125.0ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
10300 Staff Load (118.8ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 21025 LIMIT 1
10301 Schedule Exists (121.9ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10168 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-22' LIMIT 1
10302 SQL (128.7ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10168, 21025, '2018-09-22', '2018-05-29 13:28:11', '2018-05-29 13:28:11', 1, 7, 'auto_populate_step', 30093)
10303 VisibleAssignment Load (124.2ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-22' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10168 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
10304 (117.6ms) COMMIT
10305FLUSHED: nil:nil
10306 PublishedBlock Load (122.6ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-23' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
10307 PublishedBlockCallType Load (126.0ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
10308 (124.2ms) BEGIN
10309 (118.4ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
10310 FROM call_types AS ct
10311 INNER JOIN calendar_schedules AS cs
10312 ON ct.calendar_schedule_id = cs.id
10313 INNER JOIN blocks AS b
10314 ON b.client_id = ct.client_id
10315 AND b.block_schedule_id = cs.block_schedule_id
10316 AND '2018-09-23' BETWEEN b.start_date AND b.end_date
10317 INNER JOIN published_blocks AS pb
10318 ON pb.client_id = ct.client_id
10319 AND pb.block_id = b.id
10320 AND pb.calendar_schedule_id = cs.id
10321 LEFT JOIN published_block_call_types AS pbct
10322 ON pbct.client_id = ct.client_id
10323 AND pbct.assignment_id = ct.id
10324 AND pbct.assignment_type = 'CallType'
10325 AND pbct.block_id = b.id
10326 AND (
10327 (1 << (DAYOFWEEK('2018-09-23') - 1) & pbct.days_of_week_mask) > 0
10328 )
10329 WHERE ct.id = 10167
10330 AND (
10331 (
10332 pb.assignment_ids IS NULL
10333 AND (1 << (DAYOFWEEK('2018-09-23') - 1) & pb.days_of_week_mask) > 0
10334 )
10335 OR pbct.id IS NOT NULL
10336 )
10337
10338 CallType Load (122.4ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
10339 Client Load (124.8ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
10340 Staff Load (124.0ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 21025 LIMIT 1
10341 Schedule Exists (124.9ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-23' LIMIT 1
10342 SQL (123.4ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 21025, '2018-09-23', '2018-05-29 13:28:13', '2018-05-29 13:28:13', 1, 1, 'auto_populate_step', 30093)
10343 VisibleAssignment Load (125.8ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-23' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
10344 (123.4ms) COMMIT
10345FLUSHED: nil:nil
10346 (125.3ms) UPDATE buffer_schedules_1913539992
10347 SET staff_id = 21025,
10348 should_be_populated = 0,
10349 should_be_evaluated = 0
10350 WHERE
10351 call_type_id = 10167
10352 AND schedule_on = '2018-09-21'
10353
10354 (125.6ms) delete from buffer_combined_availabilities_1913539992
10355 where linkage_instance_id = 14201837
10356
10357 (117.8ms) UPDATE buffer_rule_calc_schedules_1913539992
10358 SET staff_id = 21025
10359 WHERE call_type_id = 10167
10360 AND schedule_on = '2018-09-21'
10361
10362 (124.8ms) INSERT INTO buffer_rule_calc_schedules_1913539992
10363 SET staff_id = 21025,
10364 call_type_id = 10167,
10365 schedule_on = '2018-09-21',
10366 day_of_week_mask = 32
10367
10368 (127.7ms) /* NegativeLinkRule */
10369 UPDATE buffer_negative_relations_1913539992
10370 SET staff_id = 21025
10371 WHERE affected_by_schedule_id = (
10372 SELECT id
10373 FROM buffer_schedules_1913539992
10374 WHERE schedule_on = '2018-09-21'
10375 AND call_type_id = 10167
10376 )
10377
10378 (124.2ms) /* SpecializationOverlapRule */
10379 update buffer_staff_specializations_1913539992 as st_sp
10380 inner join max_applicable_call_types as mact
10381 on st_sp.specialization_id = mact.specialization_id
10382 and mact.call_type_id = 10167
10383 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
10384 on st_sp.specialization_id = sp_dc.specialization_id
10385 and sp_dc.staff_id is null
10386 and sp_dc.schedule_on = '2018-09-21'
10387 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
10388 on st_sp.specialization_id = sp_dc_2.specialization_id
10389 and st_sp.staff_id = sp_dc_2.staff_id
10390 and sp_dc_2.schedule_on = '2018-09-21'
10391 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
10392 where st_sp.staff_id = 21025
10393 and sp_dc_2.id is null
10394
10395 (122.9ms) insert into buffer_specialization_daily_counts_1913539992 (
10396 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
10397 )
10398 select sp.id as specialization_id,
10399 21025 as staff_id,
10400 '2018-09-21' as schedule_on,
10401 1 as staffs_scheduled,
10402 sp.max_scheduled,
10403 sp_dc.should_be_evaluated
10404 from buffer_staff_specializations_1913539992 as st_sp
10405 inner join specializations as sp
10406 on st_sp.specialization_id = sp.id
10407 inner join max_applicable_call_types as mact
10408 on st_sp.specialization_id = mact.specialization_id
10409 and mact.call_type_id = 10167
10410 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
10411 on st_sp.specialization_id = sp_dc.specialization_id
10412 and sp_dc.staff_id is null
10413 and sp_dc.schedule_on = '2018-09-21'
10414 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
10415 on st_sp.specialization_id = sp_dc_2.specialization_id
10416 and st_sp.staff_id = sp_dc_2.staff_id
10417 and sp_dc_2.schedule_on = '2018-09-21'
10418 where st_sp.staff_id = 21025
10419 and sp_dc_2.id is null
10420
10421 (123.6ms) /* MaxAssignmentsRule */
10422 delete from buffer_linkage_call_type_assignments_1913539992
10423 where linkage_instance_id = 14201837;
10424
10425 (121.2ms) /* MaxAssignmentsRule */
10426 update
10427 buffer_schedules_1913539992 as sc
10428 inner join call_types as ct
10429 on sc.call_type_id = ct.id
10430 and ct.active = 1
10431 inner join buffer_call_type_assignments_1913539992 as cta
10432 on sc.staff_id = cta.staff_id
10433 and sc.call_type_id = cta.call_type_id
10434 and sc.is_weekend = cta.is_weekend
10435 and sc.period_offset = cta.period_offset
10436 and sc.calendar_schedule_id = cta.calendar_schedule_id
10437 set cta.assignments_count = cta.assignments_count + 1
10438 where
10439 sc.schedule_on = '2018-09-21'
10440 and sc.call_type_id = 10167
10441 and sc.staff_id = 21025
10442
10443 (121.3ms) insert into buffer_call_type_assignments_1913539992 (
10444 staff_id,
10445 call_type_id,
10446 is_weekend,
10447 period_offset,
10448 calendar_schedule_id,
10449 assignments_count
10450 )
10451 select
10452 sc.staff_id,
10453 sc.call_type_id,
10454 sc.is_weekend,
10455 sc.period_offset,
10456 sc.calendar_schedule_id,
10457 1 as assignments_count
10458 from buffer_schedules_1913539992 as sc
10459 where
10460 sc.staff_id = 21025
10461 and sc.schedule_on = '2018-09-21'
10462 and sc.call_type_id = 10167
10463
10464 (125.7ms) /* UnassignedDaysRule */
10465 delete from buffer_linkage_assigned_days_1913539992
10466 where linkage_instance_id = 14201837
10467
10468 (125.0ms) /* UnassignedDaysRule */
10469 UPDATE buffer_staff_assigned_days_1913539992 as sad
10470 inner join call_types as ct
10471 on ct.id = 10167
10472 and ct.unassigned_day = 0
10473 SET sad.is_assigned = 1
10474 WHERE sad.staff_id = 21025
10475 AND sad.schedule_on = '2018-09-21'
10476
10477 (119.6ms) truncate table buffer_tmp_targets_scheduled_1913539992
10478
10479 (128.8ms) insert into buffer_tmp_targets_scheduled_1913539992 (
10480 block_id,
10481 calendar_schedule_id,
10482 staff_id,
10483 assignment_id,
10484 assignment_type,
10485 day_of_week_mask,
10486 is_weekend,
10487 scheduled,
10488 other_scheduled
10489 )
10490 select
10491 pt.block_id,
10492 pt.calendar_schedule_id,
10493 pt.staff_id,
10494 0 as assignment_id,
10495 '' as assignment_type,
10496 0 as day_of_week_mask,
10497 pt.is_weekend,
10498 case
10499 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
10500 else 0.0
10501 end as scheduled,
10502 case
10503 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
10504 else 0.0
10505 end as other_scheduled
10506 from
10507 buffer_schedules_1913539992 as sc
10508 inner join buffer_counter_increments_1913539992 as ci
10509 on sc.id = ci.schedule_id
10510 and ci.points != 0
10511 inner join assign_staff_types as ast
10512 on sc.staff_id = ast.staff_id
10513 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
10514 inner join staff_types as st
10515 on ast.staff_type_id = st.id
10516 inner join buffer_point_targets_1913539992 as pt
10517 on sc.block_id = pt.block_id
10518 and st.point_hour_schedule_id = pt.calendar_schedule_id
10519 and sc.staff_id = pt.staff_id
10520 and sc.is_weekend = pt.is_weekend
10521 where
10522 sc.schedule_on = '2018-09-21'
10523 and sc.call_type_id = 10167
10524 and sc.staff_id = 21025
10525 order by null
10526
10527 (125.5ms) select 1 from buffer_tmp_targets_scheduled_1913539992
10528
10529 (126.1ms) update
10530 buffer_tmp_targets_scheduled_1913539992 as sch_t
10531 inner join buffer_point_targets_1913539992 as pt
10532 on sch_t.block_id = pt.block_id
10533 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
10534 and sch_t.staff_id = pt.staff_id
10535 and sch_t.is_weekend = pt.is_weekend
10536 set
10537 pt.scheduled = pt.scheduled + sch_t.scheduled,
10538 pt.scheduled_delta = sch_t.scheduled,
10539 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
10540 pt.other_scheduled_delta = sch_t.other_scheduled
10541
10542 (118.6ms) select 1 from buffer_tmp_targets_scheduled_1913539992
10543 where other_scheduled != 0
10544
10545 (125.5ms) update
10546 buffer_current_point_targets_1913539992 as cr_pt
10547 inner join (
10548 select
10549 pt.staff_id,
10550 part_of_week.is_weekend,
10551 td.period_offset,
10552 pt.calendar_schedule_id,
10553 sum(pt.raw_target_delta) as raw_target_delta,
10554 sum(pt.target_delta) as adjusted_target_delta,
10555 sum(pt.scheduled_delta) as scheduled_delta,
10556 sum(pt.other_scheduled_delta) as other_scheduled_delta
10557 from
10558 buffer_tmp_targets_scheduled_1913539992 as sch_t
10559 inner join buffer_target_dates as td
10560 on td.session_id = 1913539992
10561 and sch_t.block_id = td.block_id
10562 and sch_t.calendar_schedule_id = td.calendar_schedule_id
10563 inner join buffer_point_targets_1913539992 as pt
10564 on sch_t.block_id = pt.block_id
10565 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
10566 and (
10567 sch_t.staff_id = pt.staff_id
10568 or sch_t.other_scheduled != 0
10569 )
10570 and sch_t.is_weekend = pt.is_weekend
10571 inner join (
10572 select 0 as is_weekend
10573 union select 1
10574
10575 ) as part_of_week
10576 on sch_t.is_weekend = part_of_week.is_weekend
10577 or part_of_week.is_weekend = -1
10578 group by
10579 pt.staff_id,
10580 part_of_week.is_weekend,
10581 td.period_offset,
10582 pt.calendar_schedule_id
10583 order by null
10584 ) as pt
10585 on cr_pt.staff_id = pt.staff_id
10586 and cr_pt.is_weekend = pt.is_weekend
10587 and cr_pt.period_offset = pt.period_offset
10588 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
10589 set
10590 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
10591 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
10592 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
10593 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
10594
10595 (126.2ms) update
10596 buffer_cumulative_point_targets_1913539992 as cu_pt
10597 inner join (
10598 select
10599 pt.staff_id,
10600 part_of_week.is_weekend,
10601 pt.calendar_schedule_id,
10602 sum(pt.raw_target_delta) as raw_target_delta,
10603 sum(pt.target_delta) as adjusted_target_delta,
10604 sum(pt.scheduled_delta) as scheduled_delta,
10605 sum(pt.other_scheduled_delta) as other_scheduled_delta
10606 from
10607 buffer_tmp_targets_scheduled_1913539992 as sch_t
10608 inner join buffer_target_dates as td
10609 on td.session_id = 1913539992
10610 and sch_t.block_id = td.block_id
10611 and sch_t.calendar_schedule_id = td.calendar_schedule_id
10612 and td.within_cumulative_period = 1
10613 inner join buffer_point_targets_1913539992 as pt
10614 on sch_t.block_id = pt.block_id
10615 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
10616 and (
10617 sch_t.staff_id = pt.staff_id
10618 or sch_t.other_scheduled != 0
10619 )
10620 and sch_t.is_weekend = pt.is_weekend
10621 inner join (
10622 select 0 as is_weekend
10623 union select 1
10624
10625 ) as part_of_week
10626 on sch_t.is_weekend = part_of_week.is_weekend
10627 or part_of_week.is_weekend = -1
10628 group by
10629 pt.staff_id,
10630 part_of_week.is_weekend,
10631 pt.calendar_schedule_id
10632 order by null
10633 ) as pt
10634 on cu_pt.staff_id = pt.staff_id
10635 and cu_pt.is_weekend = pt.is_weekend
10636 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
10637 set
10638 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
10639 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
10640 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
10641 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
10642
10643 (125.9ms) update
10644 buffer_tmp_targets_scheduled_1913539992 as sch_t
10645 inner join buffer_point_targets_1913539992 as pt
10646 on sch_t.block_id = pt.block_id
10647 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
10648 and (
10649 sch_t.staff_id = pt.staff_id
10650 or sch_t.other_scheduled != 0
10651 )
10652 and sch_t.is_weekend = pt.is_weekend
10653 set
10654 pt.raw_target_delta = 0,
10655 pt.target_delta = 0,
10656 pt.scheduled_delta = 0,
10657 pt.other_scheduled_delta = 0
10658
10659 (119.0ms) /* AssignmentLimitsPerPeriod */
10660 /* Unique Key: assignment_limit_id, staff_id, start_date */
10661 insert into buffer_staff_assignments_count_periods_1913539992 (
10662 assignment_limit_id, staff_id, start_date, end_date, assignments_count
10663 )
10664 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
10665 1 as assignments_count
10666 from buffer_schedules_1913539992 as sc
10667 inner join buffer_assignment_limit_call_types_1913539992 as alct
10668 on sc.call_type_id = alct.call_type_id
10669 inner join assignment_limits as al
10670 on alct.assignment_limit_id = al.id
10671 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
10672 and al.max_per_period_limit is not null
10673 inner join assign_staff_types as ast
10674 on sc.staff_id = ast.staff_id
10675 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
10676 inner join buffer_assignment_limit_staff_types_1913539992 as alst
10677 on alct.assignment_limit_id = alst.assignment_limit_id
10678 and ast.staff_type_id = alst.staff_type_id
10679 inner join (
10680 select assignment_limit_id, start_date, end_date
10681 from buffer_linkage_assignments_count_periods_1913539992
10682 group by assignment_limit_id, start_date, end_date
10683 order by null
10684 ) as lac
10685 on alct.assignment_limit_id = lac.assignment_limit_id
10686 and sc.schedule_on between lac.start_date and lac.end_date
10687 where sc.schedule_on = '2018-09-21'
10688 and sc.call_type_id = 10167
10689 and sc.staff_id = 21025
10690 on duplicate key update
10691 assignments_count = assignments_count + 1
10692
10693 (123.0ms) /* AssignmentLimitsPerWeek */
10694 /* Unique Key: assignment_limit_id, staff_id, start_date */
10695 insert into buffer_staff_assignments_count_weeks_1913539992 (
10696 assignment_limit_id, staff_id, start_date, end_date, assignments_count
10697 )
10698 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
10699 1 as assignments_count
10700 from buffer_schedules_1913539992 as sc
10701 inner join buffer_assignment_limit_call_types_1913539992 as alct
10702 on sc.call_type_id = alct.call_type_id
10703 inner join assignment_limits as al
10704 on alct.assignment_limit_id = al.id
10705 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
10706 and al.max_weekly_limit is not null
10707 inner join assign_staff_types as ast
10708 on sc.staff_id = ast.staff_id
10709 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
10710 inner join buffer_assignment_limit_staff_types_1913539992 as alst
10711 on alct.assignment_limit_id = alst.assignment_limit_id
10712 and ast.staff_type_id = alst.staff_type_id
10713 inner join (
10714 select assignment_limit_id, start_date, end_date
10715 from buffer_linkage_assignments_count_weeks_1913539992
10716 group by assignment_limit_id, start_date, end_date
10717 order by null
10718 ) as lac
10719 on alct.assignment_limit_id = lac.assignment_limit_id
10720 and sc.schedule_on between lac.start_date and lac.end_date
10721 where sc.schedule_on = '2018-09-21'
10722 and sc.call_type_id = 10167
10723 and sc.staff_id = 21025
10724 on duplicate key update
10725 assignments_count = assignments_count + 1
10726
10727 (126.4ms) /* AssignmentLimitsRolling */
10728 /* Unique Key: assignment_limit_id, staff_id, start_date */
10729 insert into buffer_staff_assignments_count_rolling_1913539992 (
10730 assignment_limit_id, staff_id, start_date, end_date, assignments_count
10731 )
10732 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
10733 1 as assignments_count
10734 from buffer_schedules_1913539992 as sc
10735 inner join buffer_assignment_limit_call_types_1913539992 as alct
10736 on sc.call_type_id = alct.call_type_id
10737 inner join assignment_limits as al
10738 on alct.assignment_limit_id = al.id
10739 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
10740 and al.max_rolling_period is not null
10741 and al.max_rolling_limit is not null
10742 inner join assign_staff_types as ast
10743 on sc.staff_id = ast.staff_id
10744 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
10745 inner join buffer_assignment_limit_staff_types_1913539992 as alst
10746 on alct.assignment_limit_id = alst.assignment_limit_id
10747 and ast.staff_type_id = alst.staff_type_id
10748 inner join (
10749 select assignment_limit_id, start_date, end_date
10750 from buffer_linkage_assignments_count_rolling_1913539992
10751 group by assignment_limit_id, start_date, end_date
10752 order by null
10753 ) as lac
10754 on alct.assignment_limit_id = lac.assignment_limit_id
10755 and sc.schedule_on between lac.start_date and lac.end_date
10756 where sc.schedule_on = '2018-09-21'
10757 and sc.call_type_id = 10167
10758 and sc.staff_id = 21025
10759 on duplicate key update
10760 assignments_count = assignments_count + 1
10761
10762 (124.0ms) /* AssignmentLimitsConsecutive */
10763 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
10764 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
10765 assignment_limit_id, staff_id, schedule_on, start_date, end_date
10766 )
10767 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
10768 from buffer_schedules_1913539992 as sc
10769 inner join buffer_assignment_limit_call_types_1913539992 as alct
10770 on sc.call_type_id = alct.call_type_id
10771 inner join assignment_limits as al
10772 on alct.assignment_limit_id = al.id
10773 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
10774 and al.max_consecutive_limit is not null
10775 inner join assign_staff_types as ast
10776 on sc.staff_id = ast.staff_id
10777 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
10778 inner join buffer_assignment_limit_staff_types_1913539992 as alst
10779 on alct.assignment_limit_id = alst.assignment_limit_id
10780 and ast.staff_type_id = alst.staff_type_id
10781 inner join (
10782 select assignment_limit_id, start_date, end_date
10783 from buffer_linkage_assignments_count_consecutive_1913539992
10784 group by assignment_limit_id, start_date, end_date
10785 order by null
10786 ) as lac
10787 on alct.assignment_limit_id = lac.assignment_limit_id
10788 and sc.schedule_on between lac.start_date and lac.end_date
10789 where sc.schedule_on = '2018-09-21'
10790 and sc.call_type_id = 10167
10791 and sc.staff_id = 21025
10792
10793 (120.7ms) UPDATE buffer_schedules_1913539992
10794 SET staff_id = 21025,
10795 should_be_populated = 0,
10796 should_be_evaluated = 0
10797 WHERE
10798 call_type_id = 10168
10799 AND schedule_on = '2018-09-22'
10800
10801 (122.6ms) delete from buffer_combined_availabilities_1913539992
10802 where linkage_instance_id = 14201837
10803
10804 (123.0ms) UPDATE buffer_rule_calc_schedules_1913539992
10805 SET staff_id = 21025
10806 WHERE call_type_id = 10168
10807 AND schedule_on = '2018-09-22'
10808
10809 (121.3ms) INSERT INTO buffer_rule_calc_schedules_1913539992
10810 SET staff_id = 21025,
10811 call_type_id = 10168,
10812 schedule_on = '2018-09-22',
10813 day_of_week_mask = 64
10814
10815 (129.9ms) /* NegativeLinkRule */
10816 UPDATE buffer_negative_relations_1913539992
10817 SET staff_id = 21025
10818 WHERE affected_by_schedule_id = (
10819 SELECT id
10820 FROM buffer_schedules_1913539992
10821 WHERE schedule_on = '2018-09-22'
10822 AND call_type_id = 10168
10823 )
10824
10825 (129.1ms) /* SpecializationOverlapRule */
10826 update buffer_staff_specializations_1913539992 as st_sp
10827 inner join max_applicable_call_types as mact
10828 on st_sp.specialization_id = mact.specialization_id
10829 and mact.call_type_id = 10168
10830 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
10831 on st_sp.specialization_id = sp_dc.specialization_id
10832 and sp_dc.staff_id is null
10833 and sp_dc.schedule_on = '2018-09-22'
10834 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
10835 on st_sp.specialization_id = sp_dc_2.specialization_id
10836 and st_sp.staff_id = sp_dc_2.staff_id
10837 and sp_dc_2.schedule_on = '2018-09-22'
10838 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
10839 where st_sp.staff_id = 21025
10840 and sp_dc_2.id is null
10841
10842 (126.6ms) insert into buffer_specialization_daily_counts_1913539992 (
10843 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
10844 )
10845 select sp.id as specialization_id,
10846 21025 as staff_id,
10847 '2018-09-22' as schedule_on,
10848 1 as staffs_scheduled,
10849 sp.max_scheduled,
10850 sp_dc.should_be_evaluated
10851 from buffer_staff_specializations_1913539992 as st_sp
10852 inner join specializations as sp
10853 on st_sp.specialization_id = sp.id
10854 inner join max_applicable_call_types as mact
10855 on st_sp.specialization_id = mact.specialization_id
10856 and mact.call_type_id = 10168
10857 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
10858 on st_sp.specialization_id = sp_dc.specialization_id
10859 and sp_dc.staff_id is null
10860 and sp_dc.schedule_on = '2018-09-22'
10861 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
10862 on st_sp.specialization_id = sp_dc_2.specialization_id
10863 and st_sp.staff_id = sp_dc_2.staff_id
10864 and sp_dc_2.schedule_on = '2018-09-22'
10865 where st_sp.staff_id = 21025
10866 and sp_dc_2.id is null
10867
10868 (132.4ms) /* MaxAssignmentsRule */
10869 delete from buffer_linkage_call_type_assignments_1913539992
10870 where linkage_instance_id = 14201837;
10871
10872 (126.6ms) /* MaxAssignmentsRule */
10873 update
10874 buffer_schedules_1913539992 as sc
10875 inner join call_types as ct
10876 on sc.call_type_id = ct.id
10877 and ct.active = 1
10878 inner join buffer_call_type_assignments_1913539992 as cta
10879 on sc.staff_id = cta.staff_id
10880 and sc.call_type_id = cta.call_type_id
10881 and sc.is_weekend = cta.is_weekend
10882 and sc.period_offset = cta.period_offset
10883 and sc.calendar_schedule_id = cta.calendar_schedule_id
10884 set cta.assignments_count = cta.assignments_count + 1
10885 where
10886 sc.schedule_on = '2018-09-22'
10887 and sc.call_type_id = 10168
10888 and sc.staff_id = 21025
10889
10890 (125.3ms) insert into buffer_call_type_assignments_1913539992 (
10891 staff_id,
10892 call_type_id,
10893 is_weekend,
10894 period_offset,
10895 calendar_schedule_id,
10896 assignments_count
10897 )
10898 select
10899 sc.staff_id,
10900 sc.call_type_id,
10901 sc.is_weekend,
10902 sc.period_offset,
10903 sc.calendar_schedule_id,
10904 1 as assignments_count
10905 from buffer_schedules_1913539992 as sc
10906 where
10907 sc.staff_id = 21025
10908 and sc.schedule_on = '2018-09-22'
10909 and sc.call_type_id = 10168
10910
10911 (125.2ms) /* UnassignedDaysRule */
10912 delete from buffer_linkage_assigned_days_1913539992
10913 where linkage_instance_id = 14201837
10914
10915 (123.8ms) /* UnassignedDaysRule */
10916 UPDATE buffer_staff_assigned_days_1913539992 as sad
10917 inner join call_types as ct
10918 on ct.id = 10168
10919 and ct.unassigned_day = 0
10920 SET sad.is_assigned = 1
10921 WHERE sad.staff_id = 21025
10922 AND sad.schedule_on = '2018-09-22'
10923
10924 (125.7ms) truncate table buffer_tmp_targets_scheduled_1913539992
10925
10926 (119.9ms) insert into buffer_tmp_targets_scheduled_1913539992 (
10927 block_id,
10928 calendar_schedule_id,
10929 staff_id,
10930 assignment_id,
10931 assignment_type,
10932 day_of_week_mask,
10933 is_weekend,
10934 scheduled,
10935 other_scheduled
10936 )
10937 select
10938 pt.block_id,
10939 pt.calendar_schedule_id,
10940 pt.staff_id,
10941 0 as assignment_id,
10942 '' as assignment_type,
10943 0 as day_of_week_mask,
10944 pt.is_weekend,
10945 case
10946 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
10947 else 0.0
10948 end as scheduled,
10949 case
10950 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
10951 else 0.0
10952 end as other_scheduled
10953 from
10954 buffer_schedules_1913539992 as sc
10955 inner join buffer_counter_increments_1913539992 as ci
10956 on sc.id = ci.schedule_id
10957 and ci.points != 0
10958 inner join assign_staff_types as ast
10959 on sc.staff_id = ast.staff_id
10960 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
10961 inner join staff_types as st
10962 on ast.staff_type_id = st.id
10963 inner join buffer_point_targets_1913539992 as pt
10964 on sc.block_id = pt.block_id
10965 and st.point_hour_schedule_id = pt.calendar_schedule_id
10966 and sc.staff_id = pt.staff_id
10967 and sc.is_weekend = pt.is_weekend
10968 where
10969 sc.schedule_on = '2018-09-22'
10970 and sc.call_type_id = 10168
10971 and sc.staff_id = 21025
10972 order by null
10973
10974 (123.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
10975
10976 (123.9ms) update
10977 buffer_tmp_targets_scheduled_1913539992 as sch_t
10978 inner join buffer_point_targets_1913539992 as pt
10979 on sch_t.block_id = pt.block_id
10980 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
10981 and sch_t.staff_id = pt.staff_id
10982 and sch_t.is_weekend = pt.is_weekend
10983 set
10984 pt.scheduled = pt.scheduled + sch_t.scheduled,
10985 pt.scheduled_delta = sch_t.scheduled,
10986 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
10987 pt.other_scheduled_delta = sch_t.other_scheduled
10988
10989 (123.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
10990 where other_scheduled != 0
10991
10992 (127.5ms) update
10993 buffer_current_point_targets_1913539992 as cr_pt
10994 inner join (
10995 select
10996 pt.staff_id,
10997 part_of_week.is_weekend,
10998 td.period_offset,
10999 pt.calendar_schedule_id,
11000 sum(pt.raw_target_delta) as raw_target_delta,
11001 sum(pt.target_delta) as adjusted_target_delta,
11002 sum(pt.scheduled_delta) as scheduled_delta,
11003 sum(pt.other_scheduled_delta) as other_scheduled_delta
11004 from
11005 buffer_tmp_targets_scheduled_1913539992 as sch_t
11006 inner join buffer_target_dates as td
11007 on td.session_id = 1913539992
11008 and sch_t.block_id = td.block_id
11009 and sch_t.calendar_schedule_id = td.calendar_schedule_id
11010 inner join buffer_point_targets_1913539992 as pt
11011 on sch_t.block_id = pt.block_id
11012 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
11013 and (
11014 sch_t.staff_id = pt.staff_id
11015 or sch_t.other_scheduled != 0
11016 )
11017 and sch_t.is_weekend = pt.is_weekend
11018 inner join (
11019 select 0 as is_weekend
11020 union select 1
11021
11022 ) as part_of_week
11023 on sch_t.is_weekend = part_of_week.is_weekend
11024 or part_of_week.is_weekend = -1
11025 group by
11026 pt.staff_id,
11027 part_of_week.is_weekend,
11028 td.period_offset,
11029 pt.calendar_schedule_id
11030 order by null
11031 ) as pt
11032 on cr_pt.staff_id = pt.staff_id
11033 and cr_pt.is_weekend = pt.is_weekend
11034 and cr_pt.period_offset = pt.period_offset
11035 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
11036 set
11037 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
11038 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
11039 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
11040 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
11041
11042 (125.4ms) update
11043 buffer_cumulative_point_targets_1913539992 as cu_pt
11044 inner join (
11045 select
11046 pt.staff_id,
11047 part_of_week.is_weekend,
11048 pt.calendar_schedule_id,
11049 sum(pt.raw_target_delta) as raw_target_delta,
11050 sum(pt.target_delta) as adjusted_target_delta,
11051 sum(pt.scheduled_delta) as scheduled_delta,
11052 sum(pt.other_scheduled_delta) as other_scheduled_delta
11053 from
11054 buffer_tmp_targets_scheduled_1913539992 as sch_t
11055 inner join buffer_target_dates as td
11056 on td.session_id = 1913539992
11057 and sch_t.block_id = td.block_id
11058 and sch_t.calendar_schedule_id = td.calendar_schedule_id
11059 and td.within_cumulative_period = 1
11060 inner join buffer_point_targets_1913539992 as pt
11061 on sch_t.block_id = pt.block_id
11062 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
11063 and (
11064 sch_t.staff_id = pt.staff_id
11065 or sch_t.other_scheduled != 0
11066 )
11067 and sch_t.is_weekend = pt.is_weekend
11068 inner join (
11069 select 0 as is_weekend
11070 union select 1
11071
11072 ) as part_of_week
11073 on sch_t.is_weekend = part_of_week.is_weekend
11074 or part_of_week.is_weekend = -1
11075 group by
11076 pt.staff_id,
11077 part_of_week.is_weekend,
11078 pt.calendar_schedule_id
11079 order by null
11080 ) as pt
11081 on cu_pt.staff_id = pt.staff_id
11082 and cu_pt.is_weekend = pt.is_weekend
11083 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
11084 set
11085 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
11086 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
11087 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
11088 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
11089
11090 (125.7ms) update
11091 buffer_tmp_targets_scheduled_1913539992 as sch_t
11092 inner join buffer_point_targets_1913539992 as pt
11093 on sch_t.block_id = pt.block_id
11094 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
11095 and (
11096 sch_t.staff_id = pt.staff_id
11097 or sch_t.other_scheduled != 0
11098 )
11099 and sch_t.is_weekend = pt.is_weekend
11100 set
11101 pt.raw_target_delta = 0,
11102 pt.target_delta = 0,
11103 pt.scheduled_delta = 0,
11104 pt.other_scheduled_delta = 0
11105
11106 (124.3ms) /* AssignmentLimitsPerPeriod */
11107 /* Unique Key: assignment_limit_id, staff_id, start_date */
11108 insert into buffer_staff_assignments_count_periods_1913539992 (
11109 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11110 )
11111 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11112 1 as assignments_count
11113 from buffer_schedules_1913539992 as sc
11114 inner join buffer_assignment_limit_call_types_1913539992 as alct
11115 on sc.call_type_id = alct.call_type_id
11116 inner join assignment_limits as al
11117 on alct.assignment_limit_id = al.id
11118 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11119 and al.max_per_period_limit is not null
11120 inner join assign_staff_types as ast
11121 on sc.staff_id = ast.staff_id
11122 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11123 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11124 on alct.assignment_limit_id = alst.assignment_limit_id
11125 and ast.staff_type_id = alst.staff_type_id
11126 inner join (
11127 select assignment_limit_id, start_date, end_date
11128 from buffer_linkage_assignments_count_periods_1913539992
11129 group by assignment_limit_id, start_date, end_date
11130 order by null
11131 ) as lac
11132 on alct.assignment_limit_id = lac.assignment_limit_id
11133 and sc.schedule_on between lac.start_date and lac.end_date
11134 where sc.schedule_on = '2018-09-22'
11135 and sc.call_type_id = 10168
11136 and sc.staff_id = 21025
11137 on duplicate key update
11138 assignments_count = assignments_count + 1
11139
11140 (118.6ms) /* AssignmentLimitsPerWeek */
11141 /* Unique Key: assignment_limit_id, staff_id, start_date */
11142 insert into buffer_staff_assignments_count_weeks_1913539992 (
11143 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11144 )
11145 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11146 1 as assignments_count
11147 from buffer_schedules_1913539992 as sc
11148 inner join buffer_assignment_limit_call_types_1913539992 as alct
11149 on sc.call_type_id = alct.call_type_id
11150 inner join assignment_limits as al
11151 on alct.assignment_limit_id = al.id
11152 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11153 and al.max_weekly_limit is not null
11154 inner join assign_staff_types as ast
11155 on sc.staff_id = ast.staff_id
11156 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11157 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11158 on alct.assignment_limit_id = alst.assignment_limit_id
11159 and ast.staff_type_id = alst.staff_type_id
11160 inner join (
11161 select assignment_limit_id, start_date, end_date
11162 from buffer_linkage_assignments_count_weeks_1913539992
11163 group by assignment_limit_id, start_date, end_date
11164 order by null
11165 ) as lac
11166 on alct.assignment_limit_id = lac.assignment_limit_id
11167 and sc.schedule_on between lac.start_date and lac.end_date
11168 where sc.schedule_on = '2018-09-22'
11169 and sc.call_type_id = 10168
11170 and sc.staff_id = 21025
11171 on duplicate key update
11172 assignments_count = assignments_count + 1
11173
11174 (124.4ms) /* AssignmentLimitsRolling */
11175 /* Unique Key: assignment_limit_id, staff_id, start_date */
11176 insert into buffer_staff_assignments_count_rolling_1913539992 (
11177 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11178 )
11179 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11180 1 as assignments_count
11181 from buffer_schedules_1913539992 as sc
11182 inner join buffer_assignment_limit_call_types_1913539992 as alct
11183 on sc.call_type_id = alct.call_type_id
11184 inner join assignment_limits as al
11185 on alct.assignment_limit_id = al.id
11186 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11187 and al.max_rolling_period is not null
11188 and al.max_rolling_limit is not null
11189 inner join assign_staff_types as ast
11190 on sc.staff_id = ast.staff_id
11191 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11192 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11193 on alct.assignment_limit_id = alst.assignment_limit_id
11194 and ast.staff_type_id = alst.staff_type_id
11195 inner join (
11196 select assignment_limit_id, start_date, end_date
11197 from buffer_linkage_assignments_count_rolling_1913539992
11198 group by assignment_limit_id, start_date, end_date
11199 order by null
11200 ) as lac
11201 on alct.assignment_limit_id = lac.assignment_limit_id
11202 and sc.schedule_on between lac.start_date and lac.end_date
11203 where sc.schedule_on = '2018-09-22'
11204 and sc.call_type_id = 10168
11205 and sc.staff_id = 21025
11206 on duplicate key update
11207 assignments_count = assignments_count + 1
11208
11209 (125.2ms) /* AssignmentLimitsConsecutive */
11210 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
11211 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
11212 assignment_limit_id, staff_id, schedule_on, start_date, end_date
11213 )
11214 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
11215 from buffer_schedules_1913539992 as sc
11216 inner join buffer_assignment_limit_call_types_1913539992 as alct
11217 on sc.call_type_id = alct.call_type_id
11218 inner join assignment_limits as al
11219 on alct.assignment_limit_id = al.id
11220 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11221 and al.max_consecutive_limit is not null
11222 inner join assign_staff_types as ast
11223 on sc.staff_id = ast.staff_id
11224 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11225 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11226 on alct.assignment_limit_id = alst.assignment_limit_id
11227 and ast.staff_type_id = alst.staff_type_id
11228 inner join (
11229 select assignment_limit_id, start_date, end_date
11230 from buffer_linkage_assignments_count_consecutive_1913539992
11231 group by assignment_limit_id, start_date, end_date
11232 order by null
11233 ) as lac
11234 on alct.assignment_limit_id = lac.assignment_limit_id
11235 and sc.schedule_on between lac.start_date and lac.end_date
11236 where sc.schedule_on = '2018-09-22'
11237 and sc.call_type_id = 10168
11238 and sc.staff_id = 21025
11239
11240 (128.6ms) UPDATE buffer_schedules_1913539992
11241 SET staff_id = 21025,
11242 should_be_populated = 0,
11243 should_be_evaluated = 0
11244 WHERE
11245 call_type_id = 10167
11246 AND schedule_on = '2018-09-23'
11247
11248 (122.9ms) delete from buffer_combined_availabilities_1913539992
11249 where linkage_instance_id = 14201837
11250
11251 (124.2ms) UPDATE buffer_rule_calc_schedules_1913539992
11252 SET staff_id = 21025
11253 WHERE call_type_id = 10167
11254 AND schedule_on = '2018-09-23'
11255
11256 (119.7ms) INSERT INTO buffer_rule_calc_schedules_1913539992
11257 SET staff_id = 21025,
11258 call_type_id = 10167,
11259 schedule_on = '2018-09-23',
11260 day_of_week_mask = 1
11261
11262 (124.8ms) /* NegativeLinkRule */
11263 UPDATE buffer_negative_relations_1913539992
11264 SET staff_id = 21025
11265 WHERE affected_by_schedule_id = (
11266 SELECT id
11267 FROM buffer_schedules_1913539992
11268 WHERE schedule_on = '2018-09-23'
11269 AND call_type_id = 10167
11270 )
11271
11272 (124.2ms) /* SpecializationOverlapRule */
11273 update buffer_staff_specializations_1913539992 as st_sp
11274 inner join max_applicable_call_types as mact
11275 on st_sp.specialization_id = mact.specialization_id
11276 and mact.call_type_id = 10167
11277 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
11278 on st_sp.specialization_id = sp_dc.specialization_id
11279 and sp_dc.staff_id is null
11280 and sp_dc.schedule_on = '2018-09-23'
11281 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
11282 on st_sp.specialization_id = sp_dc_2.specialization_id
11283 and st_sp.staff_id = sp_dc_2.staff_id
11284 and sp_dc_2.schedule_on = '2018-09-23'
11285 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
11286 where st_sp.staff_id = 21025
11287 and sp_dc_2.id is null
11288
11289 (126.6ms) insert into buffer_specialization_daily_counts_1913539992 (
11290 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
11291 )
11292 select sp.id as specialization_id,
11293 21025 as staff_id,
11294 '2018-09-23' as schedule_on,
11295 1 as staffs_scheduled,
11296 sp.max_scheduled,
11297 sp_dc.should_be_evaluated
11298 from buffer_staff_specializations_1913539992 as st_sp
11299 inner join specializations as sp
11300 on st_sp.specialization_id = sp.id
11301 inner join max_applicable_call_types as mact
11302 on st_sp.specialization_id = mact.specialization_id
11303 and mact.call_type_id = 10167
11304 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
11305 on st_sp.specialization_id = sp_dc.specialization_id
11306 and sp_dc.staff_id is null
11307 and sp_dc.schedule_on = '2018-09-23'
11308 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
11309 on st_sp.specialization_id = sp_dc_2.specialization_id
11310 and st_sp.staff_id = sp_dc_2.staff_id
11311 and sp_dc_2.schedule_on = '2018-09-23'
11312 where st_sp.staff_id = 21025
11313 and sp_dc_2.id is null
11314
11315 (125.9ms) /* MaxAssignmentsRule */
11316 delete from buffer_linkage_call_type_assignments_1913539992
11317 where linkage_instance_id = 14201837;
11318
11319 (120.0ms) /* MaxAssignmentsRule */
11320 update
11321 buffer_schedules_1913539992 as sc
11322 inner join call_types as ct
11323 on sc.call_type_id = ct.id
11324 and ct.active = 1
11325 inner join buffer_call_type_assignments_1913539992 as cta
11326 on sc.staff_id = cta.staff_id
11327 and sc.call_type_id = cta.call_type_id
11328 and sc.is_weekend = cta.is_weekend
11329 and sc.period_offset = cta.period_offset
11330 and sc.calendar_schedule_id = cta.calendar_schedule_id
11331 set cta.assignments_count = cta.assignments_count + 1
11332 where
11333 sc.schedule_on = '2018-09-23'
11334 and sc.call_type_id = 10167
11335 and sc.staff_id = 21025
11336
11337 (124.3ms) insert into buffer_call_type_assignments_1913539992 (
11338 staff_id,
11339 call_type_id,
11340 is_weekend,
11341 period_offset,
11342 calendar_schedule_id,
11343 assignments_count
11344 )
11345 select
11346 sc.staff_id,
11347 sc.call_type_id,
11348 sc.is_weekend,
11349 sc.period_offset,
11350 sc.calendar_schedule_id,
11351 1 as assignments_count
11352 from buffer_schedules_1913539992 as sc
11353 where
11354 sc.staff_id = 21025
11355 and sc.schedule_on = '2018-09-23'
11356 and sc.call_type_id = 10167
11357
11358 (125.1ms) /* UnassignedDaysRule */
11359 delete from buffer_linkage_assigned_days_1913539992
11360 where linkage_instance_id = 14201837
11361
11362 (125.0ms) /* UnassignedDaysRule */
11363 UPDATE buffer_staff_assigned_days_1913539992 as sad
11364 inner join call_types as ct
11365 on ct.id = 10167
11366 and ct.unassigned_day = 0
11367 SET sad.is_assigned = 1
11368 WHERE sad.staff_id = 21025
11369 AND sad.schedule_on = '2018-09-23'
11370
11371 (124.7ms) truncate table buffer_tmp_targets_scheduled_1913539992
11372
11373 (126.8ms) insert into buffer_tmp_targets_scheduled_1913539992 (
11374 block_id,
11375 calendar_schedule_id,
11376 staff_id,
11377 assignment_id,
11378 assignment_type,
11379 day_of_week_mask,
11380 is_weekend,
11381 scheduled,
11382 other_scheduled
11383 )
11384 select
11385 pt.block_id,
11386 pt.calendar_schedule_id,
11387 pt.staff_id,
11388 0 as assignment_id,
11389 '' as assignment_type,
11390 0 as day_of_week_mask,
11391 pt.is_weekend,
11392 case
11393 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
11394 else 0.0
11395 end as scheduled,
11396 case
11397 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
11398 else 0.0
11399 end as other_scheduled
11400 from
11401 buffer_schedules_1913539992 as sc
11402 inner join buffer_counter_increments_1913539992 as ci
11403 on sc.id = ci.schedule_id
11404 and ci.points != 0
11405 inner join assign_staff_types as ast
11406 on sc.staff_id = ast.staff_id
11407 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
11408 inner join staff_types as st
11409 on ast.staff_type_id = st.id
11410 inner join buffer_point_targets_1913539992 as pt
11411 on sc.block_id = pt.block_id
11412 and st.point_hour_schedule_id = pt.calendar_schedule_id
11413 and sc.staff_id = pt.staff_id
11414 and sc.is_weekend = pt.is_weekend
11415 where
11416 sc.schedule_on = '2018-09-23'
11417 and sc.call_type_id = 10167
11418 and sc.staff_id = 21025
11419 order by null
11420
11421 (123.7ms) select 1 from buffer_tmp_targets_scheduled_1913539992
11422
11423 (125.0ms) update
11424 buffer_tmp_targets_scheduled_1913539992 as sch_t
11425 inner join buffer_point_targets_1913539992 as pt
11426 on sch_t.block_id = pt.block_id
11427 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
11428 and sch_t.staff_id = pt.staff_id
11429 and sch_t.is_weekend = pt.is_weekend
11430 set
11431 pt.scheduled = pt.scheduled + sch_t.scheduled,
11432 pt.scheduled_delta = sch_t.scheduled,
11433 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
11434 pt.other_scheduled_delta = sch_t.other_scheduled
11435
11436 (119.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
11437 where other_scheduled != 0
11438
11439 (126.0ms) update
11440 buffer_current_point_targets_1913539992 as cr_pt
11441 inner join (
11442 select
11443 pt.staff_id,
11444 part_of_week.is_weekend,
11445 td.period_offset,
11446 pt.calendar_schedule_id,
11447 sum(pt.raw_target_delta) as raw_target_delta,
11448 sum(pt.target_delta) as adjusted_target_delta,
11449 sum(pt.scheduled_delta) as scheduled_delta,
11450 sum(pt.other_scheduled_delta) as other_scheduled_delta
11451 from
11452 buffer_tmp_targets_scheduled_1913539992 as sch_t
11453 inner join buffer_target_dates as td
11454 on td.session_id = 1913539992
11455 and sch_t.block_id = td.block_id
11456 and sch_t.calendar_schedule_id = td.calendar_schedule_id
11457 inner join buffer_point_targets_1913539992 as pt
11458 on sch_t.block_id = pt.block_id
11459 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
11460 and (
11461 sch_t.staff_id = pt.staff_id
11462 or sch_t.other_scheduled != 0
11463 )
11464 and sch_t.is_weekend = pt.is_weekend
11465 inner join (
11466 select 0 as is_weekend
11467 union select 1
11468
11469 ) as part_of_week
11470 on sch_t.is_weekend = part_of_week.is_weekend
11471 or part_of_week.is_weekend = -1
11472 group by
11473 pt.staff_id,
11474 part_of_week.is_weekend,
11475 td.period_offset,
11476 pt.calendar_schedule_id
11477 order by null
11478 ) as pt
11479 on cr_pt.staff_id = pt.staff_id
11480 and cr_pt.is_weekend = pt.is_weekend
11481 and cr_pt.period_offset = pt.period_offset
11482 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
11483 set
11484 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
11485 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
11486 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
11487 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
11488
11489 (127.0ms) update
11490 buffer_cumulative_point_targets_1913539992 as cu_pt
11491 inner join (
11492 select
11493 pt.staff_id,
11494 part_of_week.is_weekend,
11495 pt.calendar_schedule_id,
11496 sum(pt.raw_target_delta) as raw_target_delta,
11497 sum(pt.target_delta) as adjusted_target_delta,
11498 sum(pt.scheduled_delta) as scheduled_delta,
11499 sum(pt.other_scheduled_delta) as other_scheduled_delta
11500 from
11501 buffer_tmp_targets_scheduled_1913539992 as sch_t
11502 inner join buffer_target_dates as td
11503 on td.session_id = 1913539992
11504 and sch_t.block_id = td.block_id
11505 and sch_t.calendar_schedule_id = td.calendar_schedule_id
11506 and td.within_cumulative_period = 1
11507 inner join buffer_point_targets_1913539992 as pt
11508 on sch_t.block_id = pt.block_id
11509 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
11510 and (
11511 sch_t.staff_id = pt.staff_id
11512 or sch_t.other_scheduled != 0
11513 )
11514 and sch_t.is_weekend = pt.is_weekend
11515 inner join (
11516 select 0 as is_weekend
11517 union select 1
11518
11519 ) as part_of_week
11520 on sch_t.is_weekend = part_of_week.is_weekend
11521 or part_of_week.is_weekend = -1
11522 group by
11523 pt.staff_id,
11524 part_of_week.is_weekend,
11525 pt.calendar_schedule_id
11526 order by null
11527 ) as pt
11528 on cu_pt.staff_id = pt.staff_id
11529 and cu_pt.is_weekend = pt.is_weekend
11530 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
11531 set
11532 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
11533 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
11534 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
11535 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
11536
11537 (117.8ms) update
11538 buffer_tmp_targets_scheduled_1913539992 as sch_t
11539 inner join buffer_point_targets_1913539992 as pt
11540 on sch_t.block_id = pt.block_id
11541 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
11542 and (
11543 sch_t.staff_id = pt.staff_id
11544 or sch_t.other_scheduled != 0
11545 )
11546 and sch_t.is_weekend = pt.is_weekend
11547 set
11548 pt.raw_target_delta = 0,
11549 pt.target_delta = 0,
11550 pt.scheduled_delta = 0,
11551 pt.other_scheduled_delta = 0
11552
11553 (129.4ms) /* AssignmentLimitsPerPeriod */
11554 /* Unique Key: assignment_limit_id, staff_id, start_date */
11555 insert into buffer_staff_assignments_count_periods_1913539992 (
11556 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11557 )
11558 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11559 1 as assignments_count
11560 from buffer_schedules_1913539992 as sc
11561 inner join buffer_assignment_limit_call_types_1913539992 as alct
11562 on sc.call_type_id = alct.call_type_id
11563 inner join assignment_limits as al
11564 on alct.assignment_limit_id = al.id
11565 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11566 and al.max_per_period_limit is not null
11567 inner join assign_staff_types as ast
11568 on sc.staff_id = ast.staff_id
11569 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11570 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11571 on alct.assignment_limit_id = alst.assignment_limit_id
11572 and ast.staff_type_id = alst.staff_type_id
11573 inner join (
11574 select assignment_limit_id, start_date, end_date
11575 from buffer_linkage_assignments_count_periods_1913539992
11576 group by assignment_limit_id, start_date, end_date
11577 order by null
11578 ) as lac
11579 on alct.assignment_limit_id = lac.assignment_limit_id
11580 and sc.schedule_on between lac.start_date and lac.end_date
11581 where sc.schedule_on = '2018-09-23'
11582 and sc.call_type_id = 10167
11583 and sc.staff_id = 21025
11584 on duplicate key update
11585 assignments_count = assignments_count + 1
11586
11587 (124.9ms) /* AssignmentLimitsPerWeek */
11588 /* Unique Key: assignment_limit_id, staff_id, start_date */
11589 insert into buffer_staff_assignments_count_weeks_1913539992 (
11590 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11591 )
11592 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11593 1 as assignments_count
11594 from buffer_schedules_1913539992 as sc
11595 inner join buffer_assignment_limit_call_types_1913539992 as alct
11596 on sc.call_type_id = alct.call_type_id
11597 inner join assignment_limits as al
11598 on alct.assignment_limit_id = al.id
11599 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11600 and al.max_weekly_limit is not null
11601 inner join assign_staff_types as ast
11602 on sc.staff_id = ast.staff_id
11603 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11604 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11605 on alct.assignment_limit_id = alst.assignment_limit_id
11606 and ast.staff_type_id = alst.staff_type_id
11607 inner join (
11608 select assignment_limit_id, start_date, end_date
11609 from buffer_linkage_assignments_count_weeks_1913539992
11610 group by assignment_limit_id, start_date, end_date
11611 order by null
11612 ) as lac
11613 on alct.assignment_limit_id = lac.assignment_limit_id
11614 and sc.schedule_on between lac.start_date and lac.end_date
11615 where sc.schedule_on = '2018-09-23'
11616 and sc.call_type_id = 10167
11617 and sc.staff_id = 21025
11618 on duplicate key update
11619 assignments_count = assignments_count + 1
11620
11621 (123.8ms) /* AssignmentLimitsRolling */
11622 /* Unique Key: assignment_limit_id, staff_id, start_date */
11623 insert into buffer_staff_assignments_count_rolling_1913539992 (
11624 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11625 )
11626 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11627 1 as assignments_count
11628 from buffer_schedules_1913539992 as sc
11629 inner join buffer_assignment_limit_call_types_1913539992 as alct
11630 on sc.call_type_id = alct.call_type_id
11631 inner join assignment_limits as al
11632 on alct.assignment_limit_id = al.id
11633 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11634 and al.max_rolling_period is not null
11635 and al.max_rolling_limit is not null
11636 inner join assign_staff_types as ast
11637 on sc.staff_id = ast.staff_id
11638 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11639 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11640 on alct.assignment_limit_id = alst.assignment_limit_id
11641 and ast.staff_type_id = alst.staff_type_id
11642 inner join (
11643 select assignment_limit_id, start_date, end_date
11644 from buffer_linkage_assignments_count_rolling_1913539992
11645 group by assignment_limit_id, start_date, end_date
11646 order by null
11647 ) as lac
11648 on alct.assignment_limit_id = lac.assignment_limit_id
11649 and sc.schedule_on between lac.start_date and lac.end_date
11650 where sc.schedule_on = '2018-09-23'
11651 and sc.call_type_id = 10167
11652 and sc.staff_id = 21025
11653 on duplicate key update
11654 assignments_count = assignments_count + 1
11655
11656 (120.3ms) /* AssignmentLimitsConsecutive */
11657 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
11658 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
11659 assignment_limit_id, staff_id, schedule_on, start_date, end_date
11660 )
11661 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
11662 from buffer_schedules_1913539992 as sc
11663 inner join buffer_assignment_limit_call_types_1913539992 as alct
11664 on sc.call_type_id = alct.call_type_id
11665 inner join assignment_limits as al
11666 on alct.assignment_limit_id = al.id
11667 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11668 and al.max_consecutive_limit is not null
11669 inner join assign_staff_types as ast
11670 on sc.staff_id = ast.staff_id
11671 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11672 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11673 on alct.assignment_limit_id = alst.assignment_limit_id
11674 and ast.staff_type_id = alst.staff_type_id
11675 inner join (
11676 select assignment_limit_id, start_date, end_date
11677 from buffer_linkage_assignments_count_consecutive_1913539992
11678 group by assignment_limit_id, start_date, end_date
11679 order by null
11680 ) as lac
11681 on alct.assignment_limit_id = lac.assignment_limit_id
11682 and sc.schedule_on between lac.start_date and lac.end_date
11683 where sc.schedule_on = '2018-09-23'
11684 and sc.call_type_id = 10167
11685 and sc.staff_id = 21025
11686
11687 (123.4ms) UPDATE buffer_schedules_1913539992
11688 SET staff_id = 21025,
11689 should_be_populated = 0,
11690 should_be_evaluated = 0
11691 WHERE
11692 call_type_id = 10960
11693 AND schedule_on = '2018-09-24'
11694
11695 (122.9ms) delete from buffer_combined_availabilities_1913539992
11696 where linkage_instance_id = 14201837
11697
11698 (119.1ms) UPDATE buffer_rule_calc_schedules_1913539992
11699 SET staff_id = 21025
11700 WHERE call_type_id = 10960
11701 AND schedule_on = '2018-09-24'
11702
11703 (124.5ms) INSERT INTO buffer_rule_calc_schedules_1913539992
11704 SET staff_id = 21025,
11705 call_type_id = 10960,
11706 schedule_on = '2018-09-24',
11707 day_of_week_mask = 2
11708
11709 (122.7ms) /* NegativeLinkRule */
11710 UPDATE buffer_negative_relations_1913539992
11711 SET staff_id = 21025
11712 WHERE affected_by_schedule_id = (
11713 SELECT id
11714 FROM buffer_schedules_1913539992
11715 WHERE schedule_on = '2018-09-24'
11716 AND call_type_id = 10960
11717 )
11718
11719 (122.8ms) /* SpecializationOverlapRule */
11720 update buffer_staff_specializations_1913539992 as st_sp
11721 inner join max_applicable_call_types as mact
11722 on st_sp.specialization_id = mact.specialization_id
11723 and mact.call_type_id = 10960
11724 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
11725 on st_sp.specialization_id = sp_dc.specialization_id
11726 and sp_dc.staff_id is null
11727 and sp_dc.schedule_on = '2018-09-24'
11728 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
11729 on st_sp.specialization_id = sp_dc_2.specialization_id
11730 and st_sp.staff_id = sp_dc_2.staff_id
11731 and sp_dc_2.schedule_on = '2018-09-24'
11732 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
11733 where st_sp.staff_id = 21025
11734 and sp_dc_2.id is null
11735
11736 (117.3ms) insert into buffer_specialization_daily_counts_1913539992 (
11737 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
11738 )
11739 select sp.id as specialization_id,
11740 21025 as staff_id,
11741 '2018-09-24' as schedule_on,
11742 1 as staffs_scheduled,
11743 sp.max_scheduled,
11744 sp_dc.should_be_evaluated
11745 from buffer_staff_specializations_1913539992 as st_sp
11746 inner join specializations as sp
11747 on st_sp.specialization_id = sp.id
11748 inner join max_applicable_call_types as mact
11749 on st_sp.specialization_id = mact.specialization_id
11750 and mact.call_type_id = 10960
11751 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
11752 on st_sp.specialization_id = sp_dc.specialization_id
11753 and sp_dc.staff_id is null
11754 and sp_dc.schedule_on = '2018-09-24'
11755 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
11756 on st_sp.specialization_id = sp_dc_2.specialization_id
11757 and st_sp.staff_id = sp_dc_2.staff_id
11758 and sp_dc_2.schedule_on = '2018-09-24'
11759 where st_sp.staff_id = 21025
11760 and sp_dc_2.id is null
11761
11762 (124.1ms) /* MaxAssignmentsRule */
11763 delete from buffer_linkage_call_type_assignments_1913539992
11764 where linkage_instance_id = 14201837;
11765
11766 (123.7ms) /* MaxAssignmentsRule */
11767 update
11768 buffer_schedules_1913539992 as sc
11769 inner join call_types as ct
11770 on sc.call_type_id = ct.id
11771 and ct.active = 1
11772 inner join buffer_call_type_assignments_1913539992 as cta
11773 on sc.staff_id = cta.staff_id
11774 and sc.call_type_id = cta.call_type_id
11775 and sc.is_weekend = cta.is_weekend
11776 and sc.period_offset = cta.period_offset
11777 and sc.calendar_schedule_id = cta.calendar_schedule_id
11778 set cta.assignments_count = cta.assignments_count + 1
11779 where
11780 sc.schedule_on = '2018-09-24'
11781 and sc.call_type_id = 10960
11782 and sc.staff_id = 21025
11783
11784 (124.8ms) insert into buffer_call_type_assignments_1913539992 (
11785 staff_id,
11786 call_type_id,
11787 is_weekend,
11788 period_offset,
11789 calendar_schedule_id,
11790 assignments_count
11791 )
11792 select
11793 sc.staff_id,
11794 sc.call_type_id,
11795 sc.is_weekend,
11796 sc.period_offset,
11797 sc.calendar_schedule_id,
11798 1 as assignments_count
11799 from buffer_schedules_1913539992 as sc
11800 where
11801 sc.staff_id = 21025
11802 and sc.schedule_on = '2018-09-24'
11803 and sc.call_type_id = 10960
11804
11805 (122.8ms) /* UnassignedDaysRule */
11806 delete from buffer_linkage_assigned_days_1913539992
11807 where linkage_instance_id = 14201837
11808
11809 (121.0ms) /* UnassignedDaysRule */
11810 UPDATE buffer_staff_assigned_days_1913539992 as sad
11811 inner join call_types as ct
11812 on ct.id = 10960
11813 and ct.unassigned_day = 0
11814 SET sad.is_assigned = 1
11815 WHERE sad.staff_id = 21025
11816 AND sad.schedule_on = '2018-09-24'
11817
11818 (120.8ms) truncate table buffer_tmp_targets_scheduled_1913539992
11819
11820 (124.2ms) insert into buffer_tmp_targets_scheduled_1913539992 (
11821 block_id,
11822 calendar_schedule_id,
11823 staff_id,
11824 assignment_id,
11825 assignment_type,
11826 day_of_week_mask,
11827 is_weekend,
11828 scheduled,
11829 other_scheduled
11830 )
11831 select
11832 pt.block_id,
11833 pt.calendar_schedule_id,
11834 pt.staff_id,
11835 0 as assignment_id,
11836 '' as assignment_type,
11837 0 as day_of_week_mask,
11838 pt.is_weekend,
11839 case
11840 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
11841 else 0.0
11842 end as scheduled,
11843 case
11844 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
11845 else 0.0
11846 end as other_scheduled
11847 from
11848 buffer_schedules_1913539992 as sc
11849 inner join buffer_counter_increments_1913539992 as ci
11850 on sc.id = ci.schedule_id
11851 and ci.points != 0
11852 inner join assign_staff_types as ast
11853 on sc.staff_id = ast.staff_id
11854 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
11855 inner join staff_types as st
11856 on ast.staff_type_id = st.id
11857 inner join buffer_point_targets_1913539992 as pt
11858 on sc.block_id = pt.block_id
11859 and st.point_hour_schedule_id = pt.calendar_schedule_id
11860 and sc.staff_id = pt.staff_id
11861 and sc.is_weekend = pt.is_weekend
11862 where
11863 sc.schedule_on = '2018-09-24'
11864 and sc.call_type_id = 10960
11865 and sc.staff_id = 21025
11866 order by null
11867
11868 (121.7ms) select 1 from buffer_tmp_targets_scheduled_1913539992
11869
11870 (117.8ms) /* AssignmentLimitsPerPeriod */
11871 /* Unique Key: assignment_limit_id, staff_id, start_date */
11872 insert into buffer_staff_assignments_count_periods_1913539992 (
11873 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11874 )
11875 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11876 1 as assignments_count
11877 from buffer_schedules_1913539992 as sc
11878 inner join buffer_assignment_limit_call_types_1913539992 as alct
11879 on sc.call_type_id = alct.call_type_id
11880 inner join assignment_limits as al
11881 on alct.assignment_limit_id = al.id
11882 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11883 and al.max_per_period_limit is not null
11884 inner join assign_staff_types as ast
11885 on sc.staff_id = ast.staff_id
11886 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11887 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11888 on alct.assignment_limit_id = alst.assignment_limit_id
11889 and ast.staff_type_id = alst.staff_type_id
11890 inner join (
11891 select assignment_limit_id, start_date, end_date
11892 from buffer_linkage_assignments_count_periods_1913539992
11893 group by assignment_limit_id, start_date, end_date
11894 order by null
11895 ) as lac
11896 on alct.assignment_limit_id = lac.assignment_limit_id
11897 and sc.schedule_on between lac.start_date and lac.end_date
11898 where sc.schedule_on = '2018-09-24'
11899 and sc.call_type_id = 10960
11900 and sc.staff_id = 21025
11901 on duplicate key update
11902 assignments_count = assignments_count + 1
11903
11904 (122.2ms) /* AssignmentLimitsPerWeek */
11905 /* Unique Key: assignment_limit_id, staff_id, start_date */
11906 insert into buffer_staff_assignments_count_weeks_1913539992 (
11907 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11908 )
11909 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11910 1 as assignments_count
11911 from buffer_schedules_1913539992 as sc
11912 inner join buffer_assignment_limit_call_types_1913539992 as alct
11913 on sc.call_type_id = alct.call_type_id
11914 inner join assignment_limits as al
11915 on alct.assignment_limit_id = al.id
11916 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11917 and al.max_weekly_limit is not null
11918 inner join assign_staff_types as ast
11919 on sc.staff_id = ast.staff_id
11920 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11921 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11922 on alct.assignment_limit_id = alst.assignment_limit_id
11923 and ast.staff_type_id = alst.staff_type_id
11924 inner join (
11925 select assignment_limit_id, start_date, end_date
11926 from buffer_linkage_assignments_count_weeks_1913539992
11927 group by assignment_limit_id, start_date, end_date
11928 order by null
11929 ) as lac
11930 on alct.assignment_limit_id = lac.assignment_limit_id
11931 and sc.schedule_on between lac.start_date and lac.end_date
11932 where sc.schedule_on = '2018-09-24'
11933 and sc.call_type_id = 10960
11934 and sc.staff_id = 21025
11935 on duplicate key update
11936 assignments_count = assignments_count + 1
11937
11938 (121.9ms) /* AssignmentLimitsRolling */
11939 /* Unique Key: assignment_limit_id, staff_id, start_date */
11940 insert into buffer_staff_assignments_count_rolling_1913539992 (
11941 assignment_limit_id, staff_id, start_date, end_date, assignments_count
11942 )
11943 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
11944 1 as assignments_count
11945 from buffer_schedules_1913539992 as sc
11946 inner join buffer_assignment_limit_call_types_1913539992 as alct
11947 on sc.call_type_id = alct.call_type_id
11948 inner join assignment_limits as al
11949 on alct.assignment_limit_id = al.id
11950 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11951 and al.max_rolling_period is not null
11952 and al.max_rolling_limit is not null
11953 inner join assign_staff_types as ast
11954 on sc.staff_id = ast.staff_id
11955 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11956 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11957 on alct.assignment_limit_id = alst.assignment_limit_id
11958 and ast.staff_type_id = alst.staff_type_id
11959 inner join (
11960 select assignment_limit_id, start_date, end_date
11961 from buffer_linkage_assignments_count_rolling_1913539992
11962 group by assignment_limit_id, start_date, end_date
11963 order by null
11964 ) as lac
11965 on alct.assignment_limit_id = lac.assignment_limit_id
11966 and sc.schedule_on between lac.start_date and lac.end_date
11967 where sc.schedule_on = '2018-09-24'
11968 and sc.call_type_id = 10960
11969 and sc.staff_id = 21025
11970 on duplicate key update
11971 assignments_count = assignments_count + 1
11972
11973 (238.1ms) /* AssignmentLimitsConsecutive */
11974 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
11975 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
11976 assignment_limit_id, staff_id, schedule_on, start_date, end_date
11977 )
11978 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
11979 from buffer_schedules_1913539992 as sc
11980 inner join buffer_assignment_limit_call_types_1913539992 as alct
11981 on sc.call_type_id = alct.call_type_id
11982 inner join assignment_limits as al
11983 on alct.assignment_limit_id = al.id
11984 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
11985 and al.max_consecutive_limit is not null
11986 inner join assign_staff_types as ast
11987 on sc.staff_id = ast.staff_id
11988 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
11989 inner join buffer_assignment_limit_staff_types_1913539992 as alst
11990 on alct.assignment_limit_id = alst.assignment_limit_id
11991 and ast.staff_type_id = alst.staff_type_id
11992 inner join (
11993 select assignment_limit_id, start_date, end_date
11994 from buffer_linkage_assignments_count_consecutive_1913539992
11995 group by assignment_limit_id, start_date, end_date
11996 order by null
11997 ) as lac
11998 on alct.assignment_limit_id = lac.assignment_limit_id
11999 and sc.schedule_on between lac.start_date and lac.end_date
12000 where sc.schedule_on = '2018-09-24'
12001 and sc.call_type_id = 10960
12002 and sc.staff_id = 21025
12003
12004INFO : (05-29 13:28:25) scheduled for: plan unit: [id:14201837] [2018-09-21 - CHCall], [2018-09-21 - CHDay], [2018-09-22 - CHCall2], [2018-09-23 - CHCall], [2018-09-24 - CHDay 4], Jerry Carter. DEPTH(3)
12005 (122.7ms) select
12006 coalesce(max(
12007 case
12008 when (ct.max_weekday_assignments > 0) then 1
12009 else 0
12010 end
12011 ), 0) as weekday_flag,
12012 coalesce(max(
12013 case
12014 when (ct.max_weekend_assignments > 0) then 1
12015 else 0
12016 end
12017 ), 0) as weekend_flag
12018 from
12019 buffer_auto_populate_slots_1913539992 as aps
12020 inner join call_types as ct
12021 on aps.call_type_id = ct.id
12022
12023 (118.9ms) delete ca
12024 from buffer_combined_availabilities_1913539992 as ca
12025 inner join (
12026 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
12027 sum(lac.assignments_count) as assignments_count
12028 from (
12029 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
12030 from buffer_combined_availabilities_1913539992 as ca
12031 inner join buffer_schedules_1913539992 as sc
12032 on ca.schedule_id = sc.id
12033 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
12034 order by null
12035 ) as ca_sc
12036 inner join buffer_linkage_assignments_count_weeks_1913539992 as lac
12037 on ca_sc.linkage_instance_id = lac.linkage_instance_id
12038 and ca_sc.schedule_on = lac.schedule_on
12039 inner join buffer_assignment_limit_staff_types_1913539992 as alst
12040 on lac.assignment_limit_id = alst.assignment_limit_id
12041 and ca_sc.staff_type_id = alst.staff_type_id
12042 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
12043 order by null
12044 ) as lac
12045 on ca.linkage_instance_id = lac.linkage_instance_id
12046 and ca.staff_id = lac.staff_id
12047 inner join assignment_limits as al
12048 on lac.assignment_limit_id = al.id
12049 left join buffer_staff_assignments_count_weeks_1913539992 as sac
12050 on lac.assignment_limit_id = sac.assignment_limit_id
12051 and lac.staff_id = sac.staff_id
12052 and lac.start_date = sac.start_date
12053 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_weekly_limit
12054
12055 (126.1ms) delete ca
12056 from buffer_combined_availabilities_1913539992 as ca
12057 inner join (
12058 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
12059 count(distinct if(sac.id is null, lac.schedule_on, null)) as assignments_count
12060 from (
12061 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
12062 from buffer_combined_availabilities_1913539992 as ca
12063 inner join buffer_schedules_1913539992 as sc
12064 on ca.schedule_id = sc.id
12065 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
12066 order by null
12067 ) as ca_sc
12068 inner join buffer_linkage_assignments_count_consecutive_1913539992 as lac
12069 on ca_sc.linkage_instance_id = lac.linkage_instance_id
12070 and ca_sc.schedule_on = lac.schedule_on
12071 inner join buffer_assignment_limit_staff_types_1913539992 as alst
12072 on lac.assignment_limit_id = alst.assignment_limit_id
12073 and ca_sc.staff_type_id = alst.staff_type_id
12074 left join buffer_staff_assignments_count_consecutive_1913539992 as sac
12075 on lac.assignment_limit_id = sac.assignment_limit_id
12076 and ca_sc.staff_id = sac.staff_id
12077 and lac.schedule_on = sac.schedule_on
12078 and lac.start_date = sac.start_date
12079 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
12080 order by null
12081 ) as lac
12082 on ca.linkage_instance_id = lac.linkage_instance_id
12083 and ca.staff_id = lac.staff_id
12084 inner join assignment_limits as al
12085 on lac.assignment_limit_id = al.id
12086 left join (
12087 select assignment_limit_id, staff_id, start_date,
12088 count(schedule_on) as assignments_count
12089 from buffer_staff_assignments_count_consecutive_1913539992
12090 group by assignment_limit_id, staff_id, start_date
12091 ) as sac
12092 on lac.assignment_limit_id = sac.assignment_limit_id
12093 and lac.staff_id = sac.staff_id
12094 and lac.start_date = sac.start_date
12095 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_consecutive_limit
12096
12097 (130.7ms) delete ca
12098 from buffer_combined_availabilities_1913539992 as ca
12099 inner join (
12100 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
12101 sum(lac.assignments_count) as assignments_count
12102 from (
12103 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
12104 from buffer_combined_availabilities_1913539992 as ca
12105 inner join buffer_schedules_1913539992 as sc
12106 on ca.schedule_id = sc.id
12107 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
12108 order by null
12109 ) as ca_sc
12110 inner join buffer_linkage_assignments_count_periods_1913539992 as lac
12111 on ca_sc.linkage_instance_id = lac.linkage_instance_id
12112 and ca_sc.schedule_on = lac.schedule_on
12113 inner join buffer_assignment_limit_staff_types_1913539992 as alst
12114 on lac.assignment_limit_id = alst.assignment_limit_id
12115 and ca_sc.staff_type_id = alst.staff_type_id
12116 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
12117 order by null
12118 ) as lac
12119 on ca.linkage_instance_id = lac.linkage_instance_id
12120 and ca.staff_id = lac.staff_id
12121 inner join assignment_limits as al
12122 on lac.assignment_limit_id = al.id
12123 left join buffer_staff_assignments_count_periods_1913539992 as sac
12124 on lac.assignment_limit_id = sac.assignment_limit_id
12125 and lac.staff_id = sac.staff_id
12126 and lac.start_date = sac.start_date
12127 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_per_period_limit
12128
12129 (124.1ms) delete ca
12130 from buffer_combined_availabilities_1913539992 as ca
12131 inner join (
12132 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
12133 sum(lac.assignments_count) as assignments_count
12134 from (
12135 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
12136 from buffer_combined_availabilities_1913539992 as ca
12137 inner join buffer_schedules_1913539992 as sc
12138 on ca.schedule_id = sc.id
12139 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
12140 order by null
12141 ) as ca_sc
12142 inner join buffer_linkage_assignments_count_rolling_1913539992 as lac
12143 on ca_sc.linkage_instance_id = lac.linkage_instance_id
12144 and ca_sc.schedule_on = lac.schedule_on
12145 inner join buffer_assignment_limit_staff_types_1913539992 as alst
12146 on lac.assignment_limit_id = alst.assignment_limit_id
12147 and ca_sc.staff_type_id = alst.staff_type_id
12148 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
12149 order by null
12150 ) as lac
12151 on ca.linkage_instance_id = lac.linkage_instance_id
12152 and ca.staff_id = lac.staff_id
12153 inner join assignment_limits as al
12154 on lac.assignment_limit_id = al.id
12155 left join buffer_staff_assignments_count_rolling_1913539992 as sac
12156 on lac.assignment_limit_id = sac.assignment_limit_id
12157 and lac.staff_id = sac.staff_id
12158 and lac.start_date = sac.start_date
12159 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_rolling_limit
12160
12161 (128.6ms) /* NegativeLinkRule */
12162 delete ca
12163 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
12164 inner join buffer_negative_relations_1913539992 as nr use index (ix_buffer_negative_relations_composite_1)
12165 on ca.schedule_id = nr.schedule_id
12166 and ca.staff_id = nr.staff_id
12167
12168 (116.4ms) /* SpecializationOverlapRule */
12169 delete ca
12170 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
12171 inner join buffer_schedules_1913539992 as sc
12172 on ca.schedule_id = sc.id
12173 inner join buffer_staff_specializations_1913539992 as ssp
12174 on ca.staff_id = ssp.staff_id
12175 inner join max_applicable_call_types as mact
12176 on ssp.specialization_id = mact.specialization_id
12177 and sc.call_type_id = mact.call_type_id
12178 inner join buffer_specialization_daily_counts_1913539992 as sdc use index (ix_buffer_specialization_daily_counts_composite_1)
12179 on ssp.specialization_id = sdc.specialization_id
12180 and sc.schedule_on = sdc.schedule_on
12181 and sdc.staff_id is null
12182 left join buffer_specialization_daily_counts_1913539992 as sdc_2 use index (ix_buffer_specialization_daily_counts_composite_1)
12183 on ssp.specialization_id = sdc_2.specialization_id
12184 and sc.schedule_on = sdc_2.schedule_on
12185 and ca.staff_id = sdc_2.staff_id
12186 where sdc.should_be_evaluated = 1
12187 and (sdc.staffs_scheduled + if(sdc_2.id is null, 1, 0)) > sdc.max_scheduled
12188
12189 (123.8ms) /* BrokenLinkageRule */
12190 truncate table buffer_combined_availability_linkages_1913539992
12191
12192 (125.2ms) insert into buffer_combined_availability_linkages_1913539992 (
12193 staff_id,
12194 linkage_instance_id,
12195 slots_count,
12196 is_primary,
12197 has_violations
12198 )
12199 select
12200 staff_id,
12201 linkage_instance_id,
12202 count(1) as slots_count,
12203 min(is_primary) as is_primary,
12204 max(has_violations) as has_violations
12205 from buffer_combined_availabilities_1913539992 use index (ix_buffer_combined_availabilities_composite_2)
12206 group by
12207 staff_id,
12208 linkage_instance_id
12209 order by null
12210
12211 (124.1ms) delete ca
12212 from
12213 buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
12214 inner join buffer_schedules_1913539992 as sc
12215 on ca.schedule_id = sc.id
12216 inner join buffer_linkages_1913539992 as l
12217 on sc.linkage_instance_id = l.linkage_instance_id
12218 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
12219 on ca.staff_id = ls_1.staff_id
12220 and sc.linkage_instance_id = ls_1.linkage_instance_id
12221 left join buffer_schedule_linkages_1913539992 as ls_2 use index (ix_buffer_schedule_linkages_composite_1)
12222 on ca.staff_id = ls_2.staff_id
12223 and sc.linkage_instance_id = ls_2.linkage_instance_id
12224 where (ls_1.slots_count + coalesce(ls_2.slots_count, 0)) < l.slots_count_total /* not covering the whole chain */;
12225
12226 (153.7ms) select straight_join
12227 sc.schedule_on,
12228 sc.call_type_id,
12229 count(distinct ca.staff_id) as available_members_count,
12230 group_concat(
12231 distinct concat(if(ls_1.is_primary = 1, 'p', 's'), ca.staff_id)
12232 order by ls_1.is_primary desc, ca.staff_id
12233 separator ', '
12234 ) as available_members_ids,
12235 sc.linkage_instance_id,
12236 l.slots_count_total as linkage_slots_count
12237 from buffer_combined_availabilities_1913539992 as ca
12238 inner join buffer_schedules_1913539992 as sc
12239 on ca.schedule_id = sc.id
12240 inner join buffer_linkages_1913539992 as l
12241 on sc.linkage_instance_id = l.linkage_instance_id
12242 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
12243 on ca.staff_id = ls_1.staff_id
12244 and sc.linkage_instance_id = ls_1.linkage_instance_id
12245 and ls_1.has_violations = 0
12246 where sc.should_be_evaluated = 1
12247 and sc.should_be_populated = 1
12248 group by sc.schedule_on, sc.call_type_id, sc.linkage_instance_id, l.slots_count_total
12249 order by available_members_count, sc.schedule_on, sc.display_order
12250 limit 1
12251
12252 (121.7ms) truncate table buffer_rule_scores_1913539992
12253
12254 (117.7ms) truncate table buffer_rule_calc_filters_1913539992
12255
12256 (125.1ms) insert into buffer_rule_calc_filters_1913539992 (
12257 linkage_instance_id,
12258 staff_id
12259 ) values (14201838, 17180)
12260
12261 (126.5ms) /* CallDaysRule */
12262 insert into buffer_rule_scores_1913539992 (
12263 linkage_instance_id,
12264 schedule_id,
12265 staff_id,
12266 rule_name,
12267 value
12268 )
12269 select
12270 b_schedules.linkage_instance_id,
12271 b_schedules.id as schedule_id,
12272 availabilities.staff_id,
12273 'CallDaysRule' as _rule_name,
12274 (min(abs(datediff(b_schedules.schedule_on, rc_schedules.schedule_on))) div 7) as value
12275 from
12276 buffer_rule_calc_filters_1913539992 as filters
12277 inner join buffer_schedules_1913539992 as b_schedules
12278 on filters.linkage_instance_id = b_schedules.linkage_instance_id
12279 inner join buffer_combined_availabilities_1913539992 as availabilities
12280 on b_schedules.id = availabilities.schedule_id
12281 and filters.staff_id = availabilities.staff_id
12282 left join buffer_rule_calc_schedules_1913539992 as rc_schedules
12283 on availabilities.staff_id = rc_schedules.staff_id
12284 and b_schedules.day_of_week_mask = rc_schedules.day_of_week_mask
12285 group by
12286 b_schedules.linkage_instance_id,
12287 b_schedules.id,
12288 availabilities.staff_id,
12289 _rule_name
12290 order by null
12291
12292 (235.9ms) /* CumulativePointTargetsRule */
12293 insert into buffer_rule_scores_1913539992 (
12294 linkage_instance_id,
12295 schedule_id,
12296 staff_id,
12297 rule_name,
12298 value
12299 )
12300 select
12301 b_schedules.linkage_instance_id,
12302 b_schedules.id as schedule_id,
12303 availabilities.staff_id,
12304 'CumulativePointTargetsRule' as rule_name,
12305 ((b_targets.raw_target - b_targets.scheduled) /
12306 b_targets.raw_target) as value
12307 from
12308 buffer_rule_calc_filters_1913539992 as filters
12309 inner join buffer_schedules_1913539992 as b_schedules
12310 on filters.linkage_instance_id = b_schedules.linkage_instance_id
12311 inner join buffer_combined_availabilities_1913539992 as availabilities
12312 on b_schedules.id = availabilities.schedule_id
12313 and filters.staff_id = availabilities.staff_id
12314 inner join buffer_cumulative_point_targets_1913539992 as b_targets
12315 on availabilities.staff_id = b_targets.staff_id
12316 and b_schedules.is_weekend = b_targets.is_weekend
12317 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
12318 order by null;
12319
12320 (117.7ms) /* CurrentPointTargetsRule */
12321 insert into buffer_rule_scores_1913539992 (
12322 linkage_instance_id,
12323 schedule_id,
12324 staff_id,
12325 rule_name,
12326 value
12327 )
12328 select
12329 b_schedules.linkage_instance_id,
12330 b_schedules.id as schedule_id,
12331 availabilities.staff_id,
12332 'CurrentPointTargetsRule' as rule_name,
12333 ((b_targets.adjusted_target - b_targets.scheduled) / b_targets.adjusted_target) as value
12334 from
12335 buffer_rule_calc_filters_1913539992 as filters
12336 inner join buffer_schedules_1913539992 as b_schedules
12337 on filters.linkage_instance_id = b_schedules.linkage_instance_id
12338 inner join buffer_combined_availabilities_1913539992 as availabilities
12339 on b_schedules.id = availabilities.schedule_id
12340 and filters.staff_id = availabilities.staff_id
12341 inner join buffer_current_point_targets_1913539992 as b_targets
12342 on availabilities.staff_id = b_targets.staff_id
12343 and b_schedules.is_weekend = b_targets.is_weekend
12344 and b_schedules.period_offset = b_targets.period_offset
12345 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
12346 order by null
12347
12348 (122.6ms) truncate table buffer_rule_scores_with_corrections_1913539992
12349
12350 (128.5ms) insert into buffer_rule_scores_with_corrections_1913539992 (
12351 linkage_instance_id, schedule_id, staff_id, rule_name, value
12352 )
12353 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id, rule_scores.rule_name,
12354 ifnull(rule_scores.value, max_values.max_value + 1) as value
12355 from buffer_rule_scores_1913539992 as rule_scores
12356 inner join (
12357 select rule_name, max(value) as max_value
12358 from buffer_rule_scores_1913539992
12359 group by rule_name
12360 order by null
12361 ) as max_values
12362 on rule_scores.rule_name = max_values.rule_name
12363 order by null
12364
12365 (123.6ms) select linkage_instance_id, staff_id, avg(slot_scores) as scores
12366 from (
12367 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id,
12368 sum(
12369 if((total_values.total_value > 0), (rule_scores.value / total_values.total_value), 0) *
12370 rules.weight *
12371 total_values.slots_count
12372 ) as slot_scores
12373 from buffer_rule_scores_with_corrections_1913539992 as rule_scores
12374 inner join (
12375 select rule_name, sum(abs(value)) as total_value,
12376 count(distinct schedule_id) as slots_count
12377 from buffer_rule_scores_with_corrections_1913539992
12378 group by rule_name
12379 order by null
12380 ) as total_values
12381 on rule_scores.rule_name = total_values.rule_name
12382 inner join rules
12383 on rule_scores.rule_name = rules.type
12384 where rules.rule_set_id = 1232
12385 and rules.applied = 1
12386 group by rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id
12387 order by null
12388 ) as staff_scores
12389 group by linkage_instance_id, staff_id
12390 order by round(avg(slot_scores), 5) desc, rand()
12391 limit 1
12392
12393 PublishedBlock Load (119.9ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-28' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
12394 PublishedBlockCallType Load (123.9ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
12395 (120.9ms) BEGIN
12396 (124.8ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
12397 FROM call_types AS ct
12398 INNER JOIN calendar_schedules AS cs
12399 ON ct.calendar_schedule_id = cs.id
12400 INNER JOIN blocks AS b
12401 ON b.client_id = ct.client_id
12402 AND b.block_schedule_id = cs.block_schedule_id
12403 AND '2018-09-28' BETWEEN b.start_date AND b.end_date
12404 INNER JOIN published_blocks AS pb
12405 ON pb.client_id = ct.client_id
12406 AND pb.block_id = b.id
12407 AND pb.calendar_schedule_id = cs.id
12408 LEFT JOIN published_block_call_types AS pbct
12409 ON pbct.client_id = ct.client_id
12410 AND pbct.assignment_id = ct.id
12411 AND pbct.assignment_type = 'CallType'
12412 AND pbct.block_id = b.id
12413 AND (
12414 (1 << (DAYOFWEEK('2018-09-28') - 1) & pbct.days_of_week_mask) > 0
12415 )
12416 WHERE ct.id = 10167
12417 AND (
12418 (
12419 pb.assignment_ids IS NULL
12420 AND (1 << (DAYOFWEEK('2018-09-28') - 1) & pb.days_of_week_mask) > 0
12421 )
12422 OR pbct.id IS NOT NULL
12423 )
12424
12425 CallType Load (120.0ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
12426 Client Load (122.6ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
12427 Staff Load (121.7ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17180 LIMIT 1
12428 Schedule Exists (121.5ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-28' LIMIT 1
12429 SQL (144.4ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17180, '2018-09-28', '2018-05-29 13:28:29', '2018-05-29 13:28:29', 0, 6, 'auto_populate_step', 30093)
12430 VisibleAssignment Load (129.3ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-28' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
12431 (125.3ms) COMMIT
12432FLUSHED: nil:nil
12433 PublishedBlock Load (124.4ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-28' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
12434 PublishedBlockCallType Load (121.6ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10832 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
12435INFO : (05-29 13:28:30) Not creating schedule because of call type linkage behavior settings: [2018-09-28 - CHDay]
12436 PublishedBlock Load (123.6ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-29' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
12437 PublishedBlockCallType Load (121.3ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10168 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
12438 (115.8ms) BEGIN
12439 (132.5ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
12440 FROM call_types AS ct
12441 INNER JOIN calendar_schedules AS cs
12442 ON ct.calendar_schedule_id = cs.id
12443 INNER JOIN blocks AS b
12444 ON b.client_id = ct.client_id
12445 AND b.block_schedule_id = cs.block_schedule_id
12446 AND '2018-09-29' BETWEEN b.start_date AND b.end_date
12447 INNER JOIN published_blocks AS pb
12448 ON pb.client_id = ct.client_id
12449 AND pb.block_id = b.id
12450 AND pb.calendar_schedule_id = cs.id
12451 LEFT JOIN published_block_call_types AS pbct
12452 ON pbct.client_id = ct.client_id
12453 AND pbct.assignment_id = ct.id
12454 AND pbct.assignment_type = 'CallType'
12455 AND pbct.block_id = b.id
12456 AND (
12457 (1 << (DAYOFWEEK('2018-09-29') - 1) & pbct.days_of_week_mask) > 0
12458 )
12459 WHERE ct.id = 10168
12460 AND (
12461 (
12462 pb.assignment_ids IS NULL
12463 AND (1 << (DAYOFWEEK('2018-09-29') - 1) & pb.days_of_week_mask) > 0
12464 )
12465 OR pbct.id IS NOT NULL
12466 )
12467
12468 CallType Load (124.8ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10168 LIMIT 1
12469 Client Load (119.7ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
12470 Staff Load (118.9ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17180 LIMIT 1
12471 Schedule Exists (121.3ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10168 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-29' LIMIT 1
12472 SQL (126.8ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10168, 17180, '2018-09-29', '2018-05-29 13:28:31', '2018-05-29 13:28:31', 1, 7, 'auto_populate_step', 30093)
12473 VisibleAssignment Load (125.7ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-29' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10168 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
12474 (124.4ms) COMMIT
12475FLUSHED: nil:nil
12476 PublishedBlock Load (125.7ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-09-30' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
12477 PublishedBlockCallType Load (117.5ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
12478 (142.2ms) BEGIN
12479 (124.2ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
12480 FROM call_types AS ct
12481 INNER JOIN calendar_schedules AS cs
12482 ON ct.calendar_schedule_id = cs.id
12483 INNER JOIN blocks AS b
12484 ON b.client_id = ct.client_id
12485 AND b.block_schedule_id = cs.block_schedule_id
12486 AND '2018-09-30' BETWEEN b.start_date AND b.end_date
12487 INNER JOIN published_blocks AS pb
12488 ON pb.client_id = ct.client_id
12489 AND pb.block_id = b.id
12490 AND pb.calendar_schedule_id = cs.id
12491 LEFT JOIN published_block_call_types AS pbct
12492 ON pbct.client_id = ct.client_id
12493 AND pbct.assignment_id = ct.id
12494 AND pbct.assignment_type = 'CallType'
12495 AND pbct.block_id = b.id
12496 AND (
12497 (1 << (DAYOFWEEK('2018-09-30') - 1) & pbct.days_of_week_mask) > 0
12498 )
12499 WHERE ct.id = 10167
12500 AND (
12501 (
12502 pb.assignment_ids IS NULL
12503 AND (1 << (DAYOFWEEK('2018-09-30') - 1) & pb.days_of_week_mask) > 0
12504 )
12505 OR pbct.id IS NOT NULL
12506 )
12507
12508 CallType Load (122.5ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
12509 Client Load (122.3ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
12510 Staff Load (128.2ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17180 LIMIT 1
12511 Schedule Exists (126.6ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-09-30' LIMIT 1
12512 SQL (121.5ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17180, '2018-09-30', '2018-05-29 13:28:33', '2018-05-29 13:28:33', 1, 1, 'auto_populate_step', 30093)
12513 VisibleAssignment Load (122.0ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-09-30' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
12514 (120.7ms) COMMIT
12515FLUSHED: nil:nil
12516 (125.0ms) UPDATE buffer_schedules_1913539992
12517 SET staff_id = 17180,
12518 should_be_populated = 0,
12519 should_be_evaluated = 0
12520 WHERE
12521 call_type_id = 10167
12522 AND schedule_on = '2018-09-28'
12523
12524 (142.4ms) delete from buffer_combined_availabilities_1913539992
12525 where linkage_instance_id = 14201838
12526
12527 (124.4ms) UPDATE buffer_rule_calc_schedules_1913539992
12528 SET staff_id = 17180
12529 WHERE call_type_id = 10167
12530 AND schedule_on = '2018-09-28'
12531
12532 (119.6ms) INSERT INTO buffer_rule_calc_schedules_1913539992
12533 SET staff_id = 17180,
12534 call_type_id = 10167,
12535 schedule_on = '2018-09-28',
12536 day_of_week_mask = 32
12537
12538 (125.9ms) /* NegativeLinkRule */
12539 UPDATE buffer_negative_relations_1913539992
12540 SET staff_id = 17180
12541 WHERE affected_by_schedule_id = (
12542 SELECT id
12543 FROM buffer_schedules_1913539992
12544 WHERE schedule_on = '2018-09-28'
12545 AND call_type_id = 10167
12546 )
12547
12548 (123.0ms) /* SpecializationOverlapRule */
12549 update buffer_staff_specializations_1913539992 as st_sp
12550 inner join max_applicable_call_types as mact
12551 on st_sp.specialization_id = mact.specialization_id
12552 and mact.call_type_id = 10167
12553 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
12554 on st_sp.specialization_id = sp_dc.specialization_id
12555 and sp_dc.staff_id is null
12556 and sp_dc.schedule_on = '2018-09-28'
12557 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
12558 on st_sp.specialization_id = sp_dc_2.specialization_id
12559 and st_sp.staff_id = sp_dc_2.staff_id
12560 and sp_dc_2.schedule_on = '2018-09-28'
12561 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
12562 where st_sp.staff_id = 17180
12563 and sp_dc_2.id is null
12564
12565 (118.3ms) insert into buffer_specialization_daily_counts_1913539992 (
12566 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
12567 )
12568 select sp.id as specialization_id,
12569 17180 as staff_id,
12570 '2018-09-28' as schedule_on,
12571 1 as staffs_scheduled,
12572 sp.max_scheduled,
12573 sp_dc.should_be_evaluated
12574 from buffer_staff_specializations_1913539992 as st_sp
12575 inner join specializations as sp
12576 on st_sp.specialization_id = sp.id
12577 inner join max_applicable_call_types as mact
12578 on st_sp.specialization_id = mact.specialization_id
12579 and mact.call_type_id = 10167
12580 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
12581 on st_sp.specialization_id = sp_dc.specialization_id
12582 and sp_dc.staff_id is null
12583 and sp_dc.schedule_on = '2018-09-28'
12584 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
12585 on st_sp.specialization_id = sp_dc_2.specialization_id
12586 and st_sp.staff_id = sp_dc_2.staff_id
12587 and sp_dc_2.schedule_on = '2018-09-28'
12588 where st_sp.staff_id = 17180
12589 and sp_dc_2.id is null
12590
12591 (123.0ms) /* MaxAssignmentsRule */
12592 delete from buffer_linkage_call_type_assignments_1913539992
12593 where linkage_instance_id = 14201838;
12594
12595 (124.9ms) /* MaxAssignmentsRule */
12596 update
12597 buffer_schedules_1913539992 as sc
12598 inner join call_types as ct
12599 on sc.call_type_id = ct.id
12600 and ct.active = 1
12601 inner join buffer_call_type_assignments_1913539992 as cta
12602 on sc.staff_id = cta.staff_id
12603 and sc.call_type_id = cta.call_type_id
12604 and sc.is_weekend = cta.is_weekend
12605 and sc.period_offset = cta.period_offset
12606 and sc.calendar_schedule_id = cta.calendar_schedule_id
12607 set cta.assignments_count = cta.assignments_count + 1
12608 where
12609 sc.schedule_on = '2018-09-28'
12610 and sc.call_type_id = 10167
12611 and sc.staff_id = 17180
12612
12613 (124.0ms) insert into buffer_call_type_assignments_1913539992 (
12614 staff_id,
12615 call_type_id,
12616 is_weekend,
12617 period_offset,
12618 calendar_schedule_id,
12619 assignments_count
12620 )
12621 select
12622 sc.staff_id,
12623 sc.call_type_id,
12624 sc.is_weekend,
12625 sc.period_offset,
12626 sc.calendar_schedule_id,
12627 1 as assignments_count
12628 from buffer_schedules_1913539992 as sc
12629 where
12630 sc.staff_id = 17180
12631 and sc.schedule_on = '2018-09-28'
12632 and sc.call_type_id = 10167
12633
12634 (124.8ms) /* UnassignedDaysRule */
12635 delete from buffer_linkage_assigned_days_1913539992
12636 where linkage_instance_id = 14201838
12637
12638 (122.7ms) /* UnassignedDaysRule */
12639 UPDATE buffer_staff_assigned_days_1913539992 as sad
12640 inner join call_types as ct
12641 on ct.id = 10167
12642 and ct.unassigned_day = 0
12643 SET sad.is_assigned = 1
12644 WHERE sad.staff_id = 17180
12645 AND sad.schedule_on = '2018-09-28'
12646
12647 (125.2ms) truncate table buffer_tmp_targets_scheduled_1913539992
12648
12649 (127.6ms) insert into buffer_tmp_targets_scheduled_1913539992 (
12650 block_id,
12651 calendar_schedule_id,
12652 staff_id,
12653 assignment_id,
12654 assignment_type,
12655 day_of_week_mask,
12656 is_weekend,
12657 scheduled,
12658 other_scheduled
12659 )
12660 select
12661 pt.block_id,
12662 pt.calendar_schedule_id,
12663 pt.staff_id,
12664 0 as assignment_id,
12665 '' as assignment_type,
12666 0 as day_of_week_mask,
12667 pt.is_weekend,
12668 case
12669 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
12670 else 0.0
12671 end as scheduled,
12672 case
12673 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
12674 else 0.0
12675 end as other_scheduled
12676 from
12677 buffer_schedules_1913539992 as sc
12678 inner join buffer_counter_increments_1913539992 as ci
12679 on sc.id = ci.schedule_id
12680 and ci.points != 0
12681 inner join assign_staff_types as ast
12682 on sc.staff_id = ast.staff_id
12683 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
12684 inner join staff_types as st
12685 on ast.staff_type_id = st.id
12686 inner join buffer_point_targets_1913539992 as pt
12687 on sc.block_id = pt.block_id
12688 and st.point_hour_schedule_id = pt.calendar_schedule_id
12689 and sc.staff_id = pt.staff_id
12690 and sc.is_weekend = pt.is_weekend
12691 where
12692 sc.schedule_on = '2018-09-28'
12693 and sc.call_type_id = 10167
12694 and sc.staff_id = 17180
12695 order by null
12696
12697 (115.4ms) select 1 from buffer_tmp_targets_scheduled_1913539992
12698
12699 (124.9ms) update
12700 buffer_tmp_targets_scheduled_1913539992 as sch_t
12701 inner join buffer_point_targets_1913539992 as pt
12702 on sch_t.block_id = pt.block_id
12703 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
12704 and sch_t.staff_id = pt.staff_id
12705 and sch_t.is_weekend = pt.is_weekend
12706 set
12707 pt.scheduled = pt.scheduled + sch_t.scheduled,
12708 pt.scheduled_delta = sch_t.scheduled,
12709 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
12710 pt.other_scheduled_delta = sch_t.other_scheduled
12711
12712 (123.6ms) select 1 from buffer_tmp_targets_scheduled_1913539992
12713 where other_scheduled != 0
12714
12715 (123.1ms) update
12716 buffer_current_point_targets_1913539992 as cr_pt
12717 inner join (
12718 select
12719 pt.staff_id,
12720 part_of_week.is_weekend,
12721 td.period_offset,
12722 pt.calendar_schedule_id,
12723 sum(pt.raw_target_delta) as raw_target_delta,
12724 sum(pt.target_delta) as adjusted_target_delta,
12725 sum(pt.scheduled_delta) as scheduled_delta,
12726 sum(pt.other_scheduled_delta) as other_scheduled_delta
12727 from
12728 buffer_tmp_targets_scheduled_1913539992 as sch_t
12729 inner join buffer_target_dates as td
12730 on td.session_id = 1913539992
12731 and sch_t.block_id = td.block_id
12732 and sch_t.calendar_schedule_id = td.calendar_schedule_id
12733 inner join buffer_point_targets_1913539992 as pt
12734 on sch_t.block_id = pt.block_id
12735 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
12736 and (
12737 sch_t.staff_id = pt.staff_id
12738 or sch_t.other_scheduled != 0
12739 )
12740 and sch_t.is_weekend = pt.is_weekend
12741 inner join (
12742 select 0 as is_weekend
12743 union select 1
12744
12745 ) as part_of_week
12746 on sch_t.is_weekend = part_of_week.is_weekend
12747 or part_of_week.is_weekend = -1
12748 group by
12749 pt.staff_id,
12750 part_of_week.is_weekend,
12751 td.period_offset,
12752 pt.calendar_schedule_id
12753 order by null
12754 ) as pt
12755 on cr_pt.staff_id = pt.staff_id
12756 and cr_pt.is_weekend = pt.is_weekend
12757 and cr_pt.period_offset = pt.period_offset
12758 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
12759 set
12760 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
12761 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
12762 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
12763 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
12764
12765 (125.5ms) update
12766 buffer_cumulative_point_targets_1913539992 as cu_pt
12767 inner join (
12768 select
12769 pt.staff_id,
12770 part_of_week.is_weekend,
12771 pt.calendar_schedule_id,
12772 sum(pt.raw_target_delta) as raw_target_delta,
12773 sum(pt.target_delta) as adjusted_target_delta,
12774 sum(pt.scheduled_delta) as scheduled_delta,
12775 sum(pt.other_scheduled_delta) as other_scheduled_delta
12776 from
12777 buffer_tmp_targets_scheduled_1913539992 as sch_t
12778 inner join buffer_target_dates as td
12779 on td.session_id = 1913539992
12780 and sch_t.block_id = td.block_id
12781 and sch_t.calendar_schedule_id = td.calendar_schedule_id
12782 and td.within_cumulative_period = 1
12783 inner join buffer_point_targets_1913539992 as pt
12784 on sch_t.block_id = pt.block_id
12785 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
12786 and (
12787 sch_t.staff_id = pt.staff_id
12788 or sch_t.other_scheduled != 0
12789 )
12790 and sch_t.is_weekend = pt.is_weekend
12791 inner join (
12792 select 0 as is_weekend
12793 union select 1
12794
12795 ) as part_of_week
12796 on sch_t.is_weekend = part_of_week.is_weekend
12797 or part_of_week.is_weekend = -1
12798 group by
12799 pt.staff_id,
12800 part_of_week.is_weekend,
12801 pt.calendar_schedule_id
12802 order by null
12803 ) as pt
12804 on cu_pt.staff_id = pt.staff_id
12805 and cu_pt.is_weekend = pt.is_weekend
12806 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
12807 set
12808 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
12809 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
12810 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
12811 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
12812
12813 (125.6ms) update
12814 buffer_tmp_targets_scheduled_1913539992 as sch_t
12815 inner join buffer_point_targets_1913539992 as pt
12816 on sch_t.block_id = pt.block_id
12817 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
12818 and (
12819 sch_t.staff_id = pt.staff_id
12820 or sch_t.other_scheduled != 0
12821 )
12822 and sch_t.is_weekend = pt.is_weekend
12823 set
12824 pt.raw_target_delta = 0,
12825 pt.target_delta = 0,
12826 pt.scheduled_delta = 0,
12827 pt.other_scheduled_delta = 0
12828
12829 (124.0ms) /* AssignmentLimitsPerPeriod */
12830 /* Unique Key: assignment_limit_id, staff_id, start_date */
12831 insert into buffer_staff_assignments_count_periods_1913539992 (
12832 assignment_limit_id, staff_id, start_date, end_date, assignments_count
12833 )
12834 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
12835 1 as assignments_count
12836 from buffer_schedules_1913539992 as sc
12837 inner join buffer_assignment_limit_call_types_1913539992 as alct
12838 on sc.call_type_id = alct.call_type_id
12839 inner join assignment_limits as al
12840 on alct.assignment_limit_id = al.id
12841 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
12842 and al.max_per_period_limit is not null
12843 inner join assign_staff_types as ast
12844 on sc.staff_id = ast.staff_id
12845 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
12846 inner join buffer_assignment_limit_staff_types_1913539992 as alst
12847 on alct.assignment_limit_id = alst.assignment_limit_id
12848 and ast.staff_type_id = alst.staff_type_id
12849 inner join (
12850 select assignment_limit_id, start_date, end_date
12851 from buffer_linkage_assignments_count_periods_1913539992
12852 group by assignment_limit_id, start_date, end_date
12853 order by null
12854 ) as lac
12855 on alct.assignment_limit_id = lac.assignment_limit_id
12856 and sc.schedule_on between lac.start_date and lac.end_date
12857 where sc.schedule_on = '2018-09-28'
12858 and sc.call_type_id = 10167
12859 and sc.staff_id = 17180
12860 on duplicate key update
12861 assignments_count = assignments_count + 1
12862
12863 (123.8ms) /* AssignmentLimitsPerWeek */
12864 /* Unique Key: assignment_limit_id, staff_id, start_date */
12865 insert into buffer_staff_assignments_count_weeks_1913539992 (
12866 assignment_limit_id, staff_id, start_date, end_date, assignments_count
12867 )
12868 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
12869 1 as assignments_count
12870 from buffer_schedules_1913539992 as sc
12871 inner join buffer_assignment_limit_call_types_1913539992 as alct
12872 on sc.call_type_id = alct.call_type_id
12873 inner join assignment_limits as al
12874 on alct.assignment_limit_id = al.id
12875 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
12876 and al.max_weekly_limit is not null
12877 inner join assign_staff_types as ast
12878 on sc.staff_id = ast.staff_id
12879 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
12880 inner join buffer_assignment_limit_staff_types_1913539992 as alst
12881 on alct.assignment_limit_id = alst.assignment_limit_id
12882 and ast.staff_type_id = alst.staff_type_id
12883 inner join (
12884 select assignment_limit_id, start_date, end_date
12885 from buffer_linkage_assignments_count_weeks_1913539992
12886 group by assignment_limit_id, start_date, end_date
12887 order by null
12888 ) as lac
12889 on alct.assignment_limit_id = lac.assignment_limit_id
12890 and sc.schedule_on between lac.start_date and lac.end_date
12891 where sc.schedule_on = '2018-09-28'
12892 and sc.call_type_id = 10167
12893 and sc.staff_id = 17180
12894 on duplicate key update
12895 assignments_count = assignments_count + 1
12896
12897 (121.9ms) /* AssignmentLimitsRolling */
12898 /* Unique Key: assignment_limit_id, staff_id, start_date */
12899 insert into buffer_staff_assignments_count_rolling_1913539992 (
12900 assignment_limit_id, staff_id, start_date, end_date, assignments_count
12901 )
12902 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
12903 1 as assignments_count
12904 from buffer_schedules_1913539992 as sc
12905 inner join buffer_assignment_limit_call_types_1913539992 as alct
12906 on sc.call_type_id = alct.call_type_id
12907 inner join assignment_limits as al
12908 on alct.assignment_limit_id = al.id
12909 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
12910 and al.max_rolling_period is not null
12911 and al.max_rolling_limit is not null
12912 inner join assign_staff_types as ast
12913 on sc.staff_id = ast.staff_id
12914 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
12915 inner join buffer_assignment_limit_staff_types_1913539992 as alst
12916 on alct.assignment_limit_id = alst.assignment_limit_id
12917 and ast.staff_type_id = alst.staff_type_id
12918 inner join (
12919 select assignment_limit_id, start_date, end_date
12920 from buffer_linkage_assignments_count_rolling_1913539992
12921 group by assignment_limit_id, start_date, end_date
12922 order by null
12923 ) as lac
12924 on alct.assignment_limit_id = lac.assignment_limit_id
12925 and sc.schedule_on between lac.start_date and lac.end_date
12926 where sc.schedule_on = '2018-09-28'
12927 and sc.call_type_id = 10167
12928 and sc.staff_id = 17180
12929 on duplicate key update
12930 assignments_count = assignments_count + 1
12931
12932 (123.0ms) /* AssignmentLimitsConsecutive */
12933 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
12934 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
12935 assignment_limit_id, staff_id, schedule_on, start_date, end_date
12936 )
12937 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
12938 from buffer_schedules_1913539992 as sc
12939 inner join buffer_assignment_limit_call_types_1913539992 as alct
12940 on sc.call_type_id = alct.call_type_id
12941 inner join assignment_limits as al
12942 on alct.assignment_limit_id = al.id
12943 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
12944 and al.max_consecutive_limit is not null
12945 inner join assign_staff_types as ast
12946 on sc.staff_id = ast.staff_id
12947 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
12948 inner join buffer_assignment_limit_staff_types_1913539992 as alst
12949 on alct.assignment_limit_id = alst.assignment_limit_id
12950 and ast.staff_type_id = alst.staff_type_id
12951 inner join (
12952 select assignment_limit_id, start_date, end_date
12953 from buffer_linkage_assignments_count_consecutive_1913539992
12954 group by assignment_limit_id, start_date, end_date
12955 order by null
12956 ) as lac
12957 on alct.assignment_limit_id = lac.assignment_limit_id
12958 and sc.schedule_on between lac.start_date and lac.end_date
12959 where sc.schedule_on = '2018-09-28'
12960 and sc.call_type_id = 10167
12961 and sc.staff_id = 17180
12962
12963 (127.8ms) UPDATE buffer_schedules_1913539992
12964 SET staff_id = 17180,
12965 should_be_populated = 0,
12966 should_be_evaluated = 0
12967 WHERE
12968 call_type_id = 10168
12969 AND schedule_on = '2018-09-29'
12970
12971 (120.4ms) delete from buffer_combined_availabilities_1913539992
12972 where linkage_instance_id = 14201838
12973
12974 (123.2ms) UPDATE buffer_rule_calc_schedules_1913539992
12975 SET staff_id = 17180
12976 WHERE call_type_id = 10168
12977 AND schedule_on = '2018-09-29'
12978
12979 (122.5ms) INSERT INTO buffer_rule_calc_schedules_1913539992
12980 SET staff_id = 17180,
12981 call_type_id = 10168,
12982 schedule_on = '2018-09-29',
12983 day_of_week_mask = 64
12984
12985 (122.7ms) /* NegativeLinkRule */
12986 UPDATE buffer_negative_relations_1913539992
12987 SET staff_id = 17180
12988 WHERE affected_by_schedule_id = (
12989 SELECT id
12990 FROM buffer_schedules_1913539992
12991 WHERE schedule_on = '2018-09-29'
12992 AND call_type_id = 10168
12993 )
12994
12995 (121.0ms) /* SpecializationOverlapRule */
12996 update buffer_staff_specializations_1913539992 as st_sp
12997 inner join max_applicable_call_types as mact
12998 on st_sp.specialization_id = mact.specialization_id
12999 and mact.call_type_id = 10168
13000 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
13001 on st_sp.specialization_id = sp_dc.specialization_id
13002 and sp_dc.staff_id is null
13003 and sp_dc.schedule_on = '2018-09-29'
13004 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
13005 on st_sp.specialization_id = sp_dc_2.specialization_id
13006 and st_sp.staff_id = sp_dc_2.staff_id
13007 and sp_dc_2.schedule_on = '2018-09-29'
13008 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
13009 where st_sp.staff_id = 17180
13010 and sp_dc_2.id is null
13011
13012 (123.5ms) insert into buffer_specialization_daily_counts_1913539992 (
13013 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
13014 )
13015 select sp.id as specialization_id,
13016 17180 as staff_id,
13017 '2018-09-29' as schedule_on,
13018 1 as staffs_scheduled,
13019 sp.max_scheduled,
13020 sp_dc.should_be_evaluated
13021 from buffer_staff_specializations_1913539992 as st_sp
13022 inner join specializations as sp
13023 on st_sp.specialization_id = sp.id
13024 inner join max_applicable_call_types as mact
13025 on st_sp.specialization_id = mact.specialization_id
13026 and mact.call_type_id = 10168
13027 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
13028 on st_sp.specialization_id = sp_dc.specialization_id
13029 and sp_dc.staff_id is null
13030 and sp_dc.schedule_on = '2018-09-29'
13031 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
13032 on st_sp.specialization_id = sp_dc_2.specialization_id
13033 and st_sp.staff_id = sp_dc_2.staff_id
13034 and sp_dc_2.schedule_on = '2018-09-29'
13035 where st_sp.staff_id = 17180
13036 and sp_dc_2.id is null
13037
13038 (122.5ms) /* MaxAssignmentsRule */
13039 delete from buffer_linkage_call_type_assignments_1913539992
13040 where linkage_instance_id = 14201838;
13041
13042 (122.4ms) /* MaxAssignmentsRule */
13043 update
13044 buffer_schedules_1913539992 as sc
13045 inner join call_types as ct
13046 on sc.call_type_id = ct.id
13047 and ct.active = 1
13048 inner join buffer_call_type_assignments_1913539992 as cta
13049 on sc.staff_id = cta.staff_id
13050 and sc.call_type_id = cta.call_type_id
13051 and sc.is_weekend = cta.is_weekend
13052 and sc.period_offset = cta.period_offset
13053 and sc.calendar_schedule_id = cta.calendar_schedule_id
13054 set cta.assignments_count = cta.assignments_count + 1
13055 where
13056 sc.schedule_on = '2018-09-29'
13057 and sc.call_type_id = 10168
13058 and sc.staff_id = 17180
13059
13060 (125.1ms) insert into buffer_call_type_assignments_1913539992 (
13061 staff_id,
13062 call_type_id,
13063 is_weekend,
13064 period_offset,
13065 calendar_schedule_id,
13066 assignments_count
13067 )
13068 select
13069 sc.staff_id,
13070 sc.call_type_id,
13071 sc.is_weekend,
13072 sc.period_offset,
13073 sc.calendar_schedule_id,
13074 1 as assignments_count
13075 from buffer_schedules_1913539992 as sc
13076 where
13077 sc.staff_id = 17180
13078 and sc.schedule_on = '2018-09-29'
13079 and sc.call_type_id = 10168
13080
13081 (117.9ms) /* UnassignedDaysRule */
13082 delete from buffer_linkage_assigned_days_1913539992
13083 where linkage_instance_id = 14201838
13084
13085 (118.6ms) /* UnassignedDaysRule */
13086 UPDATE buffer_staff_assigned_days_1913539992 as sad
13087 inner join call_types as ct
13088 on ct.id = 10168
13089 and ct.unassigned_day = 0
13090 SET sad.is_assigned = 1
13091 WHERE sad.staff_id = 17180
13092 AND sad.schedule_on = '2018-09-29'
13093
13094 (124.8ms) truncate table buffer_tmp_targets_scheduled_1913539992
13095
13096 (122.3ms) insert into buffer_tmp_targets_scheduled_1913539992 (
13097 block_id,
13098 calendar_schedule_id,
13099 staff_id,
13100 assignment_id,
13101 assignment_type,
13102 day_of_week_mask,
13103 is_weekend,
13104 scheduled,
13105 other_scheduled
13106 )
13107 select
13108 pt.block_id,
13109 pt.calendar_schedule_id,
13110 pt.staff_id,
13111 0 as assignment_id,
13112 '' as assignment_type,
13113 0 as day_of_week_mask,
13114 pt.is_weekend,
13115 case
13116 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
13117 else 0.0
13118 end as scheduled,
13119 case
13120 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
13121 else 0.0
13122 end as other_scheduled
13123 from
13124 buffer_schedules_1913539992 as sc
13125 inner join buffer_counter_increments_1913539992 as ci
13126 on sc.id = ci.schedule_id
13127 and ci.points != 0
13128 inner join assign_staff_types as ast
13129 on sc.staff_id = ast.staff_id
13130 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
13131 inner join staff_types as st
13132 on ast.staff_type_id = st.id
13133 inner join buffer_point_targets_1913539992 as pt
13134 on sc.block_id = pt.block_id
13135 and st.point_hour_schedule_id = pt.calendar_schedule_id
13136 and sc.staff_id = pt.staff_id
13137 and sc.is_weekend = pt.is_weekend
13138 where
13139 sc.schedule_on = '2018-09-29'
13140 and sc.call_type_id = 10168
13141 and sc.staff_id = 17180
13142 order by null
13143
13144 (121.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
13145
13146 (124.4ms) update
13147 buffer_tmp_targets_scheduled_1913539992 as sch_t
13148 inner join buffer_point_targets_1913539992 as pt
13149 on sch_t.block_id = pt.block_id
13150 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
13151 and sch_t.staff_id = pt.staff_id
13152 and sch_t.is_weekend = pt.is_weekend
13153 set
13154 pt.scheduled = pt.scheduled + sch_t.scheduled,
13155 pt.scheduled_delta = sch_t.scheduled,
13156 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
13157 pt.other_scheduled_delta = sch_t.other_scheduled
13158
13159 (115.2ms) select 1 from buffer_tmp_targets_scheduled_1913539992
13160 where other_scheduled != 0
13161
13162 (125.5ms) update
13163 buffer_current_point_targets_1913539992 as cr_pt
13164 inner join (
13165 select
13166 pt.staff_id,
13167 part_of_week.is_weekend,
13168 td.period_offset,
13169 pt.calendar_schedule_id,
13170 sum(pt.raw_target_delta) as raw_target_delta,
13171 sum(pt.target_delta) as adjusted_target_delta,
13172 sum(pt.scheduled_delta) as scheduled_delta,
13173 sum(pt.other_scheduled_delta) as other_scheduled_delta
13174 from
13175 buffer_tmp_targets_scheduled_1913539992 as sch_t
13176 inner join buffer_target_dates as td
13177 on td.session_id = 1913539992
13178 and sch_t.block_id = td.block_id
13179 and sch_t.calendar_schedule_id = td.calendar_schedule_id
13180 inner join buffer_point_targets_1913539992 as pt
13181 on sch_t.block_id = pt.block_id
13182 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
13183 and (
13184 sch_t.staff_id = pt.staff_id
13185 or sch_t.other_scheduled != 0
13186 )
13187 and sch_t.is_weekend = pt.is_weekend
13188 inner join (
13189 select 0 as is_weekend
13190 union select 1
13191
13192 ) as part_of_week
13193 on sch_t.is_weekend = part_of_week.is_weekend
13194 or part_of_week.is_weekend = -1
13195 group by
13196 pt.staff_id,
13197 part_of_week.is_weekend,
13198 td.period_offset,
13199 pt.calendar_schedule_id
13200 order by null
13201 ) as pt
13202 on cr_pt.staff_id = pt.staff_id
13203 and cr_pt.is_weekend = pt.is_weekend
13204 and cr_pt.period_offset = pt.period_offset
13205 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
13206 set
13207 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
13208 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
13209 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
13210 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
13211
13212 (126.0ms) update
13213 buffer_cumulative_point_targets_1913539992 as cu_pt
13214 inner join (
13215 select
13216 pt.staff_id,
13217 part_of_week.is_weekend,
13218 pt.calendar_schedule_id,
13219 sum(pt.raw_target_delta) as raw_target_delta,
13220 sum(pt.target_delta) as adjusted_target_delta,
13221 sum(pt.scheduled_delta) as scheduled_delta,
13222 sum(pt.other_scheduled_delta) as other_scheduled_delta
13223 from
13224 buffer_tmp_targets_scheduled_1913539992 as sch_t
13225 inner join buffer_target_dates as td
13226 on td.session_id = 1913539992
13227 and sch_t.block_id = td.block_id
13228 and sch_t.calendar_schedule_id = td.calendar_schedule_id
13229 and td.within_cumulative_period = 1
13230 inner join buffer_point_targets_1913539992 as pt
13231 on sch_t.block_id = pt.block_id
13232 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
13233 and (
13234 sch_t.staff_id = pt.staff_id
13235 or sch_t.other_scheduled != 0
13236 )
13237 and sch_t.is_weekend = pt.is_weekend
13238 inner join (
13239 select 0 as is_weekend
13240 union select 1
13241
13242 ) as part_of_week
13243 on sch_t.is_weekend = part_of_week.is_weekend
13244 or part_of_week.is_weekend = -1
13245 group by
13246 pt.staff_id,
13247 part_of_week.is_weekend,
13248 pt.calendar_schedule_id
13249 order by null
13250 ) as pt
13251 on cu_pt.staff_id = pt.staff_id
13252 and cu_pt.is_weekend = pt.is_weekend
13253 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
13254 set
13255 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
13256 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
13257 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
13258 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
13259
13260 (125.2ms) update
13261 buffer_tmp_targets_scheduled_1913539992 as sch_t
13262 inner join buffer_point_targets_1913539992 as pt
13263 on sch_t.block_id = pt.block_id
13264 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
13265 and (
13266 sch_t.staff_id = pt.staff_id
13267 or sch_t.other_scheduled != 0
13268 )
13269 and sch_t.is_weekend = pt.is_weekend
13270 set
13271 pt.raw_target_delta = 0,
13272 pt.target_delta = 0,
13273 pt.scheduled_delta = 0,
13274 pt.other_scheduled_delta = 0
13275
13276 (122.6ms) /* AssignmentLimitsPerPeriod */
13277 /* Unique Key: assignment_limit_id, staff_id, start_date */
13278 insert into buffer_staff_assignments_count_periods_1913539992 (
13279 assignment_limit_id, staff_id, start_date, end_date, assignments_count
13280 )
13281 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
13282 1 as assignments_count
13283 from buffer_schedules_1913539992 as sc
13284 inner join buffer_assignment_limit_call_types_1913539992 as alct
13285 on sc.call_type_id = alct.call_type_id
13286 inner join assignment_limits as al
13287 on alct.assignment_limit_id = al.id
13288 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
13289 and al.max_per_period_limit is not null
13290 inner join assign_staff_types as ast
13291 on sc.staff_id = ast.staff_id
13292 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
13293 inner join buffer_assignment_limit_staff_types_1913539992 as alst
13294 on alct.assignment_limit_id = alst.assignment_limit_id
13295 and ast.staff_type_id = alst.staff_type_id
13296 inner join (
13297 select assignment_limit_id, start_date, end_date
13298 from buffer_linkage_assignments_count_periods_1913539992
13299 group by assignment_limit_id, start_date, end_date
13300 order by null
13301 ) as lac
13302 on alct.assignment_limit_id = lac.assignment_limit_id
13303 and sc.schedule_on between lac.start_date and lac.end_date
13304 where sc.schedule_on = '2018-09-29'
13305 and sc.call_type_id = 10168
13306 and sc.staff_id = 17180
13307 on duplicate key update
13308 assignments_count = assignments_count + 1
13309
13310 (122.2ms) /* AssignmentLimitsPerWeek */
13311 /* Unique Key: assignment_limit_id, staff_id, start_date */
13312 insert into buffer_staff_assignments_count_weeks_1913539992 (
13313 assignment_limit_id, staff_id, start_date, end_date, assignments_count
13314 )
13315 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
13316 1 as assignments_count
13317 from buffer_schedules_1913539992 as sc
13318 inner join buffer_assignment_limit_call_types_1913539992 as alct
13319 on sc.call_type_id = alct.call_type_id
13320 inner join assignment_limits as al
13321 on alct.assignment_limit_id = al.id
13322 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
13323 and al.max_weekly_limit is not null
13324 inner join assign_staff_types as ast
13325 on sc.staff_id = ast.staff_id
13326 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
13327 inner join buffer_assignment_limit_staff_types_1913539992 as alst
13328 on alct.assignment_limit_id = alst.assignment_limit_id
13329 and ast.staff_type_id = alst.staff_type_id
13330 inner join (
13331 select assignment_limit_id, start_date, end_date
13332 from buffer_linkage_assignments_count_weeks_1913539992
13333 group by assignment_limit_id, start_date, end_date
13334 order by null
13335 ) as lac
13336 on alct.assignment_limit_id = lac.assignment_limit_id
13337 and sc.schedule_on between lac.start_date and lac.end_date
13338 where sc.schedule_on = '2018-09-29'
13339 and sc.call_type_id = 10168
13340 and sc.staff_id = 17180
13341 on duplicate key update
13342 assignments_count = assignments_count + 1
13343
13344 (122.8ms) /* AssignmentLimitsRolling */
13345 /* Unique Key: assignment_limit_id, staff_id, start_date */
13346 insert into buffer_staff_assignments_count_rolling_1913539992 (
13347 assignment_limit_id, staff_id, start_date, end_date, assignments_count
13348 )
13349 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
13350 1 as assignments_count
13351 from buffer_schedules_1913539992 as sc
13352 inner join buffer_assignment_limit_call_types_1913539992 as alct
13353 on sc.call_type_id = alct.call_type_id
13354 inner join assignment_limits as al
13355 on alct.assignment_limit_id = al.id
13356 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
13357 and al.max_rolling_period is not null
13358 and al.max_rolling_limit is not null
13359 inner join assign_staff_types as ast
13360 on sc.staff_id = ast.staff_id
13361 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
13362 inner join buffer_assignment_limit_staff_types_1913539992 as alst
13363 on alct.assignment_limit_id = alst.assignment_limit_id
13364 and ast.staff_type_id = alst.staff_type_id
13365 inner join (
13366 select assignment_limit_id, start_date, end_date
13367 from buffer_linkage_assignments_count_rolling_1913539992
13368 group by assignment_limit_id, start_date, end_date
13369 order by null
13370 ) as lac
13371 on alct.assignment_limit_id = lac.assignment_limit_id
13372 and sc.schedule_on between lac.start_date and lac.end_date
13373 where sc.schedule_on = '2018-09-29'
13374 and sc.call_type_id = 10168
13375 and sc.staff_id = 17180
13376 on duplicate key update
13377 assignments_count = assignments_count + 1
13378
13379 (118.6ms) /* AssignmentLimitsConsecutive */
13380 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
13381 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
13382 assignment_limit_id, staff_id, schedule_on, start_date, end_date
13383 )
13384 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
13385 from buffer_schedules_1913539992 as sc
13386 inner join buffer_assignment_limit_call_types_1913539992 as alct
13387 on sc.call_type_id = alct.call_type_id
13388 inner join assignment_limits as al
13389 on alct.assignment_limit_id = al.id
13390 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
13391 and al.max_consecutive_limit is not null
13392 inner join assign_staff_types as ast
13393 on sc.staff_id = ast.staff_id
13394 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
13395 inner join buffer_assignment_limit_staff_types_1913539992 as alst
13396 on alct.assignment_limit_id = alst.assignment_limit_id
13397 and ast.staff_type_id = alst.staff_type_id
13398 inner join (
13399 select assignment_limit_id, start_date, end_date
13400 from buffer_linkage_assignments_count_consecutive_1913539992
13401 group by assignment_limit_id, start_date, end_date
13402 order by null
13403 ) as lac
13404 on alct.assignment_limit_id = lac.assignment_limit_id
13405 and sc.schedule_on between lac.start_date and lac.end_date
13406 where sc.schedule_on = '2018-09-29'
13407 and sc.call_type_id = 10168
13408 and sc.staff_id = 17180
13409
13410 (123.9ms) UPDATE buffer_schedules_1913539992
13411 SET staff_id = 17180,
13412 should_be_populated = 0,
13413 should_be_evaluated = 0
13414 WHERE
13415 call_type_id = 10167
13416 AND schedule_on = '2018-09-30'
13417
13418 (125.1ms) delete from buffer_combined_availabilities_1913539992
13419 where linkage_instance_id = 14201838
13420
13421 (146.8ms) UPDATE buffer_rule_calc_schedules_1913539992
13422 SET staff_id = 17180
13423 WHERE call_type_id = 10167
13424 AND schedule_on = '2018-09-30'
13425
13426 (125.5ms) INSERT INTO buffer_rule_calc_schedules_1913539992
13427 SET staff_id = 17180,
13428 call_type_id = 10167,
13429 schedule_on = '2018-09-30',
13430 day_of_week_mask = 1
13431
13432 (129.4ms) /* NegativeLinkRule */
13433 UPDATE buffer_negative_relations_1913539992
13434 SET staff_id = 17180
13435 WHERE affected_by_schedule_id = (
13436 SELECT id
13437 FROM buffer_schedules_1913539992
13438 WHERE schedule_on = '2018-09-30'
13439 AND call_type_id = 10167
13440 )
13441
13442 (116.4ms) /* SpecializationOverlapRule */
13443 update buffer_staff_specializations_1913539992 as st_sp
13444 inner join max_applicable_call_types as mact
13445 on st_sp.specialization_id = mact.specialization_id
13446 and mact.call_type_id = 10167
13447 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
13448 on st_sp.specialization_id = sp_dc.specialization_id
13449 and sp_dc.staff_id is null
13450 and sp_dc.schedule_on = '2018-09-30'
13451 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
13452 on st_sp.specialization_id = sp_dc_2.specialization_id
13453 and st_sp.staff_id = sp_dc_2.staff_id
13454 and sp_dc_2.schedule_on = '2018-09-30'
13455 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
13456 where st_sp.staff_id = 17180
13457 and sp_dc_2.id is null
13458
13459 (123.1ms) insert into buffer_specialization_daily_counts_1913539992 (
13460 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
13461 )
13462 select sp.id as specialization_id,
13463 17180 as staff_id,
13464 '2018-09-30' as schedule_on,
13465 1 as staffs_scheduled,
13466 sp.max_scheduled,
13467 sp_dc.should_be_evaluated
13468 from buffer_staff_specializations_1913539992 as st_sp
13469 inner join specializations as sp
13470 on st_sp.specialization_id = sp.id
13471 inner join max_applicable_call_types as mact
13472 on st_sp.specialization_id = mact.specialization_id
13473 and mact.call_type_id = 10167
13474 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
13475 on st_sp.specialization_id = sp_dc.specialization_id
13476 and sp_dc.staff_id is null
13477 and sp_dc.schedule_on = '2018-09-30'
13478 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
13479 on st_sp.specialization_id = sp_dc_2.specialization_id
13480 and st_sp.staff_id = sp_dc_2.staff_id
13481 and sp_dc_2.schedule_on = '2018-09-30'
13482 where st_sp.staff_id = 17180
13483 and sp_dc_2.id is null
13484
13485 (123.9ms) /* MaxAssignmentsRule */
13486 delete from buffer_linkage_call_type_assignments_1913539992
13487 where linkage_instance_id = 14201838;
13488
13489 (117.9ms) /* MaxAssignmentsRule */
13490 update
13491 buffer_schedules_1913539992 as sc
13492 inner join call_types as ct
13493 on sc.call_type_id = ct.id
13494 and ct.active = 1
13495 inner join buffer_call_type_assignments_1913539992 as cta
13496 on sc.staff_id = cta.staff_id
13497 and sc.call_type_id = cta.call_type_id
13498 and sc.is_weekend = cta.is_weekend
13499 and sc.period_offset = cta.period_offset
13500 and sc.calendar_schedule_id = cta.calendar_schedule_id
13501 set cta.assignments_count = cta.assignments_count + 1
13502 where
13503 sc.schedule_on = '2018-09-30'
13504 and sc.call_type_id = 10167
13505 and sc.staff_id = 17180
13506
13507 (125.2ms) insert into buffer_call_type_assignments_1913539992 (
13508 staff_id,
13509 call_type_id,
13510 is_weekend,
13511 period_offset,
13512 calendar_schedule_id,
13513 assignments_count
13514 )
13515 select
13516 sc.staff_id,
13517 sc.call_type_id,
13518 sc.is_weekend,
13519 sc.period_offset,
13520 sc.calendar_schedule_id,
13521 1 as assignments_count
13522 from buffer_schedules_1913539992 as sc
13523 where
13524 sc.staff_id = 17180
13525 and sc.schedule_on = '2018-09-30'
13526 and sc.call_type_id = 10167
13527
13528 (124.2ms) /* UnassignedDaysRule */
13529 delete from buffer_linkage_assigned_days_1913539992
13530 where linkage_instance_id = 14201838
13531
13532 (117.9ms) /* UnassignedDaysRule */
13533 UPDATE buffer_staff_assigned_days_1913539992 as sad
13534 inner join call_types as ct
13535 on ct.id = 10167
13536 and ct.unassigned_day = 0
13537 SET sad.is_assigned = 1
13538 WHERE sad.staff_id = 17180
13539 AND sad.schedule_on = '2018-09-30'
13540
13541 (125.7ms) truncate table buffer_tmp_targets_scheduled_1913539992
13542
13543 (125.8ms) insert into buffer_tmp_targets_scheduled_1913539992 (
13544 block_id,
13545 calendar_schedule_id,
13546 staff_id,
13547 assignment_id,
13548 assignment_type,
13549 day_of_week_mask,
13550 is_weekend,
13551 scheduled,
13552 other_scheduled
13553 )
13554 select
13555 pt.block_id,
13556 pt.calendar_schedule_id,
13557 pt.staff_id,
13558 0 as assignment_id,
13559 '' as assignment_type,
13560 0 as day_of_week_mask,
13561 pt.is_weekend,
13562 case
13563 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
13564 else 0.0
13565 end as scheduled,
13566 case
13567 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
13568 else 0.0
13569 end as other_scheduled
13570 from
13571 buffer_schedules_1913539992 as sc
13572 inner join buffer_counter_increments_1913539992 as ci
13573 on sc.id = ci.schedule_id
13574 and ci.points != 0
13575 inner join assign_staff_types as ast
13576 on sc.staff_id = ast.staff_id
13577 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
13578 inner join staff_types as st
13579 on ast.staff_type_id = st.id
13580 inner join buffer_point_targets_1913539992 as pt
13581 on sc.block_id = pt.block_id
13582 and st.point_hour_schedule_id = pt.calendar_schedule_id
13583 and sc.staff_id = pt.staff_id
13584 and sc.is_weekend = pt.is_weekend
13585 where
13586 sc.schedule_on = '2018-09-30'
13587 and sc.call_type_id = 10167
13588 and sc.staff_id = 17180
13589 order by null
13590
13591 (121.0ms) select 1 from buffer_tmp_targets_scheduled_1913539992
13592
13593 (124.0ms) update
13594 buffer_tmp_targets_scheduled_1913539992 as sch_t
13595 inner join buffer_point_targets_1913539992 as pt
13596 on sch_t.block_id = pt.block_id
13597 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
13598 and sch_t.staff_id = pt.staff_id
13599 and sch_t.is_weekend = pt.is_weekend
13600 set
13601 pt.scheduled = pt.scheduled + sch_t.scheduled,
13602 pt.scheduled_delta = sch_t.scheduled,
13603 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
13604 pt.other_scheduled_delta = sch_t.other_scheduled
13605
13606 (122.7ms) select 1 from buffer_tmp_targets_scheduled_1913539992
13607 where other_scheduled != 0
13608
13609 (127.0ms) update
13610 buffer_current_point_targets_1913539992 as cr_pt
13611 inner join (
13612 select
13613 pt.staff_id,
13614 part_of_week.is_weekend,
13615 td.period_offset,
13616 pt.calendar_schedule_id,
13617 sum(pt.raw_target_delta) as raw_target_delta,
13618 sum(pt.target_delta) as adjusted_target_delta,
13619 sum(pt.scheduled_delta) as scheduled_delta,
13620 sum(pt.other_scheduled_delta) as other_scheduled_delta
13621 from
13622 buffer_tmp_targets_scheduled_1913539992 as sch_t
13623 inner join buffer_target_dates as td
13624 on td.session_id = 1913539992
13625 and sch_t.block_id = td.block_id
13626 and sch_t.calendar_schedule_id = td.calendar_schedule_id
13627 inner join buffer_point_targets_1913539992 as pt
13628 on sch_t.block_id = pt.block_id
13629 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
13630 and (
13631 sch_t.staff_id = pt.staff_id
13632 or sch_t.other_scheduled != 0
13633 )
13634 and sch_t.is_weekend = pt.is_weekend
13635 inner join (
13636 select 0 as is_weekend
13637 union select 1
13638
13639 ) as part_of_week
13640 on sch_t.is_weekend = part_of_week.is_weekend
13641 or part_of_week.is_weekend = -1
13642 group by
13643 pt.staff_id,
13644 part_of_week.is_weekend,
13645 td.period_offset,
13646 pt.calendar_schedule_id
13647 order by null
13648 ) as pt
13649 on cr_pt.staff_id = pt.staff_id
13650 and cr_pt.is_weekend = pt.is_weekend
13651 and cr_pt.period_offset = pt.period_offset
13652 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
13653 set
13654 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
13655 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
13656 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
13657 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
13658
13659 (120.9ms) update
13660 buffer_cumulative_point_targets_1913539992 as cu_pt
13661 inner join (
13662 select
13663 pt.staff_id,
13664 part_of_week.is_weekend,
13665 pt.calendar_schedule_id,
13666 sum(pt.raw_target_delta) as raw_target_delta,
13667 sum(pt.target_delta) as adjusted_target_delta,
13668 sum(pt.scheduled_delta) as scheduled_delta,
13669 sum(pt.other_scheduled_delta) as other_scheduled_delta
13670 from
13671 buffer_tmp_targets_scheduled_1913539992 as sch_t
13672 inner join buffer_target_dates as td
13673 on td.session_id = 1913539992
13674 and sch_t.block_id = td.block_id
13675 and sch_t.calendar_schedule_id = td.calendar_schedule_id
13676 and td.within_cumulative_period = 1
13677 inner join buffer_point_targets_1913539992 as pt
13678 on sch_t.block_id = pt.block_id
13679 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
13680 and (
13681 sch_t.staff_id = pt.staff_id
13682 or sch_t.other_scheduled != 0
13683 )
13684 and sch_t.is_weekend = pt.is_weekend
13685 inner join (
13686 select 0 as is_weekend
13687 union select 1
13688
13689 ) as part_of_week
13690 on sch_t.is_weekend = part_of_week.is_weekend
13691 or part_of_week.is_weekend = -1
13692 group by
13693 pt.staff_id,
13694 part_of_week.is_weekend,
13695 pt.calendar_schedule_id
13696 order by null
13697 ) as pt
13698 on cu_pt.staff_id = pt.staff_id
13699 and cu_pt.is_weekend = pt.is_weekend
13700 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
13701 set
13702 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
13703 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
13704 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
13705 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
13706
13707 (125.1ms) update
13708 buffer_tmp_targets_scheduled_1913539992 as sch_t
13709 inner join buffer_point_targets_1913539992 as pt
13710 on sch_t.block_id = pt.block_id
13711 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
13712 and (
13713 sch_t.staff_id = pt.staff_id
13714 or sch_t.other_scheduled != 0
13715 )
13716 and sch_t.is_weekend = pt.is_weekend
13717 set
13718 pt.raw_target_delta = 0,
13719 pt.target_delta = 0,
13720 pt.scheduled_delta = 0,
13721 pt.other_scheduled_delta = 0
13722
13723 (131.0ms) /* AssignmentLimitsPerPeriod */
13724 /* Unique Key: assignment_limit_id, staff_id, start_date */
13725 insert into buffer_staff_assignments_count_periods_1913539992 (
13726 assignment_limit_id, staff_id, start_date, end_date, assignments_count
13727 )
13728 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
13729 1 as assignments_count
13730 from buffer_schedules_1913539992 as sc
13731 inner join buffer_assignment_limit_call_types_1913539992 as alct
13732 on sc.call_type_id = alct.call_type_id
13733 inner join assignment_limits as al
13734 on alct.assignment_limit_id = al.id
13735 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
13736 and al.max_per_period_limit is not null
13737 inner join assign_staff_types as ast
13738 on sc.staff_id = ast.staff_id
13739 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
13740 inner join buffer_assignment_limit_staff_types_1913539992 as alst
13741 on alct.assignment_limit_id = alst.assignment_limit_id
13742 and ast.staff_type_id = alst.staff_type_id
13743 inner join (
13744 select assignment_limit_id, start_date, end_date
13745 from buffer_linkage_assignments_count_periods_1913539992
13746 group by assignment_limit_id, start_date, end_date
13747 order by null
13748 ) as lac
13749 on alct.assignment_limit_id = lac.assignment_limit_id
13750 and sc.schedule_on between lac.start_date and lac.end_date
13751 where sc.schedule_on = '2018-09-30'
13752 and sc.call_type_id = 10167
13753 and sc.staff_id = 17180
13754 on duplicate key update
13755 assignments_count = assignments_count + 1
13756
13757 (123.9ms) /* AssignmentLimitsPerWeek */
13758 /* Unique Key: assignment_limit_id, staff_id, start_date */
13759 insert into buffer_staff_assignments_count_weeks_1913539992 (
13760 assignment_limit_id, staff_id, start_date, end_date, assignments_count
13761 )
13762 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
13763 1 as assignments_count
13764 from buffer_schedules_1913539992 as sc
13765 inner join buffer_assignment_limit_call_types_1913539992 as alct
13766 on sc.call_type_id = alct.call_type_id
13767 inner join assignment_limits as al
13768 on alct.assignment_limit_id = al.id
13769 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
13770 and al.max_weekly_limit is not null
13771 inner join assign_staff_types as ast
13772 on sc.staff_id = ast.staff_id
13773 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
13774 inner join buffer_assignment_limit_staff_types_1913539992 as alst
13775 on alct.assignment_limit_id = alst.assignment_limit_id
13776 and ast.staff_type_id = alst.staff_type_id
13777 inner join (
13778 select assignment_limit_id, start_date, end_date
13779 from buffer_linkage_assignments_count_weeks_1913539992
13780 group by assignment_limit_id, start_date, end_date
13781 order by null
13782 ) as lac
13783 on alct.assignment_limit_id = lac.assignment_limit_id
13784 and sc.schedule_on between lac.start_date and lac.end_date
13785 where sc.schedule_on = '2018-09-30'
13786 and sc.call_type_id = 10167
13787 and sc.staff_id = 17180
13788 on duplicate key update
13789 assignments_count = assignments_count + 1
13790
13791 (116.3ms) /* AssignmentLimitsRolling */
13792 /* Unique Key: assignment_limit_id, staff_id, start_date */
13793 insert into buffer_staff_assignments_count_rolling_1913539992 (
13794 assignment_limit_id, staff_id, start_date, end_date, assignments_count
13795 )
13796 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
13797 1 as assignments_count
13798 from buffer_schedules_1913539992 as sc
13799 inner join buffer_assignment_limit_call_types_1913539992 as alct
13800 on sc.call_type_id = alct.call_type_id
13801 inner join assignment_limits as al
13802 on alct.assignment_limit_id = al.id
13803 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
13804 and al.max_rolling_period is not null
13805 and al.max_rolling_limit is not null
13806 inner join assign_staff_types as ast
13807 on sc.staff_id = ast.staff_id
13808 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
13809 inner join buffer_assignment_limit_staff_types_1913539992 as alst
13810 on alct.assignment_limit_id = alst.assignment_limit_id
13811 and ast.staff_type_id = alst.staff_type_id
13812 inner join (
13813 select assignment_limit_id, start_date, end_date
13814 from buffer_linkage_assignments_count_rolling_1913539992
13815 group by assignment_limit_id, start_date, end_date
13816 order by null
13817 ) as lac
13818 on alct.assignment_limit_id = lac.assignment_limit_id
13819 and sc.schedule_on between lac.start_date and lac.end_date
13820 where sc.schedule_on = '2018-09-30'
13821 and sc.call_type_id = 10167
13822 and sc.staff_id = 17180
13823 on duplicate key update
13824 assignments_count = assignments_count + 1
13825
13826 (123.9ms) /* AssignmentLimitsConsecutive */
13827 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
13828 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
13829 assignment_limit_id, staff_id, schedule_on, start_date, end_date
13830 )
13831 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
13832 from buffer_schedules_1913539992 as sc
13833 inner join buffer_assignment_limit_call_types_1913539992 as alct
13834 on sc.call_type_id = alct.call_type_id
13835 inner join assignment_limits as al
13836 on alct.assignment_limit_id = al.id
13837 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
13838 and al.max_consecutive_limit is not null
13839 inner join assign_staff_types as ast
13840 on sc.staff_id = ast.staff_id
13841 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
13842 inner join buffer_assignment_limit_staff_types_1913539992 as alst
13843 on alct.assignment_limit_id = alst.assignment_limit_id
13844 and ast.staff_type_id = alst.staff_type_id
13845 inner join (
13846 select assignment_limit_id, start_date, end_date
13847 from buffer_linkage_assignments_count_consecutive_1913539992
13848 group by assignment_limit_id, start_date, end_date
13849 order by null
13850 ) as lac
13851 on alct.assignment_limit_id = lac.assignment_limit_id
13852 and sc.schedule_on between lac.start_date and lac.end_date
13853 where sc.schedule_on = '2018-09-30'
13854 and sc.call_type_id = 10167
13855 and sc.staff_id = 17180
13856
13857 (125.0ms) UPDATE buffer_schedules_1913539992
13858 SET staff_id = 17180,
13859 should_be_populated = 0,
13860 should_be_evaluated = 0
13861 WHERE
13862 call_type_id = 10960
13863 AND schedule_on = '2018-10-01'
13864
13865 (125.3ms) delete from buffer_combined_availabilities_1913539992
13866 where linkage_instance_id = 14201838
13867
13868 (117.6ms) UPDATE buffer_rule_calc_schedules_1913539992
13869 SET staff_id = 17180
13870 WHERE call_type_id = 10960
13871 AND schedule_on = '2018-10-01'
13872
13873 (128.9ms) INSERT INTO buffer_rule_calc_schedules_1913539992
13874 SET staff_id = 17180,
13875 call_type_id = 10960,
13876 schedule_on = '2018-10-01',
13877 day_of_week_mask = 2
13878
13879 (123.1ms) /* NegativeLinkRule */
13880 UPDATE buffer_negative_relations_1913539992
13881 SET staff_id = 17180
13882 WHERE affected_by_schedule_id = (
13883 SELECT id
13884 FROM buffer_schedules_1913539992
13885 WHERE schedule_on = '2018-10-01'
13886 AND call_type_id = 10960
13887 )
13888
13889 (118.6ms) /* SpecializationOverlapRule */
13890 update buffer_staff_specializations_1913539992 as st_sp
13891 inner join max_applicable_call_types as mact
13892 on st_sp.specialization_id = mact.specialization_id
13893 and mact.call_type_id = 10960
13894 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
13895 on st_sp.specialization_id = sp_dc.specialization_id
13896 and sp_dc.staff_id is null
13897 and sp_dc.schedule_on = '2018-10-01'
13898 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
13899 on st_sp.specialization_id = sp_dc_2.specialization_id
13900 and st_sp.staff_id = sp_dc_2.staff_id
13901 and sp_dc_2.schedule_on = '2018-10-01'
13902 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
13903 where st_sp.staff_id = 17180
13904 and sp_dc_2.id is null
13905
13906 (121.1ms) insert into buffer_specialization_daily_counts_1913539992 (
13907 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
13908 )
13909 select sp.id as specialization_id,
13910 17180 as staff_id,
13911 '2018-10-01' as schedule_on,
13912 1 as staffs_scheduled,
13913 sp.max_scheduled,
13914 sp_dc.should_be_evaluated
13915 from buffer_staff_specializations_1913539992 as st_sp
13916 inner join specializations as sp
13917 on st_sp.specialization_id = sp.id
13918 inner join max_applicable_call_types as mact
13919 on st_sp.specialization_id = mact.specialization_id
13920 and mact.call_type_id = 10960
13921 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
13922 on st_sp.specialization_id = sp_dc.specialization_id
13923 and sp_dc.staff_id is null
13924 and sp_dc.schedule_on = '2018-10-01'
13925 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
13926 on st_sp.specialization_id = sp_dc_2.specialization_id
13927 and st_sp.staff_id = sp_dc_2.staff_id
13928 and sp_dc_2.schedule_on = '2018-10-01'
13929 where st_sp.staff_id = 17180
13930 and sp_dc_2.id is null
13931
13932 (129.5ms) /* MaxAssignmentsRule */
13933 delete from buffer_linkage_call_type_assignments_1913539992
13934 where linkage_instance_id = 14201838;
13935
13936 (116.0ms) /* MaxAssignmentsRule */
13937 update
13938 buffer_schedules_1913539992 as sc
13939 inner join call_types as ct
13940 on sc.call_type_id = ct.id
13941 and ct.active = 1
13942 inner join buffer_call_type_assignments_1913539992 as cta
13943 on sc.staff_id = cta.staff_id
13944 and sc.call_type_id = cta.call_type_id
13945 and sc.is_weekend = cta.is_weekend
13946 and sc.period_offset = cta.period_offset
13947 and sc.calendar_schedule_id = cta.calendar_schedule_id
13948 set cta.assignments_count = cta.assignments_count + 1
13949 where
13950 sc.schedule_on = '2018-10-01'
13951 and sc.call_type_id = 10960
13952 and sc.staff_id = 17180
13953
13954 (128.6ms) insert into buffer_call_type_assignments_1913539992 (
13955 staff_id,
13956 call_type_id,
13957 is_weekend,
13958 period_offset,
13959 calendar_schedule_id,
13960 assignments_count
13961 )
13962 select
13963 sc.staff_id,
13964 sc.call_type_id,
13965 sc.is_weekend,
13966 sc.period_offset,
13967 sc.calendar_schedule_id,
13968 1 as assignments_count
13969 from buffer_schedules_1913539992 as sc
13970 where
13971 sc.staff_id = 17180
13972 and sc.schedule_on = '2018-10-01'
13973 and sc.call_type_id = 10960
13974
13975 (122.8ms) /* UnassignedDaysRule */
13976 delete from buffer_linkage_assigned_days_1913539992
13977 where linkage_instance_id = 14201838
13978
13979 (116.8ms) /* UnassignedDaysRule */
13980 UPDATE buffer_staff_assigned_days_1913539992 as sad
13981 inner join call_types as ct
13982 on ct.id = 10960
13983 and ct.unassigned_day = 0
13984 SET sad.is_assigned = 1
13985 WHERE sad.staff_id = 17180
13986 AND sad.schedule_on = '2018-10-01'
13987
13988 (124.4ms) truncate table buffer_tmp_targets_scheduled_1913539992
13989
13990 (123.4ms) insert into buffer_tmp_targets_scheduled_1913539992 (
13991 block_id,
13992 calendar_schedule_id,
13993 staff_id,
13994 assignment_id,
13995 assignment_type,
13996 day_of_week_mask,
13997 is_weekend,
13998 scheduled,
13999 other_scheduled
14000 )
14001 select
14002 pt.block_id,
14003 pt.calendar_schedule_id,
14004 pt.staff_id,
14005 0 as assignment_id,
14006 '' as assignment_type,
14007 0 as day_of_week_mask,
14008 pt.is_weekend,
14009 case
14010 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
14011 else 0.0
14012 end as scheduled,
14013 case
14014 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
14015 else 0.0
14016 end as other_scheduled
14017 from
14018 buffer_schedules_1913539992 as sc
14019 inner join buffer_counter_increments_1913539992 as ci
14020 on sc.id = ci.schedule_id
14021 and ci.points != 0
14022 inner join assign_staff_types as ast
14023 on sc.staff_id = ast.staff_id
14024 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
14025 inner join staff_types as st
14026 on ast.staff_type_id = st.id
14027 inner join buffer_point_targets_1913539992 as pt
14028 on sc.block_id = pt.block_id
14029 and st.point_hour_schedule_id = pt.calendar_schedule_id
14030 and sc.staff_id = pt.staff_id
14031 and sc.is_weekend = pt.is_weekend
14032 where
14033 sc.schedule_on = '2018-10-01'
14034 and sc.call_type_id = 10960
14035 and sc.staff_id = 17180
14036 order by null
14037
14038 (121.8ms) select 1 from buffer_tmp_targets_scheduled_1913539992
14039
14040 (183.7ms) /* AssignmentLimitsPerPeriod */
14041 /* Unique Key: assignment_limit_id, staff_id, start_date */
14042 insert into buffer_staff_assignments_count_periods_1913539992 (
14043 assignment_limit_id, staff_id, start_date, end_date, assignments_count
14044 )
14045 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
14046 1 as assignments_count
14047 from buffer_schedules_1913539992 as sc
14048 inner join buffer_assignment_limit_call_types_1913539992 as alct
14049 on sc.call_type_id = alct.call_type_id
14050 inner join assignment_limits as al
14051 on alct.assignment_limit_id = al.id
14052 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
14053 and al.max_per_period_limit is not null
14054 inner join assign_staff_types as ast
14055 on sc.staff_id = ast.staff_id
14056 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
14057 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14058 on alct.assignment_limit_id = alst.assignment_limit_id
14059 and ast.staff_type_id = alst.staff_type_id
14060 inner join (
14061 select assignment_limit_id, start_date, end_date
14062 from buffer_linkage_assignments_count_periods_1913539992
14063 group by assignment_limit_id, start_date, end_date
14064 order by null
14065 ) as lac
14066 on alct.assignment_limit_id = lac.assignment_limit_id
14067 and sc.schedule_on between lac.start_date and lac.end_date
14068 where sc.schedule_on = '2018-10-01'
14069 and sc.call_type_id = 10960
14070 and sc.staff_id = 17180
14071 on duplicate key update
14072 assignments_count = assignments_count + 1
14073
14074 (235.8ms) /* AssignmentLimitsPerWeek */
14075 /* Unique Key: assignment_limit_id, staff_id, start_date */
14076 insert into buffer_staff_assignments_count_weeks_1913539992 (
14077 assignment_limit_id, staff_id, start_date, end_date, assignments_count
14078 )
14079 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
14080 1 as assignments_count
14081 from buffer_schedules_1913539992 as sc
14082 inner join buffer_assignment_limit_call_types_1913539992 as alct
14083 on sc.call_type_id = alct.call_type_id
14084 inner join assignment_limits as al
14085 on alct.assignment_limit_id = al.id
14086 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
14087 and al.max_weekly_limit is not null
14088 inner join assign_staff_types as ast
14089 on sc.staff_id = ast.staff_id
14090 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
14091 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14092 on alct.assignment_limit_id = alst.assignment_limit_id
14093 and ast.staff_type_id = alst.staff_type_id
14094 inner join (
14095 select assignment_limit_id, start_date, end_date
14096 from buffer_linkage_assignments_count_weeks_1913539992
14097 group by assignment_limit_id, start_date, end_date
14098 order by null
14099 ) as lac
14100 on alct.assignment_limit_id = lac.assignment_limit_id
14101 and sc.schedule_on between lac.start_date and lac.end_date
14102 where sc.schedule_on = '2018-10-01'
14103 and sc.call_type_id = 10960
14104 and sc.staff_id = 17180
14105 on duplicate key update
14106 assignments_count = assignments_count + 1
14107
14108 (122.8ms) /* AssignmentLimitsRolling */
14109 /* Unique Key: assignment_limit_id, staff_id, start_date */
14110 insert into buffer_staff_assignments_count_rolling_1913539992 (
14111 assignment_limit_id, staff_id, start_date, end_date, assignments_count
14112 )
14113 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
14114 1 as assignments_count
14115 from buffer_schedules_1913539992 as sc
14116 inner join buffer_assignment_limit_call_types_1913539992 as alct
14117 on sc.call_type_id = alct.call_type_id
14118 inner join assignment_limits as al
14119 on alct.assignment_limit_id = al.id
14120 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
14121 and al.max_rolling_period is not null
14122 and al.max_rolling_limit is not null
14123 inner join assign_staff_types as ast
14124 on sc.staff_id = ast.staff_id
14125 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
14126 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14127 on alct.assignment_limit_id = alst.assignment_limit_id
14128 and ast.staff_type_id = alst.staff_type_id
14129 inner join (
14130 select assignment_limit_id, start_date, end_date
14131 from buffer_linkage_assignments_count_rolling_1913539992
14132 group by assignment_limit_id, start_date, end_date
14133 order by null
14134 ) as lac
14135 on alct.assignment_limit_id = lac.assignment_limit_id
14136 and sc.schedule_on between lac.start_date and lac.end_date
14137 where sc.schedule_on = '2018-10-01'
14138 and sc.call_type_id = 10960
14139 and sc.staff_id = 17180
14140 on duplicate key update
14141 assignments_count = assignments_count + 1
14142
14143 (121.9ms) /* AssignmentLimitsConsecutive */
14144 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
14145 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
14146 assignment_limit_id, staff_id, schedule_on, start_date, end_date
14147 )
14148 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
14149 from buffer_schedules_1913539992 as sc
14150 inner join buffer_assignment_limit_call_types_1913539992 as alct
14151 on sc.call_type_id = alct.call_type_id
14152 inner join assignment_limits as al
14153 on alct.assignment_limit_id = al.id
14154 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
14155 and al.max_consecutive_limit is not null
14156 inner join assign_staff_types as ast
14157 on sc.staff_id = ast.staff_id
14158 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
14159 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14160 on alct.assignment_limit_id = alst.assignment_limit_id
14161 and ast.staff_type_id = alst.staff_type_id
14162 inner join (
14163 select assignment_limit_id, start_date, end_date
14164 from buffer_linkage_assignments_count_consecutive_1913539992
14165 group by assignment_limit_id, start_date, end_date
14166 order by null
14167 ) as lac
14168 on alct.assignment_limit_id = lac.assignment_limit_id
14169 and sc.schedule_on between lac.start_date and lac.end_date
14170 where sc.schedule_on = '2018-10-01'
14171 and sc.call_type_id = 10960
14172 and sc.staff_id = 17180
14173
14174INFO : (05-29 13:28:44) scheduled for: plan unit: [id:14201838] [2018-09-28 - CHCall], [2018-09-28 - CHDay], [2018-09-29 - CHCall2], [2018-09-30 - CHCall], [2018-10-01 - CHDay 4], Robert Phillips. DEPTH(4)
14175 (123.8ms) select
14176 coalesce(max(
14177 case
14178 when (ct.max_weekday_assignments > 0) then 1
14179 else 0
14180 end
14181 ), 0) as weekday_flag,
14182 coalesce(max(
14183 case
14184 when (ct.max_weekend_assignments > 0) then 1
14185 else 0
14186 end
14187 ), 0) as weekend_flag
14188 from
14189 buffer_auto_populate_slots_1913539992 as aps
14190 inner join call_types as ct
14191 on aps.call_type_id = ct.id
14192
14193 (119.3ms) delete ca
14194 from buffer_combined_availabilities_1913539992 as ca
14195 inner join (
14196 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
14197 sum(lac.assignments_count) as assignments_count
14198 from (
14199 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
14200 from buffer_combined_availabilities_1913539992 as ca
14201 inner join buffer_schedules_1913539992 as sc
14202 on ca.schedule_id = sc.id
14203 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
14204 order by null
14205 ) as ca_sc
14206 inner join buffer_linkage_assignments_count_weeks_1913539992 as lac
14207 on ca_sc.linkage_instance_id = lac.linkage_instance_id
14208 and ca_sc.schedule_on = lac.schedule_on
14209 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14210 on lac.assignment_limit_id = alst.assignment_limit_id
14211 and ca_sc.staff_type_id = alst.staff_type_id
14212 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
14213 order by null
14214 ) as lac
14215 on ca.linkage_instance_id = lac.linkage_instance_id
14216 and ca.staff_id = lac.staff_id
14217 inner join assignment_limits as al
14218 on lac.assignment_limit_id = al.id
14219 left join buffer_staff_assignments_count_weeks_1913539992 as sac
14220 on lac.assignment_limit_id = sac.assignment_limit_id
14221 and lac.staff_id = sac.staff_id
14222 and lac.start_date = sac.start_date
14223 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_weekly_limit
14224
14225 (122.1ms) delete ca
14226 from buffer_combined_availabilities_1913539992 as ca
14227 inner join (
14228 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
14229 count(distinct if(sac.id is null, lac.schedule_on, null)) as assignments_count
14230 from (
14231 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
14232 from buffer_combined_availabilities_1913539992 as ca
14233 inner join buffer_schedules_1913539992 as sc
14234 on ca.schedule_id = sc.id
14235 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
14236 order by null
14237 ) as ca_sc
14238 inner join buffer_linkage_assignments_count_consecutive_1913539992 as lac
14239 on ca_sc.linkage_instance_id = lac.linkage_instance_id
14240 and ca_sc.schedule_on = lac.schedule_on
14241 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14242 on lac.assignment_limit_id = alst.assignment_limit_id
14243 and ca_sc.staff_type_id = alst.staff_type_id
14244 left join buffer_staff_assignments_count_consecutive_1913539992 as sac
14245 on lac.assignment_limit_id = sac.assignment_limit_id
14246 and ca_sc.staff_id = sac.staff_id
14247 and lac.schedule_on = sac.schedule_on
14248 and lac.start_date = sac.start_date
14249 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
14250 order by null
14251 ) as lac
14252 on ca.linkage_instance_id = lac.linkage_instance_id
14253 and ca.staff_id = lac.staff_id
14254 inner join assignment_limits as al
14255 on lac.assignment_limit_id = al.id
14256 left join (
14257 select assignment_limit_id, staff_id, start_date,
14258 count(schedule_on) as assignments_count
14259 from buffer_staff_assignments_count_consecutive_1913539992
14260 group by assignment_limit_id, staff_id, start_date
14261 ) as sac
14262 on lac.assignment_limit_id = sac.assignment_limit_id
14263 and lac.staff_id = sac.staff_id
14264 and lac.start_date = sac.start_date
14265 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_consecutive_limit
14266
14267 (237.5ms) delete ca
14268 from buffer_combined_availabilities_1913539992 as ca
14269 inner join (
14270 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
14271 sum(lac.assignments_count) as assignments_count
14272 from (
14273 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
14274 from buffer_combined_availabilities_1913539992 as ca
14275 inner join buffer_schedules_1913539992 as sc
14276 on ca.schedule_id = sc.id
14277 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
14278 order by null
14279 ) as ca_sc
14280 inner join buffer_linkage_assignments_count_periods_1913539992 as lac
14281 on ca_sc.linkage_instance_id = lac.linkage_instance_id
14282 and ca_sc.schedule_on = lac.schedule_on
14283 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14284 on lac.assignment_limit_id = alst.assignment_limit_id
14285 and ca_sc.staff_type_id = alst.staff_type_id
14286 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
14287 order by null
14288 ) as lac
14289 on ca.linkage_instance_id = lac.linkage_instance_id
14290 and ca.staff_id = lac.staff_id
14291 inner join assignment_limits as al
14292 on lac.assignment_limit_id = al.id
14293 left join buffer_staff_assignments_count_periods_1913539992 as sac
14294 on lac.assignment_limit_id = sac.assignment_limit_id
14295 and lac.staff_id = sac.staff_id
14296 and lac.start_date = sac.start_date
14297 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_per_period_limit
14298
14299 (121.6ms) delete ca
14300 from buffer_combined_availabilities_1913539992 as ca
14301 inner join (
14302 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
14303 sum(lac.assignments_count) as assignments_count
14304 from (
14305 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
14306 from buffer_combined_availabilities_1913539992 as ca
14307 inner join buffer_schedules_1913539992 as sc
14308 on ca.schedule_id = sc.id
14309 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
14310 order by null
14311 ) as ca_sc
14312 inner join buffer_linkage_assignments_count_rolling_1913539992 as lac
14313 on ca_sc.linkage_instance_id = lac.linkage_instance_id
14314 and ca_sc.schedule_on = lac.schedule_on
14315 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14316 on lac.assignment_limit_id = alst.assignment_limit_id
14317 and ca_sc.staff_type_id = alst.staff_type_id
14318 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
14319 order by null
14320 ) as lac
14321 on ca.linkage_instance_id = lac.linkage_instance_id
14322 and ca.staff_id = lac.staff_id
14323 inner join assignment_limits as al
14324 on lac.assignment_limit_id = al.id
14325 left join buffer_staff_assignments_count_rolling_1913539992 as sac
14326 on lac.assignment_limit_id = sac.assignment_limit_id
14327 and lac.staff_id = sac.staff_id
14328 and lac.start_date = sac.start_date
14329 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_rolling_limit
14330
14331 (122.1ms) /* NegativeLinkRule */
14332 delete ca
14333 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
14334 inner join buffer_negative_relations_1913539992 as nr use index (ix_buffer_negative_relations_composite_1)
14335 on ca.schedule_id = nr.schedule_id
14336 and ca.staff_id = nr.staff_id
14337
14338 (123.8ms) /* SpecializationOverlapRule */
14339 delete ca
14340 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
14341 inner join buffer_schedules_1913539992 as sc
14342 on ca.schedule_id = sc.id
14343 inner join buffer_staff_specializations_1913539992 as ssp
14344 on ca.staff_id = ssp.staff_id
14345 inner join max_applicable_call_types as mact
14346 on ssp.specialization_id = mact.specialization_id
14347 and sc.call_type_id = mact.call_type_id
14348 inner join buffer_specialization_daily_counts_1913539992 as sdc use index (ix_buffer_specialization_daily_counts_composite_1)
14349 on ssp.specialization_id = sdc.specialization_id
14350 and sc.schedule_on = sdc.schedule_on
14351 and sdc.staff_id is null
14352 left join buffer_specialization_daily_counts_1913539992 as sdc_2 use index (ix_buffer_specialization_daily_counts_composite_1)
14353 on ssp.specialization_id = sdc_2.specialization_id
14354 and sc.schedule_on = sdc_2.schedule_on
14355 and ca.staff_id = sdc_2.staff_id
14356 where sdc.should_be_evaluated = 1
14357 and (sdc.staffs_scheduled + if(sdc_2.id is null, 1, 0)) > sdc.max_scheduled
14358
14359 (123.7ms) /* BrokenLinkageRule */
14360 truncate table buffer_combined_availability_linkages_1913539992
14361
14362 (121.1ms) insert into buffer_combined_availability_linkages_1913539992 (
14363 staff_id,
14364 linkage_instance_id,
14365 slots_count,
14366 is_primary,
14367 has_violations
14368 )
14369 select
14370 staff_id,
14371 linkage_instance_id,
14372 count(1) as slots_count,
14373 min(is_primary) as is_primary,
14374 max(has_violations) as has_violations
14375 from buffer_combined_availabilities_1913539992 use index (ix_buffer_combined_availabilities_composite_2)
14376 group by
14377 staff_id,
14378 linkage_instance_id
14379 order by null
14380
14381 (130.4ms) delete ca
14382 from
14383 buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
14384 inner join buffer_schedules_1913539992 as sc
14385 on ca.schedule_id = sc.id
14386 inner join buffer_linkages_1913539992 as l
14387 on sc.linkage_instance_id = l.linkage_instance_id
14388 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
14389 on ca.staff_id = ls_1.staff_id
14390 and sc.linkage_instance_id = ls_1.linkage_instance_id
14391 left join buffer_schedule_linkages_1913539992 as ls_2 use index (ix_buffer_schedule_linkages_composite_1)
14392 on ca.staff_id = ls_2.staff_id
14393 and sc.linkage_instance_id = ls_2.linkage_instance_id
14394 where (ls_1.slots_count + coalesce(ls_2.slots_count, 0)) < l.slots_count_total /* not covering the whole chain */;
14395
14396 (148.7ms) select straight_join
14397 sc.schedule_on,
14398 sc.call_type_id,
14399 count(distinct ca.staff_id) as available_members_count,
14400 group_concat(
14401 distinct concat(if(ls_1.is_primary = 1, 'p', 's'), ca.staff_id)
14402 order by ls_1.is_primary desc, ca.staff_id
14403 separator ', '
14404 ) as available_members_ids,
14405 sc.linkage_instance_id,
14406 l.slots_count_total as linkage_slots_count
14407 from buffer_combined_availabilities_1913539992 as ca
14408 inner join buffer_schedules_1913539992 as sc
14409 on ca.schedule_id = sc.id
14410 inner join buffer_linkages_1913539992 as l
14411 on sc.linkage_instance_id = l.linkage_instance_id
14412 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
14413 on ca.staff_id = ls_1.staff_id
14414 and sc.linkage_instance_id = ls_1.linkage_instance_id
14415 and ls_1.has_violations = 0
14416 where sc.should_be_evaluated = 1
14417 and sc.should_be_populated = 1
14418 group by sc.schedule_on, sc.call_type_id, sc.linkage_instance_id, l.slots_count_total
14419 order by available_members_count, sc.schedule_on, sc.display_order
14420 limit 1
14421
14422 (119.6ms) truncate table buffer_rule_scores_1913539992
14423
14424 (124.6ms) truncate table buffer_rule_calc_filters_1913539992
14425
14426 (122.9ms) insert into buffer_rule_calc_filters_1913539992 (
14427 linkage_instance_id,
14428 staff_id
14429 ) values (14201839, 17223)
14430
14431 (127.1ms) /* CallDaysRule */
14432 insert into buffer_rule_scores_1913539992 (
14433 linkage_instance_id,
14434 schedule_id,
14435 staff_id,
14436 rule_name,
14437 value
14438 )
14439 select
14440 b_schedules.linkage_instance_id,
14441 b_schedules.id as schedule_id,
14442 availabilities.staff_id,
14443 'CallDaysRule' as _rule_name,
14444 (min(abs(datediff(b_schedules.schedule_on, rc_schedules.schedule_on))) div 7) as value
14445 from
14446 buffer_rule_calc_filters_1913539992 as filters
14447 inner join buffer_schedules_1913539992 as b_schedules
14448 on filters.linkage_instance_id = b_schedules.linkage_instance_id
14449 inner join buffer_combined_availabilities_1913539992 as availabilities
14450 on b_schedules.id = availabilities.schedule_id
14451 and filters.staff_id = availabilities.staff_id
14452 left join buffer_rule_calc_schedules_1913539992 as rc_schedules
14453 on availabilities.staff_id = rc_schedules.staff_id
14454 and b_schedules.day_of_week_mask = rc_schedules.day_of_week_mask
14455 group by
14456 b_schedules.linkage_instance_id,
14457 b_schedules.id,
14458 availabilities.staff_id,
14459 _rule_name
14460 order by null
14461
14462 (117.8ms) /* CumulativePointTargetsRule */
14463 insert into buffer_rule_scores_1913539992 (
14464 linkage_instance_id,
14465 schedule_id,
14466 staff_id,
14467 rule_name,
14468 value
14469 )
14470 select
14471 b_schedules.linkage_instance_id,
14472 b_schedules.id as schedule_id,
14473 availabilities.staff_id,
14474 'CumulativePointTargetsRule' as rule_name,
14475 ((b_targets.raw_target - b_targets.scheduled) /
14476 b_targets.raw_target) as value
14477 from
14478 buffer_rule_calc_filters_1913539992 as filters
14479 inner join buffer_schedules_1913539992 as b_schedules
14480 on filters.linkage_instance_id = b_schedules.linkage_instance_id
14481 inner join buffer_combined_availabilities_1913539992 as availabilities
14482 on b_schedules.id = availabilities.schedule_id
14483 and filters.staff_id = availabilities.staff_id
14484 inner join buffer_cumulative_point_targets_1913539992 as b_targets
14485 on availabilities.staff_id = b_targets.staff_id
14486 and b_schedules.is_weekend = b_targets.is_weekend
14487 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
14488 order by null;
14489
14490 (126.0ms) /* CurrentPointTargetsRule */
14491 insert into buffer_rule_scores_1913539992 (
14492 linkage_instance_id,
14493 schedule_id,
14494 staff_id,
14495 rule_name,
14496 value
14497 )
14498 select
14499 b_schedules.linkage_instance_id,
14500 b_schedules.id as schedule_id,
14501 availabilities.staff_id,
14502 'CurrentPointTargetsRule' as rule_name,
14503 ((b_targets.adjusted_target - b_targets.scheduled) / b_targets.adjusted_target) as value
14504 from
14505 buffer_rule_calc_filters_1913539992 as filters
14506 inner join buffer_schedules_1913539992 as b_schedules
14507 on filters.linkage_instance_id = b_schedules.linkage_instance_id
14508 inner join buffer_combined_availabilities_1913539992 as availabilities
14509 on b_schedules.id = availabilities.schedule_id
14510 and filters.staff_id = availabilities.staff_id
14511 inner join buffer_current_point_targets_1913539992 as b_targets
14512 on availabilities.staff_id = b_targets.staff_id
14513 and b_schedules.is_weekend = b_targets.is_weekend
14514 and b_schedules.period_offset = b_targets.period_offset
14515 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
14516 order by null
14517
14518 (124.8ms) truncate table buffer_rule_scores_with_corrections_1913539992
14519
14520 (121.6ms) insert into buffer_rule_scores_with_corrections_1913539992 (
14521 linkage_instance_id, schedule_id, staff_id, rule_name, value
14522 )
14523 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id, rule_scores.rule_name,
14524 ifnull(rule_scores.value, max_values.max_value + 1) as value
14525 from buffer_rule_scores_1913539992 as rule_scores
14526 inner join (
14527 select rule_name, max(value) as max_value
14528 from buffer_rule_scores_1913539992
14529 group by rule_name
14530 order by null
14531 ) as max_values
14532 on rule_scores.rule_name = max_values.rule_name
14533 order by null
14534
14535 (122.9ms) select linkage_instance_id, staff_id, avg(slot_scores) as scores
14536 from (
14537 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id,
14538 sum(
14539 if((total_values.total_value > 0), (rule_scores.value / total_values.total_value), 0) *
14540 rules.weight *
14541 total_values.slots_count
14542 ) as slot_scores
14543 from buffer_rule_scores_with_corrections_1913539992 as rule_scores
14544 inner join (
14545 select rule_name, sum(abs(value)) as total_value,
14546 count(distinct schedule_id) as slots_count
14547 from buffer_rule_scores_with_corrections_1913539992
14548 group by rule_name
14549 order by null
14550 ) as total_values
14551 on rule_scores.rule_name = total_values.rule_name
14552 inner join rules
14553 on rule_scores.rule_name = rules.type
14554 where rules.rule_set_id = 1232
14555 and rules.applied = 1
14556 group by rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id
14557 order by null
14558 ) as staff_scores
14559 group by linkage_instance_id, staff_id
14560 order by round(avg(slot_scores), 5) desc, rand()
14561 limit 1
14562
14563 PublishedBlock Load (124.6ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-10-05' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
14564 PublishedBlockCallType Load (120.3ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10832 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
14565INFO : (05-29 13:28:58) Not creating schedule because of call type linkage behavior settings: [2018-10-05 - CHDay]
14566 PublishedBlock Load (125.4ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-10-05' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
14567 PublishedBlockCallType Load (122.4ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
14568 (123.0ms) BEGIN
14569 (118.3ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
14570 FROM call_types AS ct
14571 INNER JOIN calendar_schedules AS cs
14572 ON ct.calendar_schedule_id = cs.id
14573 INNER JOIN blocks AS b
14574 ON b.client_id = ct.client_id
14575 AND b.block_schedule_id = cs.block_schedule_id
14576 AND '2018-10-05' BETWEEN b.start_date AND b.end_date
14577 INNER JOIN published_blocks AS pb
14578 ON pb.client_id = ct.client_id
14579 AND pb.block_id = b.id
14580 AND pb.calendar_schedule_id = cs.id
14581 LEFT JOIN published_block_call_types AS pbct
14582 ON pbct.client_id = ct.client_id
14583 AND pbct.assignment_id = ct.id
14584 AND pbct.assignment_type = 'CallType'
14585 AND pbct.block_id = b.id
14586 AND (
14587 (1 << (DAYOFWEEK('2018-10-05') - 1) & pbct.days_of_week_mask) > 0
14588 )
14589 WHERE ct.id = 10167
14590 AND (
14591 (
14592 pb.assignment_ids IS NULL
14593 AND (1 << (DAYOFWEEK('2018-10-05') - 1) & pb.days_of_week_mask) > 0
14594 )
14595 OR pbct.id IS NOT NULL
14596 )
14597
14598 CallType Load (122.8ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
14599 Client Load (123.1ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
14600 Staff Load (119.1ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17223 LIMIT 1
14601 Schedule Exists (121.3ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-10-05' LIMIT 1
14602 SQL (145.1ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17223, '2018-10-05', '2018-05-29 13:28:59', '2018-05-29 13:28:59', 0, 6, 'auto_populate_step', 30093)
14603 VisibleAssignment Load (115.6ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-10-05' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
14604 (123.7ms) COMMIT
14605FLUSHED: nil:nil
14606 PublishedBlock Load (122.4ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-10-06' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
14607 PublishedBlockCallType Load (124.4ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10168 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
14608 (121.4ms) BEGIN
14609 (124.0ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
14610 FROM call_types AS ct
14611 INNER JOIN calendar_schedules AS cs
14612 ON ct.calendar_schedule_id = cs.id
14613 INNER JOIN blocks AS b
14614 ON b.client_id = ct.client_id
14615 AND b.block_schedule_id = cs.block_schedule_id
14616 AND '2018-10-06' BETWEEN b.start_date AND b.end_date
14617 INNER JOIN published_blocks AS pb
14618 ON pb.client_id = ct.client_id
14619 AND pb.block_id = b.id
14620 AND pb.calendar_schedule_id = cs.id
14621 LEFT JOIN published_block_call_types AS pbct
14622 ON pbct.client_id = ct.client_id
14623 AND pbct.assignment_id = ct.id
14624 AND pbct.assignment_type = 'CallType'
14625 AND pbct.block_id = b.id
14626 AND (
14627 (1 << (DAYOFWEEK('2018-10-06') - 1) & pbct.days_of_week_mask) > 0
14628 )
14629 WHERE ct.id = 10168
14630 AND (
14631 (
14632 pb.assignment_ids IS NULL
14633 AND (1 << (DAYOFWEEK('2018-10-06') - 1) & pb.days_of_week_mask) > 0
14634 )
14635 OR pbct.id IS NOT NULL
14636 )
14637
14638 CallType Load (125.4ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10168 LIMIT 1
14639 Client Load (125.5ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
14640 Staff Load (118.0ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17223 LIMIT 1
14641 Schedule Exists (137.6ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10168 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-10-06' LIMIT 1
14642 SQL (123.9ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10168, 17223, '2018-10-06', '2018-05-29 13:29:00', '2018-05-29 13:29:00', 1, 7, 'auto_populate_step', 30093)
14643 VisibleAssignment Load (124.0ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-10-06' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10168 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
14644 (124.3ms) COMMIT
14645FLUSHED: nil:nil
14646 PublishedBlock Load (124.8ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-10-07' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
14647 PublishedBlockCallType Load (118.6ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
14648 (122.8ms) BEGIN
14649 (122.3ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
14650 FROM call_types AS ct
14651 INNER JOIN calendar_schedules AS cs
14652 ON ct.calendar_schedule_id = cs.id
14653 INNER JOIN blocks AS b
14654 ON b.client_id = ct.client_id
14655 AND b.block_schedule_id = cs.block_schedule_id
14656 AND '2018-10-07' BETWEEN b.start_date AND b.end_date
14657 INNER JOIN published_blocks AS pb
14658 ON pb.client_id = ct.client_id
14659 AND pb.block_id = b.id
14660 AND pb.calendar_schedule_id = cs.id
14661 LEFT JOIN published_block_call_types AS pbct
14662 ON pbct.client_id = ct.client_id
14663 AND pbct.assignment_id = ct.id
14664 AND pbct.assignment_type = 'CallType'
14665 AND pbct.block_id = b.id
14666 AND (
14667 (1 << (DAYOFWEEK('2018-10-07') - 1) & pbct.days_of_week_mask) > 0
14668 )
14669 WHERE ct.id = 10167
14670 AND (
14671 (
14672 pb.assignment_ids IS NULL
14673 AND (1 << (DAYOFWEEK('2018-10-07') - 1) & pb.days_of_week_mask) > 0
14674 )
14675 OR pbct.id IS NOT NULL
14676 )
14677
14678 CallType Load (133.1ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
14679 Client Load (155.1ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
14680 Staff Load (120.7ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17223 LIMIT 1
14681 Schedule Exists (121.7ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-10-07' LIMIT 1
14682 SQL (126.9ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17223, '2018-10-07', '2018-05-29 13:29:01', '2018-05-29 13:29:01', 1, 1, 'auto_populate_step', 30093)
14683 VisibleAssignment Load (122.7ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-10-07' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
14684 (118.0ms) COMMIT
14685FLUSHED: nil:nil
14686 (124.9ms) UPDATE buffer_schedules_1913539992
14687 SET staff_id = 17223,
14688 should_be_populated = 0,
14689 should_be_evaluated = 0
14690 WHERE
14691 call_type_id = 10167
14692 AND schedule_on = '2018-10-05'
14693
14694 (122.3ms) delete from buffer_combined_availabilities_1913539992
14695 where linkage_instance_id = 14201839
14696
14697 (119.8ms) UPDATE buffer_rule_calc_schedules_1913539992
14698 SET staff_id = 17223
14699 WHERE call_type_id = 10167
14700 AND schedule_on = '2018-10-05'
14701
14702 (122.9ms) INSERT INTO buffer_rule_calc_schedules_1913539992
14703 SET staff_id = 17223,
14704 call_type_id = 10167,
14705 schedule_on = '2018-10-05',
14706 day_of_week_mask = 32
14707
14708 (124.1ms) /* NegativeLinkRule */
14709 UPDATE buffer_negative_relations_1913539992
14710 SET staff_id = 17223
14711 WHERE affected_by_schedule_id = (
14712 SELECT id
14713 FROM buffer_schedules_1913539992
14714 WHERE schedule_on = '2018-10-05'
14715 AND call_type_id = 10167
14716 )
14717
14718 (117.9ms) /* SpecializationOverlapRule */
14719 update buffer_staff_specializations_1913539992 as st_sp
14720 inner join max_applicable_call_types as mact
14721 on st_sp.specialization_id = mact.specialization_id
14722 and mact.call_type_id = 10167
14723 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
14724 on st_sp.specialization_id = sp_dc.specialization_id
14725 and sp_dc.staff_id is null
14726 and sp_dc.schedule_on = '2018-10-05'
14727 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
14728 on st_sp.specialization_id = sp_dc_2.specialization_id
14729 and st_sp.staff_id = sp_dc_2.staff_id
14730 and sp_dc_2.schedule_on = '2018-10-05'
14731 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
14732 where st_sp.staff_id = 17223
14733 and sp_dc_2.id is null
14734
14735 (123.6ms) insert into buffer_specialization_daily_counts_1913539992 (
14736 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
14737 )
14738 select sp.id as specialization_id,
14739 17223 as staff_id,
14740 '2018-10-05' as schedule_on,
14741 1 as staffs_scheduled,
14742 sp.max_scheduled,
14743 sp_dc.should_be_evaluated
14744 from buffer_staff_specializations_1913539992 as st_sp
14745 inner join specializations as sp
14746 on st_sp.specialization_id = sp.id
14747 inner join max_applicable_call_types as mact
14748 on st_sp.specialization_id = mact.specialization_id
14749 and mact.call_type_id = 10167
14750 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
14751 on st_sp.specialization_id = sp_dc.specialization_id
14752 and sp_dc.staff_id is null
14753 and sp_dc.schedule_on = '2018-10-05'
14754 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
14755 on st_sp.specialization_id = sp_dc_2.specialization_id
14756 and st_sp.staff_id = sp_dc_2.staff_id
14757 and sp_dc_2.schedule_on = '2018-10-05'
14758 where st_sp.staff_id = 17223
14759 and sp_dc_2.id is null
14760
14761 (120.3ms) /* MaxAssignmentsRule */
14762 delete from buffer_linkage_call_type_assignments_1913539992
14763 where linkage_instance_id = 14201839;
14764
14765 (121.5ms) /* MaxAssignmentsRule */
14766 update
14767 buffer_schedules_1913539992 as sc
14768 inner join call_types as ct
14769 on sc.call_type_id = ct.id
14770 and ct.active = 1
14771 inner join buffer_call_type_assignments_1913539992 as cta
14772 on sc.staff_id = cta.staff_id
14773 and sc.call_type_id = cta.call_type_id
14774 and sc.is_weekend = cta.is_weekend
14775 and sc.period_offset = cta.period_offset
14776 and sc.calendar_schedule_id = cta.calendar_schedule_id
14777 set cta.assignments_count = cta.assignments_count + 1
14778 where
14779 sc.schedule_on = '2018-10-05'
14780 and sc.call_type_id = 10167
14781 and sc.staff_id = 17223
14782
14783 (123.8ms) /* UnassignedDaysRule */
14784 delete from buffer_linkage_assigned_days_1913539992
14785 where linkage_instance_id = 14201839
14786
14787 (116.7ms) /* UnassignedDaysRule */
14788 UPDATE buffer_staff_assigned_days_1913539992 as sad
14789 inner join call_types as ct
14790 on ct.id = 10167
14791 and ct.unassigned_day = 0
14792 SET sad.is_assigned = 1
14793 WHERE sad.staff_id = 17223
14794 AND sad.schedule_on = '2018-10-05'
14795
14796 (118.0ms) truncate table buffer_tmp_targets_scheduled_1913539992
14797
14798 (127.9ms) insert into buffer_tmp_targets_scheduled_1913539992 (
14799 block_id,
14800 calendar_schedule_id,
14801 staff_id,
14802 assignment_id,
14803 assignment_type,
14804 day_of_week_mask,
14805 is_weekend,
14806 scheduled,
14807 other_scheduled
14808 )
14809 select
14810 pt.block_id,
14811 pt.calendar_schedule_id,
14812 pt.staff_id,
14813 0 as assignment_id,
14814 '' as assignment_type,
14815 0 as day_of_week_mask,
14816 pt.is_weekend,
14817 case
14818 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
14819 else 0.0
14820 end as scheduled,
14821 case
14822 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
14823 else 0.0
14824 end as other_scheduled
14825 from
14826 buffer_schedules_1913539992 as sc
14827 inner join buffer_counter_increments_1913539992 as ci
14828 on sc.id = ci.schedule_id
14829 and ci.points != 0
14830 inner join assign_staff_types as ast
14831 on sc.staff_id = ast.staff_id
14832 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
14833 inner join staff_types as st
14834 on ast.staff_type_id = st.id
14835 inner join buffer_point_targets_1913539992 as pt
14836 on sc.block_id = pt.block_id
14837 and st.point_hour_schedule_id = pt.calendar_schedule_id
14838 and sc.staff_id = pt.staff_id
14839 and sc.is_weekend = pt.is_weekend
14840 where
14841 sc.schedule_on = '2018-10-05'
14842 and sc.call_type_id = 10167
14843 and sc.staff_id = 17223
14844 order by null
14845
14846 (121.4ms) select 1 from buffer_tmp_targets_scheduled_1913539992
14847
14848 (119.8ms) update
14849 buffer_tmp_targets_scheduled_1913539992 as sch_t
14850 inner join buffer_point_targets_1913539992 as pt
14851 on sch_t.block_id = pt.block_id
14852 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
14853 and sch_t.staff_id = pt.staff_id
14854 and sch_t.is_weekend = pt.is_weekend
14855 set
14856 pt.scheduled = pt.scheduled + sch_t.scheduled,
14857 pt.scheduled_delta = sch_t.scheduled,
14858 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
14859 pt.other_scheduled_delta = sch_t.other_scheduled
14860
14861 (123.0ms) select 1 from buffer_tmp_targets_scheduled_1913539992
14862 where other_scheduled != 0
14863
14864 (127.8ms) update
14865 buffer_current_point_targets_1913539992 as cr_pt
14866 inner join (
14867 select
14868 pt.staff_id,
14869 part_of_week.is_weekend,
14870 td.period_offset,
14871 pt.calendar_schedule_id,
14872 sum(pt.raw_target_delta) as raw_target_delta,
14873 sum(pt.target_delta) as adjusted_target_delta,
14874 sum(pt.scheduled_delta) as scheduled_delta,
14875 sum(pt.other_scheduled_delta) as other_scheduled_delta
14876 from
14877 buffer_tmp_targets_scheduled_1913539992 as sch_t
14878 inner join buffer_target_dates as td
14879 on td.session_id = 1913539992
14880 and sch_t.block_id = td.block_id
14881 and sch_t.calendar_schedule_id = td.calendar_schedule_id
14882 inner join buffer_point_targets_1913539992 as pt
14883 on sch_t.block_id = pt.block_id
14884 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
14885 and (
14886 sch_t.staff_id = pt.staff_id
14887 or sch_t.other_scheduled != 0
14888 )
14889 and sch_t.is_weekend = pt.is_weekend
14890 inner join (
14891 select 0 as is_weekend
14892 union select 1
14893
14894 ) as part_of_week
14895 on sch_t.is_weekend = part_of_week.is_weekend
14896 or part_of_week.is_weekend = -1
14897 group by
14898 pt.staff_id,
14899 part_of_week.is_weekend,
14900 td.period_offset,
14901 pt.calendar_schedule_id
14902 order by null
14903 ) as pt
14904 on cr_pt.staff_id = pt.staff_id
14905 and cr_pt.is_weekend = pt.is_weekend
14906 and cr_pt.period_offset = pt.period_offset
14907 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
14908 set
14909 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
14910 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
14911 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
14912 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
14913
14914 (125.9ms) update
14915 buffer_cumulative_point_targets_1913539992 as cu_pt
14916 inner join (
14917 select
14918 pt.staff_id,
14919 part_of_week.is_weekend,
14920 pt.calendar_schedule_id,
14921 sum(pt.raw_target_delta) as raw_target_delta,
14922 sum(pt.target_delta) as adjusted_target_delta,
14923 sum(pt.scheduled_delta) as scheduled_delta,
14924 sum(pt.other_scheduled_delta) as other_scheduled_delta
14925 from
14926 buffer_tmp_targets_scheduled_1913539992 as sch_t
14927 inner join buffer_target_dates as td
14928 on td.session_id = 1913539992
14929 and sch_t.block_id = td.block_id
14930 and sch_t.calendar_schedule_id = td.calendar_schedule_id
14931 and td.within_cumulative_period = 1
14932 inner join buffer_point_targets_1913539992 as pt
14933 on sch_t.block_id = pt.block_id
14934 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
14935 and (
14936 sch_t.staff_id = pt.staff_id
14937 or sch_t.other_scheduled != 0
14938 )
14939 and sch_t.is_weekend = pt.is_weekend
14940 inner join (
14941 select 0 as is_weekend
14942 union select 1
14943
14944 ) as part_of_week
14945 on sch_t.is_weekend = part_of_week.is_weekend
14946 or part_of_week.is_weekend = -1
14947 group by
14948 pt.staff_id,
14949 part_of_week.is_weekend,
14950 pt.calendar_schedule_id
14951 order by null
14952 ) as pt
14953 on cu_pt.staff_id = pt.staff_id
14954 and cu_pt.is_weekend = pt.is_weekend
14955 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
14956 set
14957 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
14958 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
14959 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
14960 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
14961
14962 (118.9ms) update
14963 buffer_tmp_targets_scheduled_1913539992 as sch_t
14964 inner join buffer_point_targets_1913539992 as pt
14965 on sch_t.block_id = pt.block_id
14966 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
14967 and (
14968 sch_t.staff_id = pt.staff_id
14969 or sch_t.other_scheduled != 0
14970 )
14971 and sch_t.is_weekend = pt.is_weekend
14972 set
14973 pt.raw_target_delta = 0,
14974 pt.target_delta = 0,
14975 pt.scheduled_delta = 0,
14976 pt.other_scheduled_delta = 0
14977
14978 (123.5ms) /* AssignmentLimitsPerPeriod */
14979 /* Unique Key: assignment_limit_id, staff_id, start_date */
14980 insert into buffer_staff_assignments_count_periods_1913539992 (
14981 assignment_limit_id, staff_id, start_date, end_date, assignments_count
14982 )
14983 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
14984 1 as assignments_count
14985 from buffer_schedules_1913539992 as sc
14986 inner join buffer_assignment_limit_call_types_1913539992 as alct
14987 on sc.call_type_id = alct.call_type_id
14988 inner join assignment_limits as al
14989 on alct.assignment_limit_id = al.id
14990 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
14991 and al.max_per_period_limit is not null
14992 inner join assign_staff_types as ast
14993 on sc.staff_id = ast.staff_id
14994 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
14995 inner join buffer_assignment_limit_staff_types_1913539992 as alst
14996 on alct.assignment_limit_id = alst.assignment_limit_id
14997 and ast.staff_type_id = alst.staff_type_id
14998 inner join (
14999 select assignment_limit_id, start_date, end_date
15000 from buffer_linkage_assignments_count_periods_1913539992
15001 group by assignment_limit_id, start_date, end_date
15002 order by null
15003 ) as lac
15004 on alct.assignment_limit_id = lac.assignment_limit_id
15005 and sc.schedule_on between lac.start_date and lac.end_date
15006 where sc.schedule_on = '2018-10-05'
15007 and sc.call_type_id = 10167
15008 and sc.staff_id = 17223
15009 on duplicate key update
15010 assignments_count = assignments_count + 1
15011
15012 (122.1ms) /* AssignmentLimitsPerWeek */
15013 /* Unique Key: assignment_limit_id, staff_id, start_date */
15014 insert into buffer_staff_assignments_count_weeks_1913539992 (
15015 assignment_limit_id, staff_id, start_date, end_date, assignments_count
15016 )
15017 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
15018 1 as assignments_count
15019 from buffer_schedules_1913539992 as sc
15020 inner join buffer_assignment_limit_call_types_1913539992 as alct
15021 on sc.call_type_id = alct.call_type_id
15022 inner join assignment_limits as al
15023 on alct.assignment_limit_id = al.id
15024 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15025 and al.max_weekly_limit is not null
15026 inner join assign_staff_types as ast
15027 on sc.staff_id = ast.staff_id
15028 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15029 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15030 on alct.assignment_limit_id = alst.assignment_limit_id
15031 and ast.staff_type_id = alst.staff_type_id
15032 inner join (
15033 select assignment_limit_id, start_date, end_date
15034 from buffer_linkage_assignments_count_weeks_1913539992
15035 group by assignment_limit_id, start_date, end_date
15036 order by null
15037 ) as lac
15038 on alct.assignment_limit_id = lac.assignment_limit_id
15039 and sc.schedule_on between lac.start_date and lac.end_date
15040 where sc.schedule_on = '2018-10-05'
15041 and sc.call_type_id = 10167
15042 and sc.staff_id = 17223
15043 on duplicate key update
15044 assignments_count = assignments_count + 1
15045
15046 (121.2ms) /* AssignmentLimitsRolling */
15047 /* Unique Key: assignment_limit_id, staff_id, start_date */
15048 insert into buffer_staff_assignments_count_rolling_1913539992 (
15049 assignment_limit_id, staff_id, start_date, end_date, assignments_count
15050 )
15051 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
15052 1 as assignments_count
15053 from buffer_schedules_1913539992 as sc
15054 inner join buffer_assignment_limit_call_types_1913539992 as alct
15055 on sc.call_type_id = alct.call_type_id
15056 inner join assignment_limits as al
15057 on alct.assignment_limit_id = al.id
15058 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15059 and al.max_rolling_period is not null
15060 and al.max_rolling_limit is not null
15061 inner join assign_staff_types as ast
15062 on sc.staff_id = ast.staff_id
15063 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15064 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15065 on alct.assignment_limit_id = alst.assignment_limit_id
15066 and ast.staff_type_id = alst.staff_type_id
15067 inner join (
15068 select assignment_limit_id, start_date, end_date
15069 from buffer_linkage_assignments_count_rolling_1913539992
15070 group by assignment_limit_id, start_date, end_date
15071 order by null
15072 ) as lac
15073 on alct.assignment_limit_id = lac.assignment_limit_id
15074 and sc.schedule_on between lac.start_date and lac.end_date
15075 where sc.schedule_on = '2018-10-05'
15076 and sc.call_type_id = 10167
15077 and sc.staff_id = 17223
15078 on duplicate key update
15079 assignments_count = assignments_count + 1
15080
15081 (125.8ms) /* AssignmentLimitsConsecutive */
15082 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
15083 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
15084 assignment_limit_id, staff_id, schedule_on, start_date, end_date
15085 )
15086 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
15087 from buffer_schedules_1913539992 as sc
15088 inner join buffer_assignment_limit_call_types_1913539992 as alct
15089 on sc.call_type_id = alct.call_type_id
15090 inner join assignment_limits as al
15091 on alct.assignment_limit_id = al.id
15092 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15093 and al.max_consecutive_limit is not null
15094 inner join assign_staff_types as ast
15095 on sc.staff_id = ast.staff_id
15096 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15097 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15098 on alct.assignment_limit_id = alst.assignment_limit_id
15099 and ast.staff_type_id = alst.staff_type_id
15100 inner join (
15101 select assignment_limit_id, start_date, end_date
15102 from buffer_linkage_assignments_count_consecutive_1913539992
15103 group by assignment_limit_id, start_date, end_date
15104 order by null
15105 ) as lac
15106 on alct.assignment_limit_id = lac.assignment_limit_id
15107 and sc.schedule_on between lac.start_date and lac.end_date
15108 where sc.schedule_on = '2018-10-05'
15109 and sc.call_type_id = 10167
15110 and sc.staff_id = 17223
15111
15112 (124.3ms) UPDATE buffer_schedules_1913539992
15113 SET staff_id = 17223,
15114 should_be_populated = 0,
15115 should_be_evaluated = 0
15116 WHERE
15117 call_type_id = 10168
15118 AND schedule_on = '2018-10-06'
15119
15120 (122.3ms) delete from buffer_combined_availabilities_1913539992
15121 where linkage_instance_id = 14201839
15122
15123 (120.9ms) UPDATE buffer_rule_calc_schedules_1913539992
15124 SET staff_id = 17223
15125 WHERE call_type_id = 10168
15126 AND schedule_on = '2018-10-06'
15127
15128 (125.5ms) INSERT INTO buffer_rule_calc_schedules_1913539992
15129 SET staff_id = 17223,
15130 call_type_id = 10168,
15131 schedule_on = '2018-10-06',
15132 day_of_week_mask = 64
15133
15134 (127.8ms) /* NegativeLinkRule */
15135 UPDATE buffer_negative_relations_1913539992
15136 SET staff_id = 17223
15137 WHERE affected_by_schedule_id = (
15138 SELECT id
15139 FROM buffer_schedules_1913539992
15140 WHERE schedule_on = '2018-10-06'
15141 AND call_type_id = 10168
15142 )
15143
15144 (115.6ms) /* SpecializationOverlapRule */
15145 update buffer_staff_specializations_1913539992 as st_sp
15146 inner join max_applicable_call_types as mact
15147 on st_sp.specialization_id = mact.specialization_id
15148 and mact.call_type_id = 10168
15149 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
15150 on st_sp.specialization_id = sp_dc.specialization_id
15151 and sp_dc.staff_id is null
15152 and sp_dc.schedule_on = '2018-10-06'
15153 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
15154 on st_sp.specialization_id = sp_dc_2.specialization_id
15155 and st_sp.staff_id = sp_dc_2.staff_id
15156 and sp_dc_2.schedule_on = '2018-10-06'
15157 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
15158 where st_sp.staff_id = 17223
15159 and sp_dc_2.id is null
15160
15161 (123.0ms) insert into buffer_specialization_daily_counts_1913539992 (
15162 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
15163 )
15164 select sp.id as specialization_id,
15165 17223 as staff_id,
15166 '2018-10-06' as schedule_on,
15167 1 as staffs_scheduled,
15168 sp.max_scheduled,
15169 sp_dc.should_be_evaluated
15170 from buffer_staff_specializations_1913539992 as st_sp
15171 inner join specializations as sp
15172 on st_sp.specialization_id = sp.id
15173 inner join max_applicable_call_types as mact
15174 on st_sp.specialization_id = mact.specialization_id
15175 and mact.call_type_id = 10168
15176 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
15177 on st_sp.specialization_id = sp_dc.specialization_id
15178 and sp_dc.staff_id is null
15179 and sp_dc.schedule_on = '2018-10-06'
15180 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
15181 on st_sp.specialization_id = sp_dc_2.specialization_id
15182 and st_sp.staff_id = sp_dc_2.staff_id
15183 and sp_dc_2.schedule_on = '2018-10-06'
15184 where st_sp.staff_id = 17223
15185 and sp_dc_2.id is null
15186
15187 (124.6ms) /* MaxAssignmentsRule */
15188 delete from buffer_linkage_call_type_assignments_1913539992
15189 where linkage_instance_id = 14201839;
15190
15191 (119.4ms) /* MaxAssignmentsRule */
15192 update
15193 buffer_schedules_1913539992 as sc
15194 inner join call_types as ct
15195 on sc.call_type_id = ct.id
15196 and ct.active = 1
15197 inner join buffer_call_type_assignments_1913539992 as cta
15198 on sc.staff_id = cta.staff_id
15199 and sc.call_type_id = cta.call_type_id
15200 and sc.is_weekend = cta.is_weekend
15201 and sc.period_offset = cta.period_offset
15202 and sc.calendar_schedule_id = cta.calendar_schedule_id
15203 set cta.assignments_count = cta.assignments_count + 1
15204 where
15205 sc.schedule_on = '2018-10-06'
15206 and sc.call_type_id = 10168
15207 and sc.staff_id = 17223
15208
15209 (119.4ms) /* UnassignedDaysRule */
15210 delete from buffer_linkage_assigned_days_1913539992
15211 where linkage_instance_id = 14201839
15212
15213 (125.6ms) /* UnassignedDaysRule */
15214 UPDATE buffer_staff_assigned_days_1913539992 as sad
15215 inner join call_types as ct
15216 on ct.id = 10168
15217 and ct.unassigned_day = 0
15218 SET sad.is_assigned = 1
15219 WHERE sad.staff_id = 17223
15220 AND sad.schedule_on = '2018-10-06'
15221
15222 (120.4ms) truncate table buffer_tmp_targets_scheduled_1913539992
15223
15224 (125.4ms) insert into buffer_tmp_targets_scheduled_1913539992 (
15225 block_id,
15226 calendar_schedule_id,
15227 staff_id,
15228 assignment_id,
15229 assignment_type,
15230 day_of_week_mask,
15231 is_weekend,
15232 scheduled,
15233 other_scheduled
15234 )
15235 select
15236 pt.block_id,
15237 pt.calendar_schedule_id,
15238 pt.staff_id,
15239 0 as assignment_id,
15240 '' as assignment_type,
15241 0 as day_of_week_mask,
15242 pt.is_weekend,
15243 case
15244 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
15245 else 0.0
15246 end as scheduled,
15247 case
15248 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
15249 else 0.0
15250 end as other_scheduled
15251 from
15252 buffer_schedules_1913539992 as sc
15253 inner join buffer_counter_increments_1913539992 as ci
15254 on sc.id = ci.schedule_id
15255 and ci.points != 0
15256 inner join assign_staff_types as ast
15257 on sc.staff_id = ast.staff_id
15258 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
15259 inner join staff_types as st
15260 on ast.staff_type_id = st.id
15261 inner join buffer_point_targets_1913539992 as pt
15262 on sc.block_id = pt.block_id
15263 and st.point_hour_schedule_id = pt.calendar_schedule_id
15264 and sc.staff_id = pt.staff_id
15265 and sc.is_weekend = pt.is_weekend
15266 where
15267 sc.schedule_on = '2018-10-06'
15268 and sc.call_type_id = 10168
15269 and sc.staff_id = 17223
15270 order by null
15271
15272 (123.1ms) select 1 from buffer_tmp_targets_scheduled_1913539992
15273
15274 (118.8ms) update
15275 buffer_tmp_targets_scheduled_1913539992 as sch_t
15276 inner join buffer_point_targets_1913539992 as pt
15277 on sch_t.block_id = pt.block_id
15278 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
15279 and sch_t.staff_id = pt.staff_id
15280 and sch_t.is_weekend = pt.is_weekend
15281 set
15282 pt.scheduled = pt.scheduled + sch_t.scheduled,
15283 pt.scheduled_delta = sch_t.scheduled,
15284 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
15285 pt.other_scheduled_delta = sch_t.other_scheduled
15286
15287 (123.4ms) select 1 from buffer_tmp_targets_scheduled_1913539992
15288 where other_scheduled != 0
15289
15290 (126.2ms) update
15291 buffer_current_point_targets_1913539992 as cr_pt
15292 inner join (
15293 select
15294 pt.staff_id,
15295 part_of_week.is_weekend,
15296 td.period_offset,
15297 pt.calendar_schedule_id,
15298 sum(pt.raw_target_delta) as raw_target_delta,
15299 sum(pt.target_delta) as adjusted_target_delta,
15300 sum(pt.scheduled_delta) as scheduled_delta,
15301 sum(pt.other_scheduled_delta) as other_scheduled_delta
15302 from
15303 buffer_tmp_targets_scheduled_1913539992 as sch_t
15304 inner join buffer_target_dates as td
15305 on td.session_id = 1913539992
15306 and sch_t.block_id = td.block_id
15307 and sch_t.calendar_schedule_id = td.calendar_schedule_id
15308 inner join buffer_point_targets_1913539992 as pt
15309 on sch_t.block_id = pt.block_id
15310 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
15311 and (
15312 sch_t.staff_id = pt.staff_id
15313 or sch_t.other_scheduled != 0
15314 )
15315 and sch_t.is_weekend = pt.is_weekend
15316 inner join (
15317 select 0 as is_weekend
15318 union select 1
15319
15320 ) as part_of_week
15321 on sch_t.is_weekend = part_of_week.is_weekend
15322 or part_of_week.is_weekend = -1
15323 group by
15324 pt.staff_id,
15325 part_of_week.is_weekend,
15326 td.period_offset,
15327 pt.calendar_schedule_id
15328 order by null
15329 ) as pt
15330 on cr_pt.staff_id = pt.staff_id
15331 and cr_pt.is_weekend = pt.is_weekend
15332 and cr_pt.period_offset = pt.period_offset
15333 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
15334 set
15335 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
15336 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
15337 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
15338 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
15339
15340 (124.6ms) update
15341 buffer_cumulative_point_targets_1913539992 as cu_pt
15342 inner join (
15343 select
15344 pt.staff_id,
15345 part_of_week.is_weekend,
15346 pt.calendar_schedule_id,
15347 sum(pt.raw_target_delta) as raw_target_delta,
15348 sum(pt.target_delta) as adjusted_target_delta,
15349 sum(pt.scheduled_delta) as scheduled_delta,
15350 sum(pt.other_scheduled_delta) as other_scheduled_delta
15351 from
15352 buffer_tmp_targets_scheduled_1913539992 as sch_t
15353 inner join buffer_target_dates as td
15354 on td.session_id = 1913539992
15355 and sch_t.block_id = td.block_id
15356 and sch_t.calendar_schedule_id = td.calendar_schedule_id
15357 and td.within_cumulative_period = 1
15358 inner join buffer_point_targets_1913539992 as pt
15359 on sch_t.block_id = pt.block_id
15360 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
15361 and (
15362 sch_t.staff_id = pt.staff_id
15363 or sch_t.other_scheduled != 0
15364 )
15365 and sch_t.is_weekend = pt.is_weekend
15366 inner join (
15367 select 0 as is_weekend
15368 union select 1
15369
15370 ) as part_of_week
15371 on sch_t.is_weekend = part_of_week.is_weekend
15372 or part_of_week.is_weekend = -1
15373 group by
15374 pt.staff_id,
15375 part_of_week.is_weekend,
15376 pt.calendar_schedule_id
15377 order by null
15378 ) as pt
15379 on cu_pt.staff_id = pt.staff_id
15380 and cu_pt.is_weekend = pt.is_weekend
15381 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
15382 set
15383 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
15384 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
15385 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
15386 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
15387
15388 (120.3ms) update
15389 buffer_tmp_targets_scheduled_1913539992 as sch_t
15390 inner join buffer_point_targets_1913539992 as pt
15391 on sch_t.block_id = pt.block_id
15392 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
15393 and (
15394 sch_t.staff_id = pt.staff_id
15395 or sch_t.other_scheduled != 0
15396 )
15397 and sch_t.is_weekend = pt.is_weekend
15398 set
15399 pt.raw_target_delta = 0,
15400 pt.target_delta = 0,
15401 pt.scheduled_delta = 0,
15402 pt.other_scheduled_delta = 0
15403
15404 (131.6ms) /* AssignmentLimitsPerPeriod */
15405 /* Unique Key: assignment_limit_id, staff_id, start_date */
15406 insert into buffer_staff_assignments_count_periods_1913539992 (
15407 assignment_limit_id, staff_id, start_date, end_date, assignments_count
15408 )
15409 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
15410 1 as assignments_count
15411 from buffer_schedules_1913539992 as sc
15412 inner join buffer_assignment_limit_call_types_1913539992 as alct
15413 on sc.call_type_id = alct.call_type_id
15414 inner join assignment_limits as al
15415 on alct.assignment_limit_id = al.id
15416 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15417 and al.max_per_period_limit is not null
15418 inner join assign_staff_types as ast
15419 on sc.staff_id = ast.staff_id
15420 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15421 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15422 on alct.assignment_limit_id = alst.assignment_limit_id
15423 and ast.staff_type_id = alst.staff_type_id
15424 inner join (
15425 select assignment_limit_id, start_date, end_date
15426 from buffer_linkage_assignments_count_periods_1913539992
15427 group by assignment_limit_id, start_date, end_date
15428 order by null
15429 ) as lac
15430 on alct.assignment_limit_id = lac.assignment_limit_id
15431 and sc.schedule_on between lac.start_date and lac.end_date
15432 where sc.schedule_on = '2018-10-06'
15433 and sc.call_type_id = 10168
15434 and sc.staff_id = 17223
15435 on duplicate key update
15436 assignments_count = assignments_count + 1
15437
15438 (124.7ms) /* AssignmentLimitsPerWeek */
15439 /* Unique Key: assignment_limit_id, staff_id, start_date */
15440 insert into buffer_staff_assignments_count_weeks_1913539992 (
15441 assignment_limit_id, staff_id, start_date, end_date, assignments_count
15442 )
15443 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
15444 1 as assignments_count
15445 from buffer_schedules_1913539992 as sc
15446 inner join buffer_assignment_limit_call_types_1913539992 as alct
15447 on sc.call_type_id = alct.call_type_id
15448 inner join assignment_limits as al
15449 on alct.assignment_limit_id = al.id
15450 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15451 and al.max_weekly_limit is not null
15452 inner join assign_staff_types as ast
15453 on sc.staff_id = ast.staff_id
15454 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15455 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15456 on alct.assignment_limit_id = alst.assignment_limit_id
15457 and ast.staff_type_id = alst.staff_type_id
15458 inner join (
15459 select assignment_limit_id, start_date, end_date
15460 from buffer_linkage_assignments_count_weeks_1913539992
15461 group by assignment_limit_id, start_date, end_date
15462 order by null
15463 ) as lac
15464 on alct.assignment_limit_id = lac.assignment_limit_id
15465 and sc.schedule_on between lac.start_date and lac.end_date
15466 where sc.schedule_on = '2018-10-06'
15467 and sc.call_type_id = 10168
15468 and sc.staff_id = 17223
15469 on duplicate key update
15470 assignments_count = assignments_count + 1
15471
15472 (116.5ms) /* AssignmentLimitsRolling */
15473 /* Unique Key: assignment_limit_id, staff_id, start_date */
15474 insert into buffer_staff_assignments_count_rolling_1913539992 (
15475 assignment_limit_id, staff_id, start_date, end_date, assignments_count
15476 )
15477 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
15478 1 as assignments_count
15479 from buffer_schedules_1913539992 as sc
15480 inner join buffer_assignment_limit_call_types_1913539992 as alct
15481 on sc.call_type_id = alct.call_type_id
15482 inner join assignment_limits as al
15483 on alct.assignment_limit_id = al.id
15484 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15485 and al.max_rolling_period is not null
15486 and al.max_rolling_limit is not null
15487 inner join assign_staff_types as ast
15488 on sc.staff_id = ast.staff_id
15489 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15490 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15491 on alct.assignment_limit_id = alst.assignment_limit_id
15492 and ast.staff_type_id = alst.staff_type_id
15493 inner join (
15494 select assignment_limit_id, start_date, end_date
15495 from buffer_linkage_assignments_count_rolling_1913539992
15496 group by assignment_limit_id, start_date, end_date
15497 order by null
15498 ) as lac
15499 on alct.assignment_limit_id = lac.assignment_limit_id
15500 and sc.schedule_on between lac.start_date and lac.end_date
15501 where sc.schedule_on = '2018-10-06'
15502 and sc.call_type_id = 10168
15503 and sc.staff_id = 17223
15504 on duplicate key update
15505 assignments_count = assignments_count + 1
15506
15507 (122.7ms) /* AssignmentLimitsConsecutive */
15508 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
15509 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
15510 assignment_limit_id, staff_id, schedule_on, start_date, end_date
15511 )
15512 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
15513 from buffer_schedules_1913539992 as sc
15514 inner join buffer_assignment_limit_call_types_1913539992 as alct
15515 on sc.call_type_id = alct.call_type_id
15516 inner join assignment_limits as al
15517 on alct.assignment_limit_id = al.id
15518 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15519 and al.max_consecutive_limit is not null
15520 inner join assign_staff_types as ast
15521 on sc.staff_id = ast.staff_id
15522 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15523 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15524 on alct.assignment_limit_id = alst.assignment_limit_id
15525 and ast.staff_type_id = alst.staff_type_id
15526 inner join (
15527 select assignment_limit_id, start_date, end_date
15528 from buffer_linkage_assignments_count_consecutive_1913539992
15529 group by assignment_limit_id, start_date, end_date
15530 order by null
15531 ) as lac
15532 on alct.assignment_limit_id = lac.assignment_limit_id
15533 and sc.schedule_on between lac.start_date and lac.end_date
15534 where sc.schedule_on = '2018-10-06'
15535 and sc.call_type_id = 10168
15536 and sc.staff_id = 17223
15537
15538 (124.4ms) UPDATE buffer_schedules_1913539992
15539 SET staff_id = 17223,
15540 should_be_populated = 0,
15541 should_be_evaluated = 0
15542 WHERE
15543 call_type_id = 10167
15544 AND schedule_on = '2018-10-07'
15545
15546 (127.6ms) delete from buffer_combined_availabilities_1913539992
15547 where linkage_instance_id = 14201839
15548
15549 (118.8ms) UPDATE buffer_rule_calc_schedules_1913539992
15550 SET staff_id = 17223
15551 WHERE call_type_id = 10167
15552 AND schedule_on = '2018-10-07'
15553
15554 (131.5ms) INSERT INTO buffer_rule_calc_schedules_1913539992
15555 SET staff_id = 17223,
15556 call_type_id = 10167,
15557 schedule_on = '2018-10-07',
15558 day_of_week_mask = 1
15559
15560 (127.7ms) /* NegativeLinkRule */
15561 UPDATE buffer_negative_relations_1913539992
15562 SET staff_id = 17223
15563 WHERE affected_by_schedule_id = (
15564 SELECT id
15565 FROM buffer_schedules_1913539992
15566 WHERE schedule_on = '2018-10-07'
15567 AND call_type_id = 10167
15568 )
15569
15570 (127.4ms) /* SpecializationOverlapRule */
15571 update buffer_staff_specializations_1913539992 as st_sp
15572 inner join max_applicable_call_types as mact
15573 on st_sp.specialization_id = mact.specialization_id
15574 and mact.call_type_id = 10167
15575 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
15576 on st_sp.specialization_id = sp_dc.specialization_id
15577 and sp_dc.staff_id is null
15578 and sp_dc.schedule_on = '2018-10-07'
15579 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
15580 on st_sp.specialization_id = sp_dc_2.specialization_id
15581 and st_sp.staff_id = sp_dc_2.staff_id
15582 and sp_dc_2.schedule_on = '2018-10-07'
15583 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
15584 where st_sp.staff_id = 17223
15585 and sp_dc_2.id is null
15586
15587 (124.5ms) insert into buffer_specialization_daily_counts_1913539992 (
15588 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
15589 )
15590 select sp.id as specialization_id,
15591 17223 as staff_id,
15592 '2018-10-07' as schedule_on,
15593 1 as staffs_scheduled,
15594 sp.max_scheduled,
15595 sp_dc.should_be_evaluated
15596 from buffer_staff_specializations_1913539992 as st_sp
15597 inner join specializations as sp
15598 on st_sp.specialization_id = sp.id
15599 inner join max_applicable_call_types as mact
15600 on st_sp.specialization_id = mact.specialization_id
15601 and mact.call_type_id = 10167
15602 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
15603 on st_sp.specialization_id = sp_dc.specialization_id
15604 and sp_dc.staff_id is null
15605 and sp_dc.schedule_on = '2018-10-07'
15606 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
15607 on st_sp.specialization_id = sp_dc_2.specialization_id
15608 and st_sp.staff_id = sp_dc_2.staff_id
15609 and sp_dc_2.schedule_on = '2018-10-07'
15610 where st_sp.staff_id = 17223
15611 and sp_dc_2.id is null
15612
15613 (118.1ms) /* MaxAssignmentsRule */
15614 delete from buffer_linkage_call_type_assignments_1913539992
15615 where linkage_instance_id = 14201839;
15616
15617 (126.1ms) /* MaxAssignmentsRule */
15618 update
15619 buffer_schedules_1913539992 as sc
15620 inner join call_types as ct
15621 on sc.call_type_id = ct.id
15622 and ct.active = 1
15623 inner join buffer_call_type_assignments_1913539992 as cta
15624 on sc.staff_id = cta.staff_id
15625 and sc.call_type_id = cta.call_type_id
15626 and sc.is_weekend = cta.is_weekend
15627 and sc.period_offset = cta.period_offset
15628 and sc.calendar_schedule_id = cta.calendar_schedule_id
15629 set cta.assignments_count = cta.assignments_count + 1
15630 where
15631 sc.schedule_on = '2018-10-07'
15632 and sc.call_type_id = 10167
15633 and sc.staff_id = 17223
15634
15635 (125.2ms) /* UnassignedDaysRule */
15636 delete from buffer_linkage_assigned_days_1913539992
15637 where linkage_instance_id = 14201839
15638
15639 (126.3ms) /* UnassignedDaysRule */
15640 UPDATE buffer_staff_assigned_days_1913539992 as sad
15641 inner join call_types as ct
15642 on ct.id = 10167
15643 and ct.unassigned_day = 0
15644 SET sad.is_assigned = 1
15645 WHERE sad.staff_id = 17223
15646 AND sad.schedule_on = '2018-10-07'
15647
15648 (118.6ms) truncate table buffer_tmp_targets_scheduled_1913539992
15649
15650 (123.3ms) insert into buffer_tmp_targets_scheduled_1913539992 (
15651 block_id,
15652 calendar_schedule_id,
15653 staff_id,
15654 assignment_id,
15655 assignment_type,
15656 day_of_week_mask,
15657 is_weekend,
15658 scheduled,
15659 other_scheduled
15660 )
15661 select
15662 pt.block_id,
15663 pt.calendar_schedule_id,
15664 pt.staff_id,
15665 0 as assignment_id,
15666 '' as assignment_type,
15667 0 as day_of_week_mask,
15668 pt.is_weekend,
15669 case
15670 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
15671 else 0.0
15672 end as scheduled,
15673 case
15674 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
15675 else 0.0
15676 end as other_scheduled
15677 from
15678 buffer_schedules_1913539992 as sc
15679 inner join buffer_counter_increments_1913539992 as ci
15680 on sc.id = ci.schedule_id
15681 and ci.points != 0
15682 inner join assign_staff_types as ast
15683 on sc.staff_id = ast.staff_id
15684 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
15685 inner join staff_types as st
15686 on ast.staff_type_id = st.id
15687 inner join buffer_point_targets_1913539992 as pt
15688 on sc.block_id = pt.block_id
15689 and st.point_hour_schedule_id = pt.calendar_schedule_id
15690 and sc.staff_id = pt.staff_id
15691 and sc.is_weekend = pt.is_weekend
15692 where
15693 sc.schedule_on = '2018-10-07'
15694 and sc.call_type_id = 10167
15695 and sc.staff_id = 17223
15696 order by null
15697
15698 (124.9ms) select 1 from buffer_tmp_targets_scheduled_1913539992
15699
15700 (123.9ms) update
15701 buffer_tmp_targets_scheduled_1913539992 as sch_t
15702 inner join buffer_point_targets_1913539992 as pt
15703 on sch_t.block_id = pt.block_id
15704 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
15705 and sch_t.staff_id = pt.staff_id
15706 and sch_t.is_weekend = pt.is_weekend
15707 set
15708 pt.scheduled = pt.scheduled + sch_t.scheduled,
15709 pt.scheduled_delta = sch_t.scheduled,
15710 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
15711 pt.other_scheduled_delta = sch_t.other_scheduled
15712
15713 (122.5ms) select 1 from buffer_tmp_targets_scheduled_1913539992
15714 where other_scheduled != 0
15715
15716 (127.1ms) update
15717 buffer_current_point_targets_1913539992 as cr_pt
15718 inner join (
15719 select
15720 pt.staff_id,
15721 part_of_week.is_weekend,
15722 td.period_offset,
15723 pt.calendar_schedule_id,
15724 sum(pt.raw_target_delta) as raw_target_delta,
15725 sum(pt.target_delta) as adjusted_target_delta,
15726 sum(pt.scheduled_delta) as scheduled_delta,
15727 sum(pt.other_scheduled_delta) as other_scheduled_delta
15728 from
15729 buffer_tmp_targets_scheduled_1913539992 as sch_t
15730 inner join buffer_target_dates as td
15731 on td.session_id = 1913539992
15732 and sch_t.block_id = td.block_id
15733 and sch_t.calendar_schedule_id = td.calendar_schedule_id
15734 inner join buffer_point_targets_1913539992 as pt
15735 on sch_t.block_id = pt.block_id
15736 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
15737 and (
15738 sch_t.staff_id = pt.staff_id
15739 or sch_t.other_scheduled != 0
15740 )
15741 and sch_t.is_weekend = pt.is_weekend
15742 inner join (
15743 select 0 as is_weekend
15744 union select 1
15745
15746 ) as part_of_week
15747 on sch_t.is_weekend = part_of_week.is_weekend
15748 or part_of_week.is_weekend = -1
15749 group by
15750 pt.staff_id,
15751 part_of_week.is_weekend,
15752 td.period_offset,
15753 pt.calendar_schedule_id
15754 order by null
15755 ) as pt
15756 on cr_pt.staff_id = pt.staff_id
15757 and cr_pt.is_weekend = pt.is_weekend
15758 and cr_pt.period_offset = pt.period_offset
15759 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
15760 set
15761 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
15762 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
15763 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
15764 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
15765
15766 (130.2ms) update
15767 buffer_cumulative_point_targets_1913539992 as cu_pt
15768 inner join (
15769 select
15770 pt.staff_id,
15771 part_of_week.is_weekend,
15772 pt.calendar_schedule_id,
15773 sum(pt.raw_target_delta) as raw_target_delta,
15774 sum(pt.target_delta) as adjusted_target_delta,
15775 sum(pt.scheduled_delta) as scheduled_delta,
15776 sum(pt.other_scheduled_delta) as other_scheduled_delta
15777 from
15778 buffer_tmp_targets_scheduled_1913539992 as sch_t
15779 inner join buffer_target_dates as td
15780 on td.session_id = 1913539992
15781 and sch_t.block_id = td.block_id
15782 and sch_t.calendar_schedule_id = td.calendar_schedule_id
15783 and td.within_cumulative_period = 1
15784 inner join buffer_point_targets_1913539992 as pt
15785 on sch_t.block_id = pt.block_id
15786 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
15787 and (
15788 sch_t.staff_id = pt.staff_id
15789 or sch_t.other_scheduled != 0
15790 )
15791 and sch_t.is_weekend = pt.is_weekend
15792 inner join (
15793 select 0 as is_weekend
15794 union select 1
15795
15796 ) as part_of_week
15797 on sch_t.is_weekend = part_of_week.is_weekend
15798 or part_of_week.is_weekend = -1
15799 group by
15800 pt.staff_id,
15801 part_of_week.is_weekend,
15802 pt.calendar_schedule_id
15803 order by null
15804 ) as pt
15805 on cu_pt.staff_id = pt.staff_id
15806 and cu_pt.is_weekend = pt.is_weekend
15807 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
15808 set
15809 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
15810 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
15811 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
15812 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
15813
15814 (125.4ms) update
15815 buffer_tmp_targets_scheduled_1913539992 as sch_t
15816 inner join buffer_point_targets_1913539992 as pt
15817 on sch_t.block_id = pt.block_id
15818 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
15819 and (
15820 sch_t.staff_id = pt.staff_id
15821 or sch_t.other_scheduled != 0
15822 )
15823 and sch_t.is_weekend = pt.is_weekend
15824 set
15825 pt.raw_target_delta = 0,
15826 pt.target_delta = 0,
15827 pt.scheduled_delta = 0,
15828 pt.other_scheduled_delta = 0
15829
15830 (126.2ms) /* AssignmentLimitsPerPeriod */
15831 /* Unique Key: assignment_limit_id, staff_id, start_date */
15832 insert into buffer_staff_assignments_count_periods_1913539992 (
15833 assignment_limit_id, staff_id, start_date, end_date, assignments_count
15834 )
15835 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
15836 1 as assignments_count
15837 from buffer_schedules_1913539992 as sc
15838 inner join buffer_assignment_limit_call_types_1913539992 as alct
15839 on sc.call_type_id = alct.call_type_id
15840 inner join assignment_limits as al
15841 on alct.assignment_limit_id = al.id
15842 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15843 and al.max_per_period_limit is not null
15844 inner join assign_staff_types as ast
15845 on sc.staff_id = ast.staff_id
15846 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15847 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15848 on alct.assignment_limit_id = alst.assignment_limit_id
15849 and ast.staff_type_id = alst.staff_type_id
15850 inner join (
15851 select assignment_limit_id, start_date, end_date
15852 from buffer_linkage_assignments_count_periods_1913539992
15853 group by assignment_limit_id, start_date, end_date
15854 order by null
15855 ) as lac
15856 on alct.assignment_limit_id = lac.assignment_limit_id
15857 and sc.schedule_on between lac.start_date and lac.end_date
15858 where sc.schedule_on = '2018-10-07'
15859 and sc.call_type_id = 10167
15860 and sc.staff_id = 17223
15861 on duplicate key update
15862 assignments_count = assignments_count + 1
15863
15864 (127.3ms) /* AssignmentLimitsPerWeek */
15865 /* Unique Key: assignment_limit_id, staff_id, start_date */
15866 insert into buffer_staff_assignments_count_weeks_1913539992 (
15867 assignment_limit_id, staff_id, start_date, end_date, assignments_count
15868 )
15869 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
15870 1 as assignments_count
15871 from buffer_schedules_1913539992 as sc
15872 inner join buffer_assignment_limit_call_types_1913539992 as alct
15873 on sc.call_type_id = alct.call_type_id
15874 inner join assignment_limits as al
15875 on alct.assignment_limit_id = al.id
15876 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15877 and al.max_weekly_limit is not null
15878 inner join assign_staff_types as ast
15879 on sc.staff_id = ast.staff_id
15880 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15881 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15882 on alct.assignment_limit_id = alst.assignment_limit_id
15883 and ast.staff_type_id = alst.staff_type_id
15884 inner join (
15885 select assignment_limit_id, start_date, end_date
15886 from buffer_linkage_assignments_count_weeks_1913539992
15887 group by assignment_limit_id, start_date, end_date
15888 order by null
15889 ) as lac
15890 on alct.assignment_limit_id = lac.assignment_limit_id
15891 and sc.schedule_on between lac.start_date and lac.end_date
15892 where sc.schedule_on = '2018-10-07'
15893 and sc.call_type_id = 10167
15894 and sc.staff_id = 17223
15895 on duplicate key update
15896 assignments_count = assignments_count + 1
15897
15898 (134.8ms) /* AssignmentLimitsRolling */
15899 /* Unique Key: assignment_limit_id, staff_id, start_date */
15900 insert into buffer_staff_assignments_count_rolling_1913539992 (
15901 assignment_limit_id, staff_id, start_date, end_date, assignments_count
15902 )
15903 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
15904 1 as assignments_count
15905 from buffer_schedules_1913539992 as sc
15906 inner join buffer_assignment_limit_call_types_1913539992 as alct
15907 on sc.call_type_id = alct.call_type_id
15908 inner join assignment_limits as al
15909 on alct.assignment_limit_id = al.id
15910 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15911 and al.max_rolling_period is not null
15912 and al.max_rolling_limit is not null
15913 inner join assign_staff_types as ast
15914 on sc.staff_id = ast.staff_id
15915 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15916 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15917 on alct.assignment_limit_id = alst.assignment_limit_id
15918 and ast.staff_type_id = alst.staff_type_id
15919 inner join (
15920 select assignment_limit_id, start_date, end_date
15921 from buffer_linkage_assignments_count_rolling_1913539992
15922 group by assignment_limit_id, start_date, end_date
15923 order by null
15924 ) as lac
15925 on alct.assignment_limit_id = lac.assignment_limit_id
15926 and sc.schedule_on between lac.start_date and lac.end_date
15927 where sc.schedule_on = '2018-10-07'
15928 and sc.call_type_id = 10167
15929 and sc.staff_id = 17223
15930 on duplicate key update
15931 assignments_count = assignments_count + 1
15932
15933 (129.3ms) /* AssignmentLimitsConsecutive */
15934 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
15935 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
15936 assignment_limit_id, staff_id, schedule_on, start_date, end_date
15937 )
15938 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
15939 from buffer_schedules_1913539992 as sc
15940 inner join buffer_assignment_limit_call_types_1913539992 as alct
15941 on sc.call_type_id = alct.call_type_id
15942 inner join assignment_limits as al
15943 on alct.assignment_limit_id = al.id
15944 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
15945 and al.max_consecutive_limit is not null
15946 inner join assign_staff_types as ast
15947 on sc.staff_id = ast.staff_id
15948 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
15949 inner join buffer_assignment_limit_staff_types_1913539992 as alst
15950 on alct.assignment_limit_id = alst.assignment_limit_id
15951 and ast.staff_type_id = alst.staff_type_id
15952 inner join (
15953 select assignment_limit_id, start_date, end_date
15954 from buffer_linkage_assignments_count_consecutive_1913539992
15955 group by assignment_limit_id, start_date, end_date
15956 order by null
15957 ) as lac
15958 on alct.assignment_limit_id = lac.assignment_limit_id
15959 and sc.schedule_on between lac.start_date and lac.end_date
15960 where sc.schedule_on = '2018-10-07'
15961 and sc.call_type_id = 10167
15962 and sc.staff_id = 17223
15963
15964 (127.9ms) UPDATE buffer_schedules_1913539992
15965 SET staff_id = 17223,
15966 should_be_populated = 0,
15967 should_be_evaluated = 0
15968 WHERE
15969 call_type_id = 10960
15970 AND schedule_on = '2018-10-08'
15971
15972 (127.2ms) delete from buffer_combined_availabilities_1913539992
15973 where linkage_instance_id = 14201839
15974
15975 (122.8ms) UPDATE buffer_rule_calc_schedules_1913539992
15976 SET staff_id = 17223
15977 WHERE call_type_id = 10960
15978 AND schedule_on = '2018-10-08'
15979
15980 (126.2ms) INSERT INTO buffer_rule_calc_schedules_1913539992
15981 SET staff_id = 17223,
15982 call_type_id = 10960,
15983 schedule_on = '2018-10-08',
15984 day_of_week_mask = 2
15985
15986 (125.1ms) /* NegativeLinkRule */
15987 UPDATE buffer_negative_relations_1913539992
15988 SET staff_id = 17223
15989 WHERE affected_by_schedule_id = (
15990 SELECT id
15991 FROM buffer_schedules_1913539992
15992 WHERE schedule_on = '2018-10-08'
15993 AND call_type_id = 10960
15994 )
15995
15996 (126.2ms) /* SpecializationOverlapRule */
15997 update buffer_staff_specializations_1913539992 as st_sp
15998 inner join max_applicable_call_types as mact
15999 on st_sp.specialization_id = mact.specialization_id
16000 and mact.call_type_id = 10960
16001 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
16002 on st_sp.specialization_id = sp_dc.specialization_id
16003 and sp_dc.staff_id is null
16004 and sp_dc.schedule_on = '2018-10-08'
16005 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
16006 on st_sp.specialization_id = sp_dc_2.specialization_id
16007 and st_sp.staff_id = sp_dc_2.staff_id
16008 and sp_dc_2.schedule_on = '2018-10-08'
16009 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
16010 where st_sp.staff_id = 17223
16011 and sp_dc_2.id is null
16012
16013 (123.3ms) insert into buffer_specialization_daily_counts_1913539992 (
16014 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
16015 )
16016 select sp.id as specialization_id,
16017 17223 as staff_id,
16018 '2018-10-08' as schedule_on,
16019 1 as staffs_scheduled,
16020 sp.max_scheduled,
16021 sp_dc.should_be_evaluated
16022 from buffer_staff_specializations_1913539992 as st_sp
16023 inner join specializations as sp
16024 on st_sp.specialization_id = sp.id
16025 inner join max_applicable_call_types as mact
16026 on st_sp.specialization_id = mact.specialization_id
16027 and mact.call_type_id = 10960
16028 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
16029 on st_sp.specialization_id = sp_dc.specialization_id
16030 and sp_dc.staff_id is null
16031 and sp_dc.schedule_on = '2018-10-08'
16032 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
16033 on st_sp.specialization_id = sp_dc_2.specialization_id
16034 and st_sp.staff_id = sp_dc_2.staff_id
16035 and sp_dc_2.schedule_on = '2018-10-08'
16036 where st_sp.staff_id = 17223
16037 and sp_dc_2.id is null
16038
16039 (121.8ms) /* MaxAssignmentsRule */
16040 delete from buffer_linkage_call_type_assignments_1913539992
16041 where linkage_instance_id = 14201839;
16042
16043 (146.8ms) /* MaxAssignmentsRule */
16044 update
16045 buffer_schedules_1913539992 as sc
16046 inner join call_types as ct
16047 on sc.call_type_id = ct.id
16048 and ct.active = 1
16049 inner join buffer_call_type_assignments_1913539992 as cta
16050 on sc.staff_id = cta.staff_id
16051 and sc.call_type_id = cta.call_type_id
16052 and sc.is_weekend = cta.is_weekend
16053 and sc.period_offset = cta.period_offset
16054 and sc.calendar_schedule_id = cta.calendar_schedule_id
16055 set cta.assignments_count = cta.assignments_count + 1
16056 where
16057 sc.schedule_on = '2018-10-08'
16058 and sc.call_type_id = 10960
16059 and sc.staff_id = 17223
16060
16061 (126.3ms) insert into buffer_call_type_assignments_1913539992 (
16062 staff_id,
16063 call_type_id,
16064 is_weekend,
16065 period_offset,
16066 calendar_schedule_id,
16067 assignments_count
16068 )
16069 select
16070 sc.staff_id,
16071 sc.call_type_id,
16072 sc.is_weekend,
16073 sc.period_offset,
16074 sc.calendar_schedule_id,
16075 1 as assignments_count
16076 from buffer_schedules_1913539992 as sc
16077 where
16078 sc.staff_id = 17223
16079 and sc.schedule_on = '2018-10-08'
16080 and sc.call_type_id = 10960
16081
16082 (123.3ms) /* UnassignedDaysRule */
16083 delete from buffer_linkage_assigned_days_1913539992
16084 where linkage_instance_id = 14201839
16085
16086 (124.7ms) /* UnassignedDaysRule */
16087 UPDATE buffer_staff_assigned_days_1913539992 as sad
16088 inner join call_types as ct
16089 on ct.id = 10960
16090 and ct.unassigned_day = 0
16091 SET sad.is_assigned = 1
16092 WHERE sad.staff_id = 17223
16093 AND sad.schedule_on = '2018-10-08'
16094
16095 (126.3ms) truncate table buffer_tmp_targets_scheduled_1913539992
16096
16097 (118.9ms) insert into buffer_tmp_targets_scheduled_1913539992 (
16098 block_id,
16099 calendar_schedule_id,
16100 staff_id,
16101 assignment_id,
16102 assignment_type,
16103 day_of_week_mask,
16104 is_weekend,
16105 scheduled,
16106 other_scheduled
16107 )
16108 select
16109 pt.block_id,
16110 pt.calendar_schedule_id,
16111 pt.staff_id,
16112 0 as assignment_id,
16113 '' as assignment_type,
16114 0 as day_of_week_mask,
16115 pt.is_weekend,
16116 case
16117 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
16118 else 0.0
16119 end as scheduled,
16120 case
16121 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
16122 else 0.0
16123 end as other_scheduled
16124 from
16125 buffer_schedules_1913539992 as sc
16126 inner join buffer_counter_increments_1913539992 as ci
16127 on sc.id = ci.schedule_id
16128 and ci.points != 0
16129 inner join assign_staff_types as ast
16130 on sc.staff_id = ast.staff_id
16131 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
16132 inner join staff_types as st
16133 on ast.staff_type_id = st.id
16134 inner join buffer_point_targets_1913539992 as pt
16135 on sc.block_id = pt.block_id
16136 and st.point_hour_schedule_id = pt.calendar_schedule_id
16137 and sc.staff_id = pt.staff_id
16138 and sc.is_weekend = pt.is_weekend
16139 where
16140 sc.schedule_on = '2018-10-08'
16141 and sc.call_type_id = 10960
16142 and sc.staff_id = 17223
16143 order by null
16144
16145 (121.8ms) select 1 from buffer_tmp_targets_scheduled_1913539992
16146
16147 (235.0ms) /* AssignmentLimitsPerPeriod */
16148 /* Unique Key: assignment_limit_id, staff_id, start_date */
16149 insert into buffer_staff_assignments_count_periods_1913539992 (
16150 assignment_limit_id, staff_id, start_date, end_date, assignments_count
16151 )
16152 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
16153 1 as assignments_count
16154 from buffer_schedules_1913539992 as sc
16155 inner join buffer_assignment_limit_call_types_1913539992 as alct
16156 on sc.call_type_id = alct.call_type_id
16157 inner join assignment_limits as al
16158 on alct.assignment_limit_id = al.id
16159 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
16160 and al.max_per_period_limit is not null
16161 inner join assign_staff_types as ast
16162 on sc.staff_id = ast.staff_id
16163 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
16164 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16165 on alct.assignment_limit_id = alst.assignment_limit_id
16166 and ast.staff_type_id = alst.staff_type_id
16167 inner join (
16168 select assignment_limit_id, start_date, end_date
16169 from buffer_linkage_assignments_count_periods_1913539992
16170 group by assignment_limit_id, start_date, end_date
16171 order by null
16172 ) as lac
16173 on alct.assignment_limit_id = lac.assignment_limit_id
16174 and sc.schedule_on between lac.start_date and lac.end_date
16175 where sc.schedule_on = '2018-10-08'
16176 and sc.call_type_id = 10960
16177 and sc.staff_id = 17223
16178 on duplicate key update
16179 assignments_count = assignments_count + 1
16180
16181 (127.2ms) /* AssignmentLimitsPerWeek */
16182 /* Unique Key: assignment_limit_id, staff_id, start_date */
16183 insert into buffer_staff_assignments_count_weeks_1913539992 (
16184 assignment_limit_id, staff_id, start_date, end_date, assignments_count
16185 )
16186 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
16187 1 as assignments_count
16188 from buffer_schedules_1913539992 as sc
16189 inner join buffer_assignment_limit_call_types_1913539992 as alct
16190 on sc.call_type_id = alct.call_type_id
16191 inner join assignment_limits as al
16192 on alct.assignment_limit_id = al.id
16193 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
16194 and al.max_weekly_limit is not null
16195 inner join assign_staff_types as ast
16196 on sc.staff_id = ast.staff_id
16197 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
16198 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16199 on alct.assignment_limit_id = alst.assignment_limit_id
16200 and ast.staff_type_id = alst.staff_type_id
16201 inner join (
16202 select assignment_limit_id, start_date, end_date
16203 from buffer_linkage_assignments_count_weeks_1913539992
16204 group by assignment_limit_id, start_date, end_date
16205 order by null
16206 ) as lac
16207 on alct.assignment_limit_id = lac.assignment_limit_id
16208 and sc.schedule_on between lac.start_date and lac.end_date
16209 where sc.schedule_on = '2018-10-08'
16210 and sc.call_type_id = 10960
16211 and sc.staff_id = 17223
16212 on duplicate key update
16213 assignments_count = assignments_count + 1
16214
16215 (242.1ms) /* AssignmentLimitsRolling */
16216 /* Unique Key: assignment_limit_id, staff_id, start_date */
16217 insert into buffer_staff_assignments_count_rolling_1913539992 (
16218 assignment_limit_id, staff_id, start_date, end_date, assignments_count
16219 )
16220 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
16221 1 as assignments_count
16222 from buffer_schedules_1913539992 as sc
16223 inner join buffer_assignment_limit_call_types_1913539992 as alct
16224 on sc.call_type_id = alct.call_type_id
16225 inner join assignment_limits as al
16226 on alct.assignment_limit_id = al.id
16227 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
16228 and al.max_rolling_period is not null
16229 and al.max_rolling_limit is not null
16230 inner join assign_staff_types as ast
16231 on sc.staff_id = ast.staff_id
16232 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
16233 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16234 on alct.assignment_limit_id = alst.assignment_limit_id
16235 and ast.staff_type_id = alst.staff_type_id
16236 inner join (
16237 select assignment_limit_id, start_date, end_date
16238 from buffer_linkage_assignments_count_rolling_1913539992
16239 group by assignment_limit_id, start_date, end_date
16240 order by null
16241 ) as lac
16242 on alct.assignment_limit_id = lac.assignment_limit_id
16243 and sc.schedule_on between lac.start_date and lac.end_date
16244 where sc.schedule_on = '2018-10-08'
16245 and sc.call_type_id = 10960
16246 and sc.staff_id = 17223
16247 on duplicate key update
16248 assignments_count = assignments_count + 1
16249
16250 (141.8ms) /* AssignmentLimitsConsecutive */
16251 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
16252 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
16253 assignment_limit_id, staff_id, schedule_on, start_date, end_date
16254 )
16255 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
16256 from buffer_schedules_1913539992 as sc
16257 inner join buffer_assignment_limit_call_types_1913539992 as alct
16258 on sc.call_type_id = alct.call_type_id
16259 inner join assignment_limits as al
16260 on alct.assignment_limit_id = al.id
16261 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
16262 and al.max_consecutive_limit is not null
16263 inner join assign_staff_types as ast
16264 on sc.staff_id = ast.staff_id
16265 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
16266 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16267 on alct.assignment_limit_id = alst.assignment_limit_id
16268 and ast.staff_type_id = alst.staff_type_id
16269 inner join (
16270 select assignment_limit_id, start_date, end_date
16271 from buffer_linkage_assignments_count_consecutive_1913539992
16272 group by assignment_limit_id, start_date, end_date
16273 order by null
16274 ) as lac
16275 on alct.assignment_limit_id = lac.assignment_limit_id
16276 and sc.schedule_on between lac.start_date and lac.end_date
16277 where sc.schedule_on = '2018-10-08'
16278 and sc.call_type_id = 10960
16279 and sc.staff_id = 17223
16280
16281INFO : (05-29 13:29:13) scheduled for: plan unit: [id:14201839] [2018-10-05 - CHDay], [2018-10-05 - CHCall], [2018-10-06 - CHCall2], [2018-10-07 - CHCall], [2018-10-08 - CHDay 4], Rebecca Cox. DEPTH(5)
16282 (121.8ms) select
16283 coalesce(max(
16284 case
16285 when (ct.max_weekday_assignments > 0) then 1
16286 else 0
16287 end
16288 ), 0) as weekday_flag,
16289 coalesce(max(
16290 case
16291 when (ct.max_weekend_assignments > 0) then 1
16292 else 0
16293 end
16294 ), 0) as weekend_flag
16295 from
16296 buffer_auto_populate_slots_1913539992 as aps
16297 inner join call_types as ct
16298 on aps.call_type_id = ct.id
16299
16300 (130.0ms) delete ca
16301 from buffer_combined_availabilities_1913539992 as ca
16302 inner join (
16303 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
16304 sum(lac.assignments_count) as assignments_count
16305 from (
16306 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
16307 from buffer_combined_availabilities_1913539992 as ca
16308 inner join buffer_schedules_1913539992 as sc
16309 on ca.schedule_id = sc.id
16310 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
16311 order by null
16312 ) as ca_sc
16313 inner join buffer_linkage_assignments_count_weeks_1913539992 as lac
16314 on ca_sc.linkage_instance_id = lac.linkage_instance_id
16315 and ca_sc.schedule_on = lac.schedule_on
16316 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16317 on lac.assignment_limit_id = alst.assignment_limit_id
16318 and ca_sc.staff_type_id = alst.staff_type_id
16319 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
16320 order by null
16321 ) as lac
16322 on ca.linkage_instance_id = lac.linkage_instance_id
16323 and ca.staff_id = lac.staff_id
16324 inner join assignment_limits as al
16325 on lac.assignment_limit_id = al.id
16326 left join buffer_staff_assignments_count_weeks_1913539992 as sac
16327 on lac.assignment_limit_id = sac.assignment_limit_id
16328 and lac.staff_id = sac.staff_id
16329 and lac.start_date = sac.start_date
16330 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_weekly_limit
16331
16332 (124.9ms) delete ca
16333 from buffer_combined_availabilities_1913539992 as ca
16334 inner join (
16335 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
16336 count(distinct if(sac.id is null, lac.schedule_on, null)) as assignments_count
16337 from (
16338 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
16339 from buffer_combined_availabilities_1913539992 as ca
16340 inner join buffer_schedules_1913539992 as sc
16341 on ca.schedule_id = sc.id
16342 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
16343 order by null
16344 ) as ca_sc
16345 inner join buffer_linkage_assignments_count_consecutive_1913539992 as lac
16346 on ca_sc.linkage_instance_id = lac.linkage_instance_id
16347 and ca_sc.schedule_on = lac.schedule_on
16348 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16349 on lac.assignment_limit_id = alst.assignment_limit_id
16350 and ca_sc.staff_type_id = alst.staff_type_id
16351 left join buffer_staff_assignments_count_consecutive_1913539992 as sac
16352 on lac.assignment_limit_id = sac.assignment_limit_id
16353 and ca_sc.staff_id = sac.staff_id
16354 and lac.schedule_on = sac.schedule_on
16355 and lac.start_date = sac.start_date
16356 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
16357 order by null
16358 ) as lac
16359 on ca.linkage_instance_id = lac.linkage_instance_id
16360 and ca.staff_id = lac.staff_id
16361 inner join assignment_limits as al
16362 on lac.assignment_limit_id = al.id
16363 left join (
16364 select assignment_limit_id, staff_id, start_date,
16365 count(schedule_on) as assignments_count
16366 from buffer_staff_assignments_count_consecutive_1913539992
16367 group by assignment_limit_id, staff_id, start_date
16368 ) as sac
16369 on lac.assignment_limit_id = sac.assignment_limit_id
16370 and lac.staff_id = sac.staff_id
16371 and lac.start_date = sac.start_date
16372 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_consecutive_limit
16373
16374 (136.5ms) delete ca
16375 from buffer_combined_availabilities_1913539992 as ca
16376 inner join (
16377 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
16378 sum(lac.assignments_count) as assignments_count
16379 from (
16380 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
16381 from buffer_combined_availabilities_1913539992 as ca
16382 inner join buffer_schedules_1913539992 as sc
16383 on ca.schedule_id = sc.id
16384 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
16385 order by null
16386 ) as ca_sc
16387 inner join buffer_linkage_assignments_count_periods_1913539992 as lac
16388 on ca_sc.linkage_instance_id = lac.linkage_instance_id
16389 and ca_sc.schedule_on = lac.schedule_on
16390 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16391 on lac.assignment_limit_id = alst.assignment_limit_id
16392 and ca_sc.staff_type_id = alst.staff_type_id
16393 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
16394 order by null
16395 ) as lac
16396 on ca.linkage_instance_id = lac.linkage_instance_id
16397 and ca.staff_id = lac.staff_id
16398 inner join assignment_limits as al
16399 on lac.assignment_limit_id = al.id
16400 left join buffer_staff_assignments_count_periods_1913539992 as sac
16401 on lac.assignment_limit_id = sac.assignment_limit_id
16402 and lac.staff_id = sac.staff_id
16403 and lac.start_date = sac.start_date
16404 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_per_period_limit
16405
16406 (126.1ms) delete ca
16407 from buffer_combined_availabilities_1913539992 as ca
16408 inner join (
16409 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
16410 sum(lac.assignments_count) as assignments_count
16411 from (
16412 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
16413 from buffer_combined_availabilities_1913539992 as ca
16414 inner join buffer_schedules_1913539992 as sc
16415 on ca.schedule_id = sc.id
16416 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
16417 order by null
16418 ) as ca_sc
16419 inner join buffer_linkage_assignments_count_rolling_1913539992 as lac
16420 on ca_sc.linkage_instance_id = lac.linkage_instance_id
16421 and ca_sc.schedule_on = lac.schedule_on
16422 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16423 on lac.assignment_limit_id = alst.assignment_limit_id
16424 and ca_sc.staff_type_id = alst.staff_type_id
16425 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
16426 order by null
16427 ) as lac
16428 on ca.linkage_instance_id = lac.linkage_instance_id
16429 and ca.staff_id = lac.staff_id
16430 inner join assignment_limits as al
16431 on lac.assignment_limit_id = al.id
16432 left join buffer_staff_assignments_count_rolling_1913539992 as sac
16433 on lac.assignment_limit_id = sac.assignment_limit_id
16434 and lac.staff_id = sac.staff_id
16435 and lac.start_date = sac.start_date
16436 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_rolling_limit
16437
16438 (130.9ms) /* NegativeLinkRule */
16439 delete ca
16440 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
16441 inner join buffer_negative_relations_1913539992 as nr use index (ix_buffer_negative_relations_composite_1)
16442 on ca.schedule_id = nr.schedule_id
16443 and ca.staff_id = nr.staff_id
16444
16445 (129.1ms) /* SpecializationOverlapRule */
16446 delete ca
16447 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
16448 inner join buffer_schedules_1913539992 as sc
16449 on ca.schedule_id = sc.id
16450 inner join buffer_staff_specializations_1913539992 as ssp
16451 on ca.staff_id = ssp.staff_id
16452 inner join max_applicable_call_types as mact
16453 on ssp.specialization_id = mact.specialization_id
16454 and sc.call_type_id = mact.call_type_id
16455 inner join buffer_specialization_daily_counts_1913539992 as sdc use index (ix_buffer_specialization_daily_counts_composite_1)
16456 on ssp.specialization_id = sdc.specialization_id
16457 and sc.schedule_on = sdc.schedule_on
16458 and sdc.staff_id is null
16459 left join buffer_specialization_daily_counts_1913539992 as sdc_2 use index (ix_buffer_specialization_daily_counts_composite_1)
16460 on ssp.specialization_id = sdc_2.specialization_id
16461 and sc.schedule_on = sdc_2.schedule_on
16462 and ca.staff_id = sdc_2.staff_id
16463 where sdc.should_be_evaluated = 1
16464 and (sdc.staffs_scheduled + if(sdc_2.id is null, 1, 0)) > sdc.max_scheduled
16465
16466 (123.5ms) /* BrokenLinkageRule */
16467 truncate table buffer_combined_availability_linkages_1913539992
16468
16469 (129.6ms) insert into buffer_combined_availability_linkages_1913539992 (
16470 staff_id,
16471 linkage_instance_id,
16472 slots_count,
16473 is_primary,
16474 has_violations
16475 )
16476 select
16477 staff_id,
16478 linkage_instance_id,
16479 count(1) as slots_count,
16480 min(is_primary) as is_primary,
16481 max(has_violations) as has_violations
16482 from buffer_combined_availabilities_1913539992 use index (ix_buffer_combined_availabilities_composite_2)
16483 group by
16484 staff_id,
16485 linkage_instance_id
16486 order by null
16487
16488 (129.8ms) delete ca
16489 from
16490 buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
16491 inner join buffer_schedules_1913539992 as sc
16492 on ca.schedule_id = sc.id
16493 inner join buffer_linkages_1913539992 as l
16494 on sc.linkage_instance_id = l.linkage_instance_id
16495 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
16496 on ca.staff_id = ls_1.staff_id
16497 and sc.linkage_instance_id = ls_1.linkage_instance_id
16498 left join buffer_schedule_linkages_1913539992 as ls_2 use index (ix_buffer_schedule_linkages_composite_1)
16499 on ca.staff_id = ls_2.staff_id
16500 and sc.linkage_instance_id = ls_2.linkage_instance_id
16501 where (ls_1.slots_count + coalesce(ls_2.slots_count, 0)) < l.slots_count_total /* not covering the whole chain */;
16502
16503 (186.4ms) select straight_join
16504 sc.schedule_on,
16505 sc.call_type_id,
16506 count(distinct ca.staff_id) as available_members_count,
16507 group_concat(
16508 distinct concat(if(ls_1.is_primary = 1, 'p', 's'), ca.staff_id)
16509 order by ls_1.is_primary desc, ca.staff_id
16510 separator ', '
16511 ) as available_members_ids,
16512 sc.linkage_instance_id,
16513 l.slots_count_total as linkage_slots_count
16514 from buffer_combined_availabilities_1913539992 as ca
16515 inner join buffer_schedules_1913539992 as sc
16516 on ca.schedule_id = sc.id
16517 inner join buffer_linkages_1913539992 as l
16518 on sc.linkage_instance_id = l.linkage_instance_id
16519 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
16520 on ca.staff_id = ls_1.staff_id
16521 and sc.linkage_instance_id = ls_1.linkage_instance_id
16522 and ls_1.has_violations = 0
16523 where sc.should_be_evaluated = 1
16524 and sc.should_be_populated = 1
16525 group by sc.schedule_on, sc.call_type_id, sc.linkage_instance_id, l.slots_count_total
16526 order by available_members_count, sc.schedule_on, sc.display_order
16527 limit 1
16528
16529 (132.2ms) truncate table buffer_rule_scores_1913539992
16530
16531 (124.8ms) truncate table buffer_rule_calc_filters_1913539992
16532
16533 (119.4ms) insert into buffer_rule_calc_filters_1913539992 (
16534 linkage_instance_id,
16535 staff_id
16536 ) values (14201840, 17182)
16537
16538 (126.1ms) /* CallDaysRule */
16539 insert into buffer_rule_scores_1913539992 (
16540 linkage_instance_id,
16541 schedule_id,
16542 staff_id,
16543 rule_name,
16544 value
16545 )
16546 select
16547 b_schedules.linkage_instance_id,
16548 b_schedules.id as schedule_id,
16549 availabilities.staff_id,
16550 'CallDaysRule' as _rule_name,
16551 (min(abs(datediff(b_schedules.schedule_on, rc_schedules.schedule_on))) div 7) as value
16552 from
16553 buffer_rule_calc_filters_1913539992 as filters
16554 inner join buffer_schedules_1913539992 as b_schedules
16555 on filters.linkage_instance_id = b_schedules.linkage_instance_id
16556 inner join buffer_combined_availabilities_1913539992 as availabilities
16557 on b_schedules.id = availabilities.schedule_id
16558 and filters.staff_id = availabilities.staff_id
16559 left join buffer_rule_calc_schedules_1913539992 as rc_schedules
16560 on availabilities.staff_id = rc_schedules.staff_id
16561 and b_schedules.day_of_week_mask = rc_schedules.day_of_week_mask
16562 group by
16563 b_schedules.linkage_instance_id,
16564 b_schedules.id,
16565 availabilities.staff_id,
16566 _rule_name
16567 order by null
16568
16569 (126.0ms) /* CumulativePointTargetsRule */
16570 insert into buffer_rule_scores_1913539992 (
16571 linkage_instance_id,
16572 schedule_id,
16573 staff_id,
16574 rule_name,
16575 value
16576 )
16577 select
16578 b_schedules.linkage_instance_id,
16579 b_schedules.id as schedule_id,
16580 availabilities.staff_id,
16581 'CumulativePointTargetsRule' as rule_name,
16582 ((b_targets.raw_target - b_targets.scheduled) /
16583 b_targets.raw_target) as value
16584 from
16585 buffer_rule_calc_filters_1913539992 as filters
16586 inner join buffer_schedules_1913539992 as b_schedules
16587 on filters.linkage_instance_id = b_schedules.linkage_instance_id
16588 inner join buffer_combined_availabilities_1913539992 as availabilities
16589 on b_schedules.id = availabilities.schedule_id
16590 and filters.staff_id = availabilities.staff_id
16591 inner join buffer_cumulative_point_targets_1913539992 as b_targets
16592 on availabilities.staff_id = b_targets.staff_id
16593 and b_schedules.is_weekend = b_targets.is_weekend
16594 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
16595 order by null;
16596
16597 (123.8ms) /* CurrentPointTargetsRule */
16598 insert into buffer_rule_scores_1913539992 (
16599 linkage_instance_id,
16600 schedule_id,
16601 staff_id,
16602 rule_name,
16603 value
16604 )
16605 select
16606 b_schedules.linkage_instance_id,
16607 b_schedules.id as schedule_id,
16608 availabilities.staff_id,
16609 'CurrentPointTargetsRule' as rule_name,
16610 ((b_targets.adjusted_target - b_targets.scheduled) / b_targets.adjusted_target) as value
16611 from
16612 buffer_rule_calc_filters_1913539992 as filters
16613 inner join buffer_schedules_1913539992 as b_schedules
16614 on filters.linkage_instance_id = b_schedules.linkage_instance_id
16615 inner join buffer_combined_availabilities_1913539992 as availabilities
16616 on b_schedules.id = availabilities.schedule_id
16617 and filters.staff_id = availabilities.staff_id
16618 inner join buffer_current_point_targets_1913539992 as b_targets
16619 on availabilities.staff_id = b_targets.staff_id
16620 and b_schedules.is_weekend = b_targets.is_weekend
16621 and b_schedules.period_offset = b_targets.period_offset
16622 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
16623 order by null
16624
16625 (123.0ms) truncate table buffer_rule_scores_with_corrections_1913539992
16626
16627 (129.3ms) insert into buffer_rule_scores_with_corrections_1913539992 (
16628 linkage_instance_id, schedule_id, staff_id, rule_name, value
16629 )
16630 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id, rule_scores.rule_name,
16631 ifnull(rule_scores.value, max_values.max_value + 1) as value
16632 from buffer_rule_scores_1913539992 as rule_scores
16633 inner join (
16634 select rule_name, max(value) as max_value
16635 from buffer_rule_scores_1913539992
16636 group by rule_name
16637 order by null
16638 ) as max_values
16639 on rule_scores.rule_name = max_values.rule_name
16640 order by null
16641
16642 (125.1ms) select linkage_instance_id, staff_id, avg(slot_scores) as scores
16643 from (
16644 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id,
16645 sum(
16646 if((total_values.total_value > 0), (rule_scores.value / total_values.total_value), 0) *
16647 rules.weight *
16648 total_values.slots_count
16649 ) as slot_scores
16650 from buffer_rule_scores_with_corrections_1913539992 as rule_scores
16651 inner join (
16652 select rule_name, sum(abs(value)) as total_value,
16653 count(distinct schedule_id) as slots_count
16654 from buffer_rule_scores_with_corrections_1913539992
16655 group by rule_name
16656 order by null
16657 ) as total_values
16658 on rule_scores.rule_name = total_values.rule_name
16659 inner join rules
16660 on rule_scores.rule_name = rules.type
16661 where rules.rule_set_id = 1232
16662 and rules.applied = 1
16663 group by rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id
16664 order by null
16665 ) as staff_scores
16666 group by linkage_instance_id, staff_id
16667 order by round(avg(slot_scores), 5) desc, rand()
16668 limit 1
16669
16670 PublishedBlock Load (120.8ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-10-12' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
16671 PublishedBlockCallType Load (123.6ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
16672 (118.1ms) BEGIN
16673 (125.0ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
16674 FROM call_types AS ct
16675 INNER JOIN calendar_schedules AS cs
16676 ON ct.calendar_schedule_id = cs.id
16677 INNER JOIN blocks AS b
16678 ON b.client_id = ct.client_id
16679 AND b.block_schedule_id = cs.block_schedule_id
16680 AND '2018-10-12' BETWEEN b.start_date AND b.end_date
16681 INNER JOIN published_blocks AS pb
16682 ON pb.client_id = ct.client_id
16683 AND pb.block_id = b.id
16684 AND pb.calendar_schedule_id = cs.id
16685 LEFT JOIN published_block_call_types AS pbct
16686 ON pbct.client_id = ct.client_id
16687 AND pbct.assignment_id = ct.id
16688 AND pbct.assignment_type = 'CallType'
16689 AND pbct.block_id = b.id
16690 AND (
16691 (1 << (DAYOFWEEK('2018-10-12') - 1) & pbct.days_of_week_mask) > 0
16692 )
16693 WHERE ct.id = 10167
16694 AND (
16695 (
16696 pb.assignment_ids IS NULL
16697 AND (1 << (DAYOFWEEK('2018-10-12') - 1) & pb.days_of_week_mask) > 0
16698 )
16699 OR pbct.id IS NOT NULL
16700 )
16701
16702 CallType Load (123.9ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
16703 Client Load (130.2ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
16704 Staff Load (125.7ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17182 LIMIT 1
16705 Schedule Exists (117.5ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-10-12' LIMIT 1
16706 SQL (143.7ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17182, '2018-10-12', '2018-05-29 13:29:17', '2018-05-29 13:29:17', 0, 6, 'auto_populate_step', 30093)
16707 VisibleAssignment Load (115.6ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-10-12' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
16708 (128.1ms) COMMIT
16709FLUSHED: nil:nil
16710 PublishedBlock Load (118.3ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-10-13' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
16711 PublishedBlockCallType Load (124.4ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10168 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
16712 (118.7ms) BEGIN
16713 (126.5ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
16714 FROM call_types AS ct
16715 INNER JOIN calendar_schedules AS cs
16716 ON ct.calendar_schedule_id = cs.id
16717 INNER JOIN blocks AS b
16718 ON b.client_id = ct.client_id
16719 AND b.block_schedule_id = cs.block_schedule_id
16720 AND '2018-10-13' BETWEEN b.start_date AND b.end_date
16721 INNER JOIN published_blocks AS pb
16722 ON pb.client_id = ct.client_id
16723 AND pb.block_id = b.id
16724 AND pb.calendar_schedule_id = cs.id
16725 LEFT JOIN published_block_call_types AS pbct
16726 ON pbct.client_id = ct.client_id
16727 AND pbct.assignment_id = ct.id
16728 AND pbct.assignment_type = 'CallType'
16729 AND pbct.block_id = b.id
16730 AND (
16731 (1 << (DAYOFWEEK('2018-10-13') - 1) & pbct.days_of_week_mask) > 0
16732 )
16733 WHERE ct.id = 10168
16734 AND (
16735 (
16736 pb.assignment_ids IS NULL
16737 AND (1 << (DAYOFWEEK('2018-10-13') - 1) & pb.days_of_week_mask) > 0
16738 )
16739 OR pbct.id IS NOT NULL
16740 )
16741
16742 CallType Load (126.8ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10168 LIMIT 1
16743 Client Load (123.4ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
16744 Staff Load (118.9ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17182 LIMIT 1
16745 Schedule Exists (121.1ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10168 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-10-13' LIMIT 1
16746 SQL (126.8ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10168, 17182, '2018-10-13', '2018-05-29 13:29:19', '2018-05-29 13:29:19', 1, 7, 'auto_populate_step', 30093)
16747 VisibleAssignment Load (124.8ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-10-13' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10168 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
16748 (121.4ms) COMMIT
16749FLUSHED: nil:nil
16750 PublishedBlock Load (121.9ms) SELECT `published_blocks`.* FROM `published_blocks` INNER JOIN `blocks` ON `blocks`.`id` = `published_blocks`.`block_id` WHERE `published_blocks`.`client_id` = 261 AND ('2018-10-14' BETWEEN blocks.start_date AND blocks.end_date) AND `published_blocks`.`calendar_schedule_id` = 1167 ORDER BY `published_blocks`.`id` ASC LIMIT 1
16751 PublishedBlockCallType Load (125.7ms) SELECT `published_block_call_types`.* FROM `published_block_call_types` WHERE `published_block_call_types`.`published_block_id` = 90490 AND `published_block_call_types`.`assignment_type` = 'CallType' AND `published_block_call_types`.`assignment_id` = 10167 ORDER BY `published_block_call_types`.`id` ASC LIMIT 1
16752 (122.4ms) BEGIN
16753 (124.0ms) SELECT COALESCE(pb.updated_at, pbct.updated_at)
16754 FROM call_types AS ct
16755 INNER JOIN calendar_schedules AS cs
16756 ON ct.calendar_schedule_id = cs.id
16757 INNER JOIN blocks AS b
16758 ON b.client_id = ct.client_id
16759 AND b.block_schedule_id = cs.block_schedule_id
16760 AND '2018-10-14' BETWEEN b.start_date AND b.end_date
16761 INNER JOIN published_blocks AS pb
16762 ON pb.client_id = ct.client_id
16763 AND pb.block_id = b.id
16764 AND pb.calendar_schedule_id = cs.id
16765 LEFT JOIN published_block_call_types AS pbct
16766 ON pbct.client_id = ct.client_id
16767 AND pbct.assignment_id = ct.id
16768 AND pbct.assignment_type = 'CallType'
16769 AND pbct.block_id = b.id
16770 AND (
16771 (1 << (DAYOFWEEK('2018-10-14') - 1) & pbct.days_of_week_mask) > 0
16772 )
16773 WHERE ct.id = 10167
16774 AND (
16775 (
16776 pb.assignment_ids IS NULL
16777 AND (1 << (DAYOFWEEK('2018-10-14') - 1) & pb.days_of_week_mask) > 0
16778 )
16779 OR pbct.id IS NOT NULL
16780 )
16781
16782 CallType Load (120.2ms) SELECT `call_types`.* FROM `call_types` WHERE `call_types`.`id` = 10167 LIMIT 1
16783 Client Load (123.0ms) SELECT `clients`.* FROM `clients` WHERE `clients`.`id` = 261 LIMIT 1
16784 Staff Load (124.8ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17182 LIMIT 1
16785 Schedule Exists (121.8ms) SELECT 1 AS one FROM `schedules` WHERE `schedules`.`call_type_id` = 10167 AND `schedules`.`client_id` = 261 AND `schedules`.`schedule_on` = '2018-10-14' LIMIT 1
16786 SQL (121.6ms) INSERT INTO `schedules` (`client_id`, `call_type_id`, `staff_id`, `schedule_on`, `created_at`, `updated_at`, `weekend_on`, `dayofweek_on`, `populate_method`, `creator_id`) VALUES (261, 10167, 17182, '2018-10-14', '2018-05-29 13:29:20', '2018-05-29 13:29:20', 1, 1, 'auto_populate_step', 30093)
16787 VisibleAssignment Load (122.5ms) SELECT `visible_assignments`.* FROM `visible_assignments` WHERE `visible_assignments`.`client_id` = 261 AND `visible_assignments`.`date` = '2018-10-14' AND `visible_assignments`.`assignment_type` = 'CallType' AND `visible_assignments`.`assignment_id` = 10167 ORDER BY `visible_assignments`.`id` ASC LIMIT 1
16788 (126.2ms) COMMIT
16789FLUSHED: nil:nil
16790 (126.1ms) UPDATE buffer_schedules_1913539992
16791 SET staff_id = 17182,
16792 should_be_populated = 0,
16793 should_be_evaluated = 0
16794 WHERE
16795 call_type_id = 10832
16796 AND schedule_on = '2018-10-12'
16797
16798 (120.2ms) delete from buffer_combined_availabilities_1913539992
16799 where linkage_instance_id = 14201840
16800
16801 (121.8ms) UPDATE buffer_rule_calc_schedules_1913539992
16802 SET staff_id = 17182
16803 WHERE call_type_id = 10832
16804 AND schedule_on = '2018-10-12'
16805
16806 (124.2ms) INSERT INTO buffer_rule_calc_schedules_1913539992
16807 SET staff_id = 17182,
16808 call_type_id = 10832,
16809 schedule_on = '2018-10-12',
16810 day_of_week_mask = 32
16811
16812 (121.5ms) /* NegativeLinkRule */
16813 UPDATE buffer_negative_relations_1913539992
16814 SET staff_id = 17182
16815 WHERE affected_by_schedule_id = (
16816 SELECT id
16817 FROM buffer_schedules_1913539992
16818 WHERE schedule_on = '2018-10-12'
16819 AND call_type_id = 10832
16820 )
16821
16822 (123.5ms) /* SpecializationOverlapRule */
16823 update buffer_staff_specializations_1913539992 as st_sp
16824 inner join max_applicable_call_types as mact
16825 on st_sp.specialization_id = mact.specialization_id
16826 and mact.call_type_id = 10832
16827 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
16828 on st_sp.specialization_id = sp_dc.specialization_id
16829 and sp_dc.staff_id is null
16830 and sp_dc.schedule_on = '2018-10-12'
16831 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
16832 on st_sp.specialization_id = sp_dc_2.specialization_id
16833 and st_sp.staff_id = sp_dc_2.staff_id
16834 and sp_dc_2.schedule_on = '2018-10-12'
16835 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
16836 where st_sp.staff_id = 17182
16837 and sp_dc_2.id is null
16838
16839 (122.6ms) insert into buffer_specialization_daily_counts_1913539992 (
16840 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
16841 )
16842 select sp.id as specialization_id,
16843 17182 as staff_id,
16844 '2018-10-12' as schedule_on,
16845 1 as staffs_scheduled,
16846 sp.max_scheduled,
16847 sp_dc.should_be_evaluated
16848 from buffer_staff_specializations_1913539992 as st_sp
16849 inner join specializations as sp
16850 on st_sp.specialization_id = sp.id
16851 inner join max_applicable_call_types as mact
16852 on st_sp.specialization_id = mact.specialization_id
16853 and mact.call_type_id = 10832
16854 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
16855 on st_sp.specialization_id = sp_dc.specialization_id
16856 and sp_dc.staff_id is null
16857 and sp_dc.schedule_on = '2018-10-12'
16858 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
16859 on st_sp.specialization_id = sp_dc_2.specialization_id
16860 and st_sp.staff_id = sp_dc_2.staff_id
16861 and sp_dc_2.schedule_on = '2018-10-12'
16862 where st_sp.staff_id = 17182
16863 and sp_dc_2.id is null
16864
16865 (126.6ms) /* MaxAssignmentsRule */
16866 delete from buffer_linkage_call_type_assignments_1913539992
16867 where linkage_instance_id = 14201840;
16868
16869 (119.2ms) /* MaxAssignmentsRule */
16870 update
16871 buffer_schedules_1913539992 as sc
16872 inner join call_types as ct
16873 on sc.call_type_id = ct.id
16874 and ct.active = 1
16875 inner join buffer_call_type_assignments_1913539992 as cta
16876 on sc.staff_id = cta.staff_id
16877 and sc.call_type_id = cta.call_type_id
16878 and sc.is_weekend = cta.is_weekend
16879 and sc.period_offset = cta.period_offset
16880 and sc.calendar_schedule_id = cta.calendar_schedule_id
16881 set cta.assignments_count = cta.assignments_count + 1
16882 where
16883 sc.schedule_on = '2018-10-12'
16884 and sc.call_type_id = 10832
16885 and sc.staff_id = 17182
16886
16887 (142.5ms) insert into buffer_call_type_assignments_1913539992 (
16888 staff_id,
16889 call_type_id,
16890 is_weekend,
16891 period_offset,
16892 calendar_schedule_id,
16893 assignments_count
16894 )
16895 select
16896 sc.staff_id,
16897 sc.call_type_id,
16898 sc.is_weekend,
16899 sc.period_offset,
16900 sc.calendar_schedule_id,
16901 1 as assignments_count
16902 from buffer_schedules_1913539992 as sc
16903 where
16904 sc.staff_id = 17182
16905 and sc.schedule_on = '2018-10-12'
16906 and sc.call_type_id = 10832
16907
16908 (128.2ms) /* UnassignedDaysRule */
16909 delete from buffer_linkage_assigned_days_1913539992
16910 where linkage_instance_id = 14201840
16911
16912 (124.5ms) /* UnassignedDaysRule */
16913 UPDATE buffer_staff_assigned_days_1913539992 as sad
16914 inner join call_types as ct
16915 on ct.id = 10832
16916 and ct.unassigned_day = 0
16917 SET sad.is_assigned = 1
16918 WHERE sad.staff_id = 17182
16919 AND sad.schedule_on = '2018-10-12'
16920
16921 (124.2ms) truncate table buffer_tmp_targets_scheduled_1913539992
16922
16923 (122.7ms) insert into buffer_tmp_targets_scheduled_1913539992 (
16924 block_id,
16925 calendar_schedule_id,
16926 staff_id,
16927 assignment_id,
16928 assignment_type,
16929 day_of_week_mask,
16930 is_weekend,
16931 scheduled,
16932 other_scheduled
16933 )
16934 select
16935 pt.block_id,
16936 pt.calendar_schedule_id,
16937 pt.staff_id,
16938 0 as assignment_id,
16939 '' as assignment_type,
16940 0 as day_of_week_mask,
16941 pt.is_weekend,
16942 case
16943 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
16944 else 0.0
16945 end as scheduled,
16946 case
16947 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
16948 else 0.0
16949 end as other_scheduled
16950 from
16951 buffer_schedules_1913539992 as sc
16952 inner join buffer_counter_increments_1913539992 as ci
16953 on sc.id = ci.schedule_id
16954 and ci.points != 0
16955 inner join assign_staff_types as ast
16956 on sc.staff_id = ast.staff_id
16957 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
16958 inner join staff_types as st
16959 on ast.staff_type_id = st.id
16960 inner join buffer_point_targets_1913539992 as pt
16961 on sc.block_id = pt.block_id
16962 and st.point_hour_schedule_id = pt.calendar_schedule_id
16963 and sc.staff_id = pt.staff_id
16964 and sc.is_weekend = pt.is_weekend
16965 where
16966 sc.schedule_on = '2018-10-12'
16967 and sc.call_type_id = 10832
16968 and sc.staff_id = 17182
16969 order by null
16970
16971 (118.8ms) select 1 from buffer_tmp_targets_scheduled_1913539992
16972
16973 (124.4ms) /* AssignmentLimitsPerPeriod */
16974 /* Unique Key: assignment_limit_id, staff_id, start_date */
16975 insert into buffer_staff_assignments_count_periods_1913539992 (
16976 assignment_limit_id, staff_id, start_date, end_date, assignments_count
16977 )
16978 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
16979 1 as assignments_count
16980 from buffer_schedules_1913539992 as sc
16981 inner join buffer_assignment_limit_call_types_1913539992 as alct
16982 on sc.call_type_id = alct.call_type_id
16983 inner join assignment_limits as al
16984 on alct.assignment_limit_id = al.id
16985 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
16986 and al.max_per_period_limit is not null
16987 inner join assign_staff_types as ast
16988 on sc.staff_id = ast.staff_id
16989 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
16990 inner join buffer_assignment_limit_staff_types_1913539992 as alst
16991 on alct.assignment_limit_id = alst.assignment_limit_id
16992 and ast.staff_type_id = alst.staff_type_id
16993 inner join (
16994 select assignment_limit_id, start_date, end_date
16995 from buffer_linkage_assignments_count_periods_1913539992
16996 group by assignment_limit_id, start_date, end_date
16997 order by null
16998 ) as lac
16999 on alct.assignment_limit_id = lac.assignment_limit_id
17000 and sc.schedule_on between lac.start_date and lac.end_date
17001 where sc.schedule_on = '2018-10-12'
17002 and sc.call_type_id = 10832
17003 and sc.staff_id = 17182
17004 on duplicate key update
17005 assignments_count = assignments_count + 1
17006
17007 (122.6ms) /* AssignmentLimitsPerWeek */
17008 /* Unique Key: assignment_limit_id, staff_id, start_date */
17009 insert into buffer_staff_assignments_count_weeks_1913539992 (
17010 assignment_limit_id, staff_id, start_date, end_date, assignments_count
17011 )
17012 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
17013 1 as assignments_count
17014 from buffer_schedules_1913539992 as sc
17015 inner join buffer_assignment_limit_call_types_1913539992 as alct
17016 on sc.call_type_id = alct.call_type_id
17017 inner join assignment_limits as al
17018 on alct.assignment_limit_id = al.id
17019 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17020 and al.max_weekly_limit is not null
17021 inner join assign_staff_types as ast
17022 on sc.staff_id = ast.staff_id
17023 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17024 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17025 on alct.assignment_limit_id = alst.assignment_limit_id
17026 and ast.staff_type_id = alst.staff_type_id
17027 inner join (
17028 select assignment_limit_id, start_date, end_date
17029 from buffer_linkage_assignments_count_weeks_1913539992
17030 group by assignment_limit_id, start_date, end_date
17031 order by null
17032 ) as lac
17033 on alct.assignment_limit_id = lac.assignment_limit_id
17034 and sc.schedule_on between lac.start_date and lac.end_date
17035 where sc.schedule_on = '2018-10-12'
17036 and sc.call_type_id = 10832
17037 and sc.staff_id = 17182
17038 on duplicate key update
17039 assignments_count = assignments_count + 1
17040
17041 (119.5ms) /* AssignmentLimitsRolling */
17042 /* Unique Key: assignment_limit_id, staff_id, start_date */
17043 insert into buffer_staff_assignments_count_rolling_1913539992 (
17044 assignment_limit_id, staff_id, start_date, end_date, assignments_count
17045 )
17046 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
17047 1 as assignments_count
17048 from buffer_schedules_1913539992 as sc
17049 inner join buffer_assignment_limit_call_types_1913539992 as alct
17050 on sc.call_type_id = alct.call_type_id
17051 inner join assignment_limits as al
17052 on alct.assignment_limit_id = al.id
17053 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17054 and al.max_rolling_period is not null
17055 and al.max_rolling_limit is not null
17056 inner join assign_staff_types as ast
17057 on sc.staff_id = ast.staff_id
17058 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17059 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17060 on alct.assignment_limit_id = alst.assignment_limit_id
17061 and ast.staff_type_id = alst.staff_type_id
17062 inner join (
17063 select assignment_limit_id, start_date, end_date
17064 from buffer_linkage_assignments_count_rolling_1913539992
17065 group by assignment_limit_id, start_date, end_date
17066 order by null
17067 ) as lac
17068 on alct.assignment_limit_id = lac.assignment_limit_id
17069 and sc.schedule_on between lac.start_date and lac.end_date
17070 where sc.schedule_on = '2018-10-12'
17071 and sc.call_type_id = 10832
17072 and sc.staff_id = 17182
17073 on duplicate key update
17074 assignments_count = assignments_count + 1
17075
17076 (122.1ms) /* AssignmentLimitsConsecutive */
17077 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
17078 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
17079 assignment_limit_id, staff_id, schedule_on, start_date, end_date
17080 )
17081 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
17082 from buffer_schedules_1913539992 as sc
17083 inner join buffer_assignment_limit_call_types_1913539992 as alct
17084 on sc.call_type_id = alct.call_type_id
17085 inner join assignment_limits as al
17086 on alct.assignment_limit_id = al.id
17087 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17088 and al.max_consecutive_limit is not null
17089 inner join assign_staff_types as ast
17090 on sc.staff_id = ast.staff_id
17091 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17092 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17093 on alct.assignment_limit_id = alst.assignment_limit_id
17094 and ast.staff_type_id = alst.staff_type_id
17095 inner join (
17096 select assignment_limit_id, start_date, end_date
17097 from buffer_linkage_assignments_count_consecutive_1913539992
17098 group by assignment_limit_id, start_date, end_date
17099 order by null
17100 ) as lac
17101 on alct.assignment_limit_id = lac.assignment_limit_id
17102 and sc.schedule_on between lac.start_date and lac.end_date
17103 where sc.schedule_on = '2018-10-12'
17104 and sc.call_type_id = 10832
17105 and sc.staff_id = 17182
17106
17107 (124.6ms) UPDATE buffer_schedules_1913539992
17108 SET staff_id = 17182,
17109 should_be_populated = 0,
17110 should_be_evaluated = 0
17111 WHERE
17112 call_type_id = 10167
17113 AND schedule_on = '2018-10-12'
17114
17115 (119.3ms) delete from buffer_combined_availabilities_1913539992
17116 where linkage_instance_id = 14201840
17117
17118 (125.9ms) UPDATE buffer_rule_calc_schedules_1913539992
17119 SET staff_id = 17182
17120 WHERE call_type_id = 10167
17121 AND schedule_on = '2018-10-12'
17122
17123 (122.6ms) INSERT INTO buffer_rule_calc_schedules_1913539992
17124 SET staff_id = 17182,
17125 call_type_id = 10167,
17126 schedule_on = '2018-10-12',
17127 day_of_week_mask = 32
17128
17129 (122.5ms) /* NegativeLinkRule */
17130 UPDATE buffer_negative_relations_1913539992
17131 SET staff_id = 17182
17132 WHERE affected_by_schedule_id = (
17133 SELECT id
17134 FROM buffer_schedules_1913539992
17135 WHERE schedule_on = '2018-10-12'
17136 AND call_type_id = 10167
17137 )
17138
17139 (126.8ms) /* SpecializationOverlapRule */
17140 update buffer_staff_specializations_1913539992 as st_sp
17141 inner join max_applicable_call_types as mact
17142 on st_sp.specialization_id = mact.specialization_id
17143 and mact.call_type_id = 10167
17144 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
17145 on st_sp.specialization_id = sp_dc.specialization_id
17146 and sp_dc.staff_id is null
17147 and sp_dc.schedule_on = '2018-10-12'
17148 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
17149 on st_sp.specialization_id = sp_dc_2.specialization_id
17150 and st_sp.staff_id = sp_dc_2.staff_id
17151 and sp_dc_2.schedule_on = '2018-10-12'
17152 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
17153 where st_sp.staff_id = 17182
17154 and sp_dc_2.id is null
17155
17156 (125.8ms) insert into buffer_specialization_daily_counts_1913539992 (
17157 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
17158 )
17159 select sp.id as specialization_id,
17160 17182 as staff_id,
17161 '2018-10-12' as schedule_on,
17162 1 as staffs_scheduled,
17163 sp.max_scheduled,
17164 sp_dc.should_be_evaluated
17165 from buffer_staff_specializations_1913539992 as st_sp
17166 inner join specializations as sp
17167 on st_sp.specialization_id = sp.id
17168 inner join max_applicable_call_types as mact
17169 on st_sp.specialization_id = mact.specialization_id
17170 and mact.call_type_id = 10167
17171 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
17172 on st_sp.specialization_id = sp_dc.specialization_id
17173 and sp_dc.staff_id is null
17174 and sp_dc.schedule_on = '2018-10-12'
17175 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
17176 on st_sp.specialization_id = sp_dc_2.specialization_id
17177 and st_sp.staff_id = sp_dc_2.staff_id
17178 and sp_dc_2.schedule_on = '2018-10-12'
17179 where st_sp.staff_id = 17182
17180 and sp_dc_2.id is null
17181
17182 (125.0ms) /* MaxAssignmentsRule */
17183 delete from buffer_linkage_call_type_assignments_1913539992
17184 where linkage_instance_id = 14201840;
17185
17186 (127.5ms) /* MaxAssignmentsRule */
17187 update
17188 buffer_schedules_1913539992 as sc
17189 inner join call_types as ct
17190 on sc.call_type_id = ct.id
17191 and ct.active = 1
17192 inner join buffer_call_type_assignments_1913539992 as cta
17193 on sc.staff_id = cta.staff_id
17194 and sc.call_type_id = cta.call_type_id
17195 and sc.is_weekend = cta.is_weekend
17196 and sc.period_offset = cta.period_offset
17197 and sc.calendar_schedule_id = cta.calendar_schedule_id
17198 set cta.assignments_count = cta.assignments_count + 1
17199 where
17200 sc.schedule_on = '2018-10-12'
17201 and sc.call_type_id = 10167
17202 and sc.staff_id = 17182
17203
17204 (120.1ms) insert into buffer_call_type_assignments_1913539992 (
17205 staff_id,
17206 call_type_id,
17207 is_weekend,
17208 period_offset,
17209 calendar_schedule_id,
17210 assignments_count
17211 )
17212 select
17213 sc.staff_id,
17214 sc.call_type_id,
17215 sc.is_weekend,
17216 sc.period_offset,
17217 sc.calendar_schedule_id,
17218 1 as assignments_count
17219 from buffer_schedules_1913539992 as sc
17220 where
17221 sc.staff_id = 17182
17222 and sc.schedule_on = '2018-10-12'
17223 and sc.call_type_id = 10167
17224
17225 (124.4ms) /* UnassignedDaysRule */
17226 delete from buffer_linkage_assigned_days_1913539992
17227 where linkage_instance_id = 14201840
17228
17229 (123.7ms) /* UnassignedDaysRule */
17230 UPDATE buffer_staff_assigned_days_1913539992 as sad
17231 inner join call_types as ct
17232 on ct.id = 10167
17233 and ct.unassigned_day = 0
17234 SET sad.is_assigned = 1
17235 WHERE sad.staff_id = 17182
17236 AND sad.schedule_on = '2018-10-12'
17237
17238 (123.0ms) truncate table buffer_tmp_targets_scheduled_1913539992
17239
17240 (130.8ms) insert into buffer_tmp_targets_scheduled_1913539992 (
17241 block_id,
17242 calendar_schedule_id,
17243 staff_id,
17244 assignment_id,
17245 assignment_type,
17246 day_of_week_mask,
17247 is_weekend,
17248 scheduled,
17249 other_scheduled
17250 )
17251 select
17252 pt.block_id,
17253 pt.calendar_schedule_id,
17254 pt.staff_id,
17255 0 as assignment_id,
17256 '' as assignment_type,
17257 0 as day_of_week_mask,
17258 pt.is_weekend,
17259 case
17260 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
17261 else 0.0
17262 end as scheduled,
17263 case
17264 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
17265 else 0.0
17266 end as other_scheduled
17267 from
17268 buffer_schedules_1913539992 as sc
17269 inner join buffer_counter_increments_1913539992 as ci
17270 on sc.id = ci.schedule_id
17271 and ci.points != 0
17272 inner join assign_staff_types as ast
17273 on sc.staff_id = ast.staff_id
17274 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
17275 inner join staff_types as st
17276 on ast.staff_type_id = st.id
17277 inner join buffer_point_targets_1913539992 as pt
17278 on sc.block_id = pt.block_id
17279 and st.point_hour_schedule_id = pt.calendar_schedule_id
17280 and sc.staff_id = pt.staff_id
17281 and sc.is_weekend = pt.is_weekend
17282 where
17283 sc.schedule_on = '2018-10-12'
17284 and sc.call_type_id = 10167
17285 and sc.staff_id = 17182
17286 order by null
17287
17288 (122.9ms) select 1 from buffer_tmp_targets_scheduled_1913539992
17289
17290 (125.3ms) update
17291 buffer_tmp_targets_scheduled_1913539992 as sch_t
17292 inner join buffer_point_targets_1913539992 as pt
17293 on sch_t.block_id = pt.block_id
17294 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
17295 and sch_t.staff_id = pt.staff_id
17296 and sch_t.is_weekend = pt.is_weekend
17297 set
17298 pt.scheduled = pt.scheduled + sch_t.scheduled,
17299 pt.scheduled_delta = sch_t.scheduled,
17300 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
17301 pt.other_scheduled_delta = sch_t.other_scheduled
17302
17303 (126.5ms) select 1 from buffer_tmp_targets_scheduled_1913539992
17304 where other_scheduled != 0
17305
17306 (126.4ms) update
17307 buffer_current_point_targets_1913539992 as cr_pt
17308 inner join (
17309 select
17310 pt.staff_id,
17311 part_of_week.is_weekend,
17312 td.period_offset,
17313 pt.calendar_schedule_id,
17314 sum(pt.raw_target_delta) as raw_target_delta,
17315 sum(pt.target_delta) as adjusted_target_delta,
17316 sum(pt.scheduled_delta) as scheduled_delta,
17317 sum(pt.other_scheduled_delta) as other_scheduled_delta
17318 from
17319 buffer_tmp_targets_scheduled_1913539992 as sch_t
17320 inner join buffer_target_dates as td
17321 on td.session_id = 1913539992
17322 and sch_t.block_id = td.block_id
17323 and sch_t.calendar_schedule_id = td.calendar_schedule_id
17324 inner join buffer_point_targets_1913539992 as pt
17325 on sch_t.block_id = pt.block_id
17326 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
17327 and (
17328 sch_t.staff_id = pt.staff_id
17329 or sch_t.other_scheduled != 0
17330 )
17331 and sch_t.is_weekend = pt.is_weekend
17332 inner join (
17333 select 0 as is_weekend
17334 union select 1
17335
17336 ) as part_of_week
17337 on sch_t.is_weekend = part_of_week.is_weekend
17338 or part_of_week.is_weekend = -1
17339 group by
17340 pt.staff_id,
17341 part_of_week.is_weekend,
17342 td.period_offset,
17343 pt.calendar_schedule_id
17344 order by null
17345 ) as pt
17346 on cr_pt.staff_id = pt.staff_id
17347 and cr_pt.is_weekend = pt.is_weekend
17348 and cr_pt.period_offset = pt.period_offset
17349 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
17350 set
17351 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
17352 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
17353 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
17354 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
17355
17356 (373.6ms) update
17357 buffer_cumulative_point_targets_1913539992 as cu_pt
17358 inner join (
17359 select
17360 pt.staff_id,
17361 part_of_week.is_weekend,
17362 pt.calendar_schedule_id,
17363 sum(pt.raw_target_delta) as raw_target_delta,
17364 sum(pt.target_delta) as adjusted_target_delta,
17365 sum(pt.scheduled_delta) as scheduled_delta,
17366 sum(pt.other_scheduled_delta) as other_scheduled_delta
17367 from
17368 buffer_tmp_targets_scheduled_1913539992 as sch_t
17369 inner join buffer_target_dates as td
17370 on td.session_id = 1913539992
17371 and sch_t.block_id = td.block_id
17372 and sch_t.calendar_schedule_id = td.calendar_schedule_id
17373 and td.within_cumulative_period = 1
17374 inner join buffer_point_targets_1913539992 as pt
17375 on sch_t.block_id = pt.block_id
17376 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
17377 and (
17378 sch_t.staff_id = pt.staff_id
17379 or sch_t.other_scheduled != 0
17380 )
17381 and sch_t.is_weekend = pt.is_weekend
17382 inner join (
17383 select 0 as is_weekend
17384 union select 1
17385
17386 ) as part_of_week
17387 on sch_t.is_weekend = part_of_week.is_weekend
17388 or part_of_week.is_weekend = -1
17389 group by
17390 pt.staff_id,
17391 part_of_week.is_weekend,
17392 pt.calendar_schedule_id
17393 order by null
17394 ) as pt
17395 on cu_pt.staff_id = pt.staff_id
17396 and cu_pt.is_weekend = pt.is_weekend
17397 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
17398 set
17399 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
17400 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
17401 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
17402 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
17403
17404 (118.4ms) update
17405 buffer_tmp_targets_scheduled_1913539992 as sch_t
17406 inner join buffer_point_targets_1913539992 as pt
17407 on sch_t.block_id = pt.block_id
17408 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
17409 and (
17410 sch_t.staff_id = pt.staff_id
17411 or sch_t.other_scheduled != 0
17412 )
17413 and sch_t.is_weekend = pt.is_weekend
17414 set
17415 pt.raw_target_delta = 0,
17416 pt.target_delta = 0,
17417 pt.scheduled_delta = 0,
17418 pt.other_scheduled_delta = 0
17419
17420 (125.0ms) /* AssignmentLimitsPerPeriod */
17421 /* Unique Key: assignment_limit_id, staff_id, start_date */
17422 insert into buffer_staff_assignments_count_periods_1913539992 (
17423 assignment_limit_id, staff_id, start_date, end_date, assignments_count
17424 )
17425 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
17426 1 as assignments_count
17427 from buffer_schedules_1913539992 as sc
17428 inner join buffer_assignment_limit_call_types_1913539992 as alct
17429 on sc.call_type_id = alct.call_type_id
17430 inner join assignment_limits as al
17431 on alct.assignment_limit_id = al.id
17432 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17433 and al.max_per_period_limit is not null
17434 inner join assign_staff_types as ast
17435 on sc.staff_id = ast.staff_id
17436 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17437 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17438 on alct.assignment_limit_id = alst.assignment_limit_id
17439 and ast.staff_type_id = alst.staff_type_id
17440 inner join (
17441 select assignment_limit_id, start_date, end_date
17442 from buffer_linkage_assignments_count_periods_1913539992
17443 group by assignment_limit_id, start_date, end_date
17444 order by null
17445 ) as lac
17446 on alct.assignment_limit_id = lac.assignment_limit_id
17447 and sc.schedule_on between lac.start_date and lac.end_date
17448 where sc.schedule_on = '2018-10-12'
17449 and sc.call_type_id = 10167
17450 and sc.staff_id = 17182
17451 on duplicate key update
17452 assignments_count = assignments_count + 1
17453
17454 (123.4ms) /* AssignmentLimitsPerWeek */
17455 /* Unique Key: assignment_limit_id, staff_id, start_date */
17456 insert into buffer_staff_assignments_count_weeks_1913539992 (
17457 assignment_limit_id, staff_id, start_date, end_date, assignments_count
17458 )
17459 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
17460 1 as assignments_count
17461 from buffer_schedules_1913539992 as sc
17462 inner join buffer_assignment_limit_call_types_1913539992 as alct
17463 on sc.call_type_id = alct.call_type_id
17464 inner join assignment_limits as al
17465 on alct.assignment_limit_id = al.id
17466 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17467 and al.max_weekly_limit is not null
17468 inner join assign_staff_types as ast
17469 on sc.staff_id = ast.staff_id
17470 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17471 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17472 on alct.assignment_limit_id = alst.assignment_limit_id
17473 and ast.staff_type_id = alst.staff_type_id
17474 inner join (
17475 select assignment_limit_id, start_date, end_date
17476 from buffer_linkage_assignments_count_weeks_1913539992
17477 group by assignment_limit_id, start_date, end_date
17478 order by null
17479 ) as lac
17480 on alct.assignment_limit_id = lac.assignment_limit_id
17481 and sc.schedule_on between lac.start_date and lac.end_date
17482 where sc.schedule_on = '2018-10-12'
17483 and sc.call_type_id = 10167
17484 and sc.staff_id = 17182
17485 on duplicate key update
17486 assignments_count = assignments_count + 1
17487
17488 (116.3ms) /* AssignmentLimitsRolling */
17489 /* Unique Key: assignment_limit_id, staff_id, start_date */
17490 insert into buffer_staff_assignments_count_rolling_1913539992 (
17491 assignment_limit_id, staff_id, start_date, end_date, assignments_count
17492 )
17493 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
17494 1 as assignments_count
17495 from buffer_schedules_1913539992 as sc
17496 inner join buffer_assignment_limit_call_types_1913539992 as alct
17497 on sc.call_type_id = alct.call_type_id
17498 inner join assignment_limits as al
17499 on alct.assignment_limit_id = al.id
17500 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17501 and al.max_rolling_period is not null
17502 and al.max_rolling_limit is not null
17503 inner join assign_staff_types as ast
17504 on sc.staff_id = ast.staff_id
17505 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17506 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17507 on alct.assignment_limit_id = alst.assignment_limit_id
17508 and ast.staff_type_id = alst.staff_type_id
17509 inner join (
17510 select assignment_limit_id, start_date, end_date
17511 from buffer_linkage_assignments_count_rolling_1913539992
17512 group by assignment_limit_id, start_date, end_date
17513 order by null
17514 ) as lac
17515 on alct.assignment_limit_id = lac.assignment_limit_id
17516 and sc.schedule_on between lac.start_date and lac.end_date
17517 where sc.schedule_on = '2018-10-12'
17518 and sc.call_type_id = 10167
17519 and sc.staff_id = 17182
17520 on duplicate key update
17521 assignments_count = assignments_count + 1
17522
17523 (122.5ms) /* AssignmentLimitsConsecutive */
17524 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
17525 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
17526 assignment_limit_id, staff_id, schedule_on, start_date, end_date
17527 )
17528 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
17529 from buffer_schedules_1913539992 as sc
17530 inner join buffer_assignment_limit_call_types_1913539992 as alct
17531 on sc.call_type_id = alct.call_type_id
17532 inner join assignment_limits as al
17533 on alct.assignment_limit_id = al.id
17534 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17535 and al.max_consecutive_limit is not null
17536 inner join assign_staff_types as ast
17537 on sc.staff_id = ast.staff_id
17538 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17539 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17540 on alct.assignment_limit_id = alst.assignment_limit_id
17541 and ast.staff_type_id = alst.staff_type_id
17542 inner join (
17543 select assignment_limit_id, start_date, end_date
17544 from buffer_linkage_assignments_count_consecutive_1913539992
17545 group by assignment_limit_id, start_date, end_date
17546 order by null
17547 ) as lac
17548 on alct.assignment_limit_id = lac.assignment_limit_id
17549 and sc.schedule_on between lac.start_date and lac.end_date
17550 where sc.schedule_on = '2018-10-12'
17551 and sc.call_type_id = 10167
17552 and sc.staff_id = 17182
17553
17554 (125.8ms) UPDATE buffer_schedules_1913539992
17555 SET staff_id = 17182,
17556 should_be_populated = 0,
17557 should_be_evaluated = 0
17558 WHERE
17559 call_type_id = 10168
17560 AND schedule_on = '2018-10-13'
17561
17562 (119.0ms) delete from buffer_combined_availabilities_1913539992
17563 where linkage_instance_id = 14201840
17564
17565 (127.3ms) UPDATE buffer_rule_calc_schedules_1913539992
17566 SET staff_id = 17182
17567 WHERE call_type_id = 10168
17568 AND schedule_on = '2018-10-13'
17569
17570 (125.0ms) INSERT INTO buffer_rule_calc_schedules_1913539992
17571 SET staff_id = 17182,
17572 call_type_id = 10168,
17573 schedule_on = '2018-10-13',
17574 day_of_week_mask = 64
17575
17576 (128.4ms) /* NegativeLinkRule */
17577 UPDATE buffer_negative_relations_1913539992
17578 SET staff_id = 17182
17579 WHERE affected_by_schedule_id = (
17580 SELECT id
17581 FROM buffer_schedules_1913539992
17582 WHERE schedule_on = '2018-10-13'
17583 AND call_type_id = 10168
17584 )
17585
17586 (117.1ms) /* SpecializationOverlapRule */
17587 update buffer_staff_specializations_1913539992 as st_sp
17588 inner join max_applicable_call_types as mact
17589 on st_sp.specialization_id = mact.specialization_id
17590 and mact.call_type_id = 10168
17591 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
17592 on st_sp.specialization_id = sp_dc.specialization_id
17593 and sp_dc.staff_id is null
17594 and sp_dc.schedule_on = '2018-10-13'
17595 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
17596 on st_sp.specialization_id = sp_dc_2.specialization_id
17597 and st_sp.staff_id = sp_dc_2.staff_id
17598 and sp_dc_2.schedule_on = '2018-10-13'
17599 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
17600 where st_sp.staff_id = 17182
17601 and sp_dc_2.id is null
17602
17603 (125.5ms) insert into buffer_specialization_daily_counts_1913539992 (
17604 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
17605 )
17606 select sp.id as specialization_id,
17607 17182 as staff_id,
17608 '2018-10-13' as schedule_on,
17609 1 as staffs_scheduled,
17610 sp.max_scheduled,
17611 sp_dc.should_be_evaluated
17612 from buffer_staff_specializations_1913539992 as st_sp
17613 inner join specializations as sp
17614 on st_sp.specialization_id = sp.id
17615 inner join max_applicable_call_types as mact
17616 on st_sp.specialization_id = mact.specialization_id
17617 and mact.call_type_id = 10168
17618 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
17619 on st_sp.specialization_id = sp_dc.specialization_id
17620 and sp_dc.staff_id is null
17621 and sp_dc.schedule_on = '2018-10-13'
17622 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
17623 on st_sp.specialization_id = sp_dc_2.specialization_id
17624 and st_sp.staff_id = sp_dc_2.staff_id
17625 and sp_dc_2.schedule_on = '2018-10-13'
17626 where st_sp.staff_id = 17182
17627 and sp_dc_2.id is null
17628
17629 (119.2ms) /* MaxAssignmentsRule */
17630 delete from buffer_linkage_call_type_assignments_1913539992
17631 where linkage_instance_id = 14201840;
17632
17633 (120.6ms) /* MaxAssignmentsRule */
17634 update
17635 buffer_schedules_1913539992 as sc
17636 inner join call_types as ct
17637 on sc.call_type_id = ct.id
17638 and ct.active = 1
17639 inner join buffer_call_type_assignments_1913539992 as cta
17640 on sc.staff_id = cta.staff_id
17641 and sc.call_type_id = cta.call_type_id
17642 and sc.is_weekend = cta.is_weekend
17643 and sc.period_offset = cta.period_offset
17644 and sc.calendar_schedule_id = cta.calendar_schedule_id
17645 set cta.assignments_count = cta.assignments_count + 1
17646 where
17647 sc.schedule_on = '2018-10-13'
17648 and sc.call_type_id = 10168
17649 and sc.staff_id = 17182
17650
17651 (124.1ms) insert into buffer_call_type_assignments_1913539992 (
17652 staff_id,
17653 call_type_id,
17654 is_weekend,
17655 period_offset,
17656 calendar_schedule_id,
17657 assignments_count
17658 )
17659 select
17660 sc.staff_id,
17661 sc.call_type_id,
17662 sc.is_weekend,
17663 sc.period_offset,
17664 sc.calendar_schedule_id,
17665 1 as assignments_count
17666 from buffer_schedules_1913539992 as sc
17667 where
17668 sc.staff_id = 17182
17669 and sc.schedule_on = '2018-10-13'
17670 and sc.call_type_id = 10168
17671
17672 (121.5ms) /* UnassignedDaysRule */
17673 delete from buffer_linkage_assigned_days_1913539992
17674 where linkage_instance_id = 14201840
17675
17676 (122.0ms) /* UnassignedDaysRule */
17677 UPDATE buffer_staff_assigned_days_1913539992 as sad
17678 inner join call_types as ct
17679 on ct.id = 10168
17680 and ct.unassigned_day = 0
17681 SET sad.is_assigned = 1
17682 WHERE sad.staff_id = 17182
17683 AND sad.schedule_on = '2018-10-13'
17684
17685 (126.0ms) truncate table buffer_tmp_targets_scheduled_1913539992
17686
17687 (129.5ms) insert into buffer_tmp_targets_scheduled_1913539992 (
17688 block_id,
17689 calendar_schedule_id,
17690 staff_id,
17691 assignment_id,
17692 assignment_type,
17693 day_of_week_mask,
17694 is_weekend,
17695 scheduled,
17696 other_scheduled
17697 )
17698 select
17699 pt.block_id,
17700 pt.calendar_schedule_id,
17701 pt.staff_id,
17702 0 as assignment_id,
17703 '' as assignment_type,
17704 0 as day_of_week_mask,
17705 pt.is_weekend,
17706 case
17707 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
17708 else 0.0
17709 end as scheduled,
17710 case
17711 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
17712 else 0.0
17713 end as other_scheduled
17714 from
17715 buffer_schedules_1913539992 as sc
17716 inner join buffer_counter_increments_1913539992 as ci
17717 on sc.id = ci.schedule_id
17718 and ci.points != 0
17719 inner join assign_staff_types as ast
17720 on sc.staff_id = ast.staff_id
17721 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
17722 inner join staff_types as st
17723 on ast.staff_type_id = st.id
17724 inner join buffer_point_targets_1913539992 as pt
17725 on sc.block_id = pt.block_id
17726 and st.point_hour_schedule_id = pt.calendar_schedule_id
17727 and sc.staff_id = pt.staff_id
17728 and sc.is_weekend = pt.is_weekend
17729 where
17730 sc.schedule_on = '2018-10-13'
17731 and sc.call_type_id = 10168
17732 and sc.staff_id = 17182
17733 order by null
17734
17735 (126.3ms) select 1 from buffer_tmp_targets_scheduled_1913539992
17736
17737 (125.4ms) update
17738 buffer_tmp_targets_scheduled_1913539992 as sch_t
17739 inner join buffer_point_targets_1913539992 as pt
17740 on sch_t.block_id = pt.block_id
17741 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
17742 and sch_t.staff_id = pt.staff_id
17743 and sch_t.is_weekend = pt.is_weekend
17744 set
17745 pt.scheduled = pt.scheduled + sch_t.scheduled,
17746 pt.scheduled_delta = sch_t.scheduled,
17747 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
17748 pt.other_scheduled_delta = sch_t.other_scheduled
17749
17750 (121.3ms) select 1 from buffer_tmp_targets_scheduled_1913539992
17751 where other_scheduled != 0
17752
17753 (125.6ms) update
17754 buffer_current_point_targets_1913539992 as cr_pt
17755 inner join (
17756 select
17757 pt.staff_id,
17758 part_of_week.is_weekend,
17759 td.period_offset,
17760 pt.calendar_schedule_id,
17761 sum(pt.raw_target_delta) as raw_target_delta,
17762 sum(pt.target_delta) as adjusted_target_delta,
17763 sum(pt.scheduled_delta) as scheduled_delta,
17764 sum(pt.other_scheduled_delta) as other_scheduled_delta
17765 from
17766 buffer_tmp_targets_scheduled_1913539992 as sch_t
17767 inner join buffer_target_dates as td
17768 on td.session_id = 1913539992
17769 and sch_t.block_id = td.block_id
17770 and sch_t.calendar_schedule_id = td.calendar_schedule_id
17771 inner join buffer_point_targets_1913539992 as pt
17772 on sch_t.block_id = pt.block_id
17773 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
17774 and (
17775 sch_t.staff_id = pt.staff_id
17776 or sch_t.other_scheduled != 0
17777 )
17778 and sch_t.is_weekend = pt.is_weekend
17779 inner join (
17780 select 0 as is_weekend
17781 union select 1
17782
17783 ) as part_of_week
17784 on sch_t.is_weekend = part_of_week.is_weekend
17785 or part_of_week.is_weekend = -1
17786 group by
17787 pt.staff_id,
17788 part_of_week.is_weekend,
17789 td.period_offset,
17790 pt.calendar_schedule_id
17791 order by null
17792 ) as pt
17793 on cr_pt.staff_id = pt.staff_id
17794 and cr_pt.is_weekend = pt.is_weekend
17795 and cr_pt.period_offset = pt.period_offset
17796 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
17797 set
17798 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
17799 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
17800 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
17801 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
17802
17803 (129.0ms) update
17804 buffer_cumulative_point_targets_1913539992 as cu_pt
17805 inner join (
17806 select
17807 pt.staff_id,
17808 part_of_week.is_weekend,
17809 pt.calendar_schedule_id,
17810 sum(pt.raw_target_delta) as raw_target_delta,
17811 sum(pt.target_delta) as adjusted_target_delta,
17812 sum(pt.scheduled_delta) as scheduled_delta,
17813 sum(pt.other_scheduled_delta) as other_scheduled_delta
17814 from
17815 buffer_tmp_targets_scheduled_1913539992 as sch_t
17816 inner join buffer_target_dates as td
17817 on td.session_id = 1913539992
17818 and sch_t.block_id = td.block_id
17819 and sch_t.calendar_schedule_id = td.calendar_schedule_id
17820 and td.within_cumulative_period = 1
17821 inner join buffer_point_targets_1913539992 as pt
17822 on sch_t.block_id = pt.block_id
17823 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
17824 and (
17825 sch_t.staff_id = pt.staff_id
17826 or sch_t.other_scheduled != 0
17827 )
17828 and sch_t.is_weekend = pt.is_weekend
17829 inner join (
17830 select 0 as is_weekend
17831 union select 1
17832
17833 ) as part_of_week
17834 on sch_t.is_weekend = part_of_week.is_weekend
17835 or part_of_week.is_weekend = -1
17836 group by
17837 pt.staff_id,
17838 part_of_week.is_weekend,
17839 pt.calendar_schedule_id
17840 order by null
17841 ) as pt
17842 on cu_pt.staff_id = pt.staff_id
17843 and cu_pt.is_weekend = pt.is_weekend
17844 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
17845 set
17846 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
17847 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
17848 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
17849 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
17850
17851 (129.2ms) update
17852 buffer_tmp_targets_scheduled_1913539992 as sch_t
17853 inner join buffer_point_targets_1913539992 as pt
17854 on sch_t.block_id = pt.block_id
17855 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
17856 and (
17857 sch_t.staff_id = pt.staff_id
17858 or sch_t.other_scheduled != 0
17859 )
17860 and sch_t.is_weekend = pt.is_weekend
17861 set
17862 pt.raw_target_delta = 0,
17863 pt.target_delta = 0,
17864 pt.scheduled_delta = 0,
17865 pt.other_scheduled_delta = 0
17866
17867 (120.1ms) /* AssignmentLimitsPerPeriod */
17868 /* Unique Key: assignment_limit_id, staff_id, start_date */
17869 insert into buffer_staff_assignments_count_periods_1913539992 (
17870 assignment_limit_id, staff_id, start_date, end_date, assignments_count
17871 )
17872 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
17873 1 as assignments_count
17874 from buffer_schedules_1913539992 as sc
17875 inner join buffer_assignment_limit_call_types_1913539992 as alct
17876 on sc.call_type_id = alct.call_type_id
17877 inner join assignment_limits as al
17878 on alct.assignment_limit_id = al.id
17879 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17880 and al.max_per_period_limit is not null
17881 inner join assign_staff_types as ast
17882 on sc.staff_id = ast.staff_id
17883 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17884 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17885 on alct.assignment_limit_id = alst.assignment_limit_id
17886 and ast.staff_type_id = alst.staff_type_id
17887 inner join (
17888 select assignment_limit_id, start_date, end_date
17889 from buffer_linkage_assignments_count_periods_1913539992
17890 group by assignment_limit_id, start_date, end_date
17891 order by null
17892 ) as lac
17893 on alct.assignment_limit_id = lac.assignment_limit_id
17894 and sc.schedule_on between lac.start_date and lac.end_date
17895 where sc.schedule_on = '2018-10-13'
17896 and sc.call_type_id = 10168
17897 and sc.staff_id = 17182
17898 on duplicate key update
17899 assignments_count = assignments_count + 1
17900
17901 (122.6ms) /* AssignmentLimitsPerWeek */
17902 /* Unique Key: assignment_limit_id, staff_id, start_date */
17903 insert into buffer_staff_assignments_count_weeks_1913539992 (
17904 assignment_limit_id, staff_id, start_date, end_date, assignments_count
17905 )
17906 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
17907 1 as assignments_count
17908 from buffer_schedules_1913539992 as sc
17909 inner join buffer_assignment_limit_call_types_1913539992 as alct
17910 on sc.call_type_id = alct.call_type_id
17911 inner join assignment_limits as al
17912 on alct.assignment_limit_id = al.id
17913 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17914 and al.max_weekly_limit is not null
17915 inner join assign_staff_types as ast
17916 on sc.staff_id = ast.staff_id
17917 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17918 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17919 on alct.assignment_limit_id = alst.assignment_limit_id
17920 and ast.staff_type_id = alst.staff_type_id
17921 inner join (
17922 select assignment_limit_id, start_date, end_date
17923 from buffer_linkage_assignments_count_weeks_1913539992
17924 group by assignment_limit_id, start_date, end_date
17925 order by null
17926 ) as lac
17927 on alct.assignment_limit_id = lac.assignment_limit_id
17928 and sc.schedule_on between lac.start_date and lac.end_date
17929 where sc.schedule_on = '2018-10-13'
17930 and sc.call_type_id = 10168
17931 and sc.staff_id = 17182
17932 on duplicate key update
17933 assignments_count = assignments_count + 1
17934
17935 (126.4ms) /* AssignmentLimitsRolling */
17936 /* Unique Key: assignment_limit_id, staff_id, start_date */
17937 insert into buffer_staff_assignments_count_rolling_1913539992 (
17938 assignment_limit_id, staff_id, start_date, end_date, assignments_count
17939 )
17940 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
17941 1 as assignments_count
17942 from buffer_schedules_1913539992 as sc
17943 inner join buffer_assignment_limit_call_types_1913539992 as alct
17944 on sc.call_type_id = alct.call_type_id
17945 inner join assignment_limits as al
17946 on alct.assignment_limit_id = al.id
17947 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17948 and al.max_rolling_period is not null
17949 and al.max_rolling_limit is not null
17950 inner join assign_staff_types as ast
17951 on sc.staff_id = ast.staff_id
17952 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17953 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17954 on alct.assignment_limit_id = alst.assignment_limit_id
17955 and ast.staff_type_id = alst.staff_type_id
17956 inner join (
17957 select assignment_limit_id, start_date, end_date
17958 from buffer_linkage_assignments_count_rolling_1913539992
17959 group by assignment_limit_id, start_date, end_date
17960 order by null
17961 ) as lac
17962 on alct.assignment_limit_id = lac.assignment_limit_id
17963 and sc.schedule_on between lac.start_date and lac.end_date
17964 where sc.schedule_on = '2018-10-13'
17965 and sc.call_type_id = 10168
17966 and sc.staff_id = 17182
17967 on duplicate key update
17968 assignments_count = assignments_count + 1
17969
17970 (125.5ms) /* AssignmentLimitsConsecutive */
17971 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
17972 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
17973 assignment_limit_id, staff_id, schedule_on, start_date, end_date
17974 )
17975 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
17976 from buffer_schedules_1913539992 as sc
17977 inner join buffer_assignment_limit_call_types_1913539992 as alct
17978 on sc.call_type_id = alct.call_type_id
17979 inner join assignment_limits as al
17980 on alct.assignment_limit_id = al.id
17981 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
17982 and al.max_consecutive_limit is not null
17983 inner join assign_staff_types as ast
17984 on sc.staff_id = ast.staff_id
17985 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
17986 inner join buffer_assignment_limit_staff_types_1913539992 as alst
17987 on alct.assignment_limit_id = alst.assignment_limit_id
17988 and ast.staff_type_id = alst.staff_type_id
17989 inner join (
17990 select assignment_limit_id, start_date, end_date
17991 from buffer_linkage_assignments_count_consecutive_1913539992
17992 group by assignment_limit_id, start_date, end_date
17993 order by null
17994 ) as lac
17995 on alct.assignment_limit_id = lac.assignment_limit_id
17996 and sc.schedule_on between lac.start_date and lac.end_date
17997 where sc.schedule_on = '2018-10-13'
17998 and sc.call_type_id = 10168
17999 and sc.staff_id = 17182
18000
18001 (119.4ms) UPDATE buffer_schedules_1913539992
18002 SET staff_id = 17182,
18003 should_be_populated = 0,
18004 should_be_evaluated = 0
18005 WHERE
18006 call_type_id = 10167
18007 AND schedule_on = '2018-10-14'
18008
18009 (126.5ms) delete from buffer_combined_availabilities_1913539992
18010 where linkage_instance_id = 14201840
18011
18012 (126.3ms) UPDATE buffer_rule_calc_schedules_1913539992
18013 SET staff_id = 17182
18014 WHERE call_type_id = 10167
18015 AND schedule_on = '2018-10-14'
18016
18017 (132.4ms) INSERT INTO buffer_rule_calc_schedules_1913539992
18018 SET staff_id = 17182,
18019 call_type_id = 10167,
18020 schedule_on = '2018-10-14',
18021 day_of_week_mask = 1
18022
18023 (130.0ms) /* NegativeLinkRule */
18024 UPDATE buffer_negative_relations_1913539992
18025 SET staff_id = 17182
18026 WHERE affected_by_schedule_id = (
18027 SELECT id
18028 FROM buffer_schedules_1913539992
18029 WHERE schedule_on = '2018-10-14'
18030 AND call_type_id = 10167
18031 )
18032
18033 (116.3ms) /* SpecializationOverlapRule */
18034 update buffer_staff_specializations_1913539992 as st_sp
18035 inner join max_applicable_call_types as mact
18036 on st_sp.specialization_id = mact.specialization_id
18037 and mact.call_type_id = 10167
18038 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
18039 on st_sp.specialization_id = sp_dc.specialization_id
18040 and sp_dc.staff_id is null
18041 and sp_dc.schedule_on = '2018-10-14'
18042 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
18043 on st_sp.specialization_id = sp_dc_2.specialization_id
18044 and st_sp.staff_id = sp_dc_2.staff_id
18045 and sp_dc_2.schedule_on = '2018-10-14'
18046 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
18047 where st_sp.staff_id = 17182
18048 and sp_dc_2.id is null
18049
18050 (122.4ms) insert into buffer_specialization_daily_counts_1913539992 (
18051 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
18052 )
18053 select sp.id as specialization_id,
18054 17182 as staff_id,
18055 '2018-10-14' as schedule_on,
18056 1 as staffs_scheduled,
18057 sp.max_scheduled,
18058 sp_dc.should_be_evaluated
18059 from buffer_staff_specializations_1913539992 as st_sp
18060 inner join specializations as sp
18061 on st_sp.specialization_id = sp.id
18062 inner join max_applicable_call_types as mact
18063 on st_sp.specialization_id = mact.specialization_id
18064 and mact.call_type_id = 10167
18065 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
18066 on st_sp.specialization_id = sp_dc.specialization_id
18067 and sp_dc.staff_id is null
18068 and sp_dc.schedule_on = '2018-10-14'
18069 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
18070 on st_sp.specialization_id = sp_dc_2.specialization_id
18071 and st_sp.staff_id = sp_dc_2.staff_id
18072 and sp_dc_2.schedule_on = '2018-10-14'
18073 where st_sp.staff_id = 17182
18074 and sp_dc_2.id is null
18075
18076 (124.6ms) /* MaxAssignmentsRule */
18077 delete from buffer_linkage_call_type_assignments_1913539992
18078 where linkage_instance_id = 14201840;
18079
18080 (118.8ms) /* MaxAssignmentsRule */
18081 update
18082 buffer_schedules_1913539992 as sc
18083 inner join call_types as ct
18084 on sc.call_type_id = ct.id
18085 and ct.active = 1
18086 inner join buffer_call_type_assignments_1913539992 as cta
18087 on sc.staff_id = cta.staff_id
18088 and sc.call_type_id = cta.call_type_id
18089 and sc.is_weekend = cta.is_weekend
18090 and sc.period_offset = cta.period_offset
18091 and sc.calendar_schedule_id = cta.calendar_schedule_id
18092 set cta.assignments_count = cta.assignments_count + 1
18093 where
18094 sc.schedule_on = '2018-10-14'
18095 and sc.call_type_id = 10167
18096 and sc.staff_id = 17182
18097
18098 (124.5ms) insert into buffer_call_type_assignments_1913539992 (
18099 staff_id,
18100 call_type_id,
18101 is_weekend,
18102 period_offset,
18103 calendar_schedule_id,
18104 assignments_count
18105 )
18106 select
18107 sc.staff_id,
18108 sc.call_type_id,
18109 sc.is_weekend,
18110 sc.period_offset,
18111 sc.calendar_schedule_id,
18112 1 as assignments_count
18113 from buffer_schedules_1913539992 as sc
18114 where
18115 sc.staff_id = 17182
18116 and sc.schedule_on = '2018-10-14'
18117 and sc.call_type_id = 10167
18118
18119 (122.3ms) /* UnassignedDaysRule */
18120 delete from buffer_linkage_assigned_days_1913539992
18121 where linkage_instance_id = 14201840
18122
18123 (126.2ms) /* UnassignedDaysRule */
18124 UPDATE buffer_staff_assigned_days_1913539992 as sad
18125 inner join call_types as ct
18126 on ct.id = 10167
18127 and ct.unassigned_day = 0
18128 SET sad.is_assigned = 1
18129 WHERE sad.staff_id = 17182
18130 AND sad.schedule_on = '2018-10-14'
18131
18132 (124.2ms) truncate table buffer_tmp_targets_scheduled_1913539992
18133
18134 (120.2ms) insert into buffer_tmp_targets_scheduled_1913539992 (
18135 block_id,
18136 calendar_schedule_id,
18137 staff_id,
18138 assignment_id,
18139 assignment_type,
18140 day_of_week_mask,
18141 is_weekend,
18142 scheduled,
18143 other_scheduled
18144 )
18145 select
18146 pt.block_id,
18147 pt.calendar_schedule_id,
18148 pt.staff_id,
18149 0 as assignment_id,
18150 '' as assignment_type,
18151 0 as day_of_week_mask,
18152 pt.is_weekend,
18153 case
18154 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
18155 else 0.0
18156 end as scheduled,
18157 case
18158 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
18159 else 0.0
18160 end as other_scheduled
18161 from
18162 buffer_schedules_1913539992 as sc
18163 inner join buffer_counter_increments_1913539992 as ci
18164 on sc.id = ci.schedule_id
18165 and ci.points != 0
18166 inner join assign_staff_types as ast
18167 on sc.staff_id = ast.staff_id
18168 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
18169 inner join staff_types as st
18170 on ast.staff_type_id = st.id
18171 inner join buffer_point_targets_1913539992 as pt
18172 on sc.block_id = pt.block_id
18173 and st.point_hour_schedule_id = pt.calendar_schedule_id
18174 and sc.staff_id = pt.staff_id
18175 and sc.is_weekend = pt.is_weekend
18176 where
18177 sc.schedule_on = '2018-10-14'
18178 and sc.call_type_id = 10167
18179 and sc.staff_id = 17182
18180 order by null
18181
18182 (117.7ms) select 1 from buffer_tmp_targets_scheduled_1913539992
18183
18184 (125.9ms) update
18185 buffer_tmp_targets_scheduled_1913539992 as sch_t
18186 inner join buffer_point_targets_1913539992 as pt
18187 on sch_t.block_id = pt.block_id
18188 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
18189 and sch_t.staff_id = pt.staff_id
18190 and sch_t.is_weekend = pt.is_weekend
18191 set
18192 pt.scheduled = pt.scheduled + sch_t.scheduled,
18193 pt.scheduled_delta = sch_t.scheduled,
18194 pt.other_scheduled = pt.other_scheduled + sch_t.other_scheduled,
18195 pt.other_scheduled_delta = sch_t.other_scheduled
18196
18197 (123.9ms) select 1 from buffer_tmp_targets_scheduled_1913539992
18198 where other_scheduled != 0
18199
18200 (242.6ms) update
18201 buffer_current_point_targets_1913539992 as cr_pt
18202 inner join (
18203 select
18204 pt.staff_id,
18205 part_of_week.is_weekend,
18206 td.period_offset,
18207 pt.calendar_schedule_id,
18208 sum(pt.raw_target_delta) as raw_target_delta,
18209 sum(pt.target_delta) as adjusted_target_delta,
18210 sum(pt.scheduled_delta) as scheduled_delta,
18211 sum(pt.other_scheduled_delta) as other_scheduled_delta
18212 from
18213 buffer_tmp_targets_scheduled_1913539992 as sch_t
18214 inner join buffer_target_dates as td
18215 on td.session_id = 1913539992
18216 and sch_t.block_id = td.block_id
18217 and sch_t.calendar_schedule_id = td.calendar_schedule_id
18218 inner join buffer_point_targets_1913539992 as pt
18219 on sch_t.block_id = pt.block_id
18220 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
18221 and (
18222 sch_t.staff_id = pt.staff_id
18223 or sch_t.other_scheduled != 0
18224 )
18225 and sch_t.is_weekend = pt.is_weekend
18226 inner join (
18227 select 0 as is_weekend
18228 union select 1
18229
18230 ) as part_of_week
18231 on sch_t.is_weekend = part_of_week.is_weekend
18232 or part_of_week.is_weekend = -1
18233 group by
18234 pt.staff_id,
18235 part_of_week.is_weekend,
18236 td.period_offset,
18237 pt.calendar_schedule_id
18238 order by null
18239 ) as pt
18240 on cr_pt.staff_id = pt.staff_id
18241 and cr_pt.is_weekend = pt.is_weekend
18242 and cr_pt.period_offset = pt.period_offset
18243 and cr_pt.calendar_schedule_id = pt.calendar_schedule_id
18244 set
18245 cr_pt.raw_target = cr_pt.raw_target + pt.raw_target_delta,
18246 cr_pt.adjusted_target = cr_pt.adjusted_target + pt.adjusted_target_delta,
18247 cr_pt.scheduled = cr_pt.scheduled + pt.scheduled_delta,
18248 cr_pt.other_scheduled = cr_pt.other_scheduled + pt.other_scheduled_delta
18249
18250 (234.5ms) update
18251 buffer_cumulative_point_targets_1913539992 as cu_pt
18252 inner join (
18253 select
18254 pt.staff_id,
18255 part_of_week.is_weekend,
18256 pt.calendar_schedule_id,
18257 sum(pt.raw_target_delta) as raw_target_delta,
18258 sum(pt.target_delta) as adjusted_target_delta,
18259 sum(pt.scheduled_delta) as scheduled_delta,
18260 sum(pt.other_scheduled_delta) as other_scheduled_delta
18261 from
18262 buffer_tmp_targets_scheduled_1913539992 as sch_t
18263 inner join buffer_target_dates as td
18264 on td.session_id = 1913539992
18265 and sch_t.block_id = td.block_id
18266 and sch_t.calendar_schedule_id = td.calendar_schedule_id
18267 and td.within_cumulative_period = 1
18268 inner join buffer_point_targets_1913539992 as pt
18269 on sch_t.block_id = pt.block_id
18270 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
18271 and (
18272 sch_t.staff_id = pt.staff_id
18273 or sch_t.other_scheduled != 0
18274 )
18275 and sch_t.is_weekend = pt.is_weekend
18276 inner join (
18277 select 0 as is_weekend
18278 union select 1
18279
18280 ) as part_of_week
18281 on sch_t.is_weekend = part_of_week.is_weekend
18282 or part_of_week.is_weekend = -1
18283 group by
18284 pt.staff_id,
18285 part_of_week.is_weekend,
18286 pt.calendar_schedule_id
18287 order by null
18288 ) as pt
18289 on cu_pt.staff_id = pt.staff_id
18290 and cu_pt.is_weekend = pt.is_weekend
18291 and cu_pt.calendar_schedule_id = pt.calendar_schedule_id
18292 set
18293 cu_pt.raw_target = cu_pt.raw_target + pt.raw_target_delta,
18294 cu_pt.adjusted_target = cu_pt.adjusted_target + pt.adjusted_target_delta,
18295 cu_pt.scheduled = cu_pt.scheduled + pt.scheduled_delta,
18296 cu_pt.other_scheduled = cu_pt.other_scheduled + pt.other_scheduled_delta
18297
18298 (126.8ms) update
18299 buffer_tmp_targets_scheduled_1913539992 as sch_t
18300 inner join buffer_point_targets_1913539992 as pt
18301 on sch_t.block_id = pt.block_id
18302 and sch_t.calendar_schedule_id = pt.calendar_schedule_id
18303 and (
18304 sch_t.staff_id = pt.staff_id
18305 or sch_t.other_scheduled != 0
18306 )
18307 and sch_t.is_weekend = pt.is_weekend
18308 set
18309 pt.raw_target_delta = 0,
18310 pt.target_delta = 0,
18311 pt.scheduled_delta = 0,
18312 pt.other_scheduled_delta = 0
18313
18314 (126.5ms) /* AssignmentLimitsPerPeriod */
18315 /* Unique Key: assignment_limit_id, staff_id, start_date */
18316 insert into buffer_staff_assignments_count_periods_1913539992 (
18317 assignment_limit_id, staff_id, start_date, end_date, assignments_count
18318 )
18319 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
18320 1 as assignments_count
18321 from buffer_schedules_1913539992 as sc
18322 inner join buffer_assignment_limit_call_types_1913539992 as alct
18323 on sc.call_type_id = alct.call_type_id
18324 inner join assignment_limits as al
18325 on alct.assignment_limit_id = al.id
18326 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
18327 and al.max_per_period_limit is not null
18328 inner join assign_staff_types as ast
18329 on sc.staff_id = ast.staff_id
18330 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
18331 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18332 on alct.assignment_limit_id = alst.assignment_limit_id
18333 and ast.staff_type_id = alst.staff_type_id
18334 inner join (
18335 select assignment_limit_id, start_date, end_date
18336 from buffer_linkage_assignments_count_periods_1913539992
18337 group by assignment_limit_id, start_date, end_date
18338 order by null
18339 ) as lac
18340 on alct.assignment_limit_id = lac.assignment_limit_id
18341 and sc.schedule_on between lac.start_date and lac.end_date
18342 where sc.schedule_on = '2018-10-14'
18343 and sc.call_type_id = 10167
18344 and sc.staff_id = 17182
18345 on duplicate key update
18346 assignments_count = assignments_count + 1
18347
18348 (124.1ms) /* AssignmentLimitsPerWeek */
18349 /* Unique Key: assignment_limit_id, staff_id, start_date */
18350 insert into buffer_staff_assignments_count_weeks_1913539992 (
18351 assignment_limit_id, staff_id, start_date, end_date, assignments_count
18352 )
18353 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
18354 1 as assignments_count
18355 from buffer_schedules_1913539992 as sc
18356 inner join buffer_assignment_limit_call_types_1913539992 as alct
18357 on sc.call_type_id = alct.call_type_id
18358 inner join assignment_limits as al
18359 on alct.assignment_limit_id = al.id
18360 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
18361 and al.max_weekly_limit is not null
18362 inner join assign_staff_types as ast
18363 on sc.staff_id = ast.staff_id
18364 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
18365 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18366 on alct.assignment_limit_id = alst.assignment_limit_id
18367 and ast.staff_type_id = alst.staff_type_id
18368 inner join (
18369 select assignment_limit_id, start_date, end_date
18370 from buffer_linkage_assignments_count_weeks_1913539992
18371 group by assignment_limit_id, start_date, end_date
18372 order by null
18373 ) as lac
18374 on alct.assignment_limit_id = lac.assignment_limit_id
18375 and sc.schedule_on between lac.start_date and lac.end_date
18376 where sc.schedule_on = '2018-10-14'
18377 and sc.call_type_id = 10167
18378 and sc.staff_id = 17182
18379 on duplicate key update
18380 assignments_count = assignments_count + 1
18381
18382 (144.9ms) /* AssignmentLimitsRolling */
18383 /* Unique Key: assignment_limit_id, staff_id, start_date */
18384 insert into buffer_staff_assignments_count_rolling_1913539992 (
18385 assignment_limit_id, staff_id, start_date, end_date, assignments_count
18386 )
18387 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
18388 1 as assignments_count
18389 from buffer_schedules_1913539992 as sc
18390 inner join buffer_assignment_limit_call_types_1913539992 as alct
18391 on sc.call_type_id = alct.call_type_id
18392 inner join assignment_limits as al
18393 on alct.assignment_limit_id = al.id
18394 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
18395 and al.max_rolling_period is not null
18396 and al.max_rolling_limit is not null
18397 inner join assign_staff_types as ast
18398 on sc.staff_id = ast.staff_id
18399 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
18400 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18401 on alct.assignment_limit_id = alst.assignment_limit_id
18402 and ast.staff_type_id = alst.staff_type_id
18403 inner join (
18404 select assignment_limit_id, start_date, end_date
18405 from buffer_linkage_assignments_count_rolling_1913539992
18406 group by assignment_limit_id, start_date, end_date
18407 order by null
18408 ) as lac
18409 on alct.assignment_limit_id = lac.assignment_limit_id
18410 and sc.schedule_on between lac.start_date and lac.end_date
18411 where sc.schedule_on = '2018-10-14'
18412 and sc.call_type_id = 10167
18413 and sc.staff_id = 17182
18414 on duplicate key update
18415 assignments_count = assignments_count + 1
18416
18417 (121.5ms) /* AssignmentLimitsConsecutive */
18418 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
18419 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
18420 assignment_limit_id, staff_id, schedule_on, start_date, end_date
18421 )
18422 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
18423 from buffer_schedules_1913539992 as sc
18424 inner join buffer_assignment_limit_call_types_1913539992 as alct
18425 on sc.call_type_id = alct.call_type_id
18426 inner join assignment_limits as al
18427 on alct.assignment_limit_id = al.id
18428 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
18429 and al.max_consecutive_limit is not null
18430 inner join assign_staff_types as ast
18431 on sc.staff_id = ast.staff_id
18432 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
18433 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18434 on alct.assignment_limit_id = alst.assignment_limit_id
18435 and ast.staff_type_id = alst.staff_type_id
18436 inner join (
18437 select assignment_limit_id, start_date, end_date
18438 from buffer_linkage_assignments_count_consecutive_1913539992
18439 group by assignment_limit_id, start_date, end_date
18440 order by null
18441 ) as lac
18442 on alct.assignment_limit_id = lac.assignment_limit_id
18443 and sc.schedule_on between lac.start_date and lac.end_date
18444 where sc.schedule_on = '2018-10-14'
18445 and sc.call_type_id = 10167
18446 and sc.staff_id = 17182
18447
18448 (128.5ms) UPDATE buffer_schedules_1913539992
18449 SET staff_id = 17182,
18450 should_be_populated = 0,
18451 should_be_evaluated = 0
18452 WHERE
18453 call_type_id = 10960
18454 AND schedule_on = '2018-10-15'
18455
18456 (127.1ms) delete from buffer_combined_availabilities_1913539992
18457 where linkage_instance_id = 14201840
18458
18459 (123.9ms) UPDATE buffer_rule_calc_schedules_1913539992
18460 SET staff_id = 17182
18461 WHERE call_type_id = 10960
18462 AND schedule_on = '2018-10-15'
18463
18464 (126.6ms) INSERT INTO buffer_rule_calc_schedules_1913539992
18465 SET staff_id = 17182,
18466 call_type_id = 10960,
18467 schedule_on = '2018-10-15',
18468 day_of_week_mask = 2
18469
18470 (123.9ms) /* NegativeLinkRule */
18471 UPDATE buffer_negative_relations_1913539992
18472 SET staff_id = 17182
18473 WHERE affected_by_schedule_id = (
18474 SELECT id
18475 FROM buffer_schedules_1913539992
18476 WHERE schedule_on = '2018-10-15'
18477 AND call_type_id = 10960
18478 )
18479
18480 (116.2ms) /* SpecializationOverlapRule */
18481 update buffer_staff_specializations_1913539992 as st_sp
18482 inner join max_applicable_call_types as mact
18483 on st_sp.specialization_id = mact.specialization_id
18484 and mact.call_type_id = 10960
18485 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
18486 on st_sp.specialization_id = sp_dc.specialization_id
18487 and sp_dc.staff_id is null
18488 and sp_dc.schedule_on = '2018-10-15'
18489 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
18490 on st_sp.specialization_id = sp_dc_2.specialization_id
18491 and st_sp.staff_id = sp_dc_2.staff_id
18492 and sp_dc_2.schedule_on = '2018-10-15'
18493 set sp_dc.staffs_scheduled = sp_dc.staffs_scheduled + 1
18494 where st_sp.staff_id = 17182
18495 and sp_dc_2.id is null
18496
18497 (125.3ms) insert into buffer_specialization_daily_counts_1913539992 (
18498 specialization_id, staff_id, schedule_on, staffs_scheduled, max_scheduled, should_be_evaluated
18499 )
18500 select sp.id as specialization_id,
18501 17182 as staff_id,
18502 '2018-10-15' as schedule_on,
18503 1 as staffs_scheduled,
18504 sp.max_scheduled,
18505 sp_dc.should_be_evaluated
18506 from buffer_staff_specializations_1913539992 as st_sp
18507 inner join specializations as sp
18508 on st_sp.specialization_id = sp.id
18509 inner join max_applicable_call_types as mact
18510 on st_sp.specialization_id = mact.specialization_id
18511 and mact.call_type_id = 10960
18512 inner join buffer_specialization_daily_counts_1913539992 as sp_dc
18513 on st_sp.specialization_id = sp_dc.specialization_id
18514 and sp_dc.staff_id is null
18515 and sp_dc.schedule_on = '2018-10-15'
18516 left join buffer_specialization_daily_counts_1913539992 as sp_dc_2
18517 on st_sp.specialization_id = sp_dc_2.specialization_id
18518 and st_sp.staff_id = sp_dc_2.staff_id
18519 and sp_dc_2.schedule_on = '2018-10-15'
18520 where st_sp.staff_id = 17182
18521 and sp_dc_2.id is null
18522
18523 (125.3ms) /* MaxAssignmentsRule */
18524 delete from buffer_linkage_call_type_assignments_1913539992
18525 where linkage_instance_id = 14201840;
18526
18527 (117.8ms) /* MaxAssignmentsRule */
18528 update
18529 buffer_schedules_1913539992 as sc
18530 inner join call_types as ct
18531 on sc.call_type_id = ct.id
18532 and ct.active = 1
18533 inner join buffer_call_type_assignments_1913539992 as cta
18534 on sc.staff_id = cta.staff_id
18535 and sc.call_type_id = cta.call_type_id
18536 and sc.is_weekend = cta.is_weekend
18537 and sc.period_offset = cta.period_offset
18538 and sc.calendar_schedule_id = cta.calendar_schedule_id
18539 set cta.assignments_count = cta.assignments_count + 1
18540 where
18541 sc.schedule_on = '2018-10-15'
18542 and sc.call_type_id = 10960
18543 and sc.staff_id = 17182
18544
18545 (126.1ms) insert into buffer_call_type_assignments_1913539992 (
18546 staff_id,
18547 call_type_id,
18548 is_weekend,
18549 period_offset,
18550 calendar_schedule_id,
18551 assignments_count
18552 )
18553 select
18554 sc.staff_id,
18555 sc.call_type_id,
18556 sc.is_weekend,
18557 sc.period_offset,
18558 sc.calendar_schedule_id,
18559 1 as assignments_count
18560 from buffer_schedules_1913539992 as sc
18561 where
18562 sc.staff_id = 17182
18563 and sc.schedule_on = '2018-10-15'
18564 and sc.call_type_id = 10960
18565
18566 (122.5ms) /* UnassignedDaysRule */
18567 delete from buffer_linkage_assigned_days_1913539992
18568 where linkage_instance_id = 14201840
18569
18570 (122.6ms) /* UnassignedDaysRule */
18571 UPDATE buffer_staff_assigned_days_1913539992 as sad
18572 inner join call_types as ct
18573 on ct.id = 10960
18574 and ct.unassigned_day = 0
18575 SET sad.is_assigned = 1
18576 WHERE sad.staff_id = 17182
18577 AND sad.schedule_on = '2018-10-15'
18578
18579 (128.0ms) truncate table buffer_tmp_targets_scheduled_1913539992
18580
18581 (130.6ms) insert into buffer_tmp_targets_scheduled_1913539992 (
18582 block_id,
18583 calendar_schedule_id,
18584 staff_id,
18585 assignment_id,
18586 assignment_type,
18587 day_of_week_mask,
18588 is_weekend,
18589 scheduled,
18590 other_scheduled
18591 )
18592 select
18593 pt.block_id,
18594 pt.calendar_schedule_id,
18595 pt.staff_id,
18596 0 as assignment_id,
18597 '' as assignment_type,
18598 0 as day_of_week_mask,
18599 pt.is_weekend,
18600 case
18601 when (sc.calendar_schedule_id = pt.calendar_schedule_id) then ci.points
18602 else 0.0
18603 end as scheduled,
18604 case
18605 when (sc.calendar_schedule_id != pt.calendar_schedule_id) then ci.points
18606 else 0.0
18607 end as other_scheduled
18608 from
18609 buffer_schedules_1913539992 as sc
18610 inner join buffer_counter_increments_1913539992 as ci
18611 on sc.id = ci.schedule_id
18612 and ci.points != 0
18613 inner join assign_staff_types as ast
18614 on sc.staff_id = ast.staff_id
18615 and sc.schedule_on between ast.begin_date and coalesce(ast.end_date, '9999-12-31')
18616 inner join staff_types as st
18617 on ast.staff_type_id = st.id
18618 inner join buffer_point_targets_1913539992 as pt
18619 on sc.block_id = pt.block_id
18620 and st.point_hour_schedule_id = pt.calendar_schedule_id
18621 and sc.staff_id = pt.staff_id
18622 and sc.is_weekend = pt.is_weekend
18623 where
18624 sc.schedule_on = '2018-10-15'
18625 and sc.call_type_id = 10960
18626 and sc.staff_id = 17182
18627 order by null
18628
18629 (125.8ms) select 1 from buffer_tmp_targets_scheduled_1913539992
18630
18631 (124.8ms) /* AssignmentLimitsPerPeriod */
18632 /* Unique Key: assignment_limit_id, staff_id, start_date */
18633 insert into buffer_staff_assignments_count_periods_1913539992 (
18634 assignment_limit_id, staff_id, start_date, end_date, assignments_count
18635 )
18636 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
18637 1 as assignments_count
18638 from buffer_schedules_1913539992 as sc
18639 inner join buffer_assignment_limit_call_types_1913539992 as alct
18640 on sc.call_type_id = alct.call_type_id
18641 inner join assignment_limits as al
18642 on alct.assignment_limit_id = al.id
18643 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
18644 and al.max_per_period_limit is not null
18645 inner join assign_staff_types as ast
18646 on sc.staff_id = ast.staff_id
18647 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
18648 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18649 on alct.assignment_limit_id = alst.assignment_limit_id
18650 and ast.staff_type_id = alst.staff_type_id
18651 inner join (
18652 select assignment_limit_id, start_date, end_date
18653 from buffer_linkage_assignments_count_periods_1913539992
18654 group by assignment_limit_id, start_date, end_date
18655 order by null
18656 ) as lac
18657 on alct.assignment_limit_id = lac.assignment_limit_id
18658 and sc.schedule_on between lac.start_date and lac.end_date
18659 where sc.schedule_on = '2018-10-15'
18660 and sc.call_type_id = 10960
18661 and sc.staff_id = 17182
18662 on duplicate key update
18663 assignments_count = assignments_count + 1
18664
18665 (118.1ms) /* AssignmentLimitsPerWeek */
18666 /* Unique Key: assignment_limit_id, staff_id, start_date */
18667 insert into buffer_staff_assignments_count_weeks_1913539992 (
18668 assignment_limit_id, staff_id, start_date, end_date, assignments_count
18669 )
18670 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
18671 1 as assignments_count
18672 from buffer_schedules_1913539992 as sc
18673 inner join buffer_assignment_limit_call_types_1913539992 as alct
18674 on sc.call_type_id = alct.call_type_id
18675 inner join assignment_limits as al
18676 on alct.assignment_limit_id = al.id
18677 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
18678 and al.max_weekly_limit is not null
18679 inner join assign_staff_types as ast
18680 on sc.staff_id = ast.staff_id
18681 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
18682 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18683 on alct.assignment_limit_id = alst.assignment_limit_id
18684 and ast.staff_type_id = alst.staff_type_id
18685 inner join (
18686 select assignment_limit_id, start_date, end_date
18687 from buffer_linkage_assignments_count_weeks_1913539992
18688 group by assignment_limit_id, start_date, end_date
18689 order by null
18690 ) as lac
18691 on alct.assignment_limit_id = lac.assignment_limit_id
18692 and sc.schedule_on between lac.start_date and lac.end_date
18693 where sc.schedule_on = '2018-10-15'
18694 and sc.call_type_id = 10960
18695 and sc.staff_id = 17182
18696 on duplicate key update
18697 assignments_count = assignments_count + 1
18698
18699 (122.0ms) /* AssignmentLimitsRolling */
18700 /* Unique Key: assignment_limit_id, staff_id, start_date */
18701 insert into buffer_staff_assignments_count_rolling_1913539992 (
18702 assignment_limit_id, staff_id, start_date, end_date, assignments_count
18703 )
18704 select lac.assignment_limit_id, sc.staff_id, lac.start_date, lac.end_date,
18705 1 as assignments_count
18706 from buffer_schedules_1913539992 as sc
18707 inner join buffer_assignment_limit_call_types_1913539992 as alct
18708 on sc.call_type_id = alct.call_type_id
18709 inner join assignment_limits as al
18710 on alct.assignment_limit_id = al.id
18711 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
18712 and al.max_rolling_period is not null
18713 and al.max_rolling_limit is not null
18714 inner join assign_staff_types as ast
18715 on sc.staff_id = ast.staff_id
18716 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
18717 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18718 on alct.assignment_limit_id = alst.assignment_limit_id
18719 and ast.staff_type_id = alst.staff_type_id
18720 inner join (
18721 select assignment_limit_id, start_date, end_date
18722 from buffer_linkage_assignments_count_rolling_1913539992
18723 group by assignment_limit_id, start_date, end_date
18724 order by null
18725 ) as lac
18726 on alct.assignment_limit_id = lac.assignment_limit_id
18727 and sc.schedule_on between lac.start_date and lac.end_date
18728 where sc.schedule_on = '2018-10-15'
18729 and sc.call_type_id = 10960
18730 and sc.staff_id = 17182
18731 on duplicate key update
18732 assignments_count = assignments_count + 1
18733
18734 (121.9ms) /* AssignmentLimitsConsecutive */
18735 /* Unique Key: assignment_limit_id, staff_id, schedule_on, start_date */
18736 insert ignore into buffer_staff_assignments_count_consecutive_1913539992 (
18737 assignment_limit_id, staff_id, schedule_on, start_date, end_date
18738 )
18739 select lac.assignment_limit_id, sc.staff_id, sc.schedule_on, lac.start_date, lac.end_date
18740 from buffer_schedules_1913539992 as sc
18741 inner join buffer_assignment_limit_call_types_1913539992 as alct
18742 on sc.call_type_id = alct.call_type_id
18743 inner join assignment_limits as al
18744 on alct.assignment_limit_id = al.id
18745 and (sc.day_of_week_mask & al.considered_days_of_week_mask) > 0
18746 and al.max_consecutive_limit is not null
18747 inner join assign_staff_types as ast
18748 on sc.staff_id = ast.staff_id
18749 and sc.schedule_on between ast.begin_date and ifnull(ast.end_date, '9999-12-31')
18750 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18751 on alct.assignment_limit_id = alst.assignment_limit_id
18752 and ast.staff_type_id = alst.staff_type_id
18753 inner join (
18754 select assignment_limit_id, start_date, end_date
18755 from buffer_linkage_assignments_count_consecutive_1913539992
18756 group by assignment_limit_id, start_date, end_date
18757 order by null
18758 ) as lac
18759 on alct.assignment_limit_id = lac.assignment_limit_id
18760 and sc.schedule_on between lac.start_date and lac.end_date
18761 where sc.schedule_on = '2018-10-15'
18762 and sc.call_type_id = 10960
18763 and sc.staff_id = 17182
18764
18765 Staff Load (117.9ms) SELECT `staffs`.* FROM `staffs` WHERE `staffs`.`id` = 17182 LIMIT 1
18766INFO : (05-29 13:29:35) scheduled for: plan unit: [id:14201840] [2018-10-12 - CHDay], [2018-10-12 - CHCall], [2018-10-13 - CHCall2], [2018-10-14 - CHCall], [2018-10-15 - CHDay 4], Joseph Evans. DEPTH(6)
18767 (123.7ms) select
18768 coalesce(max(
18769 case
18770 when (ct.max_weekday_assignments > 0) then 1
18771 else 0
18772 end
18773 ), 0) as weekday_flag,
18774 coalesce(max(
18775 case
18776 when (ct.max_weekend_assignments > 0) then 1
18777 else 0
18778 end
18779 ), 0) as weekend_flag
18780 from
18781 buffer_auto_populate_slots_1913539992 as aps
18782 inner join call_types as ct
18783 on aps.call_type_id = ct.id
18784
18785 (122.2ms) delete ca
18786 from buffer_combined_availabilities_1913539992 as ca
18787 inner join (
18788 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
18789 sum(lac.assignments_count) as assignments_count
18790 from (
18791 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
18792 from buffer_combined_availabilities_1913539992 as ca
18793 inner join buffer_schedules_1913539992 as sc
18794 on ca.schedule_id = sc.id
18795 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
18796 order by null
18797 ) as ca_sc
18798 inner join buffer_linkage_assignments_count_weeks_1913539992 as lac
18799 on ca_sc.linkage_instance_id = lac.linkage_instance_id
18800 and ca_sc.schedule_on = lac.schedule_on
18801 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18802 on lac.assignment_limit_id = alst.assignment_limit_id
18803 and ca_sc.staff_type_id = alst.staff_type_id
18804 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
18805 order by null
18806 ) as lac
18807 on ca.linkage_instance_id = lac.linkage_instance_id
18808 and ca.staff_id = lac.staff_id
18809 inner join assignment_limits as al
18810 on lac.assignment_limit_id = al.id
18811 left join buffer_staff_assignments_count_weeks_1913539992 as sac
18812 on lac.assignment_limit_id = sac.assignment_limit_id
18813 and lac.staff_id = sac.staff_id
18814 and lac.start_date = sac.start_date
18815 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_weekly_limit
18816
18817 (117.8ms) delete ca
18818 from buffer_combined_availabilities_1913539992 as ca
18819 inner join (
18820 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
18821 count(distinct if(sac.id is null, lac.schedule_on, null)) as assignments_count
18822 from (
18823 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
18824 from buffer_combined_availabilities_1913539992 as ca
18825 inner join buffer_schedules_1913539992 as sc
18826 on ca.schedule_id = sc.id
18827 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
18828 order by null
18829 ) as ca_sc
18830 inner join buffer_linkage_assignments_count_consecutive_1913539992 as lac
18831 on ca_sc.linkage_instance_id = lac.linkage_instance_id
18832 and ca_sc.schedule_on = lac.schedule_on
18833 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18834 on lac.assignment_limit_id = alst.assignment_limit_id
18835 and ca_sc.staff_type_id = alst.staff_type_id
18836 left join buffer_staff_assignments_count_consecutive_1913539992 as sac
18837 on lac.assignment_limit_id = sac.assignment_limit_id
18838 and ca_sc.staff_id = sac.staff_id
18839 and lac.schedule_on = sac.schedule_on
18840 and lac.start_date = sac.start_date
18841 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
18842 order by null
18843 ) as lac
18844 on ca.linkage_instance_id = lac.linkage_instance_id
18845 and ca.staff_id = lac.staff_id
18846 inner join assignment_limits as al
18847 on lac.assignment_limit_id = al.id
18848 left join (
18849 select assignment_limit_id, staff_id, start_date,
18850 count(schedule_on) as assignments_count
18851 from buffer_staff_assignments_count_consecutive_1913539992
18852 group by assignment_limit_id, staff_id, start_date
18853 ) as sac
18854 on lac.assignment_limit_id = sac.assignment_limit_id
18855 and lac.staff_id = sac.staff_id
18856 and lac.start_date = sac.start_date
18857 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_consecutive_limit
18858
18859 (130.4ms) delete ca
18860 from buffer_combined_availabilities_1913539992 as ca
18861 inner join (
18862 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
18863 sum(lac.assignments_count) as assignments_count
18864 from (
18865 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
18866 from buffer_combined_availabilities_1913539992 as ca
18867 inner join buffer_schedules_1913539992 as sc
18868 on ca.schedule_id = sc.id
18869 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
18870 order by null
18871 ) as ca_sc
18872 inner join buffer_linkage_assignments_count_periods_1913539992 as lac
18873 on ca_sc.linkage_instance_id = lac.linkage_instance_id
18874 and ca_sc.schedule_on = lac.schedule_on
18875 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18876 on lac.assignment_limit_id = alst.assignment_limit_id
18877 and ca_sc.staff_type_id = alst.staff_type_id
18878 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
18879 order by null
18880 ) as lac
18881 on ca.linkage_instance_id = lac.linkage_instance_id
18882 and ca.staff_id = lac.staff_id
18883 inner join assignment_limits as al
18884 on lac.assignment_limit_id = al.id
18885 left join buffer_staff_assignments_count_periods_1913539992 as sac
18886 on lac.assignment_limit_id = sac.assignment_limit_id
18887 and lac.staff_id = sac.staff_id
18888 and lac.start_date = sac.start_date
18889 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_per_period_limit
18890
18891 (123.9ms) delete ca
18892 from buffer_combined_availabilities_1913539992 as ca
18893 inner join (
18894 select ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date,
18895 sum(lac.assignments_count) as assignments_count
18896 from (
18897 select ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
18898 from buffer_combined_availabilities_1913539992 as ca
18899 inner join buffer_schedules_1913539992 as sc
18900 on ca.schedule_id = sc.id
18901 group by ca.staff_id, ca.staff_type_id, sc.linkage_instance_id, sc.schedule_on
18902 order by null
18903 ) as ca_sc
18904 inner join buffer_linkage_assignments_count_rolling_1913539992 as lac
18905 on ca_sc.linkage_instance_id = lac.linkage_instance_id
18906 and ca_sc.schedule_on = lac.schedule_on
18907 inner join buffer_assignment_limit_staff_types_1913539992 as alst
18908 on lac.assignment_limit_id = alst.assignment_limit_id
18909 and ca_sc.staff_type_id = alst.staff_type_id
18910 group by ca_sc.linkage_instance_id, lac.assignment_limit_id, ca_sc.staff_id, lac.start_date
18911 order by null
18912 ) as lac
18913 on ca.linkage_instance_id = lac.linkage_instance_id
18914 and ca.staff_id = lac.staff_id
18915 inner join assignment_limits as al
18916 on lac.assignment_limit_id = al.id
18917 left join buffer_staff_assignments_count_rolling_1913539992 as sac
18918 on lac.assignment_limit_id = sac.assignment_limit_id
18919 and lac.staff_id = sac.staff_id
18920 and lac.start_date = sac.start_date
18921 where (lac.assignments_count + ifnull(sac.assignments_count, 0)) > al.max_rolling_limit
18922
18923 (123.7ms) /* NegativeLinkRule */
18924 delete ca
18925 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
18926 inner join buffer_negative_relations_1913539992 as nr use index (ix_buffer_negative_relations_composite_1)
18927 on ca.schedule_id = nr.schedule_id
18928 and ca.staff_id = nr.staff_id
18929
18930 (124.2ms) /* SpecializationOverlapRule */
18931 delete ca
18932 from buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
18933 inner join buffer_schedules_1913539992 as sc
18934 on ca.schedule_id = sc.id
18935 inner join buffer_staff_specializations_1913539992 as ssp
18936 on ca.staff_id = ssp.staff_id
18937 inner join max_applicable_call_types as mact
18938 on ssp.specialization_id = mact.specialization_id
18939 and sc.call_type_id = mact.call_type_id
18940 inner join buffer_specialization_daily_counts_1913539992 as sdc use index (ix_buffer_specialization_daily_counts_composite_1)
18941 on ssp.specialization_id = sdc.specialization_id
18942 and sc.schedule_on = sdc.schedule_on
18943 and sdc.staff_id is null
18944 left join buffer_specialization_daily_counts_1913539992 as sdc_2 use index (ix_buffer_specialization_daily_counts_composite_1)
18945 on ssp.specialization_id = sdc_2.specialization_id
18946 and sc.schedule_on = sdc_2.schedule_on
18947 and ca.staff_id = sdc_2.staff_id
18948 where sdc.should_be_evaluated = 1
18949 and (sdc.staffs_scheduled + if(sdc_2.id is null, 1, 0)) > sdc.max_scheduled
18950
18951 (128.2ms) /* BrokenLinkageRule */
18952 truncate table buffer_combined_availability_linkages_1913539992
18953
18954 (128.5ms) insert into buffer_combined_availability_linkages_1913539992 (
18955 staff_id,
18956 linkage_instance_id,
18957 slots_count,
18958 is_primary,
18959 has_violations
18960 )
18961 select
18962 staff_id,
18963 linkage_instance_id,
18964 count(1) as slots_count,
18965 min(is_primary) as is_primary,
18966 max(has_violations) as has_violations
18967 from buffer_combined_availabilities_1913539992 use index (ix_buffer_combined_availabilities_composite_2)
18968 group by
18969 staff_id,
18970 linkage_instance_id
18971 order by null
18972
18973 (128.9ms) delete ca
18974 from
18975 buffer_combined_availabilities_1913539992 as ca use index (ix_buffer_combined_availabilities_composite_1)
18976 inner join buffer_schedules_1913539992 as sc
18977 on ca.schedule_id = sc.id
18978 inner join buffer_linkages_1913539992 as l
18979 on sc.linkage_instance_id = l.linkage_instance_id
18980 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
18981 on ca.staff_id = ls_1.staff_id
18982 and sc.linkage_instance_id = ls_1.linkage_instance_id
18983 left join buffer_schedule_linkages_1913539992 as ls_2 use index (ix_buffer_schedule_linkages_composite_1)
18984 on ca.staff_id = ls_2.staff_id
18985 and sc.linkage_instance_id = ls_2.linkage_instance_id
18986 where (ls_1.slots_count + coalesce(ls_2.slots_count, 0)) < l.slots_count_total /* not covering the whole chain */;
18987
18988 (147.4ms) select straight_join
18989 sc.schedule_on,
18990 sc.call_type_id,
18991 count(distinct ca.staff_id) as available_members_count,
18992 group_concat(
18993 distinct concat(if(ls_1.is_primary = 1, 'p', 's'), ca.staff_id)
18994 order by ls_1.is_primary desc, ca.staff_id
18995 separator ', '
18996 ) as available_members_ids,
18997 sc.linkage_instance_id,
18998 l.slots_count_total as linkage_slots_count
18999 from buffer_combined_availabilities_1913539992 as ca
19000 inner join buffer_schedules_1913539992 as sc
19001 on ca.schedule_id = sc.id
19002 inner join buffer_linkages_1913539992 as l
19003 on sc.linkage_instance_id = l.linkage_instance_id
19004 inner join buffer_combined_availability_linkages_1913539992 as ls_1 use index (ix_buffer_combined_availability_linkages_composite_1)
19005 on ca.staff_id = ls_1.staff_id
19006 and sc.linkage_instance_id = ls_1.linkage_instance_id
19007 and ls_1.has_violations = 0
19008 where sc.should_be_evaluated = 1
19009 and sc.should_be_populated = 1
19010 group by sc.schedule_on, sc.call_type_id, sc.linkage_instance_id, l.slots_count_total
19011 order by available_members_count, sc.schedule_on, sc.display_order
19012 limit 1
19013
19014 (118.9ms) truncate table buffer_rule_scores_1913539992
19015
19016 (120.6ms) truncate table buffer_rule_calc_filters_1913539992
19017
19018 (121.2ms) insert into buffer_rule_calc_filters_1913539992 (
19019 linkage_instance_id,
19020 staff_id
19021 ) values (15201841, 21025)
19022
19023 (124.8ms) /* CallDaysRule */
19024 insert into buffer_rule_scores_1913539992 (
19025 linkage_instance_id,
19026 schedule_id,
19027 staff_id,
19028 rule_name,
19029 value
19030 )
19031 select
19032 b_schedules.linkage_instance_id,
19033 b_schedules.id as schedule_id,
19034 availabilities.staff_id,
19035 'CallDaysRule' as _rule_name,
19036 (min(abs(datediff(b_schedules.schedule_on, rc_schedules.schedule_on))) div 7) as value
19037 from
19038 buffer_rule_calc_filters_1913539992 as filters
19039 inner join buffer_schedules_1913539992 as b_schedules
19040 on filters.linkage_instance_id = b_schedules.linkage_instance_id
19041 inner join buffer_combined_availabilities_1913539992 as availabilities
19042 on b_schedules.id = availabilities.schedule_id
19043 and filters.staff_id = availabilities.staff_id
19044 left join buffer_rule_calc_schedules_1913539992 as rc_schedules
19045 on availabilities.staff_id = rc_schedules.staff_id
19046 and b_schedules.day_of_week_mask = rc_schedules.day_of_week_mask
19047 group by
19048 b_schedules.linkage_instance_id,
19049 b_schedules.id,
19050 availabilities.staff_id,
19051 _rule_name
19052 order by null
19053
19054 (128.2ms) /* CumulativePointTargetsRule */
19055 insert into buffer_rule_scores_1913539992 (
19056 linkage_instance_id,
19057 schedule_id,
19058 staff_id,
19059 rule_name,
19060 value
19061 )
19062 select
19063 b_schedules.linkage_instance_id,
19064 b_schedules.id as schedule_id,
19065 availabilities.staff_id,
19066 'CumulativePointTargetsRule' as rule_name,
19067 ((b_targets.raw_target - b_targets.scheduled) /
19068 b_targets.raw_target) as value
19069 from
19070 buffer_rule_calc_filters_1913539992 as filters
19071 inner join buffer_schedules_1913539992 as b_schedules
19072 on filters.linkage_instance_id = b_schedules.linkage_instance_id
19073 inner join buffer_combined_availabilities_1913539992 as availabilities
19074 on b_schedules.id = availabilities.schedule_id
19075 and filters.staff_id = availabilities.staff_id
19076 inner join buffer_cumulative_point_targets_1913539992 as b_targets
19077 on availabilities.staff_id = b_targets.staff_id
19078 and b_schedules.is_weekend = b_targets.is_weekend
19079 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
19080 order by null;
19081
19082 (126.0ms) /* CurrentPointTargetsRule */
19083 insert into buffer_rule_scores_1913539992 (
19084 linkage_instance_id,
19085 schedule_id,
19086 staff_id,
19087 rule_name,
19088 value
19089 )
19090 select
19091 b_schedules.linkage_instance_id,
19092 b_schedules.id as schedule_id,
19093 availabilities.staff_id,
19094 'CurrentPointTargetsRule' as rule_name,
19095 ((b_targets.adjusted_target - b_targets.scheduled) / b_targets.adjusted_target) as value
19096 from
19097 buffer_rule_calc_filters_1913539992 as filters
19098 inner join buffer_schedules_1913539992 as b_schedules
19099 on filters.linkage_instance_id = b_schedules.linkage_instance_id
19100 inner join buffer_combined_availabilities_1913539992 as availabilities
19101 on b_schedules.id = availabilities.schedule_id
19102 and filters.staff_id = availabilities.staff_id
19103 inner join buffer_current_point_targets_1913539992 as b_targets
19104 on availabilities.staff_id = b_targets.staff_id
19105 and b_schedules.is_weekend = b_targets.is_weekend
19106 and b_schedules.period_offset = b_targets.period_offset
19107 and b_schedules.calendar_schedule_id = b_targets.calendar_schedule_id
19108 order by null
19109
19110 (132.3ms) truncate table buffer_rule_scores_with_corrections_1913539992
19111
19112 (127.1ms) insert into buffer_rule_scores_with_corrections_1913539992 (
19113 linkage_instance_id, schedule_id, staff_id, rule_name, value
19114 )
19115 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id, rule_scores.rule_name,
19116 ifnull(rule_scores.value, max_values.max_value + 1) as value
19117 from buffer_rule_scores_1913539992 as rule_scores
19118 inner join (
19119 select rule_name, max(value) as max_value
19120 from buffer_rule_scores_1913539992
19121 group by rule_name
19122 order by null
19123 ) as max_values
19124 on rule_scores.rule_name = max_values.rule_name
19125 order by null
19126
19127 (117.6ms) select linkage_instance_id, staff_id, avg(slot_scores) as scores
19128 from (
19129 select rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id,
19130 sum(
19131 if((total_values.total_value > 0), (rule_scores.value / total_values.total_value), 0) *
19132 rules.weight *
19133 total_values.slots_count
19134 ) as slot_scores
19135 from buffer_rule_scores_with_corrections_1913539992 as rule_scores
19136 inner join (
19137 select rule_name, sum(abs(value)) as total_value,
19138 count(distinct schedule_id) as slots_count
19139 from buffer_rule_scores_with_corrections_1913539992
19140 group by rule_name
19141 order by null
19142 ) as total_values
19143 on rule_scores.rule_name = total_values.rule_name
19144 inner join rules
19145 on rule_scores.rule_name = rules.type
19146 where rules.rule_set_id = 1232
19147 and rules.applied = 1
19148 group by rule_scores.linkage_instance_id, rule_scores.schedule_id, rule_scores.staff_id
19149 order by null
19150 ) as staff_scores
19151 group by linkage_instance_id, staff_id
19152 order by round(avg(slot_scores), 5) desc, rand()
19153 limit 1
19154
19155**Airbrake: closed