2025-04-15 12:10:19 +02:00

154 lines
6.7 KiB
C#
Raw Permalink Blame History

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ReportVS;
using ceTe.DynamicPDF.Merger;
using System.Collections.Generic;
using LogFilePDF;
public partial class ReinvioASelecta : System.Web.UI.Page
{
bool periodico;
string tipoReport;
protected void Page_Load(object sender, EventArgs e)
{
int identificativoPDF = Convert.ToInt32(Request.QueryString.Get("pdfID"));
int pdfC6 = Convert.ToInt32(Request.QueryString.Get("pdfC6"));
string rete = Request.QueryString.Get("Rete");
string codiceFiscale = Request.QueryString.Get("CodiceFiscale");
//string tipoReport = Request.QueryString.Get("tipoReport");
ReInvio(identificativoPDF, pdfC6, rete, codiceFiscale);
}
private byte[] getPDF(int idPDF, int pdfC6, string rete, string codiceFiscale)
{
DocumentPDF documentPDF = new DocumentPDF();
List<Parametro> parametri = new List<Parametro>();
Parametro idq = new Parametro();
idq.ParameterName = "Id";
idq.DbType = DbType.Int32;
idq.Value = idPDF;
parametri.Add(idq);
DataTable dati = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "[dbo].[sp_getCheckPeriodico]", parametri);
periodico = false;
tipoReport = string.Empty;
if(dati.Rows.Count > 0) {
periodico = (Convert.ToBoolean(dati.Rows[0]["FlagPeriodico"]));
tipoReport = dati.Rows[0]["TipoReport"].ToString();
}
byte[] letteraAccompagnamento;
if (!periodico)
letteraAccompagnamento = GestoreLettera.componiLetteraRistampa(codiceFiscale, rete, LetteraAccompagnamento.TipoReport.Diagnosi, idPDF,false);
else
if(tipoReport.ToUpper() == "DIAGNOSI")
letteraAccompagnamento = GestoreLettera.componiLetteraRistampa(codiceFiscale, rete,LetteraAccompagnamento.TipoReport.Diagnosi, idPDF,true);
else
letteraAccompagnamento = GestoreLettera.componiLetteraRistampa(codiceFiscale, rete, LetteraAccompagnamento.TipoReport.Monitoraggio, idPDF,true);
byte[] pdf = documentPDF.getDataFromDB(idPDF, pdfC6);
PdfDocument pdfLetteraAccompagnamento = new PdfDocument(letteraAccompagnamento);
PdfDocument pdfDoc = new PdfDocument(pdf);
MergeDocument mDoc = MergeDocument.Merge(pdfLetteraAccompagnamento, pdfDoc);
return mDoc.Draw();
}
private void ReInvio(int idPDF, int pdfC6, string rete, string codiceFiscale) {
List<Parametro> parametri = new List<Parametro>();
Parametro idq = new Parametro();
idq.ParameterName = "Id";
idq.DbType = DbType.Int32;
idq.Value = idPDF;
parametri.Add(idq);
DataTable dati = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "[dbo].[sp_getCheckPeriodico]", parametri);
periodico = false;
tipoReport = string.Empty;
if (dati.Rows.Count > 0)
{
periodico = (Convert.ToBoolean(dati.Rows[0]["FlagPeriodico"]));
tipoReport = dati.Rows[0]["TipoReport"].ToString();
}
idq.ParameterName = "IdReport";
int checkLetteraRistampa;
if(!periodico)
checkLetteraRistampa = (int)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[GESTIONE_SELECT_PDF_FTP_RISTAMPA_SI_NO]", parametri);
else
checkLetteraRistampa = (int)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[GESTIONE_SELECT_PDF_FTP_RISTAMPA_SI_NO]", parametri);
if (checkLetteraRistampa == 1)
{
List<Parametro> listaParametri = new List<Parametro>();
Parametro id = new Parametro();
id.ParameterName = "IdReport";
id.DbType = DbType.Int32;
id.Value = idPDF;
listaParametri.Add(id);
Parametro image = new Parametro();
image.ParameterName = "Img";
image.DbType = DbType.Binary;
image.Value = getPDF(idPDF, pdfC6, rete, codiceFiscale);
listaParametri.Add(image);
int nuovoId = DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "[dbo].[C6_S_WritePDFintoDBRistampa]", listaParametri);
List<Parametro> listaParametriRistampa = new List<Parametro>();
Parametro id1 = new Parametro();
id1.ParameterName = "Id";
id1.DbType = DbType.Int32;
id1.Value = idPDF;
listaParametriRistampa.Add(id1);
Parametro idNuovo = new Parametro();
idNuovo.ParameterName = "IdNuovo";
idNuovo.DbType = DbType.Int32;
idNuovo.Value = nuovoId;
listaParametriRistampa.Add(idNuovo);
if(!periodico)
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]", listaParametriRistampa);
else
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]", listaParametriRistampa);
GestoreLogPDF gl = new GestoreLogPDF(nuovoId);
gl.Applicativo = "HD";
gl.scriviLog(EventLog.SELECTA_RistampaReport);
}
else {
//if (Response.ContentType.ToUpper() != "TEXT/HTML")
//{
// Response.ContentType = "TEXT/HTML";
// Response.Clear();
//}
string msgErrore = "Il documento in questione <20> gi<67> in attesa di essere inviato a Selecta.";
//string mostraMessaggioDaCodice = @"MostraMessaggioDaCodice(\""Si <20> verificato un errore durante l'elaborazione della richiesta.\\n Per il dettaglio vedere l'Event Viewer al seguente link:\\n http://rmsrv06-wse/EVENTVIEWER/eventviewer.aspx\"");";
string command = "alert(\"" + msgErrore + "\");";
string mostraMessaggioDaCodice = @"<script language=\""javascript\"" type=\""text/javascript\"">alert(\""" + msgErrore + "\\\");</script>";
ClientScript.RegisterStartupScript(typeof(string), "messaggioErrore",
"<script language=\"javascript\" type=\"text/javascript\">" + "\n" +
"<!--" + "\n" +
command + "\n" +
"//-->" + "\n" +
"</script>");
}
}
}