public function testNuevaClasificacionCliente() { $c = ClasificacionClienteDAO::getByPK(1); if (!is_null($c)) { ClasificacionClienteDAO::delete($c); } $n_c = new ClasificacionCliente(); $n_c->setIdClasificacionCliente(1); $n_c->setClaveInterna('Default'); $n_c->setNombre('Default'); $n_c->setIdTarifaVenta(1); $n_c->setIdTarifaCompra(1); ClasificacionClienteDAO::save($n_c); }
<?php define("BYPASS_INSTANCE_CHECK", false); require_once "../../../server//bootstrap.php"; $page = new GerenciaComponentPage(); // // Parametros necesarios // $page->requireParam("cid", "GET", "Esta clasificacion de cliente no existe."); $esta_clasificacion = ClasificacionClienteDAO::getByPK($_GET["cid"]); // // Titulo de la pagina // $page->addComponent(new TitleComponent("Detalles de " . $esta_clasificacion->getNombre(), 2)); // // Menu de opciones // $menu = new MenuComponent(); $menu->addItem("Editar esta clasificacion", "clientes.editar.clasificacion.php?cid=" . $_GET["cid"]); $page->addComponent($menu); // // Forma de producto // $form = new DAOFormComponent($esta_clasificacion); $form->setEditable(false); $form->hideField(array("id_clasificacion_cliente")); $page->addComponent($form); $page->render();
/** * *Edita la informacion de la clasificacion de cliente * * @param id_clasificacion_cliente int Id de la clasificacion del cliente a modificar * @param impuestos json Ids de los impuestos que afectan a esta clasificacion * @param descuento float Descuento que se le aplicara a los productos * @param retenciones json Ids de las retenciones que afectan esta clasificacion * @param clave_interna string Clave interna de la clasificacion * @param nombre string Nombre de la clasificacion * @param descripcion string Descripcion larga de la clasificacion * @param margen_de_utilidad float Margen de utilidad que se le obtendra a todos los productos al venderle a este tipo de cliente **/ public static function EditarClasificacion($id_clasificacion_cliente, $clave_interna = null, $descripcion = null, $nombre = null) { Logger::log("Editando clasificacion de cliente " . $id_clasificacion_cliente); //Se validan los parametros recibidos $validar = self::validarParametrosClasificacionCliente($id_clasificacion_cliente, $clave_interna, $nombre, $descripcion); if (is_string($validar)) { Logger::error($validar); throw new Exception($validar, 901); } // $cambio_tarifa_compra = false; // $cambio_tarifa_venta = false; //Los parametros que no sean nulos seran tomados como actualizacion $clasificacion_cliente = ClasificacionClienteDAO::getByPK($id_clasificacion_cliente); if (!is_null($clave_interna)) { $clasificacion_cliente->setClaveInterna($clave_interna); } if (!is_null($nombre)) { $clasificacion_cliente->setNombre(trim($nombre)); } if (!is_null($descripcion)) { $clasificacion_cliente->setDescripcion($descripcion); } // if(!is_null($id_tarifa_compra)) // { // if($id_tarifa_compra!=$clasificacion_cliente->getIdTarifaCompra()) // { // $cambio_tarifa_compra=true; // $clasificacion_cliente->setIdTarifaCompra($id_tarifa_compra); // } // } // if(!is_null($id_tarifa_venta)) // { // if($id_tarifa_venta!=$clasificacion_cliente->getIdTarifaVenta()) // { // $cambio_tarifa_venta=true; // $clasificacion_cliente->setIdTarifaVenta($id_tarifa_venta); // } // } //Se actualiza el registro. Si se recibe una lista de impuestos y/o retenciones, se almacenan los //registros recibidos, despues, se recorren los registro de la base de datos y se buscan en la lista recibida. //Aquellos que no sean encontrados seran eliminados DAO::transBegin(); try { ClasificacionClienteDAO::save($clasificacion_cliente); //Si cambia la tarifa de compra o venta de una clasificacion de cliente, todos los clientes //que tengan esta clasificacion y que hayan obtenido su tarifa de compra o venta de otro que no sea //de usuario debe actualizar su tarifa de compra o venta // if($cambio_tarifa_compra || $cambio_tarifa_venta) // { // $clientes = UsuarioDAO::getByPK(new Usuario( array( "id_clasificacion_cliente" => $id_clasificacion_cliente ) )); // foreach($clientes as $c) // { // if($cambio_tarifa_compra) // { // if($c->getTarifaCompraObtenida()!="usuario") // { // $c->setIdTarifaCompra($id_tarifa_compra); // $c->setTarifaCompraObtenida("cliente"); // } // } // if($cambio_tarifa_venta) // { // if($c->getTarifaVentaObtenida()!="usuario") // { // $c->setIdTarifaVenta($id_tarifa_venta); // $c->setTarifaVentaObtenida("cliente"); // } // } // UsuarioDAO::save($c); // } // } // if(!is_null($impuestos)) // { // // $impuestos = object_to_array($impuestos); // // if(!is_array($impuestos)) // { // throw new Exception("Los impuestos son invalidos",901); // } // // $impuesto_clasificacion_cliente = new ImpuestoClasificacionCliente( // array( "id_clasificacion_cliente" => $clasificacion_cliente->getIdClasificacionCliente() )); // foreach ($impuestos as $impuesto) // { // if(is_null(ImpuestoDAO::getByPK($impuesto))) // throw new Exception ("El impuesto ".$impuesto." no existe",901); // // $impuesto_clasificacion_cliente->setIdImpuesto($impuesto); // ImpuestoClasificacionClienteDAO::save($impuesto_clasificacion_cliente); // } // // $impuestos_clasificacion_cliente = ImpuestoClasificacionClienteDAO::search( // new ImpuestoClasificacionCliente( array( "id_clasificacion_cliente" => $id_clasificacion_cliente ) ) ); // foreach($impuestos_clasificacion_cliente as $impuesto_clasificacion_cliente) // { // $encontrado = false; // foreach($impuestos as $impuesto) // { // if($impuesto == $impuesto_clasificacion_cliente->getIdImpuesto()) // $encontrado = true; // } // if(!$encontrado) // ImpuestoClasificacionClienteDAO::delete ($impuesto_clasificacion_cliente); // } // }/* 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_cliente = new RetencionClasificacionCliente( // array ( "id_clasificacion_cliente" => $clasificacion_cliente->getIdClasificacionCliente() ) ); // foreach( $retenciones as $retencion ) // { // if(is_null(RetencionDAO::getByPK($retencion))) // throw new Exception("La retencion ".$retencion." no existe",901); // // $retencion_clasificacion_cliente->setIdRetencion($retencion); // RetencionClasificacionClienteDAO::save($retencion_clasificacion_cliente); // } // // $retenciones_clasificacion_cliente = RetencionClasificacionClienteDAO::search( // new RetencionClasificacionCliente( array( "id_clasificacion_cliente" => $id_clasificacion_cliente ) ) ); // foreach($retenciones_clasificacion_cliente as $retencion_clasificacion_cliente) // { // $encontrado = false; // foreach($retenciones as $retencion) // { // if($retencion == $retencion_clasificacion_cliente->getIdRetencion()) // $encontrado = true; // } // if(!$encontrado) // RetencionClasificacionClienteDAO::delete ($retencion_clasificacion_cliente); // } // }/* Fin if de retenciones */ } catch (Exception $e) { DAO::transRollback(); Logger::error("No se ha podido editar la clasificacion de cliente " . $id_clasificacion_cliente . " : " . $e); if ($e->getCode() == 901) { throw new Exception("No se ha podido editar la clasificacion de cliente: " . $e->getMessage()); } throw new Exception("No se ha podido editar la clasificacion de cliente, consulte a su administrador de sistema"); } DAO::transEnd(); }
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; }
function funcion_clasificacion_cliente($id_clasificacion_cliente) { return ClasificacionClienteDAO::getByPK($id_clasificacion_cliente) ? ClasificacionClienteDAO::getByPK($id_clasificacion_cliente)->getNombre() : "------"; }