Exemplo n.º 1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Parcels::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['order_id' => SORT_DESC]]]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'order_id' => $this->order_id, 'statusID' => $this->statusID, 'delivery_period' => $this->delivery_period, 'delivery_lateness' => $this->delivery_lateness]);
     if ($this->status != null && $this->status != '') {
         if ($this->status == 1) {
             $status = 'enabled';
         } else {
             $status = 'disabled';
         }
     } else {
         $status = null;
     }
     if ($this->mailed != null && $this->mailed != '') {
         if ($this->mailed == 1) {
             $mailed = 'yes';
         } else {
             $mailed = 'no';
         }
     } else {
         $mailed = null;
     }
     $query->andFilterWhere(['like', 'spi', $this->spi])->andFilterWhere(['like', 'shipping_type', $this->shipping_type])->andFilterWhere(['like', 'order_time', $this->order_time])->andFilterWhere(['like', 'shop_status', $this->shop_status])->andFilterWhere(['like', 'order_amount', $this->order_amount])->andFilterWhere(['like', 'status_time', $this->status_time])->andFilterWhere(['like', 'mailed', $mailed])->andFilterWhere(['like', 'delivery_status', $this->delivery_status])->andFilterWhere(['like', 'status', $status]);
     return $dataProvider;
 }
Exemplo n.º 2
0
                <?php 
    echo Yii::$app->session->getFlash('success');
    ?>
            </div>
        <?php 
}
?>
        <div class="col-lg-12">
            <?php 
$gridColumns = [['class' => '\\kartik\\grid\\DataColumn', 'attribute' => 'order_id', 'format' => 'raw', 'value' => function ($model, $key, $index, $widget) {
    return Html::a($model->order_id, urldecode(str_replace('[orderID]', $model->order_id, Settings::findOne(['field' => 'app_order_path'])->value)));
}], ['class' => '\\kartik\\grid\\DataColumn', 'attribute' => 'shipping_type'], ['class' => '\\kartik\\grid\\DataColumn', 'attribute' => 'shop_status'], ['class' => '\\kartik\\grid\\DataColumn', 'attribute' => 'status_time'], ['class' => '\\kartik\\grid\\DataColumn', 'attribute' => 'order_amount'], ['class' => '\\kartik\\grid\\DataColumn', 'attribute' => 'spi'], ['class' => 'kartik\\grid\\ExpandRowColumn', 'width' => '50px', 'value' => function ($model, $key, $index, $column) {
    return GridView::ROW_COLLAPSED;
}, 'detailUrl' => Url::to(['site/parceldetail']), 'headerOptions' => ['class' => 'kartik-sheet-style'], 'expandOneOnly' => true, 'detailRowCssClass' => 'nohover'], ['class' => 'kartik\\grid\\EditableColumn', 'editableOptions' => function ($model, $key, $index) {
    return ['header' => 'Cтатус посылки', 'size' => 'md', 'inputType' => \kartik\editable\Editable::INPUT_DROPDOWN_LIST, 'data' => Parcels::listDeliveryStatus()];
}, 'vAlign' => 'middle', 'hAlign' => 'center', 'attribute' => 'delivery_status', 'filterType' => GridView::FILTER_SELECT2, 'filter' => Parcels::listDeliveryStatus(), 'filterInputOptions' => ['prompt' => 'Все'], 'filterWidgetOptions' => ['pluginOptions' => ['allowClear' => true], 'hideSearch' => true], 'format' => 'raw'], ['class' => 'kartik\\grid\\BooleanColumn', 'attribute' => 'mailed', 'value' => function ($model, $key, $index, $widget) {
    if ($model->mailed == 'yes') {
        return true;
    } else {
        return false;
    }
}, 'vAlign' => 'middle', 'trueLabel' => 'Отправлено', 'falseLabel' => 'Не отправлено'], ['class' => 'kartik\\grid\\BooleanColumn', 'attribute' => 'status', 'value' => function ($model, $key, $index, $widget) {
    if ($model->status == 'enabled') {
        return true;
    } else {
        return false;
    }
}, 'vAlign' => 'middle', 'trueLabel' => 'Отслеживается', 'falseLabel' => 'Не отслеживается', 'trueIcon' => '<span class="glyphicon glyphicon-eye-open"></span>', 'falseIcon' => '<span class="glyphicon glyphicon-eye-close"></span>'], ['class' => 'kartik\\grid\\ActionColumn', 'template' => '{mail}{status}', 'buttons' => ['mail' => function ($url, $model) {
    return Html::a('<span class="glyphicon glyphicon-envelope"></span>', $url, ['title' => 'Отправить email с заявкой', 'message' => 'Хотите отправить email с заявкой?', 'class' => 'grid-action', 'style' => 'margin-right:10px;']);
}, 'status' => function ($url, $model) {
    if ($model->status == 'enabled') {
Exemplo n.º 3
0
 public function actionTest()
 {
     $model = Parcels::findOne(1);
     $array = Parcels::generateMailArray($model);
     $content = $this->renderPartial('_letter', ['array' => $array]);
     //        return $this->renderPartial('_letter', [
     //            'array' => $array]);
     $pdf = new Pdf(['mode' => Pdf::MODE_UTF8, 'format' => Pdf::FORMAT_A4, 'orientation' => Pdf::ORIENT_PORTRAIT, 'defaultFontSize' => 2, 'destination' => Pdf::DEST_BROWSER, 'content' => $content]);
     return $pdf->render();
 }
Exemplo n.º 4
0
 public static function checkDeliveryStatus($spi)
 {
     $OperationHistory = Parcels::getOperationHistory($spi);
     if ($OperationHistory) {
         $result['status'] = false;
         foreach ($OperationHistory as $history) {
             if ($history->operationAttribute == 'Прибыло в место вручения') {
                 $result['delivery_time'] = strtotime($history->operationDate);
                 $result['delivery_status'] = 'Доставлено';
                 $result['status'] = true;
             }
             if ($history->operationAttribute == 'Вручение') {
                 $result['$delivery_time'] = strtotime($history->operationDate);
                 $result['delivery_status'] = 'Вручено';
                 $result['status'] = false;
             }
         }
     } else {
         $result['status'] = false;
     }
     return $result;
 }