Esempio n. 1
0
 public function actionGenerarRecibos()
 {
     // Verifico que no estén ya generados los recibos del periodo
     $criteria0 = new CDbCriteria();
     $criteria0->condition = "ciclo = :ciclo AND mes = :mes";
     $criteria0->params = array(':mes' => 8, ':ciclo' => 2015);
     $rec = Recibo::model()->findAll($criteria0);
     $recibos = new Recibo();
     $transaction = $recibos->dbConnection->beginTransaction();
     try {
         if (count($rec) == 0) {
             // Por cada cuenta creo un recibo para el mes
             $cuentas = Cuenta::model()->findAll();
             foreach ($cuentas as $cuenta) {
                 $cta = $cuenta->idCuenta;
                 $recibos = new Recibo();
                 $recibos->idCuenta = $cta;
                 $recibos->concepto = 'CUOTA';
                 $recibos->fechaEmision = date('Y-m-d H:i:s');
                 $recibos->mes = date('m');
                 $recibos->ciclo = date('Y');
                 if (!$recibos->save()) {
                     throw new Exception('Error al generar recibo' . CVarDumper::dumpAsString($recibos->getErrors()));
                     Yii::log(CVarDumper::dumpAsString($recibos->getErrors()), 'error');
                 }
                 // Por cada recibo creo los item de cada alumno matriculado de ese cliente
                 $criteria = new CDbCriteria();
                 $criteria->condition = "idCuenta = :idCuenta";
                 $criteria->params = array(':idCuenta' => $cta);
                 $matriculas = Matricula::model()->findAll($criteria);
                 $sumaImportes = 0;
                 foreach ($matriculas as $matricula) {
                     $items = new ItemRecibo();
                     $items->idRecibo = $recibos->idRecibo;
                     $items->idMatricula = $matricula->idMatricula;
                     $cuota = $matricula->idCurso0->idNivel0->cuota;
                     $desc = $matricula->idDescuento0->porcentaje;
                     // Aplico descuentos si los tiene
                     if ($matricula->idDescuento !== 5) {
                         $items->importe = $cuota - $cuota * $desc / 100;
                     } else {
                         $items->importe = $cuota;
                     }
                     $items->pago = 0;
                     $items->save();
                     // Calculo importe total
                     $sumaImportes = $sumaImportes + $items->importe;
                 }
                 $recibos->importePendiente = $sumaImportes;
                 $recibos->save();
             }
             // Envio mensajes a la vista
             Yii::app()->user->setFlash('success', "El proceso fue realizado correctamente.");
         } else {
             Yii::app()->user->setFlash('success', "Ya existen los recibos del periodo.");
         }
         $transaction->commit();
     } catch (Exception $e) {
         $transaction->rollback();
         Yii::app()->user->setFlash('error', $e->getMessage());
     }
     $dataProvider = new CActiveDataProvider('Recibo');
     $this->render('index', array('dataProvider' => $dataProvider));
 }
Esempio n. 2
0
 public function loadModelRecibo($id)
 {
     $model = Recibo::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }