예제 #1
0
 /**
 * Returns the data model based on the primary key given in the GET variable.
 * If the data model is not found, an HTTP exception will be raised.
 * @param integer the ID of the model to be loaded
 */
 public function loadModel($id)
 {
     $model = ItemRecibo::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
예제 #2
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));
 }
예제 #3
0
 public function actionImprimir($id)
 {
     require_once dirname(__FILE__) . '/../extensions/fpdf/fpdf.php';
     // Obtengo el Pago
     $model = $this->loadModel($id);
     // Obtengo el Recibo origen
     $recibo = $model->idRecibo0->idRecibo;
     // Obtengo los Items Alumnos
     $Criteria = new CDbCriteria();
     $Criteria->condition = "idRecibo = {$recibo}";
     $alumnos = ItemRecibo::model()->findAll($Criteria);
     $pdf = new FPDF();
     $pdf->AddPage();
     // Logo
     $pdf->Image(dirname(__FILE__) . '/../../images/logo.jpg', 10, 8, 20);
     // Arial bold 15
     $pdf->SetFont('Arial', 'B', 12);
     // Movernos a la derecha
     $pdf->Cell(30);
     // Titulo
     $pdf->Cell(20, 10, 'INSTITUTO MODELO VIEDMA');
     $pdf->Cell(70);
     $pdf->SetFont('Arial', 'B', 11);
     $pdf->Cell(10, 10, 'Nro:');
     $pdf->Cell(15, 10, $model->numero);
     $pdf->Cell(13, 10, 'Serie:');
     $pdf->Cell(20, 10, $model->serie);
     $pdf->Ln(2);
     $pdf->Cell(120);
     $pdf->Cell(15, 20, 'Fecha:');
     $d = explode("-", $model->fecha);
     $pdf->Cell(20, 20, $d[2] . "/" . $d[1] . "/" . $d[0]);
     // Salto de linea
     $pdf->Ln(5);
     $pdf->SetFont('Arial', 'B', 11);
     $pdf->SetXY(40, 15);
     $pdf->Cell(20, 30, 'Senor:');
     $pdf->Cell(20, 30, $model->idRecibo0->idCuenta0->idCliente0->idPersona0->getFullName());
     $pdf->Ln(2);
     $pdf->SetXY(40, 15);
     $pdf->Cell(20, 45, 'Domicilio:');
     $pdf->Cell(50, 45, $model->idRecibo0->idCuenta0->idCliente0->idPersona0->dirCalle);
     $pdf->Cell(50, 45, $model->idRecibo0->idCuenta0->idCliente0->idPersona0->dirNro);
     $pdf->Cell(50, 45, $model->idRecibo0->idCuenta0->idCliente0->idPersona0->idLocalidad);
     $pdf->Ln(2);
     $pdf->SetFont('Arial', 'B', 11);
     $total = 0;
     $pdf->Cell(20, 70, 'Matricula');
     $pdf->Cell(60, 70, 'Alumno');
     $pdf->Cell(30, 70, 'Nivel');
     $pdf->Cell(30, 70, 'Curso');
     $pdf->Cell(10, 70, 'Mes');
     $pdf->Cell(20, 70, 'Ciclo');
     $pdf->Cell(20, 70, 'Importe');
     $l = 75;
     //linea
     $pdf->Ln(3);
     $pdf->SetFont('Arial', 'I', 10);
     foreach ($alumnos as $item) {
         $pdf->Cell(20, $l, $item->idMatricula0->idMatricula);
         $pdf->Cell(60, $l, $item->idMatricula0->idAlumno0->idPersona0->getFullName());
         $pdf->Cell(30, $l, $item->idMatricula0->idCurso0->idNivel0->descripcion);
         $pdf->Cell(30, $l, $item->idMatricula0->idCurso0->codigo);
         $pdf->Cell(10, $l, $item->idRecibo0->mes);
         $pdf->Cell(20, $l, $item->idRecibo0->ciclo);
         $pdf->Cell(20, $l, $item->importe);
         $total = $total + $item->importe;
         $l = $l + 1;
         $pdf->Ln(5);
     }
     $pdf->SetXY(160, 50);
     $pdf->SetFont('Arial', 'B', 11);
     $pdf->Cell(20, 100, 'TOTAL:');
     $pdf->Cell(10, 100, $total);
     $pdf->Output('Factura.pdf', 'D');
 }