/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = CaixaAberturaFechamento::find(); $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; } $query->andFilterWhere(['id' => $this->id, 'valor' => $this->valor, 'data' => $this->data, 'caixa_id' => $this->caixa_id]); $query->andFilterWhere(['like', 'tipo', $this->tipo])->andFilterWhere(['like', 'observacao', $this->observacao]); return $dataProvider; }
/** * Displays a single DebitoAntigo model. * @param integer $id * @return mixed */ public function actionView($id) { $model = $this->findModel($id); $user = User::find()->where(['iduser' => Yii::$app->user->id])->one(); //Verifica se caixa aberto pelo usuário $caixa = Caixa::find()->where(['loja_idloja' => $user->loja_idloja])->one(); $caixaAberturaFechamentoVerify = CaixaAberturaFechamento::find()->where(['caixa_id' => $caixa->idcaixa])->orderBy('data DESC')->one(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { $connection = \Yii::$app->db; //throw Exception('Unable to save record.'); $transaction = $connection->beginTransaction(); try { $model->status = 'Pago'; $model->data_pagamento = date('Y-m-d H:i:s'); if (!$model->save()) { throw new Exception('Não foi possível salvar - #1.'); } //Se for dinheiro if ($model->forma_pagamento_id == FormaPagamento::DINHEIRO) { $caixaMovimentacao = new CaixaMovimentacao(); $caixaMovimentacao->data = date('Y-m-d H:i:s'); $caixaMovimentacao->valor = $model->valor; $caixaMovimentacao->caixa_movimentacao_tipo_id = 5; $caixaMovimentacao->caixa_idcaixa = $caixa->idcaixa; $caixaMovimentacao->validate(); if (!$caixaMovimentacao->save()) { throw new Exception('Não foi possível salvar - #2.'); } $caixa->valor += $model->valor; if (!$caixa->save()) { throw new Exception('Não foi possível salvar - #3.'); } } $transaction->commit(); Yii::$app->session->setFlash('success', \Yii::t('app', "Quitado com sucesso. ")); return $this->redirect(['index']); Yii::$app->end(); } catch (Exception $e) { Yii::$app->session->setFlash('danger', \Yii::t('app', 'Ops! Tivemos um erro. Tente novamente ou fale conosco')); $transaction->rollback(); return $this->refresh(); } return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('view', ['model' => $this->findModel($id), 'caixaAbertura' => $caixaAberturaFechamentoVerify, 'user' => $user]); } }
/** * Finds the CaixaAberturaFechamento model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @param string $tipo * @param string $data * @return CaixaAberturaFechamento the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id, $tipo, $data) { if (($model = CaixaAberturaFechamento::findOne(['id' => $id, 'tipo' => $tipo, 'data' => $data])) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * Creates a new Venda model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { /*$data = '02/08/2015'; echo $dataConvertida = Yii::$app->utilcomponent->ConvDateToMySQL($data); echo '<br>'; echo date('Y-m-d'); if($dataConvertida == date('Y-m-d')){ echo 'igual'; } die;*/ $user = User::find()->where(['iduser' => Yii::$app->user->id])->one(); //Verifica se caixa aberto pelo usuário $caixa = Caixa::find()->where(['loja_idloja' => $user->loja_idloja])->one(); $caixaAberturaFechamentoVerify = CaixaAberturaFechamento::find()->where(['caixa_id' => $caixa->idcaixa])->orderBy('data DESC')->one(); if ($caixaAberturaFechamentoVerify != null and ($caixaAberturaFechamentoVerify->user_id != $user->id and $caixaAberturaFechamentoVerify->tipo == 'abertura' or $caixaAberturaFechamentoVerify->tipo == 'fechamento')) { $this->redirect(['caixa/abrir']); } $model = new Venda(); $model->data = date('Y-m-d H:i:m'); $model->loja_idloja = $user->loja_idloja; $vendaHasProduto = new VendaHasProduto(); $parcela = new Parcela(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { //VarDumper::dump($_POST,10,true);die; //Alisson, sempre que quiser DEBUGAR o código, faça como eu fiz na linha abaixo. Primeiro, imprime os valores $_POST que chegaram aqui e depois com DIE mata o processo, não deixando a aplicação continuar e salvar a venda. Serve para apenas vc conferir como os valores estão chegando. $connection = \Yii::$app->db; //throw Exception('Unable to save record.'); $transaction = $connection->beginTransaction(); try { $model->desconto = $model->desconto == NULL ? 0 : $model->desconto; if (!$model->save()) { throw new Exception('Não foi possível salvar - #1.'); } foreach ($_POST['VendaHasProduto'] as $item) { //ESTOQUE $estoque = Estoque::find()->where(['produto_idproduto' => $item['produto_idproduto'], 'loja_idloja' => $model->loja_idloja])->one(); if ($estoque->quantidade < $item['quantidade']) { //erro de validaçao aqui e chamar um exception } $estoque->quantidade -= $item['quantidade']; if (!$estoque->save()) { throw new Exception('Não foi possível salvar - #2.'); } //VENDA HAS PRODUTO $vendaHasProduto = new VendaHasProduto(); $vendaHasProduto->venda_idvenda = $model->idvenda; $vendaHasProduto->produto_idproduto = $item['produto_idproduto']; $vendaHasProduto->quantidade = $item['quantidade']; $vendaHasProduto->valor_unitario = Yii::$app->utilcomponent->formatNumberToMysql($item['valor_unitario']); if (!$vendaHasProduto->save()) { throw new Exception('Não foi possível salvar - #3.'); } } foreach ($_POST['Parcela'] as $key => $p) { //VENDA TEM PARCELAS $parcela = new Parcela(); $parcela->data_vencimento = Yii::$app->utilcomponent->ConvDateToMySQL($p['data_vencimento']); $parcela->valor_a_pagar = Yii::$app->utilcomponent->formatNumberToMysql($p['valor_a_pagar']); $parcela->parcela = $key; $parcela->venda_idvenda = $model->idvenda; $parcela->forma_pagamento_id = $p['forma_pagamento_id']; if ($parcela->data_vencimento == date('Y-m-d') and $p['forma_pagamento_id'] == FormaPagamento::DINHEIRO) { $parcela->data_pagamento = date('Y-m-d H:i:s'); $parcela->valor_pago = $parcela->valor_a_pagar; $parcela->status = 'paga'; $caixa->valor = $caixa->valor + $parcela->valor_pago; if (!$caixa->save()) { throw new Exception('Não foi possível salvar - #4.'); } $caixaMovimentacao = new CaixaMovimentacao(); $caixaMovimentacao->data = date('Y-m-d H:i:s'); $caixaMovimentacao->valor = $parcela->valor_pago; $caixaMovimentacao->caixa_movimentacao_tipo_id = 5; $caixaMovimentacao->caixa_idcaixa = $caixa->idcaixa; if (!$caixaMovimentacao->save()) { throw new Exception('Não foi possível salvar - #5.'); } } else { if ($p['forma_pagamento_id'] != FormaPagamento::DINHEIRO or $p['forma_pagamento_id'] == FormaPagamento::DINHEIRO & $parcela->data_vencimento != date('Y-m-d')) { //$parcela->data_pagamento = date('Y-m-d H:i:s'); //$parcela->valor_pago = $parcela->valor_a_pagar; $parcela->status = 'aberta'; } } if (!$parcela->save()) { foreach ($parcela->firstErrors as $erro) { $erro = $erro; break; } throw new Exception('Não foi possível salvar - #6.' . $erro); } } $transaction->commit(); return $this->redirect(['view', 'id' => $model->idvenda]); Yii::$app->session->setFlash('success', \Yii::t('app', "Sucesso. ")); return $this->refresh(); } catch (Exception $e) { Yii::$app->session->setFlash('danger', $e->getMessage()); $transaction->rollback(); return $this->refresh(); } } //die; if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->idvenda]); } else { return $this->render('create', ['model' => $model, 'vendaHasProduto' => $vendaHasProduto, 'parcela' => $parcela]); } }
/** * @return \yii\db\ActiveQuery */ public function getCaixaAberturaFechamentos() { return $this->hasMany(CaixaAberturaFechamento::className(), ['caixa_id' => 'idcaixa']); }
public function actionIndex() { $user = User::find()->where(['iduser' => Yii::$app->user->id])->one(); $caixa = Caixa::find()->where(['loja_idloja' => $user->loja_idloja])->one(); $caixaAberturaFechamento = CaixaAberturaFechamento::find()->where(['caixa_id' => $caixa->idcaixa])->orderBy('data DESC')->one(); //VarDumper::dump($caixaAberturaFechamento,10,true);die;//caixa aberto $caixaMovimentacao = new CaixaMovimentacao(); $caixaMovimentacao->data = date('Y-m-d H:i:s'); $caixaMovimentacao->caixa_idcaixa = $caixa->idcaixa; if ($caixaAberturaFechamento != null and $caixaAberturaFechamento->tipo == 'abertura' and $caixaAberturaFechamento->user_id == Yii::$app->user->id) { #DESPESAS $despesaForm = new DespesaForm(); //Se um post de DespesaForm foi disparado, entra aqui if (Yii::$app->request->post('DespesaForm')) { //VarDumper::dump('DespesaForm');die; if ($despesaForm->load(Yii::$app->request->post()) && $despesaForm->validate()) { $connection = \Yii::$app->db; //throw Exception('Unable to save record.'); $transaction = $connection->beginTransaction(); try { $caixaMovimentacao = new CaixaMovimentacao(); $caixaMovimentacao->data = date('Y-m-d H:i:s'); $caixaMovimentacao->valor = $despesaForm->valor; $caixaMovimentacao->caixa_movimentacao_tipo_id = 1; $caixaMovimentacao->caixa_idcaixa = $caixa->idcaixa; $caixaMovimentacao->obs = $despesaForm->obs; if (!$caixaMovimentacao->save()) { throw new Exception('Não foi possível salvar - #1.'); } $despesa = new Despesa(); $despesa->tipo_despesa_idtipo_despesa = $despesaForm->tipo_despesa; $despesa->caixa_movimentacao_id = $caixaMovimentacao->id; if (!$despesa->save()) { throw new Exception('Não foi possível salvar - #2.'); } //Valor do caixa menor do que a saída, não conclui a operação if ($caixa->valor < $caixaMovimentacao->valor) { throw new Exception(' Valor de saída é maior do que o disponível no caixa.'); } $caixa->valor -= $caixaMovimentacao->valor; if (!$caixa->save()) { throw new Exception('Não foi possível salvar - #4.'); } $transaction->commit(); Yii::$app->session->setFlash('success', 'Salvo com sucesso'); return $this->redirect(['index']); } catch (Exception $e) { Yii::$app->session->setFlash('danger', 'Ops! Tivemos um erro. Tente novamente ou fale conosco. ' . $e->getMessage()); $transaction->rollback(); return $this->refresh(); } } } #VALE $valeForm = new ValeForm(); //Se um post de DespesaForm foi disparado, entra aqui if (Yii::$app->request->post('ValeForm')) { if ($valeForm->load(Yii::$app->request->post()) && $valeForm->validate()) { $connection = \Yii::$app->db; //throw Exception('Unable to save record.'); $transaction = $connection->beginTransaction(); try { $caixaMovimentacao = new CaixaMovimentacao(); $caixaMovimentacao->data = date('Y-m-d H:i:s'); $caixaMovimentacao->valor = $valeForm->valor; $caixaMovimentacao->caixa_movimentacao_tipo_id = 3; $caixaMovimentacao->caixa_idcaixa = $caixa->idcaixa; $caixaMovimentacao->obs = $valeForm->obs; if (!$caixaMovimentacao->save()) { throw new Exception('Não foi possível salvar - #1.'); } $vale = new Vale(); $vale->vale_beneficiarios_idvale_beneficiarios = $valeForm->beneficiario_id; $vale->caixa_movimentacao_id = $caixaMovimentacao->id; if (!$vale->save()) { throw new Exception('Não foi possível salvar - #2.'); } //Valor do caixa menor do que a saída, não conclui a operação if ($caixa->valor < $caixaMovimentacao->valor) { throw new Exception(' Valor de saída é maior do que o disponível no caixa.'); } $caixa->valor -= $caixaMovimentacao->valor; if (!$caixa->save()) { throw new Exception('Não foi possível salvar - #3.'); } $transaction->commit(); Yii::$app->session->setFlash('success', 'Salvo com sucesso'); return $this->redirect(['index']); } catch (Exception $e) { Yii::$app->session->setFlash('danger', 'Ops! Tivemos um erro. Tente novamente ou fale conosco' . $e->getMessage()); $transaction->rollback(); return $this->refresh(); } } } #DEPÓSITO $caixaMovimentacao = new CaixaMovimentacao(); $caixaMovimentacao->caixa_movimentacao_tipo_id = 2; $caixaMovimentacao->data = date('Y-m-d H:i:s'); $caixaMovimentacao->caixa_idcaixa = $caixa->idcaixa; if (Yii::$app->request->post('CaixaMovimentacao')) { if ($caixaMovimentacao->load(Yii::$app->request->post()) && $caixaMovimentacao->validate()) { $connection = \Yii::$app->db; //throw Exception('Unable to save record.'); $transaction = $connection->beginTransaction(); try { if (!$caixaMovimentacao->save()) { throw new Exception('Não foi possível salvar - #1.'); } //Valor do caixa menor do que a saída, não conclui a operação if ($caixa->valor < $caixaMovimentacao->valor) { throw new Exception(' Valor de saída é maior do que o disponível no caixa.'); } $caixa->valor -= $caixaMovimentacao->valor; if (!$caixa->save()) { throw new Exception('Não foi possível salvar - #3.'); } $transaction->commit(); Yii::$app->session->setFlash('success', 'Salvo com sucesso'); return $this->redirect(['index']); } catch (Exception $e) { Yii::$app->session->setFlash('danger', 'Ops! Tivemos um erro. Tente novamente ou fale conosco' . $e->getMessage()); $transaction->rollback(); return $this->refresh(); } } } #REFORCO $reforcoForm = new ReforcoForm(); //Se um post de DespesaForm foi disparado, entra aqui if (Yii::$app->request->post('ReforcoForm')) { if ($reforcoForm->load(Yii::$app->request->post()) && $reforcoForm->validate()) { $connection = \Yii::$app->db; //throw Exception('Unable to save record.'); $transaction = $connection->beginTransaction(); try { $caixaMovimentacao = new CaixaMovimentacao(); $caixaMovimentacao->data = date('Y-m-d H:i:s'); $caixaMovimentacao->valor = $reforcoForm->valor; $caixaMovimentacao->caixa_movimentacao_tipo_id = 6; $caixaMovimentacao->caixa_idcaixa = $caixa->idcaixa; $caixaMovimentacao->obs = $reforcoForm->obs; if (!$caixaMovimentacao->save()) { throw new Exception('Não foi possível salvar - #1.'); } $caixa->valor += $caixaMovimentacao->valor; if (!$caixa->save()) { throw new Exception('Não foi possível salvar - #2.'); } $transaction->commit(); Yii::$app->session->setFlash('success', 'Salvo com sucesso'); return $this->redirect(['index']); } catch (Exception $e) { Yii::$app->session->setFlash('danger', 'Ops! Tivemos um erro. Tente novamente ou fale conosco' . $e->getMessage()); $transaction->rollback(); return $this->refresh(); } } } #Avulso $avulsoForm = new AvulsoForm(); //Se um post de DespesaForm foi disparado, entra aqui if (Yii::$app->request->post('AvulsoForm')) { if ($avulsoForm->load(Yii::$app->request->post()) && $avulsoForm->validate()) { $connection = \Yii::$app->db; //throw Exception('Unable to save record.'); $transaction = $connection->beginTransaction(); try { $caixaMovimentacao = new CaixaMovimentacao(); $caixaMovimentacao->data = date('Y-m-d H:i:s'); $caixaMovimentacao->valor = $avulsoForm->valor; $caixaMovimentacao->caixa_movimentacao_tipo_id = 7; $caixaMovimentacao->caixa_idcaixa = $caixa->idcaixa; $caixaMovimentacao->obs = $avulsoForm->obs; if (!$caixaMovimentacao->save()) { throw new Exception('Não foi possível salvar - #1.'); } $caixa->valor += $caixaMovimentacao->valor; if (!$caixa->save()) { throw new Exception('Não foi possível salvar - #2.'); } $transaction->commit(); Yii::$app->session->setFlash('success', 'Salvo com sucesso'); return $this->redirect(['index']); } catch (Exception $e) { Yii::$app->session->setFlash('danger', 'Ops! Tivemos um erro. Tente novamente ou fale conosco' . $e->getMessage()); $transaction->rollback(); return $this->refresh(); } } } $searchModel = new CaixaMovimentacaoSearch(); $searchModel->caixa_idcaixa = $caixa->idcaixa; $searchModel->data = date('Y-m-d'); //$searchModel->data = date('Y-m-d'); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', ['caixa' => $caixa, 'dataProvider' => $dataProvider, 'despesa' => $despesaForm, 'deposito' => $caixaMovimentacao, 'vale' => $valeForm, 'reforco' => $reforcoForm, 'avulso' => $avulsoForm, 'caixaMovimentacao' => $caixaMovimentacao]); } else { return $this->redirect(['caixa/abrir']); } }