/** * *Edita la informacion de una clasificacion de proveedor * * @param id_clasificacion_proveedor int Id de la clasificacion del proveedor a editar * @param retenciones json Ids de las retenciones de la clasificacion de proveedor * @param impuestos json Ids de los impuestos de la clasificacion del proveedor * @param descripcion string Descripcion de la clasificacion del proveedor * @param nombre string Nombre de la clasificacion del proveedor **/ public static function EditarClasificacion($id_clasificacion_proveedor, $descripcion = null, $id_tarifa_compra = null, $id_tarifa_venta = null, $impuestos = null, $nombre = null, $retenciones = null) { Logger::log("Editando la clasificacion de proveedor " . $id_clasificacion_proveedor); //valida los parametros recibidos $validar = self::validarParametrosClasificacionProveedor($id_clasificacion_proveedor, $nombre, $descripcion, null, $id_tarifa_compra, $id_tarifa_venta); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar); } //Los parametros que no sean nulos seran tomados como actualizacion $clasificacion_proveedor = ClasificacionProveedorDAO::getByPK($id_clasificacion_proveedor); if (!is_null($descripcion)) { $clasificacion_proveedor->setDescripcion($descripcion); } if (!is_null($nombre)) { $clasificacion_proveedor->setNombre($nombre); } $cambio_tarifa_compra = false; $cambio_tarifa_venta = false; if (!is_null($id_tarifa_compra)) { if ($id_tarifa_compra != $clasificacion_proveedor->getIdTarifaCompra()) { $cambio_tarifa_compra = true; $clasificacion_proveedor->setIdTarifaCompra($id_tarifa_compra); } } if (!is_null($id_tarifa_venta)) { if ($id_tarifa_venta != $clasificacion_proveedor->getIdTarifaVenta()) { $cambio_tarifa_venta = true; $clasificacion_proveedor->setIdTarifaVenta($id_tarifa_venta); } } //Se actualiza el registro. Si se reciben listas de impuestos y/o registros se guardan los //que estan en la lista, despues se recorren los registros de la base de datos y aquellos que no //se encuentren en la lista nueva seran eliminados. DAO::transBegin(); try { ClasificacionProveedorDAO::save($clasificacion_proveedor); //Si se cambia la tarifa de compra o de venta, se actualizan aquellos proveedores //con etsa clasificacion de proveedor y cuya tarifa haya sido obtenida por el rol //o por la clasificacion de proveedor. if ($cambio_tarifa_compra || $cambio_tarifa_venta) { $proveedores = UsuarioDAO::search(new Usuario(array("id_clasificacion_proveedor" => $id_clasificacion_proveedor))); foreach ($proveedores as $proveedor) { if ($cambio_tarifa_compra) { if ($proveedor->getTarifaCompraObtenida() == "rol" || $proveedor->getTarifaCompraObtenida() == "proveedor") { $proveedor->setIdTarifaCompra($id_tarifa_compra); $proveedor->setTarifaCompraObtenida("proveedor"); } } if ($cambio_tarifa_venta) { if ($proveedor->getTarifaVentaObtenida() == "rol" || $proveedor->getTarifaVentaObtenida() == "proveedor") { $proveedor->setIdTarifaVenta($id_tarifa_venta); $proveedor->setTarifaVentaObtenida("proveedor"); } } UsuarioDAO::save($proveedor); } } if (!is_null($impuestos)) { $impuestos = object_to_array($impuestos); if (!is_array($impuestos)) { throw new Exception("Los impuestos son invalidos"); } $impuesto_clasificacion_proveedor = new ImpuestoClasificacionProveedor(array("id_clasificacion_proveedor" => $clasificacion_proveedor->getIdClasificacionProveedor())); foreach ($impuestos as $impuesto) { if (is_null(ImpuestoDAO::getByPK($impuesto))) { throw new Exception("El impuesto " . $impuesto . " no existe", 901); } $impuesto_clasificacion_proveedor->setIdImpuesto($impuesto); ImpuestoClasificacionProveedorDAO::save($impuesto_clasificacion_proveedor); } $impuestos_clasificacion_proveedor = ImpuestoClasificacionProveedorDAO::search(new ImpuestoClasificacionProveedor(array("id_clasificacion_proveedor" => $id_clasificacion_proveedor))); foreach ($impuestos_clasificacion_proveedor as $impuesto_clasificacion_proveedor) { $encontrado = false; foreach ($impuestos as $impuesto) { if ($impuesto == $impuesto_clasificacion_proveedor->getIdImpuesto()) { $encontrado = true; } } if (!$encontrado) { ImpuestoClasificacionProveedorDAO::delete($impuesto_clasificacion_proveedor); } } } /* Fin if de impuestos */ if (!is_null($retenciones)) { $retenciones = object_to_array($retenciones); if (!is_array($retenciones)) { throw new Exception("Las retenciones son invalidas", 901); } $retencion_clasificacion_proveedor = new RetencionClasificacionProveedor(array("id_clasificacion_proveedor" => $clasificacion_proveedor->getIdClasificacionProveedor())); foreach ($retenciones as $retencion) { if (is_null(RetencionDAO::getByPK($retencion))) { throw new Exception("La retencion " . $retencion . " no existe", 901); } $retencion_clasificacion_proveedor->setIdRetencion($retencion); RetencionClasificacionProveedorDAO::save($retencion_clasificacion_proveedor); } $retenciones_clasificacion_proveedor = RetencionClasificacionProveedorDAO::search(new RetencionClasificacionProveedor(array("id_clasificacion_proveedor" => $id_clasificacion_proveedor))); foreach ($retenciones_clasificacion_proveedor as $retencion_clasificacion_proveedor) { $encontrado = false; foreach ($retenciones as $retencion) { if ($retencion == $retencion_clasificacion_proveedor->getIdRetencion()) { $encontrado = true; } } if (!$encontrado) { RetencionClasificacionProveedorDAO::delete($retencion_clasificacion_proveedor); } } } /* Fin if de retenciones */ } catch (Exception $e) { DAO::transRollback(); Logger::error("La clasificacion de proveedor no ha podido ser editada: " . $e); if ($e->getCode() == 901) { throw new Exception("La clasificacion de proveedor no ha podido ser editada: " . $e->getCode(), 901); } throw new Exception("La clasificacion de proveedor no ha podido ser editada", 901); } DAO::transEnd(); Logger::log("La clasificacion de proveedor ha sido eeditada exitosamente "); }
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; }
<?php define("BYPASS_INSTANCE_CHECK", false); require_once "../../../server/bootstrap.php"; $page = new GerenciaComponentPage(); // // Parametros necesarios // $page->requireParam("cid", "GET", "Esta clasificacion de proveedor no existe."); $esta_clasificacion = ClasificacionProveedorDAO::getByPK($_GET["cid"]); //titulos $page->addComponent(new TitleComponent("Editar clasificacion de proveedor: " . $esta_clasificacion->getNombre())); //forma de nuevo paquete $form = new DAOFormComponent($esta_clasificacion); $form->hideField(array("id_clasificacion_proveedor")); // $form->renameField( array( // "nombre" => "razon_social", // "codigo_usuario" => "codigo_cliente" // )); $form->addApiCall("api/proveedor/clasificacion/editar/", "GET"); // $form->makeObligatory(array( // "nombre" // )); // $form->createComboBoxJoin( "id_ciudad", "nombre", CiudadDAO::getAll( ) ); // $form->createComboBoxJoin( "id_clasificacion_cliente", "nombre", ClasificacionClienteDAO::getAll( ) ); $page->addComponent($form); //render the page $page->render();
function funcion_clasificacion_proveedor($id_clasificacion_proveedor) { return ClasificacionProveedorDAO::getByPK($id_clasificacion_proveedor) ? ClasificacionProveedorDAO::getByPK($id_clasificacion_proveedor)->getNombre() : "----"; }