/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new ItemRecibo(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['ItemRecibo'])) { $model->attributes = $_POST['ItemRecibo']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->idItemRecibo)); } } $this->render('create', array('model' => $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)); }