public function searchKPI($params, $pageSize = 20) { $query = DeliveryNote::find()->where(['delivery_note.state' => 'done']); /*$dataProvider->sort->attributes['saleOrder.date_order'] = [ 'asc' => ['saleOrder.date_order' => SORT_ASC], 'desc' => ['saleOrder.date_order' => SORT_DESC], ];*/ $query->joinWith(['partner', 'saleOrder']); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => $pageSize]]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } if ($this->year_tanggal != null) { $query->andWhere(['and', 'EXTRACT(YEAR FROM delivery_note.tanggal) = ' . $this->year_tanggal]); } if ($this->month_tanggal != null) { $query->andWhere(['and', 'EXTRACT(MONTH FROM delivery_note.tanggal) = ' . $this->month_tanggal]); } if ($this->year_po != null) { $query->andWhere(['and', 'EXTRACT(YEAR FROM sale_order.date_order) = ' . $this->year_po]); } if ($this->month_po != null) { $query->andWhere(['and', 'EXTRACT(MONTH FROM sale_order.date_order) = ' . $this->month_po]); } if ($this->partner_id != null) { $query->andFilterWhere(['ilike', 'res_partner.display_name', $this->partner_id]); } /*if($this->name != null) { $query->andFilterWhere(['ilike', 'delivery_note.name', $this->name]); }*/ return $dataProvider; }