public function testExtraParamsOutOfSync() { //create user A $userA = ClientesController::Nuevo("userA" . time()); Logger::log("Create client A [userid=" . $userA["id_cliente"] . "]"); //create extra param $extraParamStruct = new ExtraParamsEstructura(); $extraParamStruct->setTabla("usuarios"); $extraParamStruct->setCampo("campo" . time()); $extraParamStruct->setTipo("string"); $extraParamStruct->setEnum(NULL); $extraParamStruct->setLongitud(128); $extraParamStruct->setObligatorio(FALSE); $extraParamStruct->setCaption("caption" . time()); $extraParamStruct->setDescripcion("description" . time()); ExtraParamsEstructuraDAO::save($extraParamStruct); Logger::log("Extra params " . $extraParamStruct->getIdExtraParamsEstructura() . " created"); //create user B $userB = ClientesController::Nuevo("userB" . time()); Logger::log("Create client B [userid=" . $userB["id_cliente"] . "]"); //user B should have extra param Logger::log("Looking for extra params in clientB"); $userBExtraParams = ExtraParamsValoresDAO::getVals("usuarios", $userB["id_cliente"]); $found = false; for ($i = 0; $i < sizeof($userBExtraParams); $i++) { if ($userBExtraParams[$i]["campo"] == $extraParamStruct->getCampo()) { $found = true; } } $this->assertTrue($found, "ClientB should have the new extra param campo=" . $extraParamStruct->getCampo()); ExtraParamsValoresDAO::actualizarRegistros("usuarios"); //user A should have extra param $userAExtraParams = ExtraParamsValoresDAO::getVals("usuarios", $userA["id_cliente"]); $found = false; for ($i = 0; $i < sizeof($userAExtraParams); $i++) { if ($userAExtraParams[$i]["campo"] == $extraParamStruct->getCampo()) { $found = true; } } $this->assertTrue($found, "When adding new extraparams old users should get updated" . $extraParamStruct->getCampo()); }
/** * *Crear un nuevo cliente. Para los campos de Fecha_alta y Fecha_ultima_modificacion se usar?a fecha actual del servidor. El campo Agente y Usuario_ultima_modificacion ser?tomados de la sesi?ctiva. Para el campo Sucursal se tomar?a sucursal activa donde se est?reando el cliente. * Al crear un cliente se le creara un usuario para la interfaz de cliente y pueda ver sus facturas y eso, si tiene email. Al crearse se le enviara un correo electronico con el url. * * @param razon_social string Nombre o razon social del cliente. * @param password string Password del cliente * @param codigo_cliente string Codigo interno del cliente * @param codigo_postal string Codigo postal del cliente * @param direccion_web string Direccin web del cliente. * @param rfc string RFC del cliente. * @param clasificacion_cliente int Id de la clasificacin del cliente. * @param calle string Calle del cliente * @param curp string CURP del cliente. * @param telefono2 string Segundo telfono del cliente. * @param mensajeria bool Si el cliente cuenta con un cliente de mensajera y paquetera. * @param numero_exterior string Nmero exterior del cliente * @param cuenta_de_mensajeria string Este parmetro se vuelve obligatorio si el parmetro Mensajera es true. Especifica la cuenta de mensajera instantanea del cliente. * @param denominacion_comercial string Nombre comercial del cliente. * @param representante_legal string Nombre del representante legal del cliente. * @param colonia string Colonia del cliente * @param numero_interior string Nmero interior del cliente. * @param moneda_del_cliente int Moneda que maneja el cliente. * @param telefono1 string Telefono del cliente * @param id_ciudad int id de la ciudad * @param retenciones json Objeto que contendra los ids de las retenciones que afectan a este cliente * @param impuestos json Objeto que contendra los impuestos que afectan a este cliente * @param email string E-mail del cliente * @param texto_extra string Comentario sobre la direccin del cliente. * @return id_cliente int Id autogenerado del cliente que se insert� **/ public static function Nuevo($razon_social, $clasificacion_cliente = null, $codigo_cliente = null, $cuenta_de_mensajeria = null, $curp = null, $denominacion_comercial = null, $descuento_general = "0", $direcciones = null, $email = null, $extra_params = null, $id_cliente_padre = null, $id_moneda = 1, $id_tarifa_compra = null, $id_tarifa_venta = null, $limite_credito = "0", $password = null, $representante_legal = null, $rfc = null, $sitio_web = null, $telefono_personal1 = null, $telefono_personal2 = null) { //Se toma la sucursal actual para asignarsela al cliente $actual = SesionController::Actual(); if (is_null($clasificacion_cliente)) { $clasificacion_cliente = 1; } if (!is_null($codigo_cliente)) { $res = UsuarioDAO::search(new Usuario(array("codigo_usuario" => $codigo_cliente))); if (sizeof($res) >= 1) { throw new InvalidDataException("El codigo de cliente ya esta en uso"); } } //se crea la cliente utilizando el metodo Nuevo usuario, este se encarga de la validacion //y se toma como rol de cliente el 5 if (strlen($rfc) == 0) { $rfc = null; } if (strlen($curp) == 0) { $curp = null; } if (strlen($email) == 0) { $email = null; } if (is_null($direcciones)) { $direcciones = array(new Direccion()); } if (is_null($password)) { $password = "******" . rand(1, 9) . rand(1, 9); } try { $cliente = PersonalYAgentesController::NuevoUsuario(null, 5, $razon_social, $password, null, $email, null, $cuenta_de_mensajeria, $curp, $denominacion_comercial, $descuento_general, null, null, null, null, $direcciones, 0, $clasificacion_cliente, null, $id_moneda, $actual["id_sucursal"], $id_tarifa_compra, $id_tarifa_venta, $id_cliente_padre, null, null, $limite_credito, null, $sitio_web, $representante_legal, null, $rfc, null, null, null, $telefono_personal1, $telefono_personal2); ExtraParamsValoresDAO::setVals("usuarios", $extra_params, $cliente["id_usuario"]); $clienteObj = UsuarioDAO::getByPK($cliente["id_usuario"]); $clienteObj->setCodigoUsuario($codigo_cliente); UsuarioDAO::save($clienteObj); //guardar el codigo cliente } catch (Exception $e) { Logger::error($e); throw new InvalidDataException($e->getMessage()); } ExtraParamsValoresDAO::actualizarRegistros("usuarios"); return array("id_cliente" => (int) $cliente["id_usuario"]); }