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