protected function GenerateResponse() { try { $this->response = ConsignacionesController::Cancelar(isset($_GET['productos_almacen']) ? json_decode($_GET['productos_almacen']) : null); } catch (Exception $e) { //Logger::error($e); throw new ApiException($this->error_dispatcher->invalidDatabaseOperation($e->getMessage())); } }
/** * *Este metodo desactiva un usuario, usese cuando un empleado ya no trabaje para usted. Que pasa cuando el usuario tiene cuentas abiertas o ventas a credito con saldo. * * @param id_usuario int Id del usuario a eliminar **/ public static function EliminarUsuario($id_usuario) { Logger::log("Eliminando usuario " . $id_usuario); //Se obtiene y se verifica que el usuario exista en la base de datos. $usuario = UsuarioDAO::getByPK($id_usuario); if (is_null($usuario)) { Logger::error("El usuario con id " . $id_usuario . " no existe"); throw new Exception("El usuario no existe", 901); } //Si el usuario ya esta inactivo, no se le hacen cambios. if (!$usuario->getActivo()) { Logger::warn("El usuario con id: " . $id_usuario . " ya esta inactivo"); throw new Exception("El usuario ya esta inactivo", 901); } //Si el saldo del ejercicio del usuario no es cero, siginifica que debe o que //se le debe, entonces no se puede eliminar. if ($usuario->getSaldoDelEjercicio() != 0) { Logger::error("El usuario con id: " . $id_usuario . " no tiene un saldo en ceros"); throw new Exception("El usuario no tiene un saldo en ceros", 901); } //Si el usuario tiene una orden de servicio activa, no se puede eliminar $ordenes_de_servicio = OrdenDeServicioDAO::search(new OrdenDeServicio(array("id_usuario_venta" => $id_usuario))); foreach ($ordenes_de_servicio as $orden_de_servicio) { if ($orden_de_servicio->getActiva()) { Logger::error("El usuario " . $id_usuario . " no puede ser desactivado, tiene la orden " . $orden_de_servicio->getIdOrdenDeServicio() . " activa"); throw new Exception("El usuario no puede ser desactivado pues aun cuenta con ordenes de servicio activas", 901); } } //Se cambia su estado activo a falso y se le asigna como hoy la fecha de baja. $usuario->setActivo(0); $usuario->setFechaBaja(time()); DAO::transBegin(); try { //Si el usuario era consignatario se desactiva como tal. if ($usuario->getConsignatario()) { ConsignacionesController::DesactivarConsignatario($id_usuario); } //Se actualiza el usuario UsuarioDAO::save($usuario); //Se eliminan los registros de la tabla permiso_usuario que contengan a este usuario $permisos_usuario = PermisoUsuarioDAO::search(new PermisoUsuario(array("id_usuario" => $id_usuario))); foreach ($permisos_usuario as $permiso_usuario) { PermisoUsuarioDAO::delete($permiso_usuario); } } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo eliminar el usuario: " . $e); if ($e->getCode() == 901) { throw new Exception("No se pudo eliminar el usuario: " . $e->getMessage()); } throw new Exception("No se pudo eliminar el usuario, consulte a su administrador de sistema", 901); } DAO::transEnd(); Logger::log("Usuario eliminado exitosamente"); }