From c4c61fbba451c1655d62461e3d3b6d4cf08fbad6 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Fri, 14 Jun 2024 11:43:50 +0300 Subject: [PATCH] =?utf8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8=D1=82?= =?utf8?q?=D1=8C=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8?= =?utf8?q?=D1=8E=20=D0=B8=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B8=D0=BD=D0=B5?= =?utf8?q?=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B8=20?= =?utf8?q?=D0=B1=D0=BE=D0=BD=D1=83=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../bonus/AddBonusIfWrittenOffAction.php | 75 +++++++++++++++++++ erp24/controllers/BonusController.php | 6 ++ .../views/bonus/add-bonus-if-written-off.php | 28 +++++++ 3 files changed, 109 insertions(+) create mode 100644 erp24/actions/bonus/AddBonusIfWrittenOffAction.php create mode 100644 erp24/views/bonus/add-bonus-if-written-off.php diff --git a/erp24/actions/bonus/AddBonusIfWrittenOffAction.php b/erp24/actions/bonus/AddBonusIfWrittenOffAction.php new file mode 100644 index 00000000..44517a0b --- /dev/null +++ b/erp24/actions/bonus/AddBonusIfWrittenOffAction.php @@ -0,0 +1,75 @@ +request->post('action'); + + $addPlus = []; + if ($action == 'showPlus') { + $sales = Sales::find()->where(['operation' => Sales::OPERATION_SALE]) + ->andWhere(['>=', 'date', '2024-05-30 21:28:00']) + ->andWhere(['<=', 'date', '2024-06-04 17:24:00'])->all(); + $salesIds = ArrayHelper::getColumn($sales, 'id'); + $returns = Sales::find()->select(['id', 'sales_check'])->where(['operation' => Sales::OPERATION_RETURN, 'sales_check' => $salesIds])->all(); + $returnsIds = ArrayHelper::getColumn($returns, 'sales_check'); + foreach ($sales as $sale) { + /** @var $sale Sales */ + if (!in_array($sale->id, $returnsIds)) { + if (ClientHelper::phoneVerify($sale->phone)) { + $usersBonusMinus = UsersBonus::find()->where(['tip' => 'minus', 'check_id' => $sale->id])->one(); + if ($usersBonusMinus) { + $usersBonusPlus = UsersBonus::find()->where(['tip' => 'plus', 'check_id' => $sale->id])->one(); + if (!$usersBonusPlus) { + $addPlus[] = $sale->phone; + } + } + } + } + } + } + if ($action == 'applyPlus') { + $sales = Sales::find()->where(['operation' => Sales::OPERATION_SALE]) + ->andWhere(['>=', 'date', '2024-05-30 21:28:00']) + ->andWhere(['<=', 'date', '2024-06-04 17:24:00'])->all(); + $salesIds = ArrayHelper::getColumn($sales, 'id'); + $returns = Sales::find()->select(['id', 'sales_check'])->where(['operation' => Sales::OPERATION_RETURN, 'sales_check' => $salesIds])->all(); + $returnsIds = ArrayHelper::getColumn($returns, 'sales_check'); + foreach ($sales as $sale) { + /** @var $sale Sales */ + if (!in_array($sale->id, $returnsIds)) { + if (ClientHelper::phoneVerify($sale->phone)) { + $usersBonusMinus = UsersBonus::find()->where(['tip' => 'minus', 'check_id' => $sale->id])->one(); + if ($usersBonusMinus) { + $usersBonusPlus = UsersBonus::find()->where(['tip' => 'plus', 'check_id' => $sale->id])->one(); + if (!$usersBonusPlus) { + $userBonus = new UsersBonus; + $userBonus->phone = "" . $sale->phone; + $userBonus->name = "Возврат с покупки 10% " . $sale->number . " сумма чека " . $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(); + } + } + } + } + } + } + return $this->controller->render('add-bonus-if-written-off', compact('action', 'addPlus')); + } +} \ No newline at end of file diff --git a/erp24/controllers/BonusController.php b/erp24/controllers/BonusController.php index f5c8b873..5eb05a3b 100644 --- a/erp24/controllers/BonusController.php +++ b/erp24/controllers/BonusController.php @@ -2,6 +2,11 @@ namespace app\controllers; +use yii\helpers\ArrayHelper; +use yii_app\helpers\ClientHelper; +use yii_app\records\Sales; +use yii_app\records\UsersBonus; + class BonusController extends \yii\web\Controller { public function actions() @@ -16,6 +21,7 @@ class BonusController extends \yii\web\Controller // 'ajax-user-remove-stop-list' => \yii_app\actions\bonus\AjaxUserRemoveStopListAction::class, 'ajax-bonus-remove' => \yii_app\actions\bonus\AjaxBonusRemoveAction::class, 'sex' => \yii_app\actions\bonus\SexAction::class, + 'add-bonus-if-written-off' => \yii_app\actions\bonus\AddBonusIfWrittenOffAction::class, ]; } public function actionBonusUsers() { return $this->render('bonus-users'); } diff --git a/erp24/views/bonus/add-bonus-if-written-off.php b/erp24/views/bonus/add-bonus-if-written-off.php new file mode 100644 index 00000000..024becc6 --- /dev/null +++ b/erp24/views/bonus/add-bonus-if-written-off.php @@ -0,0 +1,28 @@ + + +
+ + + 'btn btn-success btn-lg', 'name' => 'action', 'value' => 'showPlus']) ?> + + 'btn btn-warning btn-lg', 'name' => 'action', 'value' => 'applyPlus']) ?> + + + + +
+            
+        
+ + + ok + +
-- 2.39.5