use yii_app\records\Users;
use yii_app\records\UsersBonus;
use yii_app\services\LogService;
+use yii\helpers\ArrayHelper;
ini_set('max_execution_time', (string)(60 * 60 * 1)); // 1 час
ini_set('display_errors', 'on');
$returnCheckIds[] = $return->id;
}
+ $salesIds = ArrayHelper::getColumn($sales, 'id');
+ $userBonuses = UsersBonus::find()->where(['check_id' => $salesIds, 'tip_sale' => '1000per5000'])->all();
+ $userBonusPerCheckId = [];
+ foreach($userBonuses as $ub) {
+ $userBonusPerCheckId[$ub->check_id] = $ub;
+ }
foreach ($sales as $sale) {
/** @var $sale Sales */
- $userBonus = UsersBonus::find()->where(['check_id' => $sale->id])->one();
- if (!$userBonus && !in_array($sale->id, $returnCheckIds)) {
+ if (!isset($userBonusPerCheckId[$sale->id]) && !in_array($sale->id, $returnCheckIds) && strlen($sale->phone) > 5) {
$userBonus = new UsersBonus;
$userBonus->check_id = $sale->id;
$userBonus->date = date('Y-m-d H:i:s');
if ($userBonus->getErrors()) {
var_dump($userBonus->getErrors());
}
- } else if ($userBonus && in_array($sale->id, $returnCheckIds)) {
- $userBonus->delete();
+ } else if (isset($userBonusPerCheckId[$sale->id]) && in_array($sale->id, $returnCheckIds)) {
+ $userBonusPerCheckId[$sale->id]->delete();
}
}