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.