protected function tearDown() { $categorias = CategoriaContactoDAO::getAll(); foreach ($categorias as $categoria) { CategoriaContactoDAO::delete($categoria); } }
/** * *Obtener la categoria indicada. * * @param id_categoria int El ID de la categoria a obtener. * @return categoria json Detalles de la categoria. **/ public static function DetallesCategoria($id_categoria) { $categoria = CategoriaContactoDAO::getByPK($id_categoria); $alert = ''; if (!is_null($categoria)) { $categoria->nombre_completo = CategoriaContactoDAO::NombreCompleto($categoria->getId()); } return array('categoria' => $categoria); }
/** * *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"); }
public static function EditarNombreCuentasCategoriaContactos($id_categoria_contacto, $nombre_nuevo, $id_cat_padre_nueva) { $cat_contac = CategoriaContactoDAO::getByPK($id_categoria_contacto); if (is_null($cat_contac)) { Logger::log("La categoria de contacto con id={$id_categoria_contacto} no existe"); } else { $cc = self::BuscarCuenta(1, $afectable = "", $clasificacion = "Activo Circulante", $clave = "", $consecutivo_en_nivel = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_contable = "", $id_cuenta_padre = "", $naturaleza = "Deudora", $nivel = "", $nombre_cta = "CXC " . $cat_contac->nombre, $tipo_cuenta = "Balance"); $prov = self::BuscarCuenta(1, $afectable = "", $clasificacion = "Pasivo Circulante", $clave = "", $consecutivo_en_nivel = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_contable = "", $id_cuenta_padre = "", $naturaleza = "Acreedora", $nivel = "", $nombre_cta = "CXP " . $cat_contac->nombre, $tipo_cuenta = "Balance"); $id_padre = $cat_contac->id_padre != $id_cat_padre_nueva ? $id_cat_padre_nueva : ""; $id_cta_padre_cxc = ""; $id_cta_padre_cxp = ""; if ($id_padre != "") { Logger::log("- La cuenta {$nombre_nuevo} cambiara de id_categoria_padre a: {$id_padre}"); $nueva_cat_contac = CategoriaContactoDAO::getByPK($id_cat_padre_nueva); $cta_padre_cxc = self::BuscarCuenta(1, $afectable = "", $clasificacion = "Activo Circulante", $clave = "", $consecutivo_en_nivel = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_contable = "", $id_cuenta_padre = "", $naturaleza = "Deudora", $nivel = "", $nombre_cta = "CXC " . $nueva_cat_contac->nombre, $tipo_cuenta = "Balance"); if (count($cta_padre_cxc["resultados"]) < 1) { $cta_padre_cxc = self::BuscarCuenta(1, $afectable = "", $clasificacion = "Activo Circulante", $clave = "", $consecutivo_en_nivel = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_contable = "", $id_cuenta_padre = "", $naturaleza = "Deudora", $nivel = "", $nombre_cta = $nueva_cat_contac->nombre, $tipo_cuenta = "Balance"); } $id_cta_padre_cxc = $cta_padre_cxc["resultados"][0]->id_cuenta_contable; $cta_padre_cxp = self::BuscarCuenta(1, $afectable = "", $clasificacion = "Pasivo Circulante", $clave = "", $consecutivo_en_nivel = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_contable = "", $id_cuenta_padre = "", $naturaleza = "Acreedora", $nivel = "", $nombre_cta = "CXP " . $nueva_cat_contac->nombre, $tipo_cuenta = "Balance"); if (count($cta_padre_cxp["resultados"]) < 1) { $cta_padre_cxp = self::BuscarCuenta(1, $afectable = "", $clasificacion = "Pasivo Circulante", $clave = "", $consecutivo_en_nivel = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_contable = "", $id_cuenta_padre = "", $naturaleza = "Acreedora", $nivel = "", $nombre_cta = $nueva_cat_contac->nombre, $tipo_cuenta = "Balance"); } $id_cta_padre_cxp = $cta_padre_cxp["resultados"][0]->id_cuenta_contable; } if (count($cc["resultados"]) < 1) { Logger::log("No se va a ditar la cuenta contable CXC {$nombre_nuevo} por que no existe"); } else { $obj = $cc["resultados"][0]; Logger::log("- Se editara la cuenta contable " . $obj->nombre_cuenta); self::EditarCuenta($obj->id_cuenta_contable, $abonos_aumentan = "", $afectable = "", $cargos_aumentan = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_padre = $id_cta_padre_cxc, $naturaleza = "", $nombre_cuenta = "CXC " . $nombre_nuevo, $tipo_cuenta = ""); Logger::log("- Se edito la cuenta contable a CXC {$nombre_nuevo}"); } if (count($prov["resultados"]) < 1) { Logger::log("No se va a editar la cuenta contable CXP {$nombre_cuenta} por que no existe"); } else { $obj = $prov["resultados"][0]; Logger::log("- Se editara la cuenta contable " . $obj->nombre_cuenta); self::EditarCuenta($obj->id_cuenta_contable, $abonos_aumentan = "", $afectable = "", $cargos_aumentan = "", $es_cuenta_mayor = "", $es_cuenta_orden = "", $id_cuenta_padre = $id_cta_padre_cxp, $naturaleza = "", $nombre_cuenta = "CXP " . $nombre_nuevo, $tipo_cuenta = ""); Logger::log("- Se edito la cuenta contable a CXP {$nombre_nuevo}"); } } }
function funcion_clasificacion_proveedor($id_clasificacion_proveedor) { return CategoriaContactoDAO::getByPK($id_clasificacion_proveedor) ? CategoriaContactoDAO::getByPK($id_clasificacion_proveedor)->getNombre() : "----"; }