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Événement
ProgrammeAction

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.