Creare i clienti dai rapporti di intervento
In questo esempio vedremo come creare dei clienti partendo da dei rapporti di intervento. Di solito questa operazione viene fatta perché i tecnici inseriscono un nuovo cliente all’interno del rapportino senza crearlo attraverso una sottotabella.
Gruppo Script
Programma
Evento
Azione
Un altro caso è che i rapportini siano importati da un file di Excel creato da un altro programma e quindi i clienti non vengono creati. Naturalmente si suppone che su ogni riga del rapportino ci siano i dati principali per poter identificare il cliente se esiste già o se deve essere creato.
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")
Come prima cosa creiamo il ciclo di lettura sui report e prendiamo in esame solamente quelli che non hanno un gguid cliente valido collegato.
Visto che magari un altro rapportino ha già creato questo cliente prima procediamo a fare una ricerca in questo sul nome.
Se anche il nome non ha portato niente allora creo il cliente recuperando i dati disponibili sul rapportino.
Fatto questo aggiorno il rapportino per avere la relazione con il cliente attraverso il suo gguid.
Tutto questo funziona se comunque il cliente sul rapportino è gestito con un campo di tipo sottotabella.