/**
  * 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;
 }
예제 #2
0
 /**
  * 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.');
     }
 }
예제 #4
0
 /**
  * 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]);
     }
 }
예제 #5
0
파일: Caixa.php 프로젝트: alissoncti/sgo
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getCaixaAberturaFechamentos()
 {
     return $this->hasMany(CaixaAberturaFechamento::className(), ['caixa_id' => 'idcaixa']);
 }
예제 #6
0
 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']);
     }
 }