117 lines
4.2 KiB
Matlab
Executable File
117 lines
4.2 KiB
Matlab
Executable File
function checkGIS(siteID,NomeSito,conn,FileName)
|
|
|
|
text = 'checkGIS function started';
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
|
|
comando = ['select gis_enable, gis_duedate from sites where id like ''' siteID ''' '];
|
|
curs = exec(conn,comando);
|
|
curs = fetch(curs);
|
|
GIS = curs.Data;
|
|
if cell2mat(GIS(1)) == 1 % GIS attivato
|
|
if strcmp(char(GIS(2)),'null') == 0
|
|
FileNameGIS = ['GIS' siteID '-Deadline.txt'];
|
|
if isfile(FileNameGIS) == 0 % NON Esiste
|
|
outdat = fopen(FileNameGIS,'wt+');
|
|
fileID_site = fopen(FileNameGIS,'a');
|
|
text = now;
|
|
fmt = '%f \r';
|
|
fprintf(fileID_site,fmt,text);
|
|
fclose(fileID_site);
|
|
end
|
|
|
|
% Scarico dati di riferimento
|
|
Data_Rif = importdata(FileNameGIS);
|
|
[rA,~] = size(Data_Rif);
|
|
if rA == 0
|
|
Data_Rif = 0;
|
|
end
|
|
|
|
% Controllo la data di scadenza del GIS
|
|
G = cell2mat(GIS(2));
|
|
[lS] = length(G);
|
|
date = G(1:10);
|
|
time = G(12:lS);
|
|
Date = [date ' ' time];
|
|
|
|
Info = 0;
|
|
if now <= datenum(Date) && datenum(Date) < now+30 % fra 1 giorno e 1 Mese
|
|
if datenum(Data_Rif) > datenum(Date)-30
|
|
mail = 0; % la mail è già stata inviata
|
|
else
|
|
mail = 1;
|
|
end
|
|
elseif now > datenum(Date) && datenum(Data_Rif) < datenum(Date) % GIS scaduto
|
|
mail = 1;
|
|
Info = 1;
|
|
desc = 'Scaduto';
|
|
else
|
|
mail = 0;
|
|
end
|
|
|
|
if mail == 1
|
|
DATAinsert = cell(1,5);
|
|
sms = 0;
|
|
Data = datestr(now,'yyyy-mm-dd HH:MM:SS');
|
|
DATAinsert{1,1} = 8; % Allarme scadenza GIS
|
|
DATAinsert{1,2} = cellstr(['GIS|' char(NomeSito)]);
|
|
DATAinsert{1,3} = Data;
|
|
DATAinsert{1,4} = sms;
|
|
if Info == 1
|
|
DATAinsert{1,5} = desc;
|
|
end
|
|
|
|
% Cerco se il dato è già presente
|
|
if Info == 1
|
|
comando = ['select id, type_id, date_time from alarms where tool_name = ''' ...
|
|
NomeSito ''' and date_time = ''' Data ''' and type_id = ''' DATAinsert{1,1} ...
|
|
''' and description like ''' desc ''' order by date_time'];
|
|
else
|
|
comando = ['select id, type_id, date_time from alarms where tool_name = ''' ...
|
|
NomeSito ''' and date_time = ''' Data ''' and type_id = ''' DATAinsert{1,1} ...
|
|
''' order by date_time'];
|
|
end
|
|
curs = exec(conn,comando);
|
|
curs = fetch(curs);
|
|
idDate = curs.Data;
|
|
[~,cI] = size(idDate);
|
|
if cI == 1
|
|
idElabData = 0; % 0 indica che il dato non è presente su DB
|
|
else
|
|
idElabData = cell2mat(idDate(:,1));
|
|
end
|
|
tablename = 'alarms';
|
|
if Info == 1
|
|
colnames = {'type_id','tool_name','date_time','send_sms','description'};
|
|
data = [DATAinsert(1,1),DATAinsert(1,2),DATAinsert(1,3),DATAinsert(1,4),DATAinsert(1,5)];
|
|
else
|
|
colnames = {'type_id','tool_name','date_time','send_sms'};
|
|
data = [DATAinsert(1,1),DATAinsert(1,2),DATAinsert(1,3),DATAinsert(1,4)];
|
|
end
|
|
if idElabData == 0 % Scrivo
|
|
fastinsert(conn,tablename,colnames,data);
|
|
text = ['ALERT was written in the DB by checkGIS function for date: ''' Data ''' '];
|
|
end
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
end
|
|
outdat = fopen(FileNameGIS,'wt+');
|
|
fileID_site = fopen(FileNameGIS,'a');
|
|
text = now;
|
|
fmt = '%f \r';
|
|
fprintf(fileID_site,fmt,text);
|
|
fclose(fileID_site);
|
|
end
|
|
end
|
|
|
|
text = 'checkGIS function worked correctly';
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
|
|
end |