Créer les clients à partir de rapports d'intervention
Dans cet exemple nous voyons comment créer des clients à partir de rapports d’intervention. Normalement cette opération est faite parce que les techniciens insèrent un nouveau client dans le rapport sans le créer avec un sous-tableau.
Groupe Script
Programme
Événement
Action
Un autre cas est quand les rapports sont importés à partir d’un fichier Excel créé par un autre logiciel et donc les clients ne sont pas créés. Bien sûr, on suppose que chaque ligne du rapport contient les données principales afin de pouvoir identifier le client s’il existe déjà ou s’il doit être créé.
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")
D’abord nous créons le cycle de lecture sur les dossiers et nous considérons seulement ceux qui n’ont pas un gguid client valide relié.
Vu que peut-être un autre rapport a déjà créé ce client, d’abord nous procédons à faire une recherche avec le nom.
Si même le nom n’a rien donné, nous créons le client en récupérant les données disponibles sur le rapport.
Après cela, nous mettons à jour le rapport afin d’avoir la relation avec le client à travers son gguid.
Tout cela fonctionne si le client sur le rapport est géré avec un champ de type sous-tableau.