/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Vale::find(); $query->joinWith(['valeBeneficiariosIdvaleBeneficiarios', 'caixaMovimentacao.caixaIdcaixa.lojaIdloja']); $dataProvider = new ActiveDataProvider(['query' => $query]); /* $dataProvider->sort->attributes['lojaIdloja'] = [ 'asc' => ['loja.nome' => SORT_ASC], 'desc' => ['loja.nome' => SORT_DESC], ]; */ $dataProvider->sort->attributes['valeBeneficiariosIdvaleBeneficiarios'] = ['asc' => ['vale_beneficiarios.beneficiario' => SORT_ASC], 'desc' => ['vale_beneficiarios.beneficiario' => SORT_DESC]]; //$this->load($params); if (!($this->load($params) && $this->validate())) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } if ($this->dataVale) { $dataInicial = substr($this->dataVale, 0, 10); $dataFinal = substr($this->dataVale, -10); $query->andFilterWhere(['between', 'data', $dataInicial . ' 00:00:00', $dataFinal . ' 23:59:59']); } if ($this->lojaId) { $query->andFilterWhere(['like', 'loja.idloja', $this->lojaId]); } $query->andFilterWhere(['idvale' => $this->idvale, 'vale_beneficiarios_idvale_beneficiarios' => $this->vale_beneficiarios_idvale_beneficiarios, 'caixa_movimentacao_id' => $this->caixa_movimentacao_id]); // $query->andFilterWhere(['like', 'loja.nome', $this->lojaIdloja]); $query->andFilterWhere(['like', 'vale_beneficiarios.beneficiario', $this->valeBeneficiariosIdvaleBeneficiarios]); return $dataProvider; }
/** * @return \yii\db\ActiveQuery */ public function getVales() { return $this->hasMany(Vale::className(), ['caixa_movimentacao_id' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getVales() { return $this->hasMany(Vale::className(), ['vale_beneficiarios_idvale_beneficiarios' => 'idvale_beneficiarios']); }
/** * Finds the Vale model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Vale the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Vale::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * @return \yii\db\ActiveQuery */ public function getVales() { return $this->hasMany(Vale::className(), ['loja_idloja' => 'idloja']); }
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']); } }