From: Alexander Smirnov Date: Wed, 19 Jun 2024 16:26:53 +0000 (+0300) Subject: Поправляет пропуски у администраторов, записывая plan_id в чекины X-Git-Tag: 1.3~52^2~6 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=880ddc2a623bd65556d3351858fde97eea7d5479;p=erp24_rep%2Fyii-erp24%2F.git Поправляет пропуски у администраторов, записывая plan_id в чекины --- diff --git a/erp24/actions/timetable/JoinMissingShiftsWithCheckinsAction.php b/erp24/actions/timetable/JoinMissingShiftsWithCheckinsAction.php new file mode 100644 index 00000000..3ab74c03 --- /dev/null +++ b/erp24/actions/timetable/JoinMissingShiftsWithCheckinsAction.php @@ -0,0 +1,45 @@ +where(['>=', 'date', date('Y-m-d', strtotime('-' . $days . ' day', time()))]) + ->andWhere(['plan_id' => null])->all(); + foreach ($checkins as $checkin) { + /** @var $checkin AdminCheckin */ + $planSlots = TimetablePlan::find() + ->andWhere(['store_id' => $checkin->store_id, 'admin_id' => $checkin->admin_id]) + ->andWhere(['OR', + [ + 'BETWEEN', 'datetime_start', + date('Y-m-d H:i:s', strtotime($checkin->time)), + date('Y-m-d H:i:s', strtotime('+6 hour', strtotime($checkin->time)))], + [ + 'BETWEEN', 'datetime_end', + date('Y-m-d H:i:s', strtotime('-6 hour', strtotime($checkin->time))), + date('Y-m-d H:i:s', strtotime($checkin->time))], + [ + 'AND', + ['<', 'datetime_start', date('Y-m-d H:i:s', strtotime($checkin->time))], + ['>', 'datetime_end', date('Y-m-d H:i:s', strtotime($checkin->time))] + ] + ]) + ->one(); + /** @var $planSlots TimetablePlan */ + if ($planSlots) { + $checkin->plan_id = $planSlots->id; + $checkin->save(); + if ($checkin->getErrors()) { + var_dump($checkin->getErrors()); + } + } + } + return 'ok'; + } +} \ No newline at end of file diff --git a/erp24/controllers/TimetableController.php b/erp24/controllers/TimetableController.php index 3b3ae918..51811916 100755 --- a/erp24/controllers/TimetableController.php +++ b/erp24/controllers/TimetableController.php @@ -33,6 +33,7 @@ class TimetableController extends \yii\web\Controller 'start-shift-step-three' => \yii_app\actions\timetable\StartShiftStepThreeAction::class, 'checkins' => \yii_app\actions\timetable\CheckinsAction::class, 'fact-overview-item' => \yii_app\actions\timetable\FactOverviewItemAction::class, + 'join-missing-shifts-with-checkins' => \yii_app\actions\timetable\JoinMissingShiftsWithCheckinsAction::class, ]; }