Prezados,
Estarei colocando aqui todas as informações necessárias para criar um webservice soap com webdev ou windev.
Banco de Dados:
CREATE TABLE "t0001_config" (
"t0001_id" NUMERIC(19,0) PRIMARY KEY ,
"t0001_config" VARCHAR(50) UNIQUE ,
"t0001_valor" LONGVARCHAR );
CREATE TABLE "t0002_pricetag" (
"t0002_id" NUMERIC(19,0) PRIMARY KEY ,
"t0002_refproduto" VARCHAR(20) NOT NULL UNIQUE ,
"t0002_produto" VARCHAR(255) NOT NULL ,
"t0002_valoreuro" NUMERIC(24,6) NOT NULL ,
"t0002_valorpromocaoeuro" NUMERIC(24,6) NOT NULL ,
"t0002_siteorigem" VARCHAR(3) ,
"t0002_valordolar" NUMERIC(24,6) ,
"t0002_valorpromocaodolar" NUMERIC(24,6) ,
"t0002_datainicialvalidadepromocao" DATE ,
"t0002_datafinalvalidadepromocao" DATE ,
"t0002_ativo" BIT );
CREATE INDEX "WDIDX_t0002_pricetag_t0002_produto" ON "t0002_pricetag" ("t0002_produto");
CREATE TABLE "t0003_wslog" (
"t0003_id" NUMERIC(19,0) PRIMARY KEY ,
"t0003_datahora" TIMESTAMP ,
"t0003_ip" VARCHAR(15) ,
"t0003_acao" LONGVARCHAR );
CREATE INDEX "WDIDX_t0003_wslog_t0003_datahora" ON "t0003_wslog" ("t0003_datahora");
CREATE INDEX "WDIDX_t0003_wslog_t0003_ip" ON "t0003_wslog" ("t0003_ip");
CREATE TABLE "t0004_distributeurs" (
"t0004_id" NUMERIC(19,0) PRIMARY KEY ,
"t0004_telefoneimei" VARCHAR(20) UNIQUE ,
"t0004_nome" VARCHAR(50) UNIQUE ,
"t0004_telefone" VARCHAR(20) UNIQUE ,
"t0004_email" VARCHAR(50) ,
"t0004_site" VARCHAR(50) ,
"t0004_company" VARCHAR(50) UNIQUE ,
"t0004_endereco" VARCHAR(50) ,
"t0004_numero" INTEGER ,
"t0004_bairro" VARCHAR(50) ,
"t0004_complemento" VARCHAR(50) ,
"t0004_cidade" VARCHAR(50) ,
"t0004_estado" VARCHAR(50) ,
"t0004_cep" INTEGER ,
"t0004_cxpostal" VARCHAR(20) ,
"t0004_obs" LONGVARCHAR ,
"t0004_pais" VARCHAR(30) );
CREATE TABLE "t0005_customers" (
"t0005_id" NUMERIC(19,0) PRIMARY KEY ,
"t0005_telefoneimei" VARCHAR(20) UNIQUE ,
"t0005_nome" VARCHAR(50) UNIQUE ,
"t0005_telefone" VARCHAR(20) UNIQUE ,
"t0005_email" VARCHAR(50) ,
"t0005_site" VARCHAR(50) ,
"t0005_endereco" VARCHAR(50) ,
"t0005_numero" INTEGER ,
"t0005_bairro" VARCHAR(50) ,
"t0005_complemento" VARCHAR(50) ,
"t0005_cidade" VARCHAR(50) ,
"t0005_estado" VARCHAR(50) ,
"t0005_cep" INTEGER ,
"t0005_cxpostal" VARCHAR(20) ,
"t0005_obs" LONGVARCHAR ,
"t0005_pais" VARCHAR(30) );
GLOBAL DO PROJETO
------------------------------------------------
ok is boolean
HCreationIfNotFound("*")
HModifyStructure("*",hmsBackgroundTask)
CargaInicial()
QUERYS
------------------------------------------------
SELECT
Count(*) AS QtdeRegistros
FROM
t0001_config
SELECT
Count(*) AS QtdeRegistros
FROM
t0004_distributeurs
Insert INTO t0005_customers
(
t0005_nome,
t0005_telefone,
t0005_telefoneimei,
t0005_email,
t0005_site,
t0005_endereco,
t0005_numero,
t0005_complemento,
t0005_bairro,
t0005_cidade,
t0005_estado,
t0005_pais,
t0005_cep,
t0005_cxpostal,
t0005_obs
)
VALUES
(
{Paramt0005_nome},
{Paramt0005_telefone},
{Paramt0005_telefoneimei},
{Paramt0005_email},
{Paramt0005_site},
{Paramt0005_endereco},
{Paramt0005_numero},
{Paramt0005_complemento},
{Paramt0005_bairro},
{Paramt0005_cidade},
{Paramt0005_estado},
{Paramt0005_pais},
{Paramt0005_cep},
{Paramt0005_capostal},
{Paramt0005_obs}
)
SELECT
t0005_customers.t0005_id AS t0005_customer,
t0005_customers.t0005_nome AS t0005_nome,
t0005_customers.t0005_telefone AS t0005_telefone,
t0005_customers.t0005_telefoneimei AS t0005_telefoneimei,
t0005_customers.t0005_email AS t0005_email,
t0005_customers.t0005_site AS t0005_site,
t0005_customers.t0005_endereco AS t0005_endereco,
t0005_customers.t0005_numero AS t0005_numero,
t0005_customers.t0005_complemento AS t0005_complemento,
t0005_customers.t0005_bairro AS t0005_bairro,
t0005_customers.t0005_cidade AS t0005_cidade,
t0005_customers.t0005_estado AS t0005_estado,
t0005_customers.t0005_pais AS t0005_pais,
t0005_customers.t0005_cep AS t0005_cep,
t0005_customers.t0005_cxpostal AS t0005_capostal,
t0005_customers.t0005_obs AS t0005_obs
FROM
t0005_customers
ORDER by
t0005_nome Asc
UPDATE
t0005_customers
SET
t0005_nome = {Paramt0005_nome},
t0005_telefone = {Paramt0005_telefone},
t0005_telefoneimei = {Paramt0005_telefoneimei},
t0005_email = {Paramt0005_email},
t0005_site = {Paramt0005_site},
t0005_endereco = {Paramt0005_endereco},
t0005_numero = {Paramt0005_numero},
t0005_complemento = {Paramt0005_complemento},
t0005_bairro = {Paramt0005_bairro},
t0005_cidade = {Paramt0005_cidade},
t0005_estado = {Paramt0005_estado},
t0005_pais = {Paramt0005_pais},
t0005_cep = {Paramt0005_cep},
t0005_cxpostal = {Paramt0005_capostal},
t0005_obs = {Paramt0005_obs}
WHERE
t0005_customers.t0005_id = {Paramt0005_id}
Insert INTO t0004_distributeurs
(
t0004_company,
t0004_nome,
t0004_telefone,
t0004_telefoneimei,
t0004_email,
t0004_site,
t0004_endereco,
t0004_numero,
t0004_complemento,
t0004_bairro,
t0004_cidade,
t0004_estado,
t0004_pais,
t0004_cep,
t0004_cxpostal,
t0004_obs
)
VALUES
(
{Paramt0004_company},
{Paramt0004_nome},
{Paramt0004_telefone},
{Paramt0004_telefoneimei},
{Paramt0004_email},
{Paramt0004_site},
{Paramt0004_endereco},
{Paramt0004_numero},
{Paramt0004_complemento},
{Paramt0004_bairro},
{Paramt0004_cidade},
{Paramt0004_estado},
{Paramt0004_pais},
{Paramt0004_cep},
{Paramt0004_capostal},
{Paramt0004_obs}
)
SELECT
t0004_distributeurs.t0004_id AS t0004_distriID,
t0004_distributeurs.t0004_company AS t0004_company,
t0004_distributeurs.t0004_nome AS t0004_nome,
t0004_distributeurs.t0004_telefone AS t0004_telefone,
t0004_distributeurs.t0004_telefoneimei AS t0004_telefoneimei,
t0004_distributeurs.t0004_email AS t0004_email,
t0004_distributeurs.t0004_site AS t0004_site,
t0004_distributeurs.t0004_endereco AS t0004_endereco,
t0004_distributeurs.t0004_numero AS t0004_numero,
t0004_distributeurs.t0004_complemento AS t0004_complemento,
t0004_distributeurs.t0004_bairro AS t0004_bairro,
t0004_distributeurs.t0004_cidade AS t0004_cidade,
t0004_distributeurs.t0004_estado AS t0004_estado,
t0004_distributeurs.t0004_pais AS t0004_pais,
t0004_distributeurs.t0004_cep AS t0004_cep,
t0004_distributeurs.t0004_cxpostal AS t0004_capostal,
t0004_distributeurs.t0004_obs AS t0004_obs
FROM
t0004_distributeurs
ORDER by
t0004_nome Asc
UPDATE
t0004_distributeurs
SET
t0004_company = {Paramt0004_company},
t0004_nome = {Paramt0004_nome},
t0004_telefone = {Paramt0004_telefone},
t0004_email = {Paramt0004_email},
t0004_site = {Paramt0004_site},
t0004_endereco = {Paramt0004_endereco},
t0004_numero = {Paramt0004_numero},
t0004_complemento = {Paramt0004_complemento},
t0004_bairro = {Paramt0004_bairro},
t0004_cidade = {Paramt0004_cidade},
t0004_estado = {Paramt0004_estado},
t0004_pais = {Paramt0004_pais},
t0004_cep = {Paramt0004_cep},
t0004_cxpostal = {Paramt0004_capostal},
t0004_obs = {Paramt0004_obs}
WHERE
t0004_distributeurs.t0004_telefoneimei = {Paramt0004_telefoneimei}
Insert INTO t0003_wslog
(
t0003_datahora,
t0003_ip,
t0003_acao
)
VALUES
(
{Paramt0003_datahora},
{Paramt0003_ip},
{Paramt0003_acao}
)
Delete FROM
t0002_pricetag
WHERE
t0002_pricetag.t0002_refproduto = {Paramt0002_refproduto}
Insert INTO t0002_pricetag
(
t0002_refproduto,
t0002_produto,
t0002_valoreuro,
t0002_valorpromocaoeuro,
t0002_valordolar,
t0002_valorpromocaodolar,
t0002_datainicialvalidadepromocao,
t0002_datafinalvalidadepromocao,
t0002_siteorigem,
t0002_ativo
)
VALUES
(
{Paramt0002_refproduto},
{Paramt0002_produto},
{Paramt0002_valoreuro},
{Paramt0002_valorpromocaoeuro},
{Paramt0002_valordolar},
{Paramt0002_valorpromocaodolar},
{Paramt0002_datainicialvalidadepromocao},
{Paramt0002_datafinalvalidadepromocao},
{Paramt0002_siteorigem},
{Paramt0002_ativo}
)
SELECT
t0002_pricetag.t0002_id AS t0002_id,
t0002_pricetag.t0002_refproduto AS t0002_refproduto,
t0002_pricetag.t0002_produto AS t0002_produto,
t0002_pricetag.t0002_valoreuro AS t0002_valoreuro,
t0002_pricetag.t0002_valorpromocaoeuro AS t0002_valorpromocaoeuro,
t0002_pricetag.t0002_valordolar AS t0002_valordolar,
t0002_pricetag.t0002_valorpromocaodolar AS t0002_valorpromocaodolar,
t0002_pricetag.t0002_datainicialvalidadepromocao AS t0002_datainicialvalidadepromocao,
t0002_pricetag.t0002_datafinalvalidadepromocao AS t0002_datafinalvalidadepromocao,
t0002_pricetag.t0002_siteorigem AS t0002_siteorigem
FROM
t0002_pricetag
WHERE
t0002_pricetag.t0002_ativo = 1
ORDER by
t0002_produto Asc
UPDATE
t0002_pricetag
SET
t0002_produto = {Paramt0002_produto},
t0002_valoreuro = {Paramt0002_valoreuro},
t0002_valorpromocaoeuro = {Paramt0002_valorpromocaoeuro},
t0002_valordolar = {Paramt0002_valordolar},
t0002_valorpromocaodolar = {Paramt0002_valorpromocaodolar},
t0002_datainicialvalidadepromocao = {Paramt0002_datainicialvalidadepromocao},
t0002_datafinalvalidadepromocao = {Paramt0002_datafinalvalidadepromocao},
t0002_siteorigem = {Paramt0002_siteorigem},
t0002_ativo = {Paramt0002_ativo}
WHERE
t0002_pricetag.t0002_refproduto = {Paramt0002_refproduto}
SELECT
t0001_config.t0001_id AS t0001_id,
t0001_config.t0001_config AS t0001_config,
t0001_config.t0001_valor AS t0001_valor
FROM
t0001_config
WHERE
t0001_config.t0001_config = {Paramt0001_config}
SELECT
t0003_wslog.t0003_id AS t0003_wslogID,
t0003_wslog.t0003_datahora AS t0003_datahora,
t0003_wslog.t0003_ip AS t0003_ip,
t0003_wslog.t0003_acao AS t0003_acao
FROM
t0003_wslog
ORDER by
t0003_datahora Asc
ServerProcedures
-----------------------------------------------
arr_Resultados is array of string
gsValorMemorizado is string = 1
DeclareWebserviceContext(gsValorMemorizado)
DeclareWebserviceContext(arr_Resultados)
Procedure ws_customer_insert(token, nome, telefone, telefone_imei, Email, site, endereco, numero, complemento, bairro, cidade, estado, pais, cep, cxpostal, obs, Criptografado is boolean)
CargaInicial()
arrResultado is array of string
X is int = 0
TokenOk is int = 0
Tabela is string = "t0005_customers"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = False THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
IF TokenOk = 1
ok = HExecuteQuery(QRY_Customer_Insert,hQueryDefault+hCheckDuplicates+hCheckIntegrity,nome,telefone,telefone_imei,Email,site,endereco,numero,complemento,bairro,cidade,estado,cep,cxpostal,obs,pais)
IF ok = True THEN
Resultado = ws_gravou(Tabela)
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_customer_select(token, telefone_imei, Criptografado is boolean)
arrResultado is array of string
X is int = 0
TokenOk is int = 0
Tabela is string = "t0005_customers"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = False THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
IF TokenOk = 1
ok = HExecuteQuery(QRY_Customer_Select,hQueryDefault)
IF ok = True THEN
Resultado = "<Xml><Retorno>"
FOR EACH QRY_Customer_Select
IF HFound(QRY_Customer_Select) = True
X += 1
Resultado += ws_xml_registro_comeco(Tabela, X)
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_nome,"t0005_nome")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_telefone,"t0005_telefone")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_telefoneimei,"t0005_telefoneimei")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_email,"t0005_email")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_site,"t0005_site")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_endereco,"t0005_endereco")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_numero,"t0005_numero")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_complemento,"t0005_complemento")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_bairro,"t0005_bairro")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_cidade,"t0005_cidade")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_estado,"t0005_estado")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_pais,"t0005_pais")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_cep,"t0005_cep")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_capostal,"t0005_cxpostal")
Resultado += ws_xml_registro_corpo(QRY_Customer_Select.t0005_obs,"t0005_obs")
Resultado += ws_xml_registro_final(Tabela)
END
END
IF X = 0 THEN
Resultado = ws_zero_registros(Tabela)
END
Resultado += "<TOTAL>"+X+"</TOTAL>"
Resultado += "</Retorno></Xml>"
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
HReset(QRY_Customer_Select)
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_customer_update(token, id, nome, telefone, telefone_imei, Email, site, endereco, numero, complemento, bairro, cidade, estado, pais, cep, cxpostal, obs, Criptografado is boolean)
arrResultado is array of string
X is int = 0
TokenOk is int = 0
Tabela is string = "t0005_customers"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = False THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
IF TokenOk = 1
ok = HExecuteQuery(QRY_Customer_Update,hQueryDefault+hCheckDuplicates+hCheckIntegrity,nome,telefone,telefone_imei,Email,site,endereco,numero,complemento,bairro,cidade,estado,cep,cxpostal,obs,id,pais)
IF ok = True THEN
Resultado = "<Xml><Retorno>"
ServerProceduresInternas.ws_gravou(Tabela)
IF X = 0 THEN
Resultado = ws_zero_registros(Tabela)
END
Resultado += "<TOTAL>"+X+"</TOTAL>"
Resultado += "</Retorno></Xml>"
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_distributeur_insert(token, company, nome, telefone, telefone_imei, Email, site, endereco, numero, complemento, bairro, cidade, estado, pais, cep, cxpostal, obs, Criptografado is boolean)
CargaInicial()
arrResultado is array of string
X is int = 0
TokenOk is int = 0
Tabela is string = "t0004_distributeur"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = False THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
IF TokenOk = 1
ok = HExecuteQuery(QRY_Distributeur_Insert,hQueryDefault+hCheckDuplicates+hCheckIntegrity,nome,telefone,telefone_imei,Email,site,company,endereco,numero,complemento,bairro,cidade,estado,cep,cxpostal,obs,pais)
IF ok = True THEN
Resultado = ws_gravou(Tabela)
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_distributeur_select(token, telefone_imei, Criptografado is boolean)
arrResultado is array of string
X is int = 0
TokenOk is int = 0
Tabela is string = "t0004_distributeur"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = False THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
IF TokenOk = 1
ok = HExecuteQuery(QRY_Distributeur_Select,hQueryDefault)
IF ok = True THEN
Resultado = "<Xml><Retorno>"
FOR EACH QRY_Distributeur_Select
IF HFound(QRY_Distributeur_Select) = True
X += 1
Resultado += ws_xml_registro_comeco(Tabela, X)
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_distriID,"t0004_distriID")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_company,"t0004_company")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_nome,"t0004_nome")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_telefone,"t0004_telefone")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_telefoneimei,"t0004_telefoneimei")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_email,"t0004_email")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_site,"t0004_site")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_endereco,"t0004_endereco")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_numero,"t0004_numero")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_complemento,"t0004_complemento")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_bairro,"t0004_bairro")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_cidade,"t0004_cidade")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_estado,"t0004_estado")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_pais,"t0004_pais")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_cep,"t0004_cep")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_capostal,"t0004_capostal")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_obs,"t0004_obs")
Resultado += ws_xml_registro_final(Tabela)
END
END
IF X = 0 THEN
Resultado = ws_zero_registros(Tabela)
END
Resultado += "<TOTAL>"+X+"</TOTAL>"
Resultado += "</Retorno></Xml>"
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
HReset(QRY_Distributeur_Select)
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_distributeur_update(token, company, nome, telefone, telefone_imei, Email, site, endereco, numero, complemento, bairro, cidade, estado, pais, cep, cxpostal, obs, Criptografado is boolean)
arrResultado is array of string
X is int = 0
TokenOk is int = 0
Tabela is string = "t0004_distributeur"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = False THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
IF TokenOk = 1
ok = HExecuteQuery(QRY_Distributeur_Update,hQueryDefault+hCheckDuplicates+hCheckIntegrity,nome,telefone,Email,site,telefone_imei,company,endereco,numero,complemento,bairro,cidade,estado,cep,cxpostal,obs,pais)
IF ok = True THEN
Resultado = "<Xml><Retorno>"
ServerProceduresInternas.ws_gravou(Tabela)
IF X = 0 THEN
Resultado = ws_zero_registros(Tabela)
END
Resultado += "<TOTAL>"+X+"</TOTAL>"
Resultado += "</Retorno></Xml>"
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_log_select(token, telefone_imei, Criptografado is boolean)
arrResultado is array of string
X is int = 0
TokenOk is int = 0
Tabela is string = "t0004_distri"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = False THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
IF TokenOk = 1
ok = HExecuteQuery(QRY_Distributeur_Select,hQueryDefault)
IF ok = True THEN
Resultado = "<Xml><Retorno>"
FOR EACH QRY_Distributeur_Select
IF HFound(QRY_Distributeur_Select) = True
X += 1
Resultado += ws_xml_registro_comeco(Tabela, X)
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_distriID,"t0004_distriID")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_nome,"t0004_nome")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_telefone,"t0004_telefone")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_telefoneimei,"t0004_telefoneimei")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_email,"t0004_email")
Resultado += ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_site,"t0004_site")
Resultado += ws_xml_registro_final(Tabela)
END
END
IF X = 0 THEN
Resultado = ws_zero_registros(Tabela)
END
Resultado += "<TOTAL>"+X+"</TOTAL>"
Resultado += "</Retorno></Xml>"
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
HReset(QRY_Distributeur_Select)
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_pricetag_insert(token, telefone_imei, superuser, password, refproduto, produto, valoreuro, valorpromocaoeuro, valordolar, valorpromocaodolar, datainicialvalidadepromocao, datafinalvalidadepromocao, siteorigem, ativo, Criptografado is boolean)
arrResultado is array of string
X is int = 0
TokenOk, SuperuserOk is int = 0
Tabela is string = "t0002_pricetag"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
CargaInicial()
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = 0 THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
SuperuserOk = ws_superuser(superuser, password)
IF SuperuserOk = 0 THEN
ws_a_log("SuperuserErrado")
ELSE
ws_a_log("SuperuserOk")
END
IF TokenOk = 1 AND SuperuserOk = 1 THEN
OkConn = HConnectionOpen(ConnNativa)
IF Length(datainicialvalidadepromocao) < 8 THEN
datainicialvalidadepromocao = DateSys()
END
IF Length(datafinalvalidadepromocao) < 8 THEN
datafinalvalidadepromocao = DateSys()
END
ok = HExecuteQuery(QRY_Pricetag_Insert,hQueryDefault+hCheckDuplicates+hCheckIntegrity,refproduto,produto,valoreuro,valorpromocaoeuro,valordolar,valorpromocaodolar,datainicialvalidadepromocao,datafinalvalidadepromocao,siteorigem,ativo)
IF ok = True THEN
Resultado = ws_gravou(Tabela)
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_pricetag_select(token, telefone_imei, Criptografado is boolean)
arrResultado is array of string
X is int = 0
TokenOk is int = 0
Tabela is string = "t0002_pricetag"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = False THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
IF TokenOk = 1
ok = HExecuteQuery(QRY_Pricetag_Select,hQueryDefault)
IF ok = True THEN
Resultado = "<Xml><Retorno>"
FOR EACH QRY_Pricetag_Select
IF HFound(QRY_Pricetag_Select) = True
X += 1
Resultado += ws_xml_registro_comeco(Tabela, X)
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_ID,"t0002_ID")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_refproduto,"t0002_refproduto")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_produto,"t0002_produto")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_valoreuro,"t0002_valoreuro")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_valorpromocaoeuro,"t0002_valorpromocaoeuro")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_valordolar,"t0002_valordolar")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_valorpromocaodolar,"t0002_valorpromocaodolar")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_datainicialvalidadepromocao,"t0002_datainicialvalidadepromocao")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_datafinalvalidadepromocao,"t0002_datafinalvalidadepromocao")
Resultado += ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_siteorigem,"t0002_siteorigem")
Resultado += ws_xml_registro_final(Tabela)
END
END
IF X = 0 THEN
Resultado = ws_zero_registros(Tabela)
END
Resultado += "<TOTAL>"+X+"</TOTAL>"
Resultado += "</Retorno></Xml>"
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei)
END
END
HReset(QRY_Pricetag_Select)
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_pricetag_update(token, telefone_imei, superuser, password, refproduto, produto, valoreuro, valorpromocaoeuro, valordolar, valorpromocaodolar, datainicialvalidadepromocao, datafinalvalidadepromocao, siteorigem, ativo, Criptografado is boolean)
arrResultado is array of string
X is int = 0
TokenOk, SuperuserOk is int = 0
Tabela is string = "t0002_pricetag"
Resultado is string = ""
sErro is string = ""
IF token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha(Tabela)
ELSE
TokenOk = ws_token(token,telefone_imei)
IF TokenOk = 0 THEN
ws_a_log("TokenErrado")
ELSE
ws_a_log("TokenOK")
END
SuperuserOk = ws_superuser(superuser, password)
IF SuperuserOk = 0 THEN
ws_a_log("SuperuserErrado")
ELSE
ws_a_log("SuperuserOk")
END
IF TokenOk = 1 AND SuperuserOk = 1
ok = HExecuteQuery(QRY_Pricetag_Update,hQueryDefault+hCheckDuplicates+hCheckIntegrity,produto,valoreuro,valorpromocaoeuro,valordolar,valorpromocaodolar,datainicialvalidadepromocao,datafinalvalidadepromocao,siteorigem,refproduto,ativo)
IF ok = True THEN
Resultado = ServerProceduresInternas.ws_gravou(Tabela)
ELSE
Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo())
END
ELSE
Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei +" Superuser: "+ SuperuserOk)
END
END
token = ""
telefone_imei = ""
HConnectionClose(ConnNativa)
ELSE
Resultado = ws_token_invalido(Tabela)
END
IF Criptografado = True
Resultado = Crypt(Resultado,token,compressNone,encodeBASE64)
END
Add(arrResultado,Resultado)
RESULT (arrResultado)
ServerProceduresInternas
----------------------------------------------------
Procedure CargaInicial()
ok = HConnectionOpen(ConnNativa)
IF ok = False
ok = HExecuteQuery(QRY_Count_Config,hQueryDefault)
IF ok = True THEN
FOR EACH QRY_Count_Config
IF HFound(QRY_Count_Config) = True THEN
IF QRY_Count_Config.QtdeRegistros = 0 THEN
ws_cargainicialconfig(0)
END
END
END
END
ok = HExecuteQuery(QRY_Count_Distributeurs,hQueryDefault)
IF ok = True THEN
FOR EACH QRY_Count_Distributeurs
IF HFound(QRY_Count_Distributeurs) = True THEN
IF QRY_Count_Distributeurs.QtdeRegistros = 0 THEN
ws_cargainicialdistri(0)
END
END
END
END
END
Procedure MeuIpFixo()
nInicioBloco, nFinalBloco is int = 0
IP is string = ""
Url is string = "http://www.meuip.com.br/"
HTTPTimeOut(1000)
HTTPRequest(Url)
bufRetorno is Buffer = HTTPGetResult(httpResult)
bufRetorno = Replace(bufRetorno,Charact(34),"")
bufRetorno = Replace(bufRetorno,"'","")
nInicioBloco = PositionOccurrence(bufRetorno,"document.getElementById(div_ip).innerHTML = ",firstRank,FromBeginning) + Length("document.getElementById(div_ip).innerHTML = ")
IF nInicioBloco > 0 THEN
bufRetorno = Middle(bufRetorno,nInicioBloco,1000)
IF nInicioBloco > 0
bufRetorno = Middle(bufRetorno,1,20)
END
ELSE
nInicioBloco = PositionOccurrence(bufRetorno,"<span class=style1> detectando (IPv4 ou IPv6)...</span>-->",firstRank,FromBeginning) + Length("<span class=style1> detectando (IPv4 ou IPv6)...</span>-->")
IF nInicioBloco > 0
bufRetorno = Middle(bufRetorno,nInicioBloco,20)
END
END
IF bufRetorno <> ""
nFinalBloco = PositionOccurrence(bufRetorno,",",firstRank,FromBeginning) - 1
IF nFinalBloco > 0 THEN
bufRetorno = Middle(bufRetorno,1,nFinalBloco)
END
END
bufRetorno = Replace(bufRetorno,"=","")
bufRetorno = NoSpace(bufRetorno)
IP = NoSpace(bufRetorno)
RESULT(IP)
Procedure NoEnter(Texto)
Texto = Replace(Texto,CRLF,"")
Texto = Replace(Texto,CR,"")
Texto = Replace(Texto,"<13><10>","")
Texto = Replace(Texto,"<13>","")
Texto = Replace(Texto,"<10>","")
Texto = Replace(Texto,Charact(13)+Charact(10),"")
Texto = Replace(Texto,Charact(13),"")
Texto = Replace(Texto,Charact(10),"")
Texto = NoSpace(Texto)
Texto = NoAccent(Texto)
RESULT(Texto)
Procedure ws_a_log(Acao)
Ip is string
IF Ip = "" THEN
Ip = MeuIpFixo()
END
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
ok = False
LogResult is string
DataHora is string = DateSys() + TimeSys()
ok = HExecuteQuery(QRY_Insert_Log,hQueryDefault,DataHora,Ip,Acao)
IF ok = False THEN
LogResult = "Erro ao gravar o log: "+ HErrorInfo() + ErrorInfo()
ELSE
LogResult = 1
END
RESULT (LogResult)
Procedure ws_cargainicialconfig(Registros)
ok = HConnectionOpen(ConnNativa)
IF Registros = 0 AND ok = True
t0001_config.t0001_config = "TOKEN"
t0001_config.t0001_valor = "LORELEI"
HAdd(t0001_config)
t0001_config.t0001_config = "SUPERUSER"
t0001_config.t0001_valor = "LORELEI"
HAdd(t0001_config)
t0001_config.t0001_config = "PASSWORD"
t0001_config.t0001_valor = "SWORDFISH"
HAdd(t0001_config)
END
Procedure ws_cargainicialdistri(Registros)
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF Registros = 0 AND OkConn = True THEN
t0004_distributeurs.t0004_company = "WX INFORMATICA"
t0004_distributeurs.t0004_nome = "ADRIANO BOLLER"
t0004_distributeurs.t0004_email = "adrianoboller@gmail.com"
t0004_distributeurs.t0004_telefone = "41999491800"
t0004_distributeurs.t0004_telefoneimei = "41999491800"
t0004_distributeurs.t0004_site = "www.wxinformatica.com.br"
HAdd(t0004_distributeurs)
END
Procedure ws_conexao_falha(Tabela)
Servidor is string = ConnNativa..Server
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
Resultado is string = ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>ERRO DE CONEXAO COM O BANCO: "+Tabela+"</Erro>"
Resultado += "<Banco>"+Servidor+"</Banco>"
Resultado += "</NoXml>"
Resultado += "</Retorno></Xml>"
Erro is string = "Erro de Conexao com o Banco de Dados: " + HErrorInfo() +" - "+ ErrorInfo()
Erro = Replace(Erro,Charact(34),"")
Erro = Replace(Erro,Charact(39),"")
Erro = NoAccent(Erro)
ws_a_log(Erro)
RESULT(Resultado)
Procedure ws_conexao_sucesso(Tabela)
Servidor is string = ConnNativa..Server
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
Resultado is string = ""
Resultado += "<NoXml id="+Charact(34)+1+Charact(34)+">"
Resultado += "<OK>CONEXAO COM SUCESSO AO BANCO!!!!!!</OK><TABELA>"+Tabela+"</TABELA>"
Resultado += "<Banco>"+Servidor+"</Banco>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>1</TOTAL>"
ws_a_log("Conexao OK")
RESULT(Resultado)
Procedure ws_deletou(Tabela)
Resultado is string = ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<OK>Deletou com Sucesso!</OK><TABELA>"+Tabela+"</TABELA>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>1</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log("Deletou Registro")
RESULT(Resultado)
Procedure ws_envia_email(Token, TelefoneImei, Acao, Emails, Assunto, Cabecalho, Mensagem)
TokenOk is boolean
Resultado is string = ""
sErro is string = ""
arrResultado is array of string
ArrayDeleteAll(arrResultado)
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_conexao_falha("Banco de Dados Off-line")
ELSE IF OkConn = True AND Upper(Acao) = "SEND"
TokenOk = ws_token(Token,TelefoneImei)
IF TokenOk = False THEN
Comando is string = "ws_envia_email;"+ Acao +";"+ Emails +";"+ Assunto +";"+ Cabecalho +";"+ Mensagem
ws_a_log(Comando)
ELSE
Comando is string = "ws_envia_email;"+ Acao +";"+ Emails +";"+ Assunto +";"+ Cabecalho +";"+ Mensagem
ws_a_log(Comando)
QyrEnviaEmail is Data Source
SqlExecuta is string = [
EnviaEmail '@Emails@', '@Assunto@', '@Cabecalho@', '@Mensagem@'
]
SqlExecuta = Replace(SqlExecuta, "@Emails@", Emails)
SqlExecuta = Replace(SqlExecuta, "@Assunto@", Assunto)
SqlExecuta = Replace(SqlExecuta, "@Cabecalho@", Cabecalho)
SqlExecuta = Replace(SqlExecuta, "@Mensagem@", Mensagem)
ok = HExecuteSQLQuery(QyrEnviaEmail,ConnNativa, hQueryWithoutCorrection, SqlExecuta)
IF ok = True THEN
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml>EMAIL ENVIADO COM SUCESSO!</NoXml>"
Resultado += "</Retorno></Xml>"
ws_a_log("EMAIL ENVIADO COM SUCESSO!")
ELSE
erro is string = HErrorInfo() +" - "+ ErrorInfo()
erro = Replace(erro,Charact(34),"")
erro = Replace(erro,Charact(39),"")
erro = NoAccent(erro)
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml>ERRO AO ENVIAR EMAIL</NoXml>"
Resultado += "</Retorno></Xml>"
ws_a_log(erro)
END
END
END
HConnectionClose(ConnNativa)
ArrayAdd(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_erro_acesso_tabela(Tabela)
Resultado is string = ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>ERRO DE ACESSO A TABELA: "+ NoSpace(Tabela) + "</Erro>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>0</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log("Erro de acesso a tabela: "+Tabela)
RESULT(Resultado)
Procedure ws_erro_token(Tabela)
Resultado is string = ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>ERRO TOKEN: "+ Tabela +"</Erro>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>0</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log("Token errado, atençao com esse IP, provavelmente é um intruso.")
RESULT(Resultado)
Procedure ws_gravou(Tabela)
Resultado is string = ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<OK>Gravou com Sucesso!</OK><TABELA>"+Tabela+"</TABELA>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>1</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log("Gravou com sucesso na tabela: "+Tabela)
RESULT(Resultado)
Procedure ws_msg_retorno(Mensagem)
Resultado is string = ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+1+Charact(34)+">"
Resultado += "<OK>" + Mensagem + "</OK>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>1</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log(Mensagem)
RESULT(Resultado)
Procedure ws_nao_deletou(Tabela)
Erro is string = HErrorInfo() +" - "+ ErrorInfo()
Erro = Replace(Erro,Charact(34),"")
Erro = Replace(Erro,Charact(39),"")
Erro = NoAccent(Erro)
Resultado is string = ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>NAO DELETOU!: "+Tabela +"; "+ Erro+"</Erro>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>0</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log("NAO DELETOU!: "+Tabela +"; "+ Erro)
RESULT(Resultado)
Procedure ws_nao_gravou(Tabela,Erro)
Resultado is string = ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>NAO GRAVOU: "+Tabela+";"+Erro+"</Erro>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>0</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log("Nao Gravou: "+Tabela +"; "+ Erro)
RESULT(Resultado)
Procedure ws_parametros_invalidos(Tabela)
Resultado is string = ""
erro is string = HErrorInfo() +" - "+ ErrorInfo()
erro = Replace(erro,Charact(34),"")
erro = Replace(erro,Charact(39),"")
erro = NoAccent(erro)
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>PARAMETROS INVALIDOS OU CLIENTE BLOQUEADO: " + Tabela +" - "+ erro +"</Erro>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>0</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log("PARAMETROS INVALIDOS OU CLIENTE BLOQUEADO: "+ erro +" - "+Tabela)
RESULT(Resultado)
Procedure ws_retorno(Tabela, NomeCampo, Retorno)
Tabela = Tabela
Resultado is string = ""
IF Retorno <> ""
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+1+Charact(34)+">"
Resultado += "<"+NomeCampo+">"+Retorno+"</"+NomeCampo+">"
Resultado += "</NoXml>"
Resultado += "<TOTAL>1</TOTAL>"
Resultado += "</Retorno></Xml>"
END
RESULT(Resultado)
Procedure ws_superuser(superuser, password)
resultado, resultado01, resultado02 is int = 0
IF superuser <> "" AND password <> "" THEN
HReadSeekFirst(t0001_config,t0001_config,"SUPERUSER",hKeepFilter)
IF Upper(t0001_config.t0001_valor) = Upper(superuser) THEN
resultado01 = 1
ELSE
resultado01 = 0
END
HReadSeekFirst(t0001_config,t0001_config,"PASSWORD",hKeepFilter)
IF Upper(t0001_config.t0001_valor) = Upper(password) THEN
resultado02 = 1
ELSE
resultado02 = 0
END
IF resultado01 = 1 AND resultado02 = 1 THEN
resultado = 1
ELSE
resultado = 0
END
ELSE
resultado = 0
END
RESULT(resultado)
Procedure ws_token(Token, TelefoneImei)
Resultado, TokenResultado, TokenTelefoneImei is string = ""
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF Token <> "" AND TelefoneImei <> ""
HReadSeekFirst(t0001_config,t0001_config,"TOKEN", hKeepFilter)
FOR EACH t0001_config
IF HFound(t0001_config) = True
TokenResultado = t0001_config.t0001_valor
END
END
HReadSeekFirst(t0004_distributeurs,t0004_telefoneimei,TelefoneImei,hKeepFilter)
FOR EACH t0004_distributeurs
IF HFound(t0004_distributeurs) = True
TokenTelefoneImei = t0004_distributeurs.t0004_telefoneimei
END
END
IF TokenResultado <> "" AND Upper(TokenResultado) = Upper(Token) AND TokenTelefoneImei <> "" THEN
Resultado = 1
ELSE
Resultado = 0
END
ELSE
Resultado = 0
END
RESULT(Resultado)
Procedure ws_token_invalido(Tabela)
Resultado is string = ""
Erro is string = HErrorInfo() +" - "+ ErrorInfo()
Erro = Replace(Erro,Charact(34),"")
Erro = Replace(Erro,Charact(39),"")
Erro = NoAccent(Erro)
Resultado = "<Xml><Retorno>"
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>TOKEN INVALIDO OU NAO INFORMADO: "+ Erro +"; "+ Tabela +"</Erro>"
Resultado += "</NoXml>"
Resultado += "<TOTAL>0</TOTAL>"
Resultado += "</Retorno></Xml>"
ws_a_log("TOKEN INVALIDO OU NAO INFORMADO: "+ Erro +"; "+ Tabela)
RESULT(Resultado)
Procedure ws_xml_registro_comeco(tabela,id)
tabela = tabela
Resultado is string = ""
Resultado = "<NoXml id="+Charact(34)+ NoSpace(id) +Charact(34)+">"
RESULT(Resultado)
Procedure ws_xml_registro_corpo(TabelaCampo, Campo)
Resultado is string = ""
Resultado = "<"+ NoSpace(Campo) +">" + NoSpace(TabelaCampo) + "</"+ NoSpace(Campo) +">"
RESULT(Resultado)
Procedure ws_xml_registro_final(Tabela)
Tabela = Tabela
Resultado is string = ""
Resultado = "</NoXml>"
RESULT(Resultado)
Procedure ws_zero_registros(Tabela)
Resultado is string = ""
Erro is string = HErrorInfo() +" - "+ ErrorInfo()
Erro = Replace(Erro,Charact(34),"")
Erro = Replace(Erro,Charact(39),"")
Erro = NoAccent(Erro)
Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>NENHUM REGISTRO! "+ Tabela +"; "+ Erro +" </Erro>"
Resultado += "</NoXml>"
ws_a_log(Erro)
RESULT(Resultado)
--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/