From c659e4219b38b1b9aa790264c7f0124ba3e138e1 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Fri, 14 Jun 2024 15:09:15 +0300 Subject: [PATCH] =?utf8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?utf8?q?=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?utf8?q?=D0=BD=20=D0=B1=D0=BB=D0=B8=D0=B6=D0=B0=D0=B9=D1=88=D0=B8=D0=B9?= =?utf8?q?=20=D0=B1=D0=BE=D0=BD=D1=83=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../bonus/AddBonusIfWrittenOffAction.php | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/erp24/actions/bonus/AddBonusIfWrittenOffAction.php b/erp24/actions/bonus/AddBonusIfWrittenOffAction.php index 0c2ceb58..3d3c5679 100644 --- a/erp24/actions/bonus/AddBonusIfWrittenOffAction.php +++ b/erp24/actions/bonus/AddBonusIfWrittenOffAction.php @@ -33,7 +33,13 @@ class AddBonusIfWrittenOffAction extends Action if ($usersBonusMinus) { $usersBonusPlus = UsersBonus::find()->where(['tip' => 'plus', 'check_id' => $sale->id])->one(); if (!$usersBonusPlus) { - $addPlus[] = [$sale->phone, $sale->summ]; + $bonus = floor($sale->summ * 0.1); + $usersBonusNear = UsersBonus::find()->where(['tip' => 'plus', 'check_id' => null]) + ->andWhere(['>=', 'date', '2024-05-30 21:28:00']) + ->andWhere(['between', 'bonus', $bonus - 1, $bonus + 1])->one(); + if (!$usersBonusNear) { + $addPlus[] = [$sale->phone, $sale->summ]; + } } } } @@ -57,19 +63,25 @@ class AddBonusIfWrittenOffAction extends Action if ($usersBonusMinus) { $usersBonusPlus = UsersBonus::find()->where(['tip' => 'plus', 'check_id' => $sale->id])->one(); if (!$usersBonusPlus) { - $userBonus = new UsersBonus; - $userBonus->phone = strval($sale->phone); - $userBonus->name = "Возврат с покупки 10%. Чек " . $sale->number . " от " - . date("d.m.Y H:i:s", strtotime($sale->date)) . ". Сумма чека " . $sale->summ; - $userBonus->date = date('Y-m-d H:i:s'); - $userBonus->site_id = 1; - $userBonus->setka_id = 1; - $userBonus->tip = 'plus'; - $userBonus->tip_sale = 'sale'; - $userBonus->bonus = floor($sale->summ * 0.1); - $userBonus->date_start = $userBonus->date; - $userBonus->date_end = date('Y-m-d H:i:s', strtotime('+366 day', strtotime($userBonus->date))); - $userBonus->save(); + $bonus = floor($sale->summ * 0.1); + $usersBonusNear = UsersBonus::find()->where(['tip' => 'plus', 'check_id' => null]) + ->andWhere(['>=', 'date', '2024-05-30 21:28:00']) + ->andWhere(['between', 'bonus', $bonus - 1, $bonus + 1])->one(); + if (!$usersBonusNear) { + $userBonus = new UsersBonus; + $userBonus->phone = strval($sale->phone); + $userBonus->name = "Возврат с покупки 10%. Чек " . $sale->number . " от " + . date("d.m.Y H:i:s", strtotime($sale->date)) . ". Сумма чека " . $sale->summ; + $userBonus->date = date('Y-m-d H:i:s'); + $userBonus->site_id = 1; + $userBonus->setka_id = 1; + $userBonus->tip = 'plus'; + $userBonus->tip_sale = 'sale'; + $userBonus->bonus = floor($sale->summ * 0.1); + $userBonus->date_start = $userBonus->date; + $userBonus->date_end = date('Y-m-d H:i:s', strtotime('+366 day', strtotime($userBonus->date))); + $userBonus->save(); + } } } } -- 2.39.5