/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Contasapagar::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, 'dataVencimento' => $this->dataVencimento]);
     return $dataProvider;
 }
Beispiel #2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getIdcontaAPagar()
 {
     return $this->hasOne(Contasapagar::className(), ['idconta' => 'idconta']);
 }
 /**
  * Creates a new Compra model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $modelCompra = new Compra();
     $mensagem = "";
     //Informa ao usuário mensagens de erro na view
     $produtosValorAlterado = [];
     $conta = new Conta();
     $compraProduto = new Compraproduto();
     $produtos = ArrayHelper::map(Produto::find()->where(['isInsumo' => 1])->orderBy('nome ASC')->all(), 'idProduto', 'nome');
     //Recebe o valor total da compra
     $valorTotalDaCompra = 0;
     $categorias = ArrayHelper::map(Categoria::find()->all(), 'idCategoria', 'nome');
     $novoProduto = new Produto();
     $arrayFinal = [];
     $arrayIds = [];
     //Setando valor padrão para a compra
     $modelCompra->valor = 0;
     //Setando tipo de conta padrão para a compra
     $modelCompra->tipoConta = 'contasapagar';
     //Setando situação de pagamento padrão para a compra
     $modelCompra->situacaoPagamento = 1;
     //Setando o fuso horário
     date_default_timezone_set('America/Recife');
     if (Yii::$app->request->post()) {
         $conta->tipoConta = 'contasapagar';
         $conta->descricao = 'Compra de ' . date('d/m/Y', strtotime(Yii::$app->request->post()['Compra']['dataCompra']));
         $conta->descricao = 'Compra de ' . date('d/m/Y', strtotime(Yii::$app->request->post()['Compra']['dataCompra']));
         $compraprodutos = Yii::$app->request->post()['Compraproduto'];
         $valorescompraprodutos = Yii::$app->request->post()['compraproduto-valorcompra-disp'];
         //Inicia a transação:
         $transaction = \Yii::$app->db->beginTransaction();
         try {
             //Tenta salvar um registro :
             if ($conta->save(false)) {
                 $itensInseridos = true;
                 $modelContasAPagar = new Contasapagar();
                 $modelContasAPagar->idconta = $conta->idconta;
                 $arrayIdsProdutoVenda = [];
                 $indice = 0;
                 $modelCompra->idconta = $conta->idconta;
                 $modelCompra->dataCompra = Yii::$app->request->post()['Compra']['dataCompra'];
                 if ($modelContasAPagar->save(false) && $modelCompra->save()) {
                     $compraprodutos = Yii::$app->request->post()['Compraproduto'];
                     $valorescompraprodutos = Yii::$app->request->post()['compraproduto-valorcompra-disp'];
                     for ($i = 0; $i < count($compraprodutos['idProduto']); $i++) {
                         $cp = new Compraproduto();
                         $cp->idCompra = $modelCompra->idconta;
                         $cp->idProduto = $compraprodutos['idProduto'][$i];
                         $cp->quantidade = $compraprodutos['quantidade'][$i];
                         $cp->valorCompra = $valorescompraprodutos[$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";
                             $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 $id) {
                         $produto = Yii::$app->db->createCommand('SELECT idProduto, nome FROM produto WHERE idProduto = :id ', ['id' => $id])->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();
                         $compraProdutos = Compraproduto::find()->where(['idCompra' => $modelCompra->idconta])->all();
                         return $this->render('view', ['modelCompra' => $this->findModel($modelCompra->idconta), 'compraProdutos' => $compraProdutos, 'produtosValorAlterado' => $arrayFinal]);
                     }
                 } else {
                     $transaction->rollBack();
                     $mensagem = "Ocorreu uma falha inesperada ao tentar salvar ";
                 }
             } else {
                 $transaction->rollBack();
                 $mensagem = "Ocorreu uma falha inesperada ao tentar salvar ";
             }
         } catch (\Exception $exception) {
             $transaction->rollBack();
             $mensagem = "Ocorreu uma falha inesperada ao tentar salvar ";
         }
     }
     $modelCompra->dataCompra = date('Y-m-d');
     return $this->render('create', ['modelCompra' => $modelCompra, 'compraProduto' => $compraProduto, 'produtos' => $produtos, 'mensagem' => $mensagem, 'categorias' => $categorias, 'novoProduto' => $novoProduto]);
 }
 /**
  * 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]);
 }
 /**
  * Finds the Contasapagar model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Contasapagar the loaded modelContasapagar
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($modelContasapagar = Contasapagar::findOne($id)) !== null) {
         return $modelContasapagar;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Beispiel #6
0
 public function getContaapagar($idconta)
 {
     return Contasapagar::findOne($idconta);
 }