Пример #1
0
 public static function getNewShopOrders()
 {
     //получить заказы из магазина
     //формируем условия по статусам и типам отправления из настроек
     $statusID = implode(',', unserialize(Settings::findOne(['field' => 'order_status_sms'])->value));
     $db = Settings::getDbShopConnect();
     if ($db) {
         //получаем заказы из таблицы магазина по условиям
         $orders = $db->createCommand('SELECT orderID,
                                              order_amount,
                                              customerID,
                                              customer_firstname,
                                              spi FROM SC_orders WHERE spi != "" AND statusID IN (' . $statusID . ') ')->queryAll();
     }
     $count = 0;
     //счетчик добавленных заказов
     foreach ($orders as $order) {
         //проверка есть ли уже такой заказ в системе
         if (Orders::find()->where(['order_id' => $order['orderID']])->one() == NULL) {
             //проверка доставлен ли заказ
             $delivery = Orders::checkDeliveryStatus($order['spi']);
             //var_dump($delivery);
             //запись в систему нового доставленного заказа
             if ($delivery['status'] == true) {
                 $phone = $db->createCommand("SELECT reg_field_value FROM SC_customer_reg_fields_values WHERE `reg_field_ID` = '1' AND `customerID` = " . $order['customerID'])->queryOne();
                 $otch = $db->createCommand("SELECT reg_field_value FROM SC_customer_reg_fields_values WHERE `reg_field_ID` = '4' AND `customerID` = " . $order['customerID'])->queryOne();
                 $model = new Orders();
                 $model->order_id = $order['orderID'];
                 $model->spi = $order['spi'];
                 $model->fio = $order['customer_firstname'] . ' ' . $otch['reg_field_value'];
                 $model->phone = $phone['reg_field_value'];
                 $model->amount = $order['order_amount'];
                 $model->delivery_time = $delivery['delivery_time'];
                 $model->delivery_status = $delivery['delivery_status'];
                 $statuses = Orders::OrderProcessing($model);
                 //отправляем SMS 1
                 $model->send_sms_time = $statuses['send_sms_time'];
                 $model->sms_status = $statuses['sms_status'];
                 $model->status = $statuses['status'];
                 if ($model->save()) {
                     $count++;
                 }
                 //заказ добавлен, счетчик +1
             }
         }
     }
     return $count;
 }
Пример #2
0
 public static function getOrderStatusSms()
 {
     $db = Settings::getDbShopConnect();
     if ($db) {
         $array = $db->createCommand('SELECT * FROM SC_order_status')->queryAll();
     } else {
         $array = array();
     }
     $checkedArray = unserialize(Settings::findOne(['field' => 'order_status_sms'])->value);
     if (empty($checkedArray)) {
         $checkedArray = array();
     }
     for ($i = 0; $i < count($array); $i++) {
         if (in_array($array[$i]['statusID'], $checkedArray)) {
             $array[$i]['checked'] = true;
         } else {
             $array[$i]['checked'] = false;
         }
     }
     $provider = new ArrayDataProvider(['allModels' => $array]);
     return $provider;
 }