/** * 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; }
/** * @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.'); } }
public function getContaapagar($idconta) { return Contasapagar::findOne($idconta); }