/**
  * Updates an existing Custofixo model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $modelCustofixo = $this->findModel($id);
     $tiposCustoFixo = ArrayHelper::map(Tipocustofixo::find()->all(), 'idtipocustofixo', 'tipocustofixo');
     if ($modelCustofixo->load(Yii::$app->request->post()) && $modelCustofixo->save()) {
         return $this->redirect(['view', 'id' => $modelCustofixo->idconta]);
     } else {
         return $this->render('update', ['modelCustofixo' => $modelCustofixo, 'tiposCustoFixo' => $tiposCustoFixo]);
     }
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Tipocustofixo::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['idtipocustofixo' => $this->idtipocustofixo]);
     $query->andFilterWhere(['like', 'tipocustofixo', $this->tipocustofixo]);
     return $dataProvider;
 }
Example #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTipocustofixoIdtipocustofixo()
 {
     return $this->hasOne(Tipocustofixo::className(), ['idtipocustofixo' => 'tipocustofixo_idtipocustofixo']);
 }
 /**
  * Updates an existing Conta model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $modelConta = $this->findModel($id);
     //Guarda o tipo de conta
     $tipodeConta = $modelConta->tipoConta;
     $mensagem = "";
     //Informa ao usuário mensagens de erro na view
     $tiposConta = ['contasapagar' => 'Conta a pagar', 'contasareceber' => 'Conta a receber', 'custofixo' => 'Custo Fixo'];
     if (Contasapagar::findOne($id)) {
         $modelContaapagar = Contasapagar::findOne($id);
     } else {
         $modelContaapagar = new Contasapagar();
     }
     if (Contasareceber::findOne($id)) {
         $modelContasareceber = Contasareceber::findOne($id);
     } else {
         $modelContasareceber = new Contasareceber();
     }
     if (Custofixo::findOne($id)) {
         $modelCustofixo = Custofixo::findOne($id);
     } else {
         $modelCustofixo = new Custofixo();
     }
     $tiposCustoFixo = ArrayHelper::map(Tipocustofixo::find()->all(), 'idtipocustofixo', 'tipocustofixo');
     if ($modelConta->load(Yii::$app->request->post())) {
         $modelConta->tipoConta = $tipodeConta;
         //Inicia a transação:
         $transaction = \Yii::$app->db->beginTransaction();
         try {
             //Tenta salvar um registro :
             if ($modelConta->save()) {
                 $itemInserido = true;
                 $conta = Yii::$app->request->post()['Conta'];
                 $contasapagar = Yii::$app->request->post()['Contasapagar'];
                 $contasareceber = Yii::$app->request->post()['Contasareceber'];
                 $custofixo = Yii::$app->request->post()['Custofixo'];
                 if ($conta['tipoConta'] == 'contasapagar') {
                     $modelContaapagar->idconta = $modelConta->idconta;
                     $modelContaapagar->dataVencimento = $contasapagar['dataVencimento'];
                     if (!$modelContaapagar->save()) {
                         $mensagem = "Não foi possível salvar os dados de algum item do Pedido";
                         $transaction->rollBack();
                         //desfaz alterações no BD
                         $itemInserido = false;
                     }
                 } else {
                     if ($conta['tipoConta'] == 'contasareceber') {
                         $modelContasareceber->idconta = $modelConta->idconta;
                         if ($contasareceber['dataHora'] != null) {
                             $modelContasareceber->dataHora = $contasareceber['dataHora'];
                             if (!$modelContasareceber->save()) {
                                 $mensagem = "Não foi possível salvar os dados";
                                 $transaction->rollBack();
                                 //desfaz alterações no BD
                                 $itemInserido = false;
                             }
                         }
                     } else {
                         if ($conta['tipoConta'] == 'custofixo') {
                             $modelCustofixo->idconta = $modelConta->idconta;
                             $modelContaapagar->idconta = $modelConta->idconta;
                             $modelContaapagar->dataVencimento = $contasapagar['dataVencimento'];
                             $modelCustofixo->consumo = $custofixo['consumo'];
                             $modelCustofixo->tipocustofixo_idtipocustofixo = $custofixo['tipocustofixo_idtipocustofixo'];
                             if ($modelContaapagar->save()) {
                                 if (!$modelCustofixo->save()) {
                                     $mensagem = "Não foi possível salvar os dados ";
                                     $transaction->rollBack();
                                     //desfaz alterações no BD
                                     $itemInserido = false;
                                 }
                             } else {
                                 $mensagem = "Não foi possível salvar os dados";
                                 $transaction->rollBack();
                                 //desfaz alterações no BD
                                 $itemInserido = false;
                             }
                         }
                     }
                 }
                 if ($itemInserido) {
                     $transaction->commit();
                     return $this->redirect(['view', 'id' => $modelConta->idconta]);
                 }
             }
         } catch (\Exception $exception) {
             $transaction->rollBack();
             $mensagem = "Ocorreu uma falha inesperada ao tentar salvar ";
         }
     }
     return $this->render('update', ['modelConta' => $modelConta, 'tiposConta' => $tiposConta, 'modelContaapagar' => $modelContaapagar, 'modelContasareceber' => $modelContasareceber, 'modelCustofixo' => $modelCustofixo, 'tiposCustoFixo' => $tiposCustoFixo, 'mensagem' => $mensagem]);
 }
Example #5
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;
 }
 /**
  * Finds the Tipocustofixo model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Tipocustofixo the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($modelTipocustofixo = Tipocustofixo::findOne($id)) !== null) {
         return $modelTipocustofixo;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }