private static function validarParametrosClasificacionCliente($id_clasificacion_cliente = null, $clave_interna = null, $nombre = null, $descripcion = null, $id_tarifa_compra = null, $id_tarifa_venta = null) { //valida que la clasificacion exista if (!is_null($id_clasificacion_cliente)) { if (is_null(ClasificacionClienteDAO::getByPK($id_clasificacion_cliente))) { return "La clasificacion de cliente " . $id_clasificacion_cliente . " no existe"; } } //valida que la clave interna sea valida y que no se repita if (!is_null($clave_interna)) { $e = self::validarLongitudDeCadena($clave_interna, 0, 20); if (!$e) { return "La clave interna no tiene 0 a 20 caracteres"; } if (!is_null($id_clasificacion_cliente)) { $clasificaciones_cliente = array_diff(ClasificacionClienteDAO::search(new ClasificacionCliente(array("clave_interna" => trim($clave_interna)))), array(ClasificacionClienteDAO::getByPK($id_clasificacion_cliente))); } else { $clasificaciones_cliente = ClasificacionClienteDAO::search(new ClasificacionCliente(array("clave_interna" => trim($clave_interna)))); } if (!empty($clasificaciones_cliente)) { Logger::log("La clave interna (" . $clave_interna . ") ya esta en uso"); throw new BusinessLogicException("La clave interna (" . $clave_interna . ") ya esta en uso"); } } //valida que el nombre sea valido y que no se repita if (!is_null($nombre)) { $e = ValidacionesController::validarLongitudDeCadena($nombre, 1, 16); if (!$e) { return "El nombre {$nombre} no tiene de 1 a 16 caracteres"; } if (!is_null($id_clasificacion_cliente)) { $clasificaciones_cliente = array_diff(ClasificacionClienteDAO::search(new ClasificacionCliente(array("nombre" => trim($nombre)))), array(ClasificacionClienteDAO::getByPK($id_clasificacion_cliente))); } else { $clasificaciones_cliente = ClasificacionClienteDAO::search(new ClasificacionCliente(array("nombre" => trim($nombre)))); } if (!empty($clasificaciones_cliente)) { Logger::log("El nombre (" . $nombre . ") ya esta en uso"); throw new BusinessLogicException("El nombre (" . $nombre . ") ya esta en uso"); } } //valida que la descripcion este en rango if (!is_null($descripcion)) { $e = ValidacionesController::validarLongitudDeCadena($descripcion, 0, 255); if (!$e) { return "La descricpion no tiene de 0 a 255 caracteres"; } } //valida que la tarifa de compra exista, este activa y sea una tarifa de compra if (!is_null($id_tarifa_compra)) { $tarifa = TarifaDAO::getByPK($id_tarifa_compra); if (is_null($tarifa)) { return "La tarifa " . $id_tarifa_compra . " no existe"; } if (!$tarifa->getActiva()) { return "La tarifa " . $id_tarifa_compra . " no esta activa"; } if ($tarifa->getTipoTarifa() != "compra") { return "La tarifa " . $id_tarifa_compra . " no es de compra"; } } //valida que la tarifa de venta exista, este activa y sea una tarifa de venta if (!is_null($id_tarifa_venta)) { $tarifa = TarifaDAO::getByPK($id_tarifa_venta); if (is_null($tarifa)) { return "La tarifa " . $id_tarifa_venta . " no existe"; } if (!$tarifa->getActiva()) { return "La tarifa " . $id_tarifa_venta . " no esta activa"; } if ($tarifa->getTipoTarifa() != "venta") { return "La tarifa " . $id_tarifa_venta . " no es de venta"; } } //No se encontro error return true; }
private static function validarParametrosSucursal($id_sucursal = null, $id_direccion = null, $rfc = null, $razon_social = null, $descripcion = null, $id_gerente = null, $saldo_a_favor = null, $fecha_apertura = null, $activa = null, $fecha_baja = null) { //Se valida que la sucursal exista en la base de datos if (!is_null($id_sucursal)) { if (is_null(SucursalDAO::getByPK($id_sucursal))) { return "La sucursal con id: " . $id_sucursal . " no existe"; } } //Se valida que la direccion exista en la base de dats if (!is_null($id_direccion)) { if (is_null(DireccionDAO::getByPK($id_direccion))) { return "La direccion con id: " . $id_direccion . " no existe"; } } //Se valida que el rfc solo tenga letras de la A-Z y 0-9. No se debe repetir el rfc /* if(!is_null($rfc)) { $e=self::validarString($rfc, 30, "rfc"); if(is_string($e)) return $e; if(preg_match('/[^A-Z0-9]/' ,$rfc)) return "El rfc ".$rfc." contiene caracteres fuera del rango A-Z y 0-9"; $sucursales = SucursalDAO::search( new Sucursal( array( "rfc" => $rfc )) ); foreach($sucursales as $sucursal) { if($sucursal->getActiva()) return "El rfc (".$rfc.") ya esta en uso por la sucursal ".$sucursal->getIdSucursal(); } }*/ //Se valida que la razon social tenga una longitud maxima de 100, no se puede repetir if (!is_null($razon_social)) { $e = ValidacionesController::validarLongitudDeCadena(trim($razon_social), 2, 100); if (is_string($e)) { return $e; } $sucursales = SucursalDAO::search(new Sucursal(array("razon_social" => trim($razon_social)))); foreach ($sucursales as $sucursal) { if ($sucursal->getActiva()) { return "La razon social (" . $razon_social . ") ya esta en uso por la sucursal " . $sucursal->getIdSucursal(); } } } //Se valida que la descripcion tenga una longitud maxima de 255 if (!is_null($descripcion)) { $e = ValidacionesController::validarLongitudDeCadena(trim($descripcion), 0, 255); if (is_string($e)) { return $e; } } //Se valida que el usuario gerente exista y que tenga el rol de gerente if (!is_null($id_gerente)) { $gerente = UsuarioDAO::getByPK($id_gerente); if (is_null($gerente)) { return "El usuario con id: " . $id_gerente . " no existe"; } if ($gerente->getIdRol() != 2) { return "El usuario con id: " . $id_gerente . " no es un gerente"; } } //Se valida que el saldo a favor este en el rango if (!is_null($saldo_a_favor)) { $e = self::validarNumero($saldo_a_favor, 1.8E+200, "saldo a favor"); if (is_string($e)) { return $e; } } //Se valida el boleano activa if (!is_null($activa)) { $e = self::validarNumero($activa, 1, "activa"); if (is_string($e)) { return $e; } } //No se encontro error, regresa true return true; }
public static function validarParametrosUsuario($id_usuario = null, $id_direccion = null, $id_sucursal = null, $id_rol = null, $id_clasificacion_cliente = null, $id_clasificacion_proveedor = null, $id_moneda = null, $activo = null, $nombre = null, $rfc = null, $curp = null, $comision_ventas = null, $telefono_personal1 = null, $telefono_personal2 = null, $limite_credito = null, $descuento = null, $password = null, $salario = null, $correo_electronico = null, $pagina_web = null, $saldo_del_ejercicio = null, $ventas_a_credito = null, $representante_legal = null, $facturar_a_terceros = null, $dia_de_pago = null, $mensajeria = null, $intereses_moratorios = null, $denominacion_comercial = null, $dias_de_credito = null, $cuenta_de_mensajeria = null, $dia_de_revision = null, $codigo_usuario = null, $dias_de_embarque = null, $tiempo_entrega = null, $cuenta_bancaria = null, $id_tarifa_compra = null, $id_tarifa_venta = null, $id_usuario_padre = null) { //valida que el id del usuario exista en la base de datos if (!is_null($id_usuario)) { if (is_null(UsuarioDAO::getByPK($id_usuario))) { return "El usuario con id: " . $id_usuario . " no existe"; } } //valida que el id de la direccion exista en la base de datos if (!is_null($id_direccion)) { if (is_null(DireccionDAO::getByPK($id_direccion))) { return "La direccion con id: " . $id_direccion . " no existe"; } } //valida el id de la sucursal exista en la base de datos if (!is_null($id_sucursal)) { if (is_null(SucursalDAO::getByPK($id_sucursal))) { return "La sucursal con id: " . $id_sucursal . " no existe"; } } //valida que el id del rol exista en la base de datos if (!is_null($id_rol)) { if (is_null(RolDAO::getByPK($id_rol))) { return "El rol con id: " . $id_rol . " no existe"; } } //valida que la clasificacion del cliente exista en la base de datos if (!is_null($id_clasificacion_cliente)) { if (is_null(ClasificacionClienteDAO::getByPK($id_clasificacion_cliente))) { return "La clasificacion cliente con id: " . $id_clasificacion_cliente . " no existe"; } } //valida que la clasificacion del proveedor exista en la base de datos if (!is_null($id_clasificacion_proveedor)) { if (is_null(ClasificacionProveedorDAO::getByPK($id_clasificacion_proveedor))) { return "La clasficiacion proveedor con id: " . $id_clasificacion_proveedor . " no existe"; } } //valida que la moneda exista en la base de datos if (!is_null($id_moneda)) { Logger::log("Editando a moneda:" . $id_moneda); if (is_null(MonedaDAO::getByPK($id_moneda))) { return "La moneda con id: " . $id_moneda . " no existe"; } } //valida el nombre if (!is_null($nombre)) { $e = ValidacionesController::validarLongitudDeCadena($nombre, 1, 100); if (!$e) { return "El numero de caracteres del nombre (" . $nombre . ") no esta entre 1 y 100"; } } //valida el rfc, el rfc solo puede estar compuesto por Letras mayusculas y numeros if (!is_null($rfc)) { $e = ValidacionesController::validarLongitudDeCadena($rfc, 1, 30); if (!$e) { return "El numero de caracteres del rfc (" . $rfc . ") no esta entre 1 y 30"; } if (preg_match('/[^A-Z0-9]/', $rfc)) { return "El rfc " . $rfc . " contiene caracteres fuera del rango A-Z y 0-9"; } } //valida el curp, el curp solo puede tener letras mayusculas y numeros if (!is_null($curp)) { $e = ValidacionesController::validarLongitudDeCadena($curp, 1, 30); if (!$e) { return "El numero de caracteres de la curp (" . $curp . ") no esta entre 1 y 30"; } if (preg_match('/[^A-Z0-9]/', $curp)) { return "El curp " . $curp . " contiene caracteres fuera del rango A-Z y 0-9"; } } //valida la comision por ventas if (!is_null($comision_ventas)) { $e = ValidacionesController::validarNumero($comision_ventas, 0, 100); if (!$e) { return "La comision de ventas (" . $comision_ventas . ") no esta entre 0 y 100"; } } //valida el telefono. Los telefonos solo pueden tener numeros, guiones,parentesis,asteriscos y espacios en blanco if (!is_null($telefono_personal1)) { $e = ValidacionesController::validarLongitudDeCadena($telefono_personal1, 1, 20); if (!$e) { return "El numero de caracteres del telefono personal (" . $telefono_personal1 . ") no esta entre 1 y 20"; } if (preg_match('/[^0-9\\- \\(\\)\\*]/', $telefono_personal1)) { return "El telefono " . $telefono_personal1 . " tiene caracteres fuera del rango 0-9,-,(,),* o espacio vacío"; } } //valida el telefono. Los telefonos solo pueden tener numeros, guiones,parentesis,asteriscos y espacios en blanco if (!is_null($telefono_personal2)) { $e = ValidacionesController::validarLongitudDeCadena($telefono_personal2, 1, 20); if (!$e) { return "El numero de caracteres del telefono personal alterno (" . $telefono_personal2 . ") no esta entre 1 y 20"; } if (preg_match('/[^0-9\\- \\(\\)\\*]/', $telefono_personal2)) { return "El telefono " . $telefono_personal2 . " tiene caracteres fuera del rango 0-9,-,(,),* o espacio vacío"; } } //valida el activo. Activo es una variable booleana. if (!is_null($activo)) { $e = ValidacionesController::validarEntero($activo, 0, 1); if (!$e) { return "La variable activo (" . $activo . ") no esta entre 0 y 1"; } } //valida el limite de credito if (!is_null($limite_credito)) { $e = ValidacionesController::validarNumero($limite_credito, 0, 1.8E+200); if (!$e) { return "El limite de credito (" . $limite_credito . ") no esta entre 0 y 1.8e200"; } } //valida el descuento. El descuento es un porcentaje y no puede ser mayor a 100 if (!is_null($descuento)) { $e = ValidacionesController::validarNumero($descuento, 0, 100); if (!$e) { return "El descuento (" . $descuento . ") no esta entre 0 y 100"; } } //valida el password, El pasword tiene que tener una longitud mayor o igual a 4 if (!is_null($password)) { $e = ValidacionesController::validarLongitudDeCadena($password, 4, 32); if (!$e) { return "El numero de caracteres del password (" . $password . ") no esta entre 4 y 32"; } } //valida el salario if (!is_null($salario)) { $e = ValidacionesController::validarNumero($salario, 0, 1.8E+200); if (!$e) { return "El salario (" . $salario . ") no esta entre 0 y 1.8e200"; } } //valida el correo electronico segun las especificaciones de php if (!is_null($correo_electronico)) { $e = ValidacionesController::validarLongitudDeCadena($correo_electronico, 3, 30); if (!$e) { return "El numero de caracteres del correo electronico (" . $correo_electronico . ") no esta entre 3 y 30"; } if (!is_string(filter_var($correo_electronico, FILTER_VALIDATE_EMAIL))) { return "El correo electronico " . $correo_electronico . " no es valido"; } } //valida que una pagina web tenga un formato valido. if (!is_null($pagina_web)) { $e = ValidacionesController::validarLongitudDeCadena($pagina_web, 2, 30); if (!$e) { return $e; } if (!preg_match('/^(http|https|ftp):\\/\\/[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}' . '((:[0-9]{1,5})?\\/.*)?$/i', $pagina_web) && !preg_match('/^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}' . '((:[0-9]{1,5})?\\/.*)?$/i', $pagina_web)) { return "La direccion web " . $pagina_web . " no cumple el formato valido"; } } //valida el saldo del ejercicio if (!is_null($saldo_del_ejercicio)) { $e = ValidacionesController::validarNumero($saldo_del_ejercicio, -1.8E+200, 1.8E+200); if (!$e) { return "El saldo del ejercicio (" . $saldo_del_ejercicio . ") no esta entre -1.8e200 y 1.8e200"; } } //valida las ventas a credito if (!is_null($ventas_a_credito)) { $e = ValidacionesController::validarEntero($ventas_a_credito, 0, PHP_INT_MAX); if (!$e) { return "Las venta a credito no estan entre 0 y " . PHP_INT_MAX; } } //valida el represnetante legal if (!is_null($representante_legal)) { $e = ValidacionesController::validarLongitudDeCadena($representante_legal, 0, 100); if (!$e) { return "El numero de caracteres del representante legal (" . $representante_legal . ") no esta entre 0 y 100"; } } //valida la facturacion a terceros. Es un boleano if (!is_null($facturar_a_terceros)) { $e = ValidacionesController::validarEntero($facturar_a_terceros, 0, 1); if (!$e) { return "La variable facturar a terceros (" . $facturar_a_terceros . ") no esta entre 0 y 1"; } } //valida los dias de pago if (!is_null($dia_de_pago)) { $e = ValidacionesController::validarLongitudDeCadena($dia_de_pago, 19, 19); if (!$e) { return "La fecha de dia de pago (" . $dia_de_pago . ") es invalida, el formato valido es YYYY-MM-dd HH:mm:ss"; } } //valida el boleano mensajeria if (!is_null($mensajeria)) { $e = ValidacionesController::validarEntero($mensajeria, 0, 1); if (!$e) { return "La variable mensajeria (" . $mensajeria . ") no esta entre 0 y 1"; } } //valida los intereses moratorios if (!is_null($intereses_moratorios)) { $e = ValidacionesController::validarNumero($intereses_moratorios, 0, 1.8E+200); if (!$e) { return "Los intereses moratorios (" . $intereses_moratorios . ") no estan entre 0 y 1.8e200"; } } //valida la denominacion comercial if (!is_null($denominacion_comercial)) { $e = ValidacionesController::validarLongitudDeCadena($denominacion_comercial, 0, 100); if (!$e) { return "El numero de caracteres de la denominacion comercial (" . $denominacion_comercial . ") no esta entre 0 y 100"; } } //valida los dias de credito if (!is_null($dias_de_credito)) { $e = ValidacionesController::validarEntero($dias_de_credito, 0, PHP_INT_MAX); if (!$e) { return "Los dias de credito (" . $dias_de_credito . ") no estan en el rango de 0 a " . PHP_INT_MAX; } } //valida la cuenta de mensajeria if (!is_null($cuenta_de_mensajeria)) { $e = ValidacionesController::validarLongitudDeCadena($cuenta_de_mensajeria, 0, 50); if (!$e) { return "El numero de caracteres de la cuenta de mensajeria (" . $cuenta_de_mensajeria . ") no etsa entre 0 y 50"; } } //valida lso dias de revision if (!is_null($dia_de_revision)) { $e = ValidacionesController::validarLongitudDeCadena($dia_de_revision, 19, 19); if (!$e) { return "El dia de revision (" . $dia_de_revision . ") no tiene el formato apropiado, el formato valido es YYYY-MM-dd HH:mm:ss"; } } //valida el codigo de usuario if (!is_null($codigo_usuario)) { $e = ValidacionesController::validarLongitudDeCadena($codigo_usuario, 1, 50); if (!$e) { return "El numero de caracteres del codigo de usuario no esta entre 1 y 50"; } if (preg_match('/[^a-zA-Z0-9]/', $codigo_usuario)) { return "El codigo de usuario (" . $codigo_usuario . ") no tiene solo caracteres alfanumericos"; } } //valida los dias de embarque if (!is_null($dias_de_embarque)) { $e = ValidacionesController::validarEntero($dias_de_embarque, 0, PHP_INT_MAX); if (!$e) { return "Los dias de embarque (" . $dias_de_embarque . ") no esta entre 0 y " . PHP_INT_MAX; } } //valida el tiempo de entrega if (!is_null($tiempo_entrega)) { $e = ValidacionesController::validarEntero($tiempo_entrega, 0, PHP_INT_MAX); if (!$e) { return "El tiempo de entrega (" . $tiempo_entrega . ") no esta entre 0 y " . PHP_INT_MAX; } } //valida la cuenta bancaria if (!is_null($cuenta_bancaria)) { $e = ValidacionesController::validarLongitudDeCadena($cuenta_bancaria, 0, 50); if (!$e) { return "El numero de caracteres de la cuenta bancaria (" . $cuenta_bancaria . ") no esta entre 0 y 50"; } } //valida que la tarifa de compra sea valida if (!is_null($id_tarifa_compra)) { $tarifa = TarifaDAO::getByPK($id_tarifa_compra); if (is_null($tarifa)) { return "La tarifa " . $id_tarifa_compra . " no existe"; } if (!$tarifa->getActiva()) { return "La tarifa " . $id_tarifa_compra . " no esta activa"; } if ($tarifa->getTipoTarifa() != "compra") { return "La tarifa " . $id_tarifa_compra . " no es una tarifa de compra"; } } //valida que la tarifa de venta sea valida if (!is_null($id_tarifa_venta)) { $tarifa = TarifaDAO::getByPK($id_tarifa_venta); if (is_null($tarifa)) { return "La tarifa " . $id_tarifa_venta . " no existe"; } if (!$tarifa->getActiva()) { return "La tarifa " . $id_tarifa_venta . " no esta activa"; } if ($tarifa->getTipoTarifa() != "venta") { return "La tarifa " . $id_tarifa_venta . " no es una tarifa de venta"; } } //valida que el usuario padre exista y este activo if (!is_null($id_usuario_padre)) { $usuario_padre = UsuarioDAO::getByPK($id_usuario_padre); if (is_null($usuario_padre)) { return "El usuario padre " . $id_usuario_padre . " no existe"; } if ($usuario_padre->getActivo()) { return "El usuario padre " . $usuario_padre->getNombre() . " no esta activo"; } } return true; }
/** * *Edita un tipo de almacen * * @param id_tipo_almacen int Id del tipo de almacen a editar * @param activo bool Indica si el tipo almacén se activa o desactiva * @param descripcion string Descripcion del tipo de almacen **/ static function NuevoTipo($descripcion, $activo = null) { Logger::log("Creando nuevo tipo de almacen"); if (!ValidacionesController::validarLongitudDeCadena($descripcion, 0, 64)) { Logger::error("descripcion : {$descripcion}"); throw new Exception($descripcion); } //No se puede repetir la descripcion del tipo de almacen $tipos_almacen = TipoAlmacenDAO::search(new TipoAlmacen(array("descripcion" => trim($descripcion)))); if (!empty($tipos_almacen)) { Logger::error("La descripcion (" . $descripcion . ") es repetida"); throw new BusinessLogicException("La descripcion esta repetida"); } $activo = $activo == null ? 1 : $activo; $tipo_almacen = new TipoAlmacen(array("descripcion" => trim($descripcion), "activo" => $activo)); DAO::transBegin(); try { TipoAlmacenDAO::save($tipo_almacen); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo crear el nuevo tipo de almacen: " . $e); throw new InvalidDatabaseOperationException("No se pudo crear el nuevo tipo de almacen, contacte a su administrador de sistema"); } DAO::transEnd(); Logger::log("Tipo de almacen creado exitosamente"); return array("id_tipo_almacen" => (int) $tipo_almacen->getIdTipoAlmacen()); }