/** * 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; }
<?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') {
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(); }
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; }