// массив с id товарыми не участвующих в бонусной
$items_arr_no = array_values(ArrayHelper::map(
UniversalCatalogItem::find()->where(['catalog_alias' => 'unused_nomenclature'])->all(), 'guid', 'guid'));
+ $items_arr_no_bonus_writeoffs = array_values(ArrayHelper::map(
+ UniversalCatalogItem::find()->where(['catalog_alias' => 'non_bonusable_goods'])->all(), 'guid', 'guid'));
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
-// $items_arr_no = [];
-// $items_arr_no[] = "a3d4e24f-3373-11e9-babd-408d5cd22d1e";
-// $items_arr_no[] = "40148db7-f9b2-11eb-af2b-98eecb8ceff8";
-// //$items_arr_no[]="bdd17599-09d8-11e5-bd74-1c6f659fb563"; // тюльпаны
-// //$items_arr_no[]="f8c1a067-3dfb-11e9-bac5-408d5cd22d1e"; // тюльпаны 39-90 100 шт.
-// //$items_arr_no[]="ccbd228d-9af0-11ec-9b41-7c10c9872bb9"; // тюльпан 50.
-// $items_arr_no[] = "5cf27236-b4ec-11e8-93c5-1c6f659fb563"; // фаленопсис
$all_amount = 0;
$has_actions = false;
- $summa_no = 0; // пробегаемся по массиву с товарами и считаем сумму вычета
+ $summa_no = 0;
+ $summa_no_writeoffs = 0;
if (!empty($result["items"])) {
foreach ($result["items"] as $item) {
if (in_array($item["product_id"], $items_arr_no)) {
$summa_no = $summa_no + $item["price"] * $item["quantity"];
$has_actions = true;
+ } else if (in_array($item["product_id"], $items_arr_no_bonus_writeoffs)) {
+ $summa_no_writeoffs = $summa_no_writeoffs + $item["price"] * $item["quantity"];
}
$all_amount += $item["price"] * $item["quantity"];
}
}
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
- $baza = $all_amount - $summa_no;
+ $baza_nachislenie = $all_amount - $summa_no;
$check_amount = $check_amount - $summa_no;
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
}
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 : $cashback_rate;
- $will_be_credited_bonuses = $credit_procent * $baza;
+ $will_be_credited_bonuses = $credit_procent * $baza_nachislenie;
$will_be_credited_bonuses = round($will_be_credited_bonuses);
$mess["will_be_credited_bonuses"] = $will_be_credited_bonuses;
$name = $user->name;
$user_balans = ClientHelper::getBonusBalance($result['phone']);
file_put_contents(self::OUT_DIR . '/get_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
- if ($baza < 0) {
- $baza = 0;
+ $baza_spisanie = $baza_nachislenie - $summa_no_writeoffs;
+ if ($baza_spisanie < 0) {
+ $baza_spisanie = 0;
}
- $max = $baza * $percent; // максимально можем разрешить списывать до 30 процентов от суммы заказа
+ $max = $baza_spisanie * $percent; // максимально можем разрешить списывать до 30 процентов от суммы заказа
$max = round($max);
$available_bonus = $user_balans;
if ($available_bonus > $max) { // если баллов бонусов больше чем 30 процентов списываем по максимуму 30
$amount_real = 0;
$items_arr_no = array_values(ArrayHelper::map(
UniversalCatalogItem::find()->where(['catalog_alias' => 'unused_nomenclature'])->all(), 'guid', 'guid'));
+ $items_arr_no_bonus_writeoffs = array_values(ArrayHelper::map(
+ UniversalCatalogItem::find()->where(['catalog_alias' => 'non_bonusable_goods'])->all(), 'guid', 'guid'));
file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
- $summa_no = 0; //пробегаемся по массиву с товарами и считаем сумму вычета
+ $summa_no = 0;
+ $summa_no_writeoffs = 0;
$amount_all = 0;
file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
foreach ($result['items'] as $item) {
if (in_array($item["product_id"], $items_arr_no)) {
$summa_no = $summa_no + $item["price"] * $item["quantity"];
+ } if (in_array($item["product_id"], $items_arr_no_bonus_writeoffs)) {
+ $summa_no_writeoffs = $summa_no_writeoffs + $item["price"] * $item["quantity"];
} else {
$amount_real = $amount_real + $item["price"] * $item["quantity"];
}
file_put_contents(self::OUT_DIR . '/sale_bonuses_' . $fl . '.json', PHP_EOL . '--' . __LINE__, FILE_APPEND);
// сумма со скидкой
$summa_chek = $amount_all - $write_off_bonuses;
- $baza_back = $amount_real - $write_off_bonuses;
+ $baza_back = $amount_real + $summa_no_writeoffs - $write_off_bonuses;
$mess = [];