/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = SalesModel::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'branch_id' => $this->branch_id, 'customer_id' => $this->customer_id, 'date' => $this->date, 'value' => $this->value, 'discount' => $this->discount, 'status' => $this->status, 'created_at' => $this->created_at, 'created_by' => $this->created_by, 'updated_at' => $this->updated_at, 'updated_by' => $this->updated_by]); $query->andFilterWhere(['like', 'number', $this->number]); return $dataProvider; }
/** * @return \yii\db\ActiveQuery */ public function getSales() { return $this->hasOne(Sales::className(), ['id' => 'sales_id']); }
/** * Handler for Good Movement created. * It used to update stock * @param \dee\base\Event $event */ public function movementRejected($event) { /* @var $model MGoodsMovement */ $model = $event->params[0]; if (!in_array($model->reff_type, $this->types)) { return; } $sales = MSales::findOne($model->reff_id); $salesItems = ArrayHelper::index($sales->items, 'product_id'); // change total qty for reff document /* @var $salesDtl \biz\api\models\sales\SalesDtl */ foreach ($model->items as $detail) { $salesDtl = $salesItems[$detail->product_id]; $salesDtl->total_release -= $detail->qty; $salesDtl->save(false); } }