Crear clientes a partir de informes de intervención

En este ejemplo, veremos cómo crear clientes a partir de informes de intervención. Por lo general, esto se hace porque los técnicos insertan un nuevo cliente en el informe sin crearlo a través de una subtabla.

Grupo Script

Programa

Evento

Acción

Otro caso es que los informes se importan desde un archivo de Excel creado por otro programa y, por lo tanto, no se crean clientes. Por supuesto, se supone que en cada línea del informe hay datos principales para poder identificar al cliente si ya existe o si debe crearse.

table = database.getsql("SELECT * FROM reports WHERE eli=0")

rows = table.getrows()

for i = 1,table.countrows() do

--extrapolate the customer

namecustomer = rows[i].getvalue("namecustomer")

gguid_namecustomer = rows[i].getvalue("gguid_namecustomer")

--if gguid is empty the customer not exist

if gguid_namecustomer = = "" then

--check if customer is already exist

tablecustomer = database.getsql("SELECT * FROM customers WHERE eli=0 and name='" .. utility.convap(namecustomer) .. "'")

if tablecustomer.countrows() == 0 then

--if 0 then customer not exist

--create a head customer

gguid_namecustomer = utility.gguid()

values = "INSERT INTO customers(gguid,tid,eli,arc,ut,uta,exp,gguidp,ind,tap,dsp,dsc,dsq1,dsq2,utc,tidc) VALUES ("

values = values .. "'" .. gguid_namecustomer .. "'," .. tostring(utility.tid()) .. ",0,0,'','','',''," .. tostring(database.getind("customers")) .. ",'','','',0,0,'',0)"

database.setsql(values)

--update data customers

values = " UPDATE customers SET name='" .. utility.convap(namecustomer) .. ",address='" .. utility.convap(rows[i].getvalue("address")) .. " WHERE gguid='" .. gguid_namecustomer .. "'")

database.setsql(values)

database.addsyncbox("customers",gguid_namecustomer)

else

--customer already exist, update the gguid for create relation

rows2 = tablecustomer.getrows()

gguid_namecustomer = rows2[1].getvalue("gguid")

end

--update for syncbox windows

database.setsql("UPDATE report SET tid=" .. tostring(utility.tid()).. ",gguid_namecustomer='" .. gguid_namecustomer .. "'")

--add a syncbox for mobile

database.addsyncbox("reports",gguid_namecustomer)

end

end


program.refreshsection("reports")

Primero creamos el ciclo de lectura en los informes y examinamos solo aquellos que no tienen un gguid de cliente válido conectado.

Como quizás otro informe ya haya creado este cliente antes proceder a hacer una búsqueda en este sobre el nombre.

Si incluso el nombre no aportó nada, creo al cliente recuperando los datos disponibles en el informe.

Una vez hecho esto, actualizo el informe para tener la relación con el cliente a través de su gguid.

Todo esto funciona si, en cualquier caso, el cliente en el informe se gestiona con un campo de tipo subtabla.