From 880ddc2a623bd65556d3351858fde97eea7d5479 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Wed, 19 Jun 2024 19:26:53 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D1=8F?= =?utf8?q?=D0=B5=D1=82=20=D0=BF=D1=80=D0=BE=D0=BF=D1=83=D1=81=D0=BA=D0=B8?= =?utf8?q?=20=D1=83=20=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD=D0=B8=D1=81=D1=82?= =?utf8?q?=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BE=D0=B2,=20=D0=B7=D0=B0=D0=BF?= =?utf8?q?=D0=B8=D1=81=D1=8B=D0=B2=D0=B0=D1=8F=20plan=5Fid=20=D0=B2=20?= =?utf8?q?=D1=87=D0=B5=D0=BA=D0=B8=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../JoinMissingShiftsWithCheckinsAction.php | 45 +++++++++++++++++++ erp24/controllers/TimetableController.php | 1 + 2 files changed, 46 insertions(+) create mode 100644 erp24/actions/timetable/JoinMissingShiftsWithCheckinsAction.php 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, ]; } -- 2.39.5