Example #1
0
 /**
  * Agrega un pago a la base de datos
  */
 public function addNewPago($formValues)
 {
     //revisar persona y paquete validos
     $dataaccess = new dalutils();
     $persona = $dataaccess->getRecord('persona', $formValues['idpersona']);
     if ($persona == NULL) {
         throw new Exception('No existe el cliente al cual se le está
             adjudicando el pago');
     }
     $paquete = $dataaccess->getRecord('paquete', $formValues['idpaquete']);
     if ($paquete == NULL) {
         throw new Exception('No existe el paquete');
     }
     $object = new pago();
     $object->populate($formValues);
     //validaciones aqui
     //Regla de Negocio: Solo puede hacer un pago un cliente activo
     if (!$persona->activo) {
         throw new Exception('No es posible generar el pago porque el 
             cliente está inactivo');
     }
     //Regla de Negocio: Un cliente solo puede hacer un pago al mes
     if ($this->isMonthPayed($object->idpersona, $object->fecha)) {
         throw new Exception('No es posible generar el pago porque el 
             cliente ya ha pagado este mes');
     }
     //si aplica descuento, calcular nuevo precio
     if ($object->descuento > 0) {
         $object->monto = $object->monto - $object->monto * $object->descuento / 100;
     }
     //forzar que el registro sea nuevo
     $object->idpago = 0;
     try {
         $result = $object->persist();
     } catch (Exception $e) {
         return false;
     }
     return $result;
 }
 /**
  * Obtener un elemento select HTML de los paquetes de la base de datos
  */
 public function comboPaquetes($seleccionado)
 {
     $dataaccess = new dalutils();
     $HTMLselect = $dataaccess->CrearCombo2Valores('paquete', 'costo', 'titulo', $seleccionado);
     return $HTMLselect;
 }