/** * 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; }
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)); }
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'); }