/**
  * 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]);
 }
Esempio n. 2
0
 /**
  * @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;
 }