function Report_ASE(IDcentralina,unitID,chainID,alarms,Chain_Scheme,num_nodi,...
    Users_Report,Mail,time,activeEN,siteID,conn,FileName)
% Software per la generazione automatica di report sull'attivitą di
% monitoraggio ASE

% try

diary on
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'report_ASE function started';
fprintf(fileID,fmt,text);
fclose(fileID);

RPT_ON = 0; % parametro che regola la creazione o meno del report
NomeFile = strcat('Report',siteID,'.txt');
meseadesso = str2double(datestr(today,'mm'));
if isfile(NomeFile) == 1 % Esiste
    
    % Scarico la frequenza del report
    comando = ['select freq_report from sites where id like ''' siteID ''' '];
    curs = exec(conn,comando);
    curs = fetch(curs);
    Freq = cell2mat(curs.Data);
    numgiorni = Freq;
    
    Filetesto = importdata(NomeFile);
    [rTXT,~] = size(Filetesto);
    if rTXT > 1
        datainvio = Filetesto(1,1); % mese di invio OPPURE data di ultimo invio
        attivaReport = Filetesto(2,1);
    else % file txt vuoto
        if numgiorni == 30
            datainvio = str2double(datestr(today,'mm'))+1; % mese successivo
        else
            datainvio = now;
        end
        attivaReport = 1; % report disattivato
    end
    
    fileID = fopen(FileName,'a');
    fmt = '%s \r';
    text = ['Report frequency:' num2str(numgiorni) ' days'];
    fprintf(fileID,fmt,text);
    fclose(fileID);
    
    if numgiorni == 30
        adesso = str2double(datestr(today,'mm'));
        if datainvio == adesso
            RPT_ON = 1;
        end
    else
        adesso = now;
        if adesso >= datainvio + numgiorni
            RPT_ON = 1;
        end
    end
    
    if RPT_ON == 1 && attivaReport == 0
        try
            attivaReport = 1;
            outdat = fopen(NomeFile,'wt+');
            fopen(NomeFile,'wt');
            fmt = '%d \r';
            fileID = fopen(NomeFile,'a');
            fprintf(fileID,fmt,meseadesso);
            fprintf(fileID,fmt,attivaReport);
            fclose(fileID);
            
            % salvo variabili da caricare in Report
            nomevar = ['variabili_RPT' siteID '.mat'];
            save(nomevar, 'unitID', 'chainID', 'alarms', 'Chain_Scheme', 'num_nodi', 'Users_Report', 'Mail', ...
                'time', 'meseadesso', 'adesso', 'datainvio', 'numgiorni', 'activeEN', 'FileName');
            
            rilancio = ['/usr/local/matlab_func/run_Report_lnx.sh /usr/local/MATLAB/MATLAB_Runtime/v93 '...
                siteID ''];
            
            status = system(rilancio);
            fileID = fopen(FileName,'a');
            fmt = '%s \r';
            fprintf(fileID,fmt,status);
        catch err
            FileErr = ['ErrorFile-Report-' siteID '-' datestr(today) '-' datestr(now,'hhMMss')];
            fid = fopen(FileErr,'a+');
            fprintf(fid, '%s', err.getReport('extended','hyperlinks','off'));
            fclose(fid);
            
            %% Email
            setpref('Internet','E_mail','alert@aseltd.eu');
            setpref('Internet','SMTP_Server','smtps.aruba.it');
            setpref('Internet','SMTP_Username','alert@aseltd.eu');
            setpref('Internet','SMTP_Password','Ase#2013!20@bat');
            props=java.lang.System.getProperties;
            pp=props.setProperty('mail.smtp.auth','true'); %#ok
            pp=props.setProperty('mail.smtp.socketFactory.class','javax.net.ssl.SSLSocketFactory'); %#ok
            pp=props.setProperty('mail.smtp.socketFactory.port','465'); %#ok
            
            % Uso il siteID per identificare il nome del sito
            comando = ['select name from sites where id like ''' siteID ''' '];
            curs = exec(conn,comando);
            curs = fetch(curs);
            NomeSito = num2str(cell2mat(curs.Data));
            
            subject_ITA = ('CRASH funzione Report');
            testo = cellstr('Ciao Andrea e Alessandro,');
            testobis = cellstr('');
            testo2 = cellstr(['Il mostro biblico della funzione Report ha al proprio interno qualche minchiata '...
                'per cui il SW crasha nel realizzare il report di ' NomeSito '. Vi prego di correggermi '...
                'o continuer' char(243) ' a crashare e ad assillarvi con questa mail. BUAHAHAH! Troverete l''errore in allegato.']);
            message_ITA = [testo; testobis; testo2];
            message = cellstr('Tanti Blip e Blop a voi, ');
            message2 = cellstr('Software Tilt');
            message_ITA = [message_ITA; message; message2];
            
            recipients_ASE{1,1} = 'alessandro.valletta@aseltd.eu';
            recipients_ASE{2,1} = 'andrea.carri@aseltd.eu';
            
            allegato = FileErr;
            
            sendmail(recipients_ASE, subject_ITA, message_ITA, allegato)
            
        end
    end
else
    datainvio = meseadesso+1;
    if datainvio > 12
        datainvio = datainvio-12;
    end
end
%% --- Modifica file di testo --- %%%
if numgiorni == 30
    if datainvio == 12
        nuovofile = 1;
    elseif datainvio == 13
        nuovofile = 13;
    else
        nuovofile = adesso+1;
    end
else
    nuovofile = datainvio + numgiorni;
end
attivaReport = 0;
outdat = fopen(NomeFile,'wt+');
fopen(NomeFile,'wt');
fmt = '%d \r';
fileID = fopen(NomeFile,'a');
fprintf(fileID,fmt,nuovofile);
fprintf(fileID,fmt,attivaReport);
fclose(fileID);

% catch err
%     FileErr = ['ErrorFile-' IDcentralina '-' datestr(today) '-' datestr(now,'hhMMss') '.txt'];
%     fid = fopen(FileErr,'a+');
%     fprintf(fid, '%s', err.getReport('extended','hyperlinks','off'));
%     fclose(fid);
%
%         % Scarico la frequenza del report
%     comando = ['select freq_report from sites where id like ''' siteID ''' '];
%     curs = exec(conn,comando);
%     curs = fetch(curs);
%     Freq = cell2mat(curs.Data);
%     numgiorni = Freq;
%     meseadesso = str2double(datestr(today,'mm'));
%
%     NomeFile = strcat('Report',siteID,'.txt');
%
%     if isfile(NomeFile) == 1 % Esiste
%         Filetesto = importdata(NomeFile);
%         [rTXT,~] = size(Filetesto);
%         if rTXT >1
%             datainvio = Filetesto(1,1); % mese di invio OPPURE data di ultimo invio
%         else % file txt vuoto
%             if numgiorni == 30
%                 datainvio = meseadesso;
%             else
%                 datainvio = now;
%             end
%         end
%     else
%         datainvio = meseadesso+1;
%         if datainvio > 12
%             datainvio = datainvio-12;
%         end
%     end
%
%     attivaReport = 0;
%     outdat = fopen(NomeFile,'wt+');
%     fopen(NomeFile,'wt');
%     fmt = '%d \r';
%     fileID = fopen(NomeFile,'a');
%     if numgiorni == 30
%         if datainvio == 12
%             nuovofile = 12;
%         elseif datainvio == 13
%             nuovofile = 13;
%         else
%             nuovofile = meseadesso;
%         end
%     else
%         nuovofile = datainvio;
%     end
%     fprintf(fileID,fmt,nuovofile);
%     fprintf(fileID,fmt,attivaReport);
%     fclose(fileID);
%
%     %% Email
%     setpref('Internet','E_mail','alert@aseltd.eu');
%     setpref('Internet','SMTP_Server','smtps.aruba.it');
%     setpref('Internet','SMTP_Username','alert@aseltd.eu');
%     setpref('Internet','SMTP_Password','Ase#2013!20@bat');
%     props=java.lang.System.getProperties;
%     pp=props.setProperty('mail.smtp.auth','true'); %#ok
%     pp=props.setProperty('mail.smtp.socketFactory.class','javax.net.ssl.SSLSocketFactory'); %#ok
%     pp=props.setProperty('mail.smtp.socketFactory.port','465'); %#ok
%
%     %     Uso il siteID per identificare il nome del sito
%     comando = ['select name from sites where id like ''' siteID ''' '];
%     curs = exec(conn,comando);
%     curs = fetch(curs);
%     NomeSito = num2str(cell2mat(curs.Data));
%
%     subject_ITA = (['CRASH del Report Automatico - ' NomeSito '']);
%     testo = cellstr('Ciao Andrea e Alessandro,');
%     testobis = cellstr('');
%     testo2 = cellstr(['Nella funzione del report avete scritto qualche minchiata per cui crasha. Vi prego di correggermi '...
%         'o continuer' char(243) ' a crashare e ad assillarvi con questa mail. Troverete l''errore in allegato.']);
%     message_ITA = [testo; testobis; testo2];
%     message = cellstr('Tanti Bip e Bop a te, ');
%     message2 = cellstr('Software Tilt');
%     message_ITA = [message_ITA; message; message2];
%
%     recipients_ASE{1,1} = 'alessandro.valletta@aseltd.eu';
%     recipients_ASE{2,1} = 'andrea.carri@aseltd.eu';
%
%     allegato = FileErr;
%
%     sendmail(recipients_ASE, subject_ITA, message_ITA, allegato)

% end

fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'report_ASE function executed correctly';
fprintf(fileID,fmt,text);
fclose(fileID);

diary off

end