Exemplo n.º 1
0
 public static function updateCogs($params, $logs = [])
 {
     $cogs = Cogs::findOne(['id_product' => $params['id_product']]);
     if (!$cogs) {
         $cogs = new Cogs();
         $cogs->setAttributes(['id_product' => $params['id_product'], 'id_uom' => $params['id_uom'], 'cogs' => 0.0]);
     }
     $cogs->cogs = 1.0 * ($cogs->cogs * $params['old_stock'] + $params['price'] * $params['added_stock']) / ($params['old_stock'] + $params['added_stock']);
     if (!empty($logs) && $cogs->canSetProperty('logParams')) {
         $cogs->logParams = $logs;
     }
     if (!$cogs->save()) {
         throw new UserException(implode(",\n", $cogs->firstErrors));
     }
     return true;
 }
Exemplo n.º 2
0
 public function search($params)
 {
     $query = CogsModel::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id_product' => $this->id_product, 'id_uom' => $this->id_uom, 'create_by' => $this->create_by, 'update_by' => $this->update_by]);
     $query->andFilterWhere(['like', 'cogs', $this->cogs])->andFilterWhere(['like', 'create_at', $this->create_at])->andFilterWhere(['like', 'update_at', $this->update_at]);
     return $dataProvider;
 }
Exemplo n.º 3
0
 protected function updateCogs($params)
 {
     $cogs = Cogs::findOne(['id_product' => $params['id_product']]);
     if (!$cogs) {
         $cogs = new Cogs(['id_product' => $params['id_product'], 'cogs' => 0.0]);
     }
     $current_stock = MasterHelper::getCurrentStockAll($params['id_product']);
     $qty_per_uom = MasterHelper::getQtyProductUom($params['id_product'], $params['id_uom']);
     $added_stock = $params['qty'] * $qty_per_uom;
     if ($current_stock + $added_stock != 0) {
         $cogs->cogs = 1.0 * ($cogs->cogs * $current_stock + $params['price'] * $params['qty']) / ($current_stock + $added_stock);
     } else {
         $cogs->cogs = 0;
     }
     if ($cogs->canSetProperty('logParams')) {
         $cogs->logParams = ['app' => $params['app'], 'id_ref' => $params['id_ref']];
     }
     if (!$cogs->save()) {
         throw new UserException(implode(",\n", $cogs->firstErrors));
     }
     return true;
 }
Exemplo n.º 4
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getCogs()
 {
     return $this->hasMany(Cogs::className(), ['id_uom' => 'id_uom']);
 }
Exemplo n.º 5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getIdCogs()
 {
     return $this->hasOne(Cogs::className(), ['id_product' => 'id_product']);
 }