/** * Retorna a lista de Produtos Venda que possuem um determinado Insumo * @return string * @throws NotFoundHttpException */ public function actionListadeprodutosporinsumo() { $modelProduto = new Produto(); $insumos = ArrayHelper::map(Produto::find()->join('INNER JOIN', 'insumo', 'idProduto = idprodutoInsumo ')->where(['isInsumo' => 1])->all(), 'idProduto', 'nome'); if (Yii::$app->request->post()) { $searchModel = new ProdutoSearch(); $listadeprodutosvenda = $searchModel->searchProdutosVenda(Yii::$app->request->post()); $nomeInsumo = $this->findModel(Yii::$app->request->post()['idinsumo'])->nome; $produtosVenda = array(); foreach ($listadeprodutosvenda as $pv) { array_push($produtosVenda, $modelProduto::findOne($pv->idprodutoVenda)); } return $this->render('listadeprodutosporinsumo', ['insumos' => $insumos, 'produtosVenda' => $produtosVenda, 'nomeInsumo' => $nomeInsumo]); } else { return $this->render('listadeprodutosporinsumo', ['insumos' => $insumos]); } }
public function actionSelecionaProdutos() { $searchModel = new ProdutoSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('selecionaProdutos', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); }
/** * @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; }