--gestione creazione nuovo rapportino
output.clear()
--recupero lo stato precedente dell'intervento
statovecchio = ""
if dataview.getvalue("gguid") ~= "" then
t = database.getsql("SELECT stato_documento FROM intervento_tecnico WHERE gguid='" .. dataview.getvalue("gguid") .. "'")
righe = t.getrows()
for i = 1,t.countrows() do
statovecchio = righe[i].getvalue("stato_documento")
end
end
statonuovo = dataview.getvalue("stato_documento")
datar = dataview.getvalue("data")
output.print("rapport aperto ".. dataview.getvalue("gguid"))
if statonuovo == "Eseguito" then
--in caso lo stato precedente è uguale non serve fare niente
if statonuovo ~= statovecchio and dataview.getvalue("gimpianto") ~= "" then
--eseguo il calcolo della data estraendo i dati dall'impianto
t = database.getsql("SELECT periodo FROM impianti where gguid='" .. dataview.getvalue("gimpianto") .. "'")
if t.countrows() > 0 then
datan = datar
righe = t.getrows()
periodo = utility.stringtrim(string.lower(righe[1].getvalue("periodo")))
output.print("datan")
output.print(datan)
--Mensile
if periodo =="mensile" then
datan = utility.dateadddays(datar,30)
end
--Trimestrale
if periodo == "trimestrale" then
datan = utility.dateadddays(datar,90)
end
--Quadrimestrale
if periodo == "quadrimestrale" then
datan = utility.dateadddays(datar,120)
end
--Semestrale
if periodo == "semestrale" then
datan = utility.dateadddays(datar,180)
end
--Su chiamata
if periodo == "su chiamata" then
datan = utility.dateadddays(datar,360)
end
output.print(periodo)
output.print(datan)
--procedo a controllare che non esista già un altro rapportino con queste caratteristiche
--utilizzo una ricerca senza la data per farlo funzionare con tutti i dispositivi (in attesa di ottimizzazione)
tr = database.getsql("SELECT * FROM intervento_tecnico WHERE gguid <> '"..dataview.getvalue("gguid").."' AND gguid_nome_cliente='" .. dataview.getvalue("gguid_nome_cliente") .. "' AND gimpianto ='" .. dataview.getvalue("gimpianto") .. "'")
voto = false
output.print("tr.countrows "..tr.countrows())
if tr.countrows() > 0 then
--modifico quello esistente
righe = tr.getrows()
for i = 1,tr.countrows() do
datav = righe[i].getvalue("data")
statov = righe[i].getvalue("stato_documento")
output.print("datav")
output.print(datav)
output.print("statov")
output.print(statov)
if (datav~=nil) then
if statov == "Aperto" and datav > datar then
riga = righe[i]
voto = true
output.print("rapp. trovato "..riga.getvalue("gguid"))
output.print("data rapp. trovato "..datav)
end
end
end
end
output.print("voto")
output.print(voto)
if voto == false then
--aggiungo un nuovo intervento tecnico
output.print("nuovo duplicato")
riga = database.newdatarow("intervento_tecnico")
end
output.print("table")
output.print(riga.tablename)
--procedo a inserire i dati
riga.setvalue("data",datan)
riga.setvalue("data_inizio",datan)
riga.setvalue("data_fine",datan+3600)
riga.setvalue("nome_cliente",dataview.getvalue("nome_cliente"))
riga.setvalue("gguid_nome_cliente",dataview.getvalue("gguid_nome_cliente"))
riga.setvalue("tipo_apparecchiatura",dataview.getvalue("tipo_apparecchiatura"))
riga.setvalue("gguid_tipo_apparecchiatura",dataview.getvalue("gguid_tipo_apparecchiatura"))
riga.setvalue("apparecchiatura",dataview.getvalue("apparecchiatura"))
riga.setvalue("marca",dataview.getvalue("marca"))
riga.setvalue("modello",dataview.getvalue("modello"))
riga.setvalue("matricola",dataview.getvalue("matricola"))
riga.setvalue("gimpianto",dataview.getvalue("gimpianto"))
riga.setvalue("tecnico_utente",dataview.getvalue("tecnico_utente"))
riga.setvalue("gguid_tecnico_utente",dataview.getvalue("gguid_tecnico_utente"))
riga.setvalue("utente",dataview.getvalue("utente"))
riga.setvalue("stato_documento","Aperto")
riga.save()
--dataview.showwarning("salvataggio prima di addsyncbox "..riga.getvalue("gguid"))
output.print("salvataggio prima di addsyncbox "..riga.getvalue("gguid"))
database.addsyncbox("intervento_tecnico",riga.getvalue("gguid"))
--procedo ad aggiornare i valori dell'impianto
ti = database.getsql("SELECT * FROM impianti WHERE gguid='" .. dataview.getvalue("gimpianto") .. "'")
if ti.countrows() > 0 then
righei = ti.getrows()
righei[1].setvalue("dataultimointervdento",datar)
righei[1].setvalue("dataprossimointervento",datan)
righei[1].save()
end
end
end
else
if statovecchio == "Eseguito" then
--elimino il rapportino futuro se lo trovo
if statonuovo == "Sospeso" then
tr = database.getsql("SELECT * FROM intervento_tecnico WHERE gguid_nome_cliente='" .. dataview.getvalue("gguid_nome_cliente") .. "' AND gimpianto ='" .. dataview.getvalue("gimpianto") .. "'")
if tr.countrows() > 0 then
righe = tr.getrows()
for i = 1,tr.countrows() do
datav = righe[i].getvalue("data")
statov = righe[i].getvalue("stato_documento")
output.print("datar")
output.print(datar)
output.print(righe[i])
if statov == "Aperto" and datav > datar then
database.deletedatarow(righe[i])
end
end
end
--elimino la data del prossimo rapportino dall'impianto
ti = database.getsql("SELECT * FROM impianti WHERE gguid='" .. dataview.getvalue("gimpianto") .. "'")
if ti.countrows() > 0 then
righei = ti.getrows()
righei[1].setvalue("dataprossimointervento",nil)
righei[1].save()
end
end
end
end
program.refreshsection("impianti")
program.refreshsection("intervento_tecnico")