コード例 #1
0
ファイル: ReciboController.php プロジェクト: veronin/IMV
 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));
 }
コード例 #2
0
ファイル: _form.php プロジェクト: veronin/IMV
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array(
	'id'=>'recibo-form',
	'enableAjaxValidation'=>false,
)); ?>

<p class="help-block">Campos con <span class="required">*</span> son obligatorios.</p>

<?php echo $form->errorSummary($model); ?>

        
        <?php echo $form->labelEx($model, 'idCuenta');?>
	<?php echo $form->dropDownList($model,'idCuenta',CHtml::listData(Cuenta::model()->findAll(array('order'=>'idCuenta')), 'idCuenta', 'idCliente'),array('empty'=>'Seleccionar..' ));?>


        <?php echo $form->textFieldRow($model,'ciclo',array('ciclo'=>date('YYYY')));?>
     
	<?php echo $form->textFieldRow($model,'fechaEmision', array('fechaEmision'=>date('dd-mm-yy'))) ?>
        <?php echo $form->textFieldRow($model,'fechaCobroCompleto') ?>
	
	<?php echo $form->dropDownList($model, 'concepto', array('CUOTA' => 'Cuota Mensual', 'MATRICULA' => 'Matricula Año Lectivo')); ?>

        <?php echo $form->dropDownList($model, 'mes', CHtml::listData(Meses::model()->findAll(array('order'=>'idMes')),'idMes', 'nombre'),array('empty'=>'Seleccionar..' ));?>

	<?php echo $form->textFieldRow($model,'importePendiente',array('class'=>'span2')); ?>      

<div class="form-actions">
	<?php $this->widget('bootstrap.widgets.TbButton', array(
			'buttonType'=>'submit',
			'type'=>'primary',
			'label'=>$model->isNewRecord ? 'Crear' : 'Guardar',
		)); ?>