Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Wizardproff

Новачок
  
  • Публікації

    2
  • З нами

  • Відвідування

Про Wizardproff

  • День народження 25.01.84

Інформація

  • Стать
    Мужчина
  • Місто:
    Fryazino

Wizardproff's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

0

Репутація

  1. В массивах новичок и есть много, что еще надо изучить. Помогите разобраться с проблемой: История: Есть несколько поставщиков от них дергаем товары онлайн по API и создаем массив данных, артикул, цена и т.д. Есть настройки в MySQL по поставщикам и там в таблице w_wbs у поставщика есть поля: limit_delivery_active (активны ограничения - параметр 0/1) и limit_delivery_max(лимит в днях поставки). К слову добавлю ощущение, что limit_delivery_max - задумали как дни на ограничение, а по факту это количество позиций.. Далее есть файл на ограничения/лимиты. wbs_limits.model.php - в нем: -------------------------------------------начало файла----------------------------------------------------------------------- <?php class Wbs_limitsModel extends Orm { public static function set_limits( $wbsData = array(), $data = array() ) { $model = new Wbs_limitsModel(); // ставим лимиты по "сроку поставки" - минимальные и от установ. кол-ва // ставим лимиты по "цене" - минимальные и от установ. кол-ва // на будущее // ставим лимиты по "эффективности поставщика" - минимальные и от установ. кол-ва $limits = array(); $limits ['price'] = ($wbsData['limit_price_active'])?$wbsData['limit_price_max']:false; $limits ['delivery'] = ($wbsData['limit_delivery_active'])?$wbsData['limit_delivery_max']:false; if ($limits['price'] || $limits['delivery']) $data = $model->data($data, $limits); return $data; } // конец private function data( $data = array(), $param_limits = array() ) { $model = new Wbs_limitsModel(); $array = array(); // !!!! ПОДГОТОВКА // сортируем по бренду и артикулу // для того чтоб выделить группы для лимитов if (isset($data) && count($data)>0) { foreach ($data as $row) { $row = (array)$row; // если сроки имеет множественное значение типа 2-5 дня, берем максимальный $convert_delivery = $row['DELIVERY']; if (strpos($convert_delivery, "-")){ list( , $convert_delivery) = explode("-", $convert_delivery); } elseif (strpos($convert_delivery, "/")){ list( , $convert_delivery) = explode("/", $convert_delivery); } $array [FuncModel::stringfilter($row['BRAND_NAME']).FuncModel::stringfilter($row['ARTICLE'])] []= array_merge( (array)$row, array('DELIVERY' => (int)$convert_delivery) ); } } // сброс unset($data); // !!!! ОБРАБОТКА $data = array(); // лимитируем выдачу группы бренда if (count($array)>0) { ksort($array); foreach ($array as $key => $row) { // группа бренда и артикула $get_group_of_braart = $array[$key]; // цена - лимиты if (isset($param_limits['price']) && $param_limits['price']){ // сортируем по цене $get_group_of_braart = $model->array_usort_price( $get_group_of_braart ); // проверяем - цены $i = 0; foreach ($get_group_of_braart as $id => $list) { $i++; if ( $param_limits['price'] >= $i ){ // возврат $data []= $list; // удаляем что уже привязали unset($get_group_of_braart[$id]); } else break; } } // поставка срок - лимиты if (isset($param_limits['delivery']) && $param_limits['delivery']) { if (count($get_group_of_braart)>0) { // сортируем по поставке $get_group_of_braart = $model->array_usort_delivery( $get_group_of_braart ); // проверяем - поставка $i = 0; $day = $wbsData['limit_delivery_max']; // переменная для отсекания по дням поставки foreach ($get_group_of_braart as $list) { $i++; if ( $param_limits['delivery'] >= $i) $data []= $list; else break; } } } // сброс unset($array[$key], $get_group_of_braart); } } unset($array); return $data; } // конец // сортировка function array_usort_delivery($array) { usort($array, function($lft, $rgt) { if ($lft['DELIVERY'] > $rgt['DELIVERY']) return 1; if ($lft['DELIVERY'] < $rgt['DELIVERY']) return -1; if ($lft['DELIVERY'] == $rgt['DELIVERY'] && $lft['PRICE'] > $rgt['PRICE']) return 1; if ($lft['DELIVERY'] == $rgt['DELIVERY'] && $lft['PRICE'] < $rgt['PRICE']) return -1; return 0; }); return $array; } function array_usort_price($array) { usort($array, function($lft, $rgt) { if ($lft['PRICE'] > $rgt['PRICE']) return 1; if ($lft['PRICE'] < $rgt['PRICE']) return -1; return 0; }); return $array; } // конец } ?> -------------------------------------------конец файла----------------------------------------------------------------------- Вопрос главный как сделать, что бы фильтр ограничения по дням доставки работал как фильтр ОГРАНИЧЕНИЯ по дням доставки. Беря данные в ячейках от текущего поставщика, которого он обрабатывает и режет товар, который по дням поставки больше.
  2. Надеюсь просто советом в поиске помогу. Ставь как первый вариант: Dreamweaver В нем есть очень удобный поиск по каталогу(папке) Область поиска - Папка Найти - Исходный код Очень многое так было найдено в самых недрах сайтов))) Если оно не найдет по таким параметрам, то просто там его нет!)) Или измени запрос немного его сократив!
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.