/**
  * @param $idTipoFixoCusto
  * @return mixed
  */
 public function searchConsumoCustoFixoporTipoMensal($idTipoFixoCusto)
 {
     //Guarda o mês anterior
     $mes = date('m') - 1;
     //Guarda o último dia do mês
     $lastDayOfMonth = date('t', strtotime(date('Y') . '-' . $mes . '-' . date('d')));
     //Busca os custos fixo no período mensal(Do primeiro até o último dia do mês atual)
     $query = Custofixo::find()->joinWith('idcontaAPagar')->joinWith('idcontaAPagar.conta')->where(['tipocustofixo_idtipocustofixo' => $idTipoFixoCusto])->andWhere(['between', 'dataVencimento', date('Y') . '-' . $mes . '-' . '01', date('Y') . '-' . $mes . '-' . $lastDayOfMonth]);
     //Guarda o valor médio de um tipo de custo fixo no período mensal(Do primeiro até o último dia do mês atual)
     $mediaConsumo = $query->average('valor');
     return $mediaConsumo;
 }
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getCustofixos()
 {
     return $this->hasMany(Custofixo::className(), ['tipocustofixo_idtipocustofixo' => 'idtipocustofixo']);
 }
 /**
  * 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 Custofixo model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Custofixo the loaded modelCustofixo
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($modelCustofixo = Custofixo::findOne($id)) !== null) {
         return $modelCustofixo;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Beispiel #5
0
 /**
  * @param $idconta
  * @return Custofixo
  */
 public function getCustofixo()
 {
     return $this->hasOne(Custofixo::className(), ['idconta' => 'idconta']);
 }