/** * Updates an existing Contasareceber model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $modelContasareceber = $this->findModel($id); $contas = ArrayHelper::map(Conta::find()->where('idconta not in (select idconta from contasareceber) && idconta not in (select idconta from contasapagar)')->all(), 'idconta', 'descricao'); if ($modelContasareceber->load(Yii::$app->request->post()) && $modelContasareceber->save()) { return $this->redirect(['view', 'id' => $modelContasareceber->idconta]); } else { return $this->render('update', ['modelContasareceber' => $modelContasareceber, 'contas' => $contas]); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Conta::find(); // add conditions that should always apply here $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10], 'sort' => ['defaultOrder' => ['idconta' => SORT_DESC]]]); $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(['idconta' => $this->idconta, 'valor' => $this->valor, 'situacaoPagamento' => $this->situacaoPagamento]); $query->andFilterWhere(['like', 'descricao', $this->descricao])->andFilterWhere(['like', 'tipoConta', $this->tipoConta]); return $dataProvider; }
/** * @return \yii\db\ActiveQuery */ public function getConta() { return $this->hasOne(Conta::className(), ['idconta' => 'idconta']); }
/** * Updates an existing Compra model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $modelCompra = $this->findModel($id); $conta = Conta::findOne($modelCompra->idconta); $mensagem = ""; //Informa ao usuário mensagens de erro na view $compraProduto = new Compraproduto(); $produtos = ArrayHelper::map(Produto::find()->where(['isInsumo' => 1])->orderBy('nome ASC')->all(), 'idProduto', 'nome'); $produtosDaCompras = Compraproduto::find()->where(['idCompra' => $id])->all(); //Recebe o valor total da compra $valorTotalDaCompra = 0; $novoProduto = new Produto(); $produtosValorAlterado = []; $arrayFinal = []; $arrayIds = []; if (Yii::$app->request->post()) { $itensInseridos = true; //Inicia a transação: $transaction = \Yii::$app->db->beginTransaction(); // try { $compraProdutoAux = Yii::$app->request->post()['Compraproduto']; $compraProdutos = Compraproduto::find()->where(['idCompra' => $id])->all(); if (count($compraProdutos) > 0) { foreach ($compraProdutos as $cp) { $cp->delete(); } } for ($i = 0; $i < count($compraProdutoAux['idProduto']); $i++) { $cp = new Compraproduto(); $cp->idCompra = $id; $cp->idProduto = $compraProdutoAux['idProduto'][$i]; $cp->quantidade = $compraProdutoAux['quantidade'][$i]; $cp->valorCompra = Yii::$app->request->post()['compraproduto-valorcompra-disp'][$i]; if ($cp->comparaPrecoProduto($cp)) { $lp = $novoProduto->getListaInsumos($cp->idProduto); foreach ($lp as $key) { $produto = Yii::$app->db->createCommand('SELECT idProduto, nome FROM produto WHERE idProduto = :id ', ['id' => $key['idprodutoVenda']])->queryOne(); array_push($produtosValorAlterado, $produto); } } for ($j = 0; $j < count($produtosValorAlterado); $j++) { array_push($arrayIds, $produtosValorAlterado[$j]['idProduto']); } if (!$cp->save(false)) { $mensagem = "Não foi possível salvar os dados de algum"; $transaction->rollBack(); //desfaz alterações no BD $itensInseridos = false; break; //encerra o laço for } else { $valorTotalDaCompra += floatval($cp->valorCompra); } } $arrayIds = array_unique($arrayIds); foreach ($arrayIds as $idProduto) { $produto = Yii::$app->db->createCommand('SELECT idProduto, nome FROM produto WHERE idProduto = :id ', ['id' => $idProduto])->queryOne(); array_push($arrayFinal, $produto); } $modelCompra->valor = $valorTotalDaCompra; if (!$modelCompra->save(false)) { $mensagem = "Não foi possível salvar os dados "; $transaction->rollBack(); //desfaz alterações no BD $itensInseridos = false; } else { $conta->valor = $modelCompra->valor; if (!$conta->save(false)) { $mensagem = "Não foi possível salvar os dados "; $transaction->rollBack(); //desfaz alterações no BD $itensInseridos = false; } } if ($itensInseridos) { $transaction->commit(); return $this->redirect(['view', 'id' => $modelCompra->idconta, 'produtosValorAlterado' => $arrayFinal]); } /*} catch (\Exception $exception) { $transaction->rollBack(); $mensagem = "Ocorreu uma falha inesperada ao tentar salvar "; }*/ } return $this->render('update', ['modelCompra' => $modelCompra, 'compraProduto' => $compraProduto, 'produtos' => $produtos, 'produtosDaCompras' => $produtosDaCompras, 'mensagem' => $mensagem]); }
/** * Finds the Conta model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Conta the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($modelConta = Conta::findOne($id)) !== null) { return $modelConta; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }