Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- define( "BONUS_ACTIVATE_ORDERS_CNT", 1);
- define( "BONUS_ACTIVATE_AVERAGE_SUM", 1000);
- define( "BONUS_IBLOCK_ID", 4);
- $arSelectBonus = Array("ID" , "NAME", "PROPERTY_PROP1", "PROPERTY_PROP2", "PROPERTY_PROP3", "PROPERTY_PROP4");
- $arFilterBonus = Array("ID" , "<=PROPERTY_PROP3" <= date( "d.m.Y" )); // "PROPERTY_PROP2" <= date( "d.m.Y" )); // <= такого знака нет. В массиве это означает что у KEY => VALUE, т.е. показывает что у ключа такое значение если простым языком говорить / знак меньше или равно, ставится в KEY массива!!! и код свойство даты активации PROP3
- $NeedBonusElementsArr = getFromIB( BONUS_IBLOCK_ID, $arSelectBonus, $arFilterBonus );
- // делаем проверку, если массив с бонусами на дату не пустой, тогда только запускаем наш скрипт
- // START
- if( !empty( $NeedBonusElementsArr ) ) {
- // перерисовываем полученный массив по пользователю
- // я просил чтобы ты перерисовал массив чтобы сгруппировать по ID пользователю
- // надо чтобы массив приобрел такой вид
- // {
- // USER_ID => array(
- // 0 => array(
- // BONUS_SUM => 100,
- // BONUS_NAME => NAME,
- // )
- // )
- // }
- // это делается так
- $usersBonusesArr = array();
- $i = 0;
- foreach ($NeedBonusElementsArr as $usersBonusElement) {
- $usersBonusesArr[$usersBonusElement["PROPERTY_PROP5_VALUE"]][$i]["BONUS_SUM"] = $usersBonusElement["PROPERTY_PROP1_VALUE"];
- $usersBonusesArr[$usersBonusElement["PROPERTY_PROP5_VALUE"]][$i]["BONUS_NAME"] = $usersBonusElement["NAME"];
- $i++;
- }
- // теперь, если ты сделаешь print_r( $usersBonusesArr ), ты увидишь массив в том виде как я описал выше.
- // дальше, пройди в цикле этот массив $usersBonusesArr так foreach ( $usersBonusesArr as $userBonusKey => $userBonusValue )
- // внутрь цикле перенеси скрипт который вчера писли который получает все заказы, делает подсчет и общую сумму заказов.
- // только вместо $USER->GetID() в фильтре заказов, подставь $userBonusKey потому что в нем теперь хранится ID пользователей.
- $usersBonusesArr = getFromIB( BONUS_IBLOCK_ID, $arSelectBonus, $arFilterBonus );
- foreach ( $usersBonusesArr as $userBonusKey => $userBonusValue ){
- $arFilter = Array(
- "USER_ID" => $userBonusKey,
- "STATUS_ID" => "F",
- );
- $arSelectFields = Array();
- $ordersCount = 0;
- $totalOrdersSum = 0;
- $db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
- while ($ar_sales = $db_sales->Fetch())
- {
- $ordersCount++;
- $totalOrdersSum += $ar_sales["PRICE"];
- }
- echo '<pre>';
- print_r($userBonusValue);
- echo '</pre>';
- // получаем все заказы пользователя и делаем подсчет
- // делаем проверку, если количество заказов больше 1 и сумма заказов больше 3000
- // количество заказов = 1 и сумма заказов >= 3000 определен статичным массивом
- if($ordersCount >= BONUS_ACTIVATE_ORDERS_CNT && $totalOrdersSum >= BONUS_ACTIVATE_AVERAGE_SUM){
- echo $userBonusKey." ".$ordersCount."<br>";
- echo $totalOrdersSum."<br>";
- }
- }
- // END
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement