/** * Deletes an existing Custofixo model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { //Guarda a mensagem $mensagem = ""; $transaction = \Yii::$app->db->beginTransaction(); try { if ($this->findModel($id)->delete()) { $transaction->commit(); } } catch (\Exception $exception) { $transaction->rollBack(); $mensagem = "Ocorreu uma falha inesperada ao tentar salvar "; } $searchModel = new CustofixoSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'mensagem' => $mensagem]); }
/** * @param $idprodutoVenda * @return float|int * Calcula os custos de um Produto Venda, de acordo com o preço de compra(Valor da compra mais * atual) de um insumo e também de acordo com os custos fixos(Total de produtos vendidos/ total consumo * em um mês) * */ public function calculoPrecoProduto($idprodutoVenda) { //Busca e guarda todos os insumos do Produto Venda $insumos = Insumo::find()->where(['idprodutoVenda' => $idprodutoVenda])->all(); $precosugerido = 0; //Model para a busca dos dados de Produto $searchModel = new ProdutoSearch(); //Guarda a soma da quantidade de Produtos Venda vendidos no mês $sumQuantidadeVendaProdutoVenda = $searchModel->searchQuantidadeProdutosEmVendas($idprodutoVenda); //Busca e guarda todos os tipos de Custo Fixo $tiposCustoFixo = Tipocustofixo::find()->all(); $consumosCustoFixo = []; //Model para a busca dos dados de Custo Fixo $searchModelCustoFixo = new CustofixoSearch(); $arrayTipoCustoFixoZero = []; //Guarda o consumo mensal de cada tipo de Custo Fixo foreach ($tiposCustoFixo as $custoFixo) { $consumoCustoFixo = $searchModelCustoFixo->searchConsumoCustoFixoporTipoMensal($custoFixo->idtipocustofixo); array_push($consumosCustoFixo, $consumoCustoFixo); if ($consumoCustoFixo > 0) { $ct = $sumQuantidadeVendaProdutoVenda / $consumoCustoFixo; $precosugerido += $ct; } else { array_push($arrayTipoCustoFixoZero, $custoFixo->tipocustofixo); } } if ($arrayTipoCustoFixoZero != null) { Yii::$app->session->setFlash('custofixozerados', "<div class=\"alert alert-warning\">\n Não foram calculados os custos fixos de " . implode(",", $arrayTipoCustoFixoZero) . " pois não\n há registro(s) dele(s) no mês anterior\n </div>"); } //Soma o(s) valor(es) do(s) insumo(s) do produto venda ao custo do produto foreach ($insumos as $key => $insumo) { $produtoCompra = $searchModel->searchProdutosCompra($insumo->idprodutoInsumo); if ($insumo != null && $produtoCompra != null) { $precosugerido += $produtoCompra->valorCompra * $insumo->quantidade / $produtoCompra->quantidade; } } return $precosugerido; }