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