/** * *Editar los detalles de un usuario. * * @param id_usuario int Usuario a editar * @param colonia_2 string Colonia de la direccion alterna del usuario * @param id_rol int Id rol del usuario * @param salario float Si el usuario contara con un salario no establecido por el rol * @param descuento float Descuento que se le hara al usuario al venderle * @param telefono_personal_1 string telefono personal del usuario * @param limite_de_credito float Limite de credito del usuario * @param pagina_web string Pagina web del usuario * @param telefono2_2 string telefono2 de la direccion alterna del usuario * @param facturar_a_terceros bool Si el usuario puede facturar a terceros * @param mensajeria bool Si el usuario tiene una cuenta de mensajeria * @param telefono_personal_2 string Telefono personal alterno del usuario * @param ventas_a_credito int Ventas a credito del cliente * @param texto_extra_2 string Texto extra para ubicar la direccion alterna del usuario * @param impuestos json Objeto que contendra los ids de los impuestos que afectan a este usuario * @param retenciones json Ids de las retenciones que afectan a este usuario * @param saldo_del_ejercicio float Saldo del ejercicio del cliente * @param id_ciudad_2 int Id de la ciudad de la direccion alterna del usuario * @param dia_de_pago string Fecha de pago del cliente * @param calle string calle del domicilio del usuario * @param numero_interior_2 string Numero interior de la direccion alterna del usuario * @param codigo_postal string Codigo Postal del domicilio del usuario * @param texto_extra string Referencia del domicilio del usuario * @param numero_interior string Numero interior del domicilio del usuario * @param id_ciudad int Id de la ciudad del domicilio del usuario * @param password string Password del usuario * @param id_clasificacion_proveedor int Id de la clasificacion del proveedor * @param codigo_usuario string Codigo interno del usuario * @param nombre string Nombre del usuario * @param colonia string Colonia donde vive el usuario * @param comision_ventas float El porcentaje que gana como comision por ventas este usuario * @param correo_electronico string correo electronico del usuario * @param representante_legal string Nombre del representante legal del usuario * @param calle_2 string Calle de la direccion alterna del usuario * @param dias_de_embarque int Dias de emabrque del proveedor ( Lunes, Miercoles, etc) * @param telefono2 string Otro telefono de la direccion del usuario * @param dias_de_credito int Dias de credito del cliente * @param rfc string RFC del usuario * @param curp string CURP del usuario * @param numero_exterior_2 string Numero exterior de la direccion alterna del usuario * @param numero_exterior string Numero exterior del domicilio del usuario * @param denominacion_comercial string Denominacion comercial del cliente * @param descuento_es_porcentaje bool Si el descuento es un porcentaje o es un valor fijo * @param id_clasificacion_cliente int Id de la clasificacion del cliente * @param cuenta_bancaria string Cuenta bancaria del usuario * @param dia_de_revision string Fecha de revision del cliente * @param cuenta_mensajeria string Cuenta de mensajeria del usuario * @param telefono1 string Telefono del usuario * @param codigo_postal_2 string Codigo postal de la direccion alterna del usuario * @param id_sucursal int Id de la sucursal en la que fue creada este usuario o donde labora. * @param telefono1_2 string Telefono de la direccion alterna del usuario * @param intereses_moratorios float Intereses moratorios del cliente **/ public static function EditarUsuario($id_usuario, $codigo_usuario = null, $comision_ventas = null, $correo_electronico = null, $cuenta_bancaria = null, $cuenta_mensajeria = null, $curp = null, $denominacion_comercial = null, $descuento = null, $descuento_es_porcentaje = null, $dias_de_credito = null, $dias_de_embarque = null, $dia_de_pago = null, $dia_de_revision = null, $direcciones = null, $facturar_a_terceros = null, $id_clasificacion_cliente = null, $id_clasificacion_proveedor = null, $id_moneda = null, $id_rol = null, $id_sucursal = null, $id_tarifa_compra = null, $id_tarifa_venta = null, $id_usuario_padre = null, $impuestos = null, $intereses_moratorios = null, $limite_de_credito = null, $mensajeria = null, $nombre = null, $pagina_web = null, $password = null, $representante_legal = null, $retenciones = null, $rfc = null, $salario = null, $saldo_del_ejercicio = null, $telefono_personal_1 = null, $telefono_personal_2 = null, $tiempo_entrega = null, $ventas_a_credito = null) { Logger::log("Editando usuario: " . $id_usuario); //valida los parametros de la tabla usuario /*$validar=self::validarParametrosUsuario($id_usuario, null, $id_sucursal, $id_rol, $id_clasificacion_cliente, $id_clasificacion_proveedor, $id_moneda, null, $nombre, $rfc, $curp, $comision_ventas, $telefono_personal_1, $telefono_personal_2, $limite_de_credito, $descuento, $password, $salario, $correo_electronico,$pagina_web,$saldo_del_ejercicio,$ventas_a_credito, $representante_legal,$facturar_a_terceros,$dia_de_pago,$mensajeria, $intereses_moratorios,$denominacion_comercial,$dias_de_credito, $cuenta_mensajeria,$dia_de_revision,$codigo_usuario,$dias_de_embarque,$tiempo_entrega,$cuenta_bancaria, $id_tarifa_compra,$id_tarifa_venta,$id_usuario_padre); if(is_string($validar)) { Logger::error($validar); throw new Exception($validar,901); } */ //Se trae el registro con el id obtenido $usuario = UsuarioDAO::getByPK($id_usuario); //bandera que indica si el rol se cambio o no. $cambio_rol = false; // se validan los campos, si no son nulos, se cambia el registro. if (!is_null($id_sucursal)) { $usuario->setIdSucursal($id_sucursal); } if (!is_null($id_rol)) { if ($usuario->getIdRol() != $id_rol) { //Si el usuario obtuvo la tarifa de compra o de venta del rol anterior, se actualiza su tarifa tambien $rol_nuevo = RolDAO::getByPK($id_rol); if ($usuario->getTarifaCompraObtenida() == "rol") { $usuario->setIdTarifaCompra($rol_nuevo->getIdTarifaCompra()); } if ($usuario->getTarifaVentaObtenida() == "rol") { $usuario->setIdTarifaVenta($rol_nuevo->getIdTarifaVenta()); } $usuario->setIdRol($id_rol); $usuario->setFechaAsignacionRol(time()); } } if (!is_null($id_clasificacion_cliente)) { $usuario->setIdCategoriaContacto($id_clasificacion_cliente); //Si el usuario obtuvo su tarifa de compra o de venta de la clasificacion de cliente, de proveedor o de rol, //entonces se tiene que actualizar if ($usuario->getTarifaCompraObtenida() != "usuario") { $clasificacion_cliente = CategoriaContactoDAO::getByPK($id_clasificacion_cliente); $usuario->setIdTarifaCompra($clasificacion_cliente->getIdTarifaCompra()); $usuario->setTarifaCompraObtenida("cliente"); } if ($usuario->getTarifaVentaObtenida() != "usuario") { $clasificacion_cliente = CategoriaContactoDAO::getByPK($id_clasificacion_cliente); $usuario->setIdTarifaVenta($clasificacion_cliente->getIdTarifaVenta()); $usuario->setTarifaVentaObtenida("cliente"); } } if (!is_null($id_clasificacion_proveedor)) { $usuario->setIdCategoriaContacto($id_clasificacion_proveedor); //Si el usuario obtuvo su tarifa de compra o venta de la clasificacion de proveedor o del rol, //entonces se tiene que actualizar if ($usuario->getTarifaCompraObtenida() == "rol" || $usuario->getTarifaCompraObtenida() == "proveedor") { $clasificacion_proveedor = CategoriaContactoDAO::getByPK($id_clasificacion_proveedor); $usuario->setIdTarifaCompra($clasificacion_proveedor->getIdTarifaCompra()); $usuario->setTarifaCompraObtenida("proveedor"); } if ($usuario->getTarifaVentaObtenida() == "rol" || $usuario->getTarifaVentaObtenida() == "proveedor") { $clasificacion_proveedor = CategoriaContactoDAO::getByPK($id_clasificacion_proveedor); $usuario->setIdTarifaVenta($clasificacion_proveedor->getIdTarifaVenta()); $usuario->setTarifaVentaObtenida("proveedor"); } } if (!is_null($id_moneda)) { $usuario->setIdMoneda($id_moneda); } if (!is_null($nombre)) { $usuario->setNombre($nombre); } if (!is_null($rfc)) { $usuarios = array_diff(UsuarioDAO::search(new Usuario(array("rfc" => $rfc))), array(UsuarioDAO::getByPK($id_usuario))); foreach ($usuarios as $u) { if ($u->getActivo()) { Logger::error("El rfc de usuario " . $rfc . " ya esta en uso"); throw new Exception("El rfc de usuario " . $rfc . " ya esta en uso", 901); } } $usuario->setRfc($rfc); } if (!is_null($curp)) { $usuarios = array_diff(UsuarioDAO::search(new Usuario(array("curp" => $curp))), array(UsuarioDAO::getByPK($id_usuario))); foreach ($usuarios as $u) { if ($u->getActivo()) { Logger::error("La curp " . $curp . " ya existe"); throw new Exception("La curp " . $curp . " ya existe", 901); } } $usuario->setCurp($curp); } if (!is_null($comision_ventas)) { $usuario->setComisionVentas($comision_ventas); } if (!is_null($telefono_personal_1)) { $usuario->setTelefonoPersonal1($telefono_personal_1); } if (!is_null($telefono_personal_2)) { $usuario->setTelefonoPersonal2($telefono_personal_2); } if (!is_null($limite_de_credito)) { $usuario->setLimiteCredito($limite_de_credito); } if (!is_null($descuento)) { $usuario->setDescuento($descuento); } if (!is_null($password)) { $usuario->setPassword(hash("md5", $password)); } if (!is_null($salario)) { $usuario->setSalario($salario); } if (!is_null($correo_electronico)) { //se verifica que el correo electronico no se repita $usuarios = array_diff(UsuarioDAO::search(new Usuario(array("correo_electronico" => $correo_electronico))), array(UsuarioDAO::getByPK($id_usuario))); foreach ($usuarios as $u) { if ($u->getActivo()) { Logger::error("El correo electronico " . $correo_electronico . " ya esta en uso"); throw new Exception("El correo electronico " . $correo_electronico . " ya esta en uso", 901); } } $usuario->setCorreoElectronico($correo_electronico); } if (!is_null($pagina_web)) { $usuario->setPaginaWeb($pagina_web); } if (!is_null($saldo_del_ejercicio)) { $usuario->setSaldoDelEjercicio($saldo_del_ejercicio); } if (!is_null($ventas_a_credito)) { $usuario->setVentasACredito($ventas_a_credito); } if (!is_null($representante_legal)) { $usuario->setRepresentanteLegal($representante_legal); } if (!is_null($facturar_a_terceros)) { $usuario->setFacturarATerceros($facturar_a_terceros); } if (!is_null($dia_de_pago)) { $usuario->setDiaDePago($dia_de_pago); } if (!is_null($mensajeria)) { $usuario->setMensajeria($mensajeria); } if (!is_null($intereses_moratorios)) { $usuario->setInteresesMoratorios($intereses_moratorios); } if (!is_null($denominacion_comercial)) { $usuario->setDenominacionComercial($denominacion_comercial); } if (!is_null($dias_de_credito)) { $usuario->setDiasDeCredito($dias_de_credito); } if (!is_null($cuenta_mensajeria)) { $usuario->setCuentaDeMensajeria($cuenta_mensajeria); } if (!is_null($dia_de_revision)) { $usuario->setDiaDeRevision($dia_de_revision); } if (!is_null($codigo_usuario)) { //se verifica que el codigo de usuario no sea repetido $usuarios = array_diff(UsuarioDAO::search(new Usuario(array("codigo_usuario" => $codigo_usuario))), array(UsuarioDAO::getByPK($id_usuario))); foreach ($usuarios as $u) { if ($u->getActivo()) { Logger::error("El codigo de usuario " . $codigo_usuario . " ya esta en uso"); throw new Exception("El codigo de usuario " . $codigo_usuario . " ya esta en uso", 901); } } $usuario->setCodigoUsuario($codigo_usuario); } if (!is_null($dias_de_embarque)) { $usuario->setDiasDeEmbarque($dias_de_embarque); } if (!is_null($tiempo_entrega)) { $usuario->setTiempoEntrega($tiempo_entrega); } if (!is_null($cuenta_bancaria)) { $usuario->setCuentaBancaria($cuenta_bancaria); } //se verifica como medida de seguridad que el password no sea igual al codigo de usaurio ni al correo electronico if (!is_null($usuario->getPassword())) { if ($usuario->getPassword() == $usuario->getCodigoUsuario() || $usuario->getPassword() == $usuario->getCorreoElectronico()) { Logger::error("El password (" . $usuario->getPassword() . ") no puede ser igual al codigo de usuario\n\t\t\t\t\t\t\t\t\t\t\t\t(" . $usuario->getCodigoUsuario() . ") ni al correo electronico (" . $usuario->getCorreoElectronico() . ")"); throw new Exception("El password (" . $usuario->getPassword() . ") no puede ser igual al codigo de usuario\n\t\t\t\t\t\t\t\t\t\t\t\t(" . $usuario->getCodigoUsuario() . ") ni al correo electronico (" . $usuario->getCorreoElectronico() . ")", 901); } } if (!is_null($id_tarifa_compra)) { $usuario->setIdTarifaCompra($id_tarifa_compra); $usuario->setTarifaCompraObtenida("usuario"); } if (!is_null($id_tarifa_venta)) { $usuario->setIdTarifaVenta($id_tarifa_venta); $usuario->setTarifaVentaObtenida("usuario"); } DAO::transBegin(); try { //guarda los cambios en el usuario UsuarioDAO::save($usuario); //Si se reciben direcciones, se borran todas las direcciones de este usuario y se agregan las recibidas. if (!is_null($direcciones)) { Logger::log("Editando direcciones..."); if (!is_array($direcciones)) { throw new Exception("Las direcciones recibidas no son un arreglo", 901); } //Se crean las direcciones recibidas foreach ($direcciones as $d) { //Se envia la direccion a editar DireccionController::EditarDireccion($d); } } //si se han obtenido nuevos impuestos se llama al metodo save para que actualice //los ya existentes y almacene los nuevos /* if(!is_null($impuestos)) { $impuestos = object_to_array($impuestos); if(!is_array($impuestos)) { throw new Exception("Los impuestos no fueron recibidos correctamente",901); } foreach($impuestos as $id_impuesto) { ImpuestoUsuarioDAO::save(new ImpuestoUsuario( array( "id_impuesto" => $id_impuesto , "id_usuario" => $id_usuario ) )); } //Se obtiene la lista de impuestos correspondientes a este usuario y se buscan aquellos //que no esten incluidos en la nueva lista obtenida de impuestos para eliminarlos. $impuestos_usuario = ImpuestoUsuarioDAO::search( new ImpuestoUsuario( array( "id_usuario" => $id_usuario ) )); foreach($impuestos_usuario as $impuesto_usuario) { $encontrado=false; foreach($impuestos as $id_impuesto) { if($id_impuesto == $impuesto_usuario->getIdImpuesto()) { $encontrado = true; } } if(!$encontrado) { ImpuestoUsuarioDAO::delete($impuesto_usuario); } } } //si se han obtenido nuevas retenciones se llama al metodo save para que actualice //las ya existentes y almacene las nuevas if(!is_null($retenciones)) { $retenciones = object_to_array($retenciones); if(!is_array($retenciones)) { throw new Exception("Las retenciones no fueron recibidas correctamente",901); } foreach($retenciones as $id_retencion) { RetencionUsuarioDAO::save(new RetencionUsuario( array( "id_retencion" => $id_retencion , "id_usuario" => $id_usuario ) )); } //Se obtiene la lista de retenciones correspondientes a este usuario y se buscan aquellas //que no esten incluidas en la nueva lista obtenida de retenciones para eliminarlas. $retenciones_usuario = RetencionUsuarioDAO::search( new RetencionUsuario( array( "id_usuario" => $id_usuario ) )); foreach($retenciones_usuario as $retencion_usuario) { $encontrado=false; foreach($retenciones as $id_retencion) { if($id_retencion == $retencion_usuario->getIdRetencion()) { $encontrado = true; } } if(!$encontrado) { RetencionUsuarioDAO::delete($retencion_usuario); } } } */ //Si cambio el rol, se borran todos los permisos del usuario y se le asignan los //permisos del nuevo rol. $permisos_usuario = PermisoUsuarioDAO::search(new PermisoUsuario(array("id_usuario" => $id_usuario))); foreach ($permisos_usuario as $permiso_usuario) { PermisoUsuarioDAO::delete($permiso_usuario); } $permisos_rol = PermisoRolDAO::search(new PermisoRol(array("id_rol" => $id_rol))); foreach ($permisos_rol as $permiso_rol) { PermisoUsuarioDAO::save(new PermisoUsuario(array("id_usuario" => $id_usuario, "id_permiso" => $permiso_rol->getIdPermiso()))); } } catch (Exception $e) { DAO::transRollback(); Logger::error("El usuario " . $id_usuario . " no ha podido se editado: " . $e); if ($e->getCode() == 901) { throw new Exception("No se pudo editar al usuario: " . $e->getMessage(), 901); } throw new Exception("No se pudo editar al usuario, consulte a su administrador de sistema", 901); } DAO::transEnd(); Logger::log("Usuario " . $id_usuario . " editado exitosamente"); }
/** * *Edita los datos de una sucursal * * @author Juan Manuel García Carmona <*****@*****.**> * @param id_sucursal int Id de la sucursal a modificar * @param id_tarifa int Id de la tarifa por default de la sucursal * @param activo bool Indica si esta sucursal estar activa * @param descripcion string Descripcion de la sucursal * @param direccion json Objeto que contiene la informacin sobre al direccion * @param id_gerente int Id del gerente de la sucursal **/ public static function Editar($id_sucursal, $activo = null, $descripcion = null, $direccion = null, $id_gerente = null, $id_tarifa = null) { DAO::transBegin(); //Se obtiene la sucursal a editar y se valida que exista if (!($sucursal = SucursalDAO::getByPK($id_sucursal))) { Logger::error("La sucursal con id : {$id_sucursal} no existe"); throw new InvalidDataException("La sucursal con id : {$id_sucursal} no existe"); } //verificamos si la sucursal esta activa en caso de no estarlo solo permitira activarla if ($activo !== NULL) { $val = null; if ($activo == 1) { $val = true; } elseif ($activo == "") { $val = false; } $sucursal->setActiva($val); } //editamos solo la direccion if (!is_null($direccion)) { if (!is_array($direccion)) { $direccion = object_to_array($direccion); } //varificamos si la direccion que tiene la sucursal existe si no creamos una if (!($_direccion = DireccionDAO::getByPK($sucursal->getIdDireccion()))) { //no existe, etonces creamos una nueva direccion DireccionController::NuevaDireccion(isset($direccion['calle']) ? $direccion['calle'] : "", isset($direccion['numero_exterior']) ? $direccion['numero_exterior'] : "", isset($direccion['colonia']) ? $direccion['colonia'] : "", isset($direccion['id_ciudad']) ? $direccion['id_ciudad'] : "", isset($direccion['codigo_postal']) ? $direccion['codigo_postal'] : "", isset($direccion['numero_interior']) ? $direccion['numero_interior'] : "", isset($direccion['referencia']) ? $direccion['referencia'] : "", isset($direccion['telefono1']) ? $direccion['telefono1'] : "", isset($direccion['telefono2']) ? $direccion['telefono2'] : ""); } else { //la direccion existe, hay que editarla $_direccion->setCalle(isset($direccion['calle']) ? $direccion['calle'] : ""); $_direccion->setNumeroExterior(isset($direccion['numero_exterior']) ? $direccion['numero_exterior'] : ""); $_direccion->setNumeroInterior(isset($direccion['numero_interior']) ? $direccion['numero_interior'] : ""); $_direccion->setReferencia(isset($direccion['referencia']) ? $direccion['referencia'] : ""); $_direccion->setColonia(isset($direccion['colonia']) ? $direccion['colonia'] : ""); $_direccion->setIdCiudad(isset($direccion['id_ciudad']) ? $direccion['id_ciudad'] : ""); $_direccion->setCodigoPostal(isset($direccion['codigo_postal']) ? $direccion['codigo_postal'] : ""); $_direccion->setTelefono(isset($direccion['telefono1']) ? $direccion['telefono1'] : ""); $_direccion->setTelefono2(isset($direccion['telefono2']) ? $direccion['telefono2'] : ""); try { DireccionDAO::save($_direccion); } catch (Exception $e) { DAO::transRollback(); Logger::error("Error al modificar la direccion : {$e}"); throw new Exception("Ocurrio un error al modificar la direccion"); } } } //verificamos si cambio el gerente if (!is_null($id_gerente)) { $usuario_gerente = UsuarioDAO::getByPK($id_gerente); if (!$usuario_gerente) { Logger::error("No se tiene registro del gerente con id : {$id_gerente}"); throw new Exception("No se tiene registro del gerente con id : {$id_gerente}"); } else { $sucursal->setIdGerente($usuario_gerente->getIdUsuario()); } } // if (!is_null($id_tarifa) && !($tarifa = TarifaDAO::getByPK($id_tarifa))) { Logger::error("No se tiene registro de la tarifa con id : {$id_gerente}"); throw new Exception("No se tiene registro de la tarifa indicada"); } else { $sucursal->setIdTarifa($id_tarifa); } //verificamos si cambio la descripcion $descripcion = trim($descripcion); if ($descripcion !== $sucursal->getDescripcion()) { //verificamos si hay una sucursal con esa misma descripcion $sucursales = SucursalDAO::search(new Sucursal(array("descripcion" => $descripcion))); if (!empty($sucursales)) { DAO::transRollback(); Logger::error("Ya existe una sucursal con esa descripcion"); throw new Exception("Ya existe una sucursal con esa descripcion"); } else { $sucursal->setDescripcion($descripcion); } } try { SucursalDAO::save($sucursal); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo actualizar la sucursal: " . $e); if ($e->getCode() == 901) { throw new Exception("No se pudo actualizar la sucursal: " . $e->getMessage(), 901); } throw new Exception("No se pudo actualizar la sucursal", 901); } DAO::transEnd(); Logger::log("Sucursal actualizada exitosamente"); }
/** * * Un administrador puede editar una sucursal, incuso si hay puntos de venta con sesiones activas que pertenecen a esa empresa. * * @author Juan Manuel García Carmona <*****@*****.**> * @param id_empresa int Id de la empresa a modificar * @param cuentas_bancarias json Arreglo que contiene los id de las cuentas bancarias * @param direccion json { "tipo": "fiscal", "calle": "Francisco I Madero", "numero_exterior": "1009A", "numero_interior": 12, "colonia": "centro", "codigo_postal": "38000", "telefono1": "4611223312", "telefono2": "", "id_ciudad": 3, "referencia": "El local naranja"} * @param direccion_web string Direccion del sitio de la empresa * @param email string Correo electronico de la empresa * @param id_moneda string Id de la moneda base que manejaran las sucursales * @param impuestos_compra json Impuestos de compra por default que se heredan a las sucursales y estas a su vez a los productos * @param impuestos_venta json Impuestos de venta por default que se heredan a las sucursales y estas a su vez a los productos * @param mensaje_morosos string mensaje enviado a los clientes (email) cuando un pago es demorado * @param razon_social string El nombre de la nueva empresa. * @param representante_legal string El nombre del representante legal de la nueva empresa. * @param rfc string RFC de la empresa * @param uri_logo string url del logo de la empresa **/ public static function Editar($id_empresa, $cuentas_bancarias = null, $direccion = null, $direccion_web = null, $email = null, $id_moneda = "0", $impuestos_compra = null, $impuestos_venta = null, $mensaje_morosos = null, $razon_social = null, $representante_legal = null, $rfc = null, $uri_logo = null) { //se guarda el registro de la empresa y se verifica que este activa $empresa = EmpresaDAO::getByPK($id_empresa); if (!$empresa->getActivo()) { Logger::error("La empresa no esta activa, no se puede editar una empresa desactivada"); throw new Exception("La empresa no esta activa, no se puede editar una empresa desactivada", 901); } $empresa->setDireccionWeb($direccion_web); //TODO : Por que carajos no esta el campo email!! //$empresa->setEmail($email); //TODO : No se debe de editar //$empresa->setIdMoneda($id_moneda); $empresa->setMensajeMorosos($mensaje_morosos); $empresa->setRazonSocial($razon_social); $empresa->setRepresentanteLegal($representante_legal); $empresa->setRfc($rfc); //editamos el id del logo if (!empty($uri_logo)) { //varificamos si cambio el logo $_logo = LogoDAO::getByPK($empresa->getIdLogo()); if ($uri_logo !== $_logo->getImagen()) { $logo = new Logo(array("imagen" => $uri_logo, "tipo" => "-")); try { LogoDAO::save($logo); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo crear la empresa, error al crear el logo: " . $e->getMessage()); throw new Exception("No se pudo crear la empresa, consulte a su administrador de sistema", 901); } $id_logo = $logo->getIdLogo(); $empresa->setIdLogo($id_logo); } } //lógica para manejar la edicion o agregado de una direccion verificamos si se cambiaron las direcciones if (!is_null($direccion)) { if (!is_array($direccion)) { //Logger::error("Verifique el formato de los datos de las direcciones, se esperaba un array "); //throw new Exception("Verifique el formato de los datos de las empresas, se esperaba un array "); $direccion = object_to_array($direccion); } $_direccion = new Direccion($direccion); $d = DireccionDAO::getByPK($empresa->getIdDireccion()); //verificamos si se va a editar una direccion o se va a crear una nueva if (isset($d->id_direccion)) { //se edita la direccion if (!($_direccion = DireccionDAO::getByPK($d->id_direccion))) { DAO::transRollback(); Logger::error("No se tiene registro de la dirección con id : {$direccion->id_direccion}"); throw new InvalidDataException("No se tiene registro de la dirección con id : {$direccion->id_direccion}"); } $_direccion->setIdDireccion($d->id_direccion); //bandera que indica si cambia algun parametro de la direccion $cambio_direccion = false; //calle if (isset($d->calle)) { $cambio_direccion = true; $_direccion->setCalle($direccion['calle']); } //numero_exterior if (isset($d->numero_exterior)) { $cambio_direccion = true; $_direccion->setNumeroExterior($direccion['numero_exterior']); } //numero_interior if (isset($d->numero_interior)) { $cambio_direccion = true; $_direccion->setNumeroInterior($direccion['numero_interior']); } //referencia if (isset($d->referencia)) { $cambio_direccion = true; $_direccion->setReferencia($direccion['referencia']); } //colonia if (isset($d->colonia)) { $cambio_direccion = true; $_direccion->setColonia($direccion['colonia']); } //id_ciudad if (isset($d->id_ciudad)) { $cambio_direccion = true; $_direccion->setIdCiudad($direccion['id_ciudad']); } //codigo_postal if (isset($d->codigo_postal)) { $cambio_direccion = true; $_direccion->setCodigoPostal($direccion['codigo_postal']); } //telefono if (isset($d->telefono)) { $cambio_direccion = true; $_direccion->setTelefono($direccion['telefono1']); } //telefono2 if (isset($d->telefono2)) { $cambio_direccion = true; $_direccion->setTelefono2($direccion['telefono2']); } //Si cambio algun parametro de direccion, se actualiza el usuario que modifica y la fecha if ($cambio_direccion) { DireccionController::EditarDireccion($_direccion); } else { DireccionController::NuevaDireccion($calle = isset($d->calle) ? $d->calle : "", $numero_exterior = isset($d->numero_exterior) ? $d->numero_exterior : "", $colonia = isset($d->colonia) ? $d->colonia : "", $id_ciudad = isset($d->id_ciudad) ? $d->id_ciudad : "", $codigo_postal = isset($d->codigo_postal) ? $d->codigo_postal : "", $numero_interior = isset($d->numero_interior) ? $d->numero_interior : "", $referencia = isset($d->referencia) ? $d->referencia : "", $telefono = isset($d->telefono) ? $d->telefono : "", $telefono2 = isset($d->telefono2) ? $d->telefono2 : ""); } } } DAO::transBegin(); try { //Se guardan los cambios hechos en la empresa EmpresaDAO::save($empresa); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo modificar la empresa: " . $e); throw new Exception("No se pudo modificar la empresa"); } $impuestos_empresa = ImpuestoEmpresaDAO::search(new ImpuestoEmpresa(array("id_empresa" => $empresa->getIdEmpresa()))); //quitamos los impuestos que no estan actualmente foreach ($impuestos_empresa as $impuesto_empresa) { $exist_ic = false; foreach ($impuestos_compra as $impuesto_compra) { if ($impuesto_compra->getIdImpuesto() == $impuesto_empresa->getIdImpuesto()) { $exist_ic = true; } } if (!$exist_ic) { try { ImpuestoEmpresaDAO::delete($impuesto_empresa); } catch (Exception $e) { Logger::warn("Error al eliminar impuesto : " . $e->getMessage()); } } } $impuestos_empresa = ImpuestoEmpresaDAO::search(new ImpuestoEmpresa(array("id_empresa" => $empresa->getIdEmpresa()))); foreach ($impuestos_empresa as $impuesto_empresa) { $exist_iv = false; foreach ($impuestos_venta as $impuesto_venta) { if ($impuesto_venta->getIdImpuesto() == $impuesto_venta->getIdImpuesto()) { $exist_iv = true; } } if (!$exist_iv) { try { ImpuestoEmpresaDAO::delete($impuesto_empresa); } catch (Exception $e) { Logger::warn("Error al eliminar impuesto : " . $e->getMessage()); } } } //agregamos los impuestos de compra que no existen $impuestos_empresa = ImpuestoEmpresaDAO::search(new ImpuestoEmpresa(array("id_empresa" => $empresa->getIdEmpresa()))); if ($impuestos_compra != NULL) { foreach ($impuestos_compra as $impuesto_compra) { $exist_ic = false; foreach ($impuestos_empresa as $impuesto_empresa) { if ($impuesto_compra->getIdImpuesto() == $impuesto_empresa->getIdImpuesto()) { $exist_ic = true; } } if (!$exist_ic) { try { ImpuestoEmpresaDAO::save(new ImpuestoEmpresa(array("id_empresa" => $empresa->getIdEmpresa(), "id_impuesto" => $impuesto_compra->getIdImpuesto()))); } catch (Exception $e) { Logger::warn("Error al guardar un impuesto compra : " . $e->getMessage()); } } } } //agregamos los impuestos de venta que no existen $impuestos_empresa = ImpuestoEmpresaDAO::search(new ImpuestoEmpresa(array("id_empresa" => $empresa->getIdEmpresa()))); if ($impuestos_venta != NULL) { foreach ($impuestos_venta as $impuesto_venta) { $exist_iv = false; foreach ($impuestos_venta as $impuesto_venta) { if ($impuesto_venta->getIdImpuesto() == $impuesto_venta->getIdImpuesto()) { $exist_iv = true; } } if (!$exist_iv) { try { ImpuestoEmpresaDAO::save(new ImpuestoEmpresa(array("id_empresa" => $empresa->getIdEmpresa(), "id_impuesto" => $impuesto_venta->getIdImpuesto()))); } catch (Exception $e) { Logger::warn("Error al guardar un impuesto venta : " . $e->getMessage()); } } } } if ($cuentas_bancarias != NULL) { foreach ($cuentas_bancarias as $cuenta_bancarias) { //Pendiente hasta que se haga el SPEC de cuentas bancarias } } DAO::transEnd(); Logger::log("Empresa editada con exito"); }
if (is_null($this_personal->getIdDireccion())) { //no existe direccion Logger::log("El uid=" . $_GET["uid"] . " no tiene direccion. Insertando."); DireccionController::NuevaDireccionParaUsuario($_GET["uid"]); //recargar el objeto de cliente $this_personal = UsuarioDAO::getByPK($_GET["uid"]); } $esta_dir = DireccionDAO::getByPK($this_personal->getIdDireccion()); if (is_null($esta_dir)) { //esta definida pero el registro no existe por alguna razon Logger::error("user " . $_GET["uid"] . " se supone que tiene id direccion = " . $this_personal->getIdDireccion() . " , pero esta en null ..."); DAO::transBegin(); $this_personal->setIdDireccion(NULL); try { UsuarioDAO::save($this_personal); DireccionController::NuevaDireccionParaUsuario($this_personal->getIdUsuario()); //recargar el objeto de cliente $this_personal = UsuarioDAO::getByPK($_GET["uid"]); } catch (Exception $e) { DAO::transRollback(); throw new Exception("No se pudo crear la direccion: " . $e); } DAO::transEnd(); } $esta_dir = DireccionDAO::getByPK($this_personal->getIdDireccion()); //titulos $page->addComponent(new TitleComponent("Editar direccion: " . $esta_dir->getColonia())); //forma de nuevo usuario $form = new DAOFormComponent($esta_dir); $form->hideField(array("id_direccion", "id_usuario_ultima_modificacion", "ultima_modificacion")); $form->sendHidden("id_direccion");
if (is_null($este_cliente->getIdDireccion())) { //no existe direccion Logger::log("El uid=" . $_GET["cid"] . " no tiene direccion. Insertando."); DireccionController::NuevaDireccionParaUsuario($_GET["cid"]); //recargar el objeto de cliente $este_cliente = UsuarioDAO::getByPK($_GET["cid"]); } $esta_dir = DireccionDAO::getByPK($este_cliente->getIdDireccion()); if (is_null($esta_dir)) { //esta definida pero el registro no existe por alguna razon Logger::error("user " . $_GET["cid"] . " se supone que tiene id direccion = " . $este_cliente->getIdDireccion() . " , pero esta en null ..."); DAO::transBegin(); $este_cliente->setIdDireccion(NULL); try { UsuarioDAO::save($este_cliente); DireccionController::NuevaDireccionParaUsuario($este_cliente->getIdUsuario()); //recargar el objeto de cliente $este_cliente = UsuarioDAO::getByPK($_GET["cid"]); } catch (Exception $e) { DAO::transRollback(); throw new Exception("No se pudo crear la direccion: " . $e); } DAO::transEnd(); } $esta_dir = DireccionDAO::getByPK($este_cliente->getIdDireccion()); //titulos //forma de nuevo cliente $form = new DAOFormComponent($esta_dir); $form->hideField(array("id_direccion", "id_usuario_ultima_modificacion", "ultima_modificacion")); $form->sendHidden("id_direccion"); $form->createComboBoxJoin("id_ciudad", "nombre", CiudadDAO::getAll(), $esta_dir->getIdCiudad());
if (is_null($this_client->getIdDireccion())) { //no existe direccion Logger::log("El uid=" . $_GET["cid"] . " no tiene direccion. Insertando."); DireccionController::NuevaDireccionParaUsuario($_GET["cid"]); //recargar el objeto de cliente $this_client = UsuarioDAO::getByPK($_GET["cid"]); } $esta_dir = DireccionDAO::getByPK($this_client->getIdDireccion()); if (is_null($esta_dir)) { //esta definida pero el registro no existe por alguna razon Logger::error("user " . $_GET["cid"] . " se supone que tiene id direccion = " . $this_client->getIdDireccion() . " , pero esta en null ..."); DAO::transBegin(); $this_client->setIdDireccion(NULL); try { UsuarioDAO::save($this_client); DireccionController::NuevaDireccionParaUsuario($this_client->getIdUsuario()); //recargar el objeto de cliente $this_client = UsuarioDAO::getByPK($_GET["cid"]); } catch (Exception $e) { DAO::transRollback(); throw new Exception("No se pudo crear la direccion: " . $e); } DAO::transEnd(); } $esta_dir = DireccionDAO::getByPK($this_client->getIdDireccion()); //titulos $page->addComponent(new TitleComponent("Editar direccion: " . $esta_dir->getColonia())); //forma de nuevo cliente $form = new DAOFormComponent($esta_dir); $form->hideField(array("id_direccion", "id_usuario_ultima_modificacion", "ultima_modificacion")); $form->sendHidden("id_direccion");