--- /dev/null
+<?php
+
+namespace yii_app\actions\bonus;
+
+use Yii;
+use yii\base\Action;
+use yii\helpers\ArrayHelper;
+use yii_app\helpers\ClientHelper;
+use yii_app\records\Sales;
+use yii_app\records\UsersBonus;
+
+class AddBonusIfWrittenOffAction extends Action
+{
+ public function run() {
+ $action = Yii::$app->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
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()
// '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'); }
--- /dev/null
+<?php
+
+use \yii\helpers\Html;
+use \yii\widgets\ActiveForm;
+
+/** @var $action string */
+/** @var $addPlus array */
+
+?>
+
+<div class="bonusAddBonusIfWrittenOff m-5">
+ <?php ActiveForm::begin() ?>
+
+ <?= Html::submitButton('Показать кому начислять', ['class' => 'btn btn-success btn-lg', 'name' => 'action', 'value' => 'showPlus']) ?>
+
+ <?= Html::submitButton('Начислить', ['class' => 'btn btn-warning btn-lg', 'name' => 'action', 'value' => 'applyPlus']) ?>
+
+ <?php ActiveForm::end() ?>
+
+ <?php if ($action == 'showPlus'): ?>
+ <pre>
+ <?php var_dump($addPlus); ?>
+ </pre>
+ <?php endif ?>
+ <?php if ($action == 'applyPlus'): ?>
+ ok
+ <?php endif ?>
+</div>