Exemplo n.º 1
0
 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();
Exemplo n.º 3
0
 /**
  *
  *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;
 }
Exemplo n.º 5
0
function funcion_clasificacion_cliente($id_clasificacion_cliente)
{
    return ClasificacionClienteDAO::getByPK($id_clasificacion_cliente) ? ClasificacionClienteDAO::getByPK($id_clasificacion_cliente)->getNombre() : "------";
}