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.