$check_amount = intval($result['check_amount'] ?? 0);
+ $user = Users::find()->where(['phone' => $result['phone']])->andWhere(['phone_true' => '1'])->one();
+ $bonusLevels = BonusLevels::find()->where(['active' => 1])->indexBy('alias')->asArray()->all();
+ $bonusLevel = $user->bonus_level ?? "silver";
+
+ $bonus_rate = isset($bonusLevels[$bonusLevel]['bonus_rate'])
+ ? $bonusLevels[$bonusLevel]['bonus_rate'] / 100
+ : self::$FIRST_SALE_PROCENT;
+
+ $cashback_rate = isset($bonusLevels[$bonusLevel]['cashback_rate'])
+ ? $bonusLevels[$bonusLevel]['cashback_rate'] / 100
+ : self::$FIRST_SALE_PROCENT;
+
$mess = [];
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
// массив с id товарыми не участвующих в бонусной
$check_amount = $check_amount - $summa_no;
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
- $cnt = intval(Sales::find()->where(['phone' => $result['phone'], 'operation' => Sales::OPERATION_SALE])->count());
- $max_procent = $cnt == 0 ? self::$FIRST_SALE_PROCENT : ($cnt == 1 ? self::$SECOND_SALE_PROCENT : self::$MAX_PROCENT);
+ //$cnt = intval(Sales::find()->where(['phone' => $result['phone'], 'operation' => Sales::OPERATION_SALE])->count());
+ //$max_procent = $cnt == 0 ? self::$FIRST_SALE_PROCENT : ($cnt == 1 ? self::$SECOND_SALE_PROCENT : self::$MAX_PROCENT);
+ $max_procent = $bonus_rate;
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
$percent = ($result['phone'] == "79049031399") ? 0.9 : $max_procent;
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
->andWhere(['>=', 'date', $userFound->telegram_created_at])->count());
}
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
- $credit_procent = $userFound && $userFound->source > 0 && $salesCount == 0 ? self::$CREDIT_HIGH_PROCENT : self::$CREDIT_PROCENT;
+ $credit_procent = $userFound && $userFound->source > 0 && $salesCount == 0 ? self::$CREDIT_HIGH_PROCENT : $cashback_rate;
$will_be_credited_bonuses = $credit_procent * $baza;
$will_be_credited_bonuses = round($will_be_credited_bonuses);
$store_id = $result["store_id"];
$seller_id = $result["seller_id"];
- $phone = $result["phone"];
$check_amount = $result["check_amount"];
$check_id = $result["check_id"];
$check_name = $result["check_name"];
$auth_code = $result['auth_code'] ?? 0;
$write_off_bonuses = intval($result["write_off_bonuses"] ?? 0); // только при продаже
- $userBonusLevel = UsersBonusLevels::find()->where(['phone' => $phone])->andWhere(['active' => 1])->one();
+ $user = Users::find()->where(['phone' => $result['phone']])->andWhere(['phone_true' => '1'])->one();
$bonusLevels = BonusLevels::find()->where(['active' => 1])->indexBy('alias')->asArray()->all();
- $bonusLevel = null;
- if ($userBonusLevel) {
- $bonusLevel = $userBonusLevel->bonus_level;
- } else {
- foreach ($bonusLevels as $bonusLevelArr) {
- if ($bonusLevelArr['threshold'] == 0) {
- $bonusLevel = $bonusLevelArr['alias'];
- }
- }
- }
-
+ $bonusLevel = $user->bonus_level ?? "silver";
$cashback_rate = isset($bonusLevels[$bonusLevel]['cashback_rate'])
? $bonusLevels[$bonusLevel]['cashback_rate'] / 100
: self::$FIRST_SALE_PROCENT;
- $referal_rate = isset($bonusLevels[$bonusLevel]['referal_rate'])
- ? $bonusLevels[$bonusLevel]['referal_rate'] / 100
- : self::$CREDIT_HIGH_PROCENT;
+// $referal_rate = isset($bonusLevels[$bonusLevel]['referal_rate'])
+// ? $bonusLevels[$bonusLevel]['referal_rate'] / 100
+// : self::$CREDIT_HIGH_PROCENT;
$bonus_rate = isset($bonusLevels[$bonusLevel]['bonus_rate'])
? $bonusLevels[$bonusLevel]['bonus_rate'] / 100
$mess = [];
file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
- $user = Users::find()->where(['phone' => $result['phone']])->andWhere(['phone_true' => '1'])->one();
+
/** @var $user Users */
if (!$user) {
file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
}
- // $credit_procent_index = $userFound && $userFound->source > 0 && $salesCount == 0 ? 1 : 0;
- $credit_procent_index = 0;
+ $credit_procent_index = $userFound && $userFound->source > 0 && $salesCount == 0 ? 1 : 0;
+
$back1 = $back = round($baza_back * $cashback_rate);
$nm = "Возврат с покупки " . (100 * $cashback_rate) . "% $check_name сумма чека $check_amount";
}
file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
- file_put_contents(self::$USERS_AUTH_CALL_LOG2,
+ file_put_contents(
+ self::$USERS_AUTH_CALL_LOG2,
"" . date("d.m.Y H:i:s", time()) . " PLUS bonus=" . $back . "\n",
- FILE_APPEND | LOCK_EX);
+ FILE_APPEND | LOCK_EX
+ );
file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
if ($credit_procent_index) {
-
file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
- $back = round($baza_back * $cashback_rate);
- $nm = "Возврат с покупки " . (100 * $cashback_rate) . "% $check_name сумма чека $check_amount";
+ $back = round($baza_back * self::$CREDIT_HIGH_PROCENT_PART20);
+ $nm = "Возврат с покупки " . (100 * self::$CREDIT_HIGH_PROCENT_PART20) . "% $check_name сумма чека $check_amount";
$user_balans_new += $back;
- $userBonus2 = new UsersBonus;
+ $userBonus2 = new UsersBonus();
$userBonus2->tip = 'plus';
$userBonus2->tip_sale = 'sale';
$userBonus2->date = date('Y-m-d H:i:s');