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 System.Drawing; using System.Collections.Generic; using ceTe.DynamicPDF; using ReportVS; using ceTe.DynamicPDF.Merger; using LogFilePDF; public partial class archivioDocumenti : System.Web.UI.Page { static string prevPage = String.Empty; private DataTable dtDg; public static bool b_sortCommand = true; public static string ordinamentoGriglia = string.Empty; public string codNSG; public string codMandato; //public int tpReport = 1; //e' la tipologia corrente di Report. Puo' variare a seconda del valore selezionato dalla ListBox public string codiceRete; public string codicePB; public string pathNav; public string utente; public string recordsCancellati; public string recordsDaCancellare; public string recordsArchiviati; public string recordsDaArchiviare; public int idCliente; public static DateTime dayA = new DateTime(); public static DateTime dayDa = new DateTime(); // private string tipologiaReportExt; //private HttpCookie ck_tipologiaReport = new HttpCookie("tipologiaReport"); private string lastUsedCF; private bool justOneCustomer = true; private string dayDaQ; private string dayAQ; private string rsd; private string rsp; private string nomeQ; private string cognomeQ; //variabile per gestione accesso archivio documenti private bool utenteHD_US; //variabile per tenere traccia del fatto che un report sia periodico oppure no DataTable hashPeriodico; //------------------------------------------------------------------------------------------ protected void Page_Load(object sender, System.EventArgs e) { utenteHD_US = GetUtenteAutorizzato.getAccessoPortaleAutorizzato(); // ***** 18/12/2008 Paolo Giovanetti modifiche accesso archivio documenti ***** prevPage = Request.UrlReferrer.ToString(); //Caricamento combobox della tipologia report if (!Page.IsPostBack) { DataTable dt = getTipologiaReport(); //DataRow[] result = dt.Select("tpReport = 8"); //foreach (DataRow row in result) // dt.Rows.Remove(row); ddl_Modello.DataSource = dt; ddl_Modello.DataTextField = "DescrizioneEstesa"; ddl_Modello.DataValueField = "TpReport"; ddl_Modello.DataBind(); ddl_Modello.Items.Insert(0, new ListItem(string.Empty, "0")); } if (utenteHD_US) { if (!IsPostBack) { // sezione A: TODO txb_Rete.Enabled = false; txb_CodicePB.Enabled = false; txb_ClienteCF.Enabled = false; txb_ClienteCognome.Enabled = false; txb_ClienteNome.Enabled = false; txb_mandato.Enabled = true; txb_ClienteNSG.Enabled = true; ddl_Modello.Enabled = false; txt_contratto.Enabled = false; DatiHDUS datiHDUS = GetUtenteAutorizzato.getDatiHDUS(); txb_Rete.Text = datiHDUS.Rete; txb_CodicePB.Text = datiHDUS.CodicePB; txb_ClienteCF.Text = datiHDUS.CodiceFiscale; txb_ClienteCognome.Text = datiHDUS.CognomeCliente; txb_ClienteNome.Text = datiHDUS.NomeCliente; txt_contratto.Text = datiHDUS.CodiceContratto; ListItem lsTipoReport = ddl_Modello.Items.FindByValue(datiHDUS.TipoReport); if (lsTipoReport != null) ddl_Modello.Items.FindByValue(datiHDUS.TipoReport).Selected = true; else ddl_Modello.ClearSelection(); // sezione B: TODO // sezione C: Solo report di diagnosi e di monitoraggio -> rimuovo gli altri due ddl_Modello.Items.Remove(ddl_Modello.Items.FindByValue("2")); //Report di Pianificazione ddl_Modello.Items.Remove(ddl_Modello.Items.FindByValue("3")); //Report di Proposta //TODO: controllare ricerca senza selezione // sezione D: l'utente può accedere alle sole stampe definitive (lucchetto chiuso) chk_RicercaStampeDefinitive.Checked = true; chk_RicercaStampeDefinitive.Enabled = false; chk_RicercaStampeProvvisorie.Visible = false; btn_EliminaSelezionati.Visible = false; btn_Archivia.Visible = false; Image2.Visible = false; ddl_Modello.SelectedIndex = 0; if (lsTipoReport != null) fillDG(Request.QueryString.Get("codcliente")); //string command = "parent.document.getElementById('TOP').src = parent.document.getElementById('TOP').src"; //// "alert(parent.document.getElementById('TOP').src);parent.document.getElementById('TOP').src='blank.aspx';alert(parent.document.getElementById('TOP').src);parent.document.getElementById('TOP').src='..\top.aspx';alert(parent.document.getElementById('TOP').src);"; // //?ReteHD='" + datiHDUS.Rete + "'&CodiceFiscaleHD='" + datiHDUS.CodiceFiscale; ////parent.document.getElementById('CENTER').src='ArchivioDocumenti.aspx //ClientScript.RegisterClientScriptBlock(typeof(string), "pppppp", ""); } string command = "SimpleContextMenu.setup({'preventDefault':true, 'preventForms':false});SimpleContextMenu.attach('container', 'CM1');"; ClientScript.RegisterClientScriptBlock(typeof(string), "pppppp", ""); // ***** Fine 18/12/2008 Paolo Giovanetti modifiche accesso archivio documenti ***** } else { HomePage.Visible = false; ////lettura del valore UTENTE dal cookie pathNav = Request.QueryString.Get("pathNav"); recordsCancellati = Request.QueryString.Get("deleted"); recordsDaCancellare = Request.QueryString.Get("toBeDeleted"); recordsArchiviati = Request.QueryString.Get("archived"); recordsDaArchiviare = Request.QueryString.Get("toBeArchived"); codNSG = Request.QueryString.Get("codcliente"); codiceRete = Request.QueryString.Get("tipoRete"); codicePB = Request.QueryString.Get("codPB"); utente = codiceRete + codicePB; if (!Page.IsPostBack) { //10/03/2009 txb_Rete.Enabled = false; txb_CodicePB.Enabled = false; txb_Rete.Text = Request.QueryString.Get("tipoRete"); txb_CodicePB.Text = Request.QueryString.Get("codPB"); string[] txb_ClienteNSGSplittato = Request.QueryString.Get("codcliente").Trim().Split(Convert.ToChar("@")); if (txb_ClienteNSGSplittato.Length == 2) { txb_ClienteNSG.Text = txb_ClienteNSGSplittato[0]; txb_mandato.Text = txb_ClienteNSGSplittato[1]; } else { txb_ClienteNSG.Text = Request.QueryString.Get("codcliente"); txb_mandato.Visible = false; lbl_mandato.Visible = false; } if (Request.QueryString.Get("codcliente").Trim() == "") { //Vuol dire che è solo pb in ricerca quindi abilito cognome nome nsg mandato txb_ClienteCognome.Enabled = true; txb_ClienteNome.Enabled = true; txb_ClienteNSG.Enabled = true; txb_mandato.Visible = true; lbl_mandato.Visible = true; txb_mandato.Enabled = true; } else { txb_ClienteCognome.Enabled = false; txb_ClienteNome.Enabled = false; txb_ClienteNSG.Enabled = false; txb_mandato.Enabled = false; } dayAQ = Request.QueryString.Get("dayA"); dayDaQ = Request.QueryString.Get("dayDa"); rsd = Request.QueryString.Get("rsd"); rsp = Request.QueryString.Get("rsp"); nomeQ = Request.QueryString.Get("nome"); cognomeQ = Request.QueryString.Get("cognome"); ddl_Modello.SelectedValue = Request.QueryString.Get("tpReport"); if (dayAQ != null && dayAQ != "") this.txb_a.Text = dayAQ; if (dayDaQ != null && dayDaQ != "") this.txb_da.Text = dayDaQ; if (rsd != null && rsd != "") this.chk_RicercaStampeDefinitive.Checked = Convert.ToBoolean(rsd); if (rsp != null && rsp != "") this.chk_RicercaStampeProvvisorie.Checked = Convert.ToBoolean(rsp); if (nomeQ != null && nomeQ != "") this.txb_ClienteNome.Text = nomeQ; if (cognomeQ != null && cognomeQ != "") this.txb_ClienteCognome.Text = cognomeQ; string codiceReteAgente = codiceRete + codicePB; // rileggo solo se sono non sono stati archiviati o eliminati alcuni report. // questo perche nel btn_Archivia_Click e nel btn_EliminaSelezionati_Click viene fatto un redirect alla pagian stessa. Cliente cliente = null; bool AccessoNoSessioneAutorizzato = false; if (Request.QueryString.Get("CODPB") != null && !Request.QueryString.Get("CODPB").Trim().Equals("") && Request.QueryString.Get("TIPORETE") != null && !Request.QueryString.Get("TIPORETE").Trim().Equals("") && (Request.QueryString.Get("CODCLIENTE") == null || Request.QueryString.Get("CODCLIENTE").Trim().Equals("")) ) { AccessoNoSessioneAutorizzato = true; } if (!AccessoNoSessioneAutorizzato) cliente = Cliente.getCliente(codiceReteAgente, codNSG); if (cliente != null) { if (cliente.Definizione == Cliente.TipoDefinizione.Fiduciaria) { this.Label3.Text = "Cognome/Codice fiduciante"; this.Label5.Text = "Cod. fiscale / P. IVA"; this.txb_ClienteCF.Text = cliente.PIVAFiduciaria; this.txb_ClienteCognome.Text = cliente.Cognome + " - " + cliente.CodiceMandatoFiduciaria; } else { this.txb_ClienteCognome.Text = cliente.Cognome.ToString(); this.txb_ClienteCF.Text = codNSG; } this.txb_ClienteNome.Text = cliente.Nome.ToString().Replace("$", ""); } AggiungiParametriDiRicercaInSessione(); fillDG(codNSG); if (Request.QueryString["indicePagina"] != null) { cambiaPagina(int.Parse(Request.QueryString["indicePagina"])); } } } switch (Request.QueryString.Get("operation")) { case "DOCUMENTDELETED": this.lbl_Message.Text = "Cancellati " + recordsCancellati + " documenti sui " + recordsDaCancellare + " da cancellare."; break; case "DOCUMENTARCHIVED": this.lbl_Message.Text = "Archiviati " + recordsArchiviati + " documenti sui " + recordsDaArchiviare + " da archiviare."; break; } if ((txb_ClienteCognome.Text.Length >= 31 && txb_ClienteNome.Text.Length != 0) && txb_ClienteCognome.Text.Contains(",")) { // Caso COINTESTATARIO (Nome va a capo sul Cognome) txb_ClienteCognome.Text = (txb_ClienteCognome.Text.Length == 31) ? txb_ClienteCognome.Text + " " + txb_ClienteNome.Text : txb_ClienteCognome.Text + txb_ClienteNome.Text; txb_ClienteCognome.Width = 500; txb_ClienteNome.Text = ""; txb_ClienteCognome.Enabled = false; txb_ClienteNome.Visible = false; Label4.Visible = false; } } /// /// Recupera attraverso sp_getTipologiaReport le tipologie dei report. /// /// private DataTable getTipologiaReport() { DataTable dtTipologiaReport = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getTipologiaReport", null); return dtTipologiaReport; } private void dg_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) { if (b_sortCommand) { ordinamentoGriglia = e.SortExpression + " DESC"; b_sortCommand = false; } else { ordinamentoGriglia = e.SortExpression + " ASC"; b_sortCommand = true; } //dg.DataSource = GetData(this.txb_ClienteCF.Text, ordinamentoGriglia); //dg.DataBind(); Ricerca(0, ordinamentoGriglia); } //------------------------------------------------------------------------------------------ public void dg_PageIndex(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { //codNSG = this.txb_ClienteCF.Text; //dg.CurrentPageIndex = e.NewPageIndex; //dg.DataSource = GetData(codNSG, ordinamentoGriglia); //dg.DataBind(); Ricerca(e.NewPageIndex, ""); //cambiaPagina(e.NewPageIndex); } //------------------------------------------------------------------------------------------ private void cambiaPagina(int indicePagina) { codNSG = this.txb_ClienteCF.Text; //fillDG(codiceFiscale); dg.CurrentPageIndex = indicePagina; dg.DataBind(); } private DataTable GetData(string codFiscale, string order) { DataTable dt = null; dt = GetData(codFiscale); DataView dv = new DataView(dt); dv.Sort = order; dt = dv.ToTable("Table"); return dt; } private void AggiungiParametriDiRicercaInSessione() { if ((Session["RD_RitornoDaLog"] != null) || (Session["RD_RitornoDaNote"] != null)) { //visualizzo come da prima della chiamata Session.Remove("RD_RitornoDaLog"); Session.Remove("RD_RitornoDaNote"); } else { //if (this.txb_ClienteCognome.Text.Trim().Length > 0) // if (codNSG.Contains("@") && txb_ClienteCognome.Text.Contains("-")) // Session.Add("RD_ClienteCognome", this.txb_ClienteCognome.Text.Split('-')[0].Trim()); // else // Session.Add("RD_ClienteCognome", this.txb_ClienteCognome.Text); //else // Session.Remove("RD_ClienteCognome"); //if (this.txb_ClienteNome.Text.Trim().Length > 0) // Session.Add("RD_ClienteNome", this.txb_ClienteNome.Text); //else // Session.Remove("RD_ClienteNome"); if (ddl_Modello.SelectedValue != "0") Session.Add("RD_tpReport", ddl_Modello.SelectedValue); else Session.Remove("RD_tpReport"); if (utente != null) Session.Add("RD_utente", utente); else Session.Remove("RD_utente"); if (this.txb_mandato.Text != "") Session.Add("RD_codMandato", this.txb_mandato.Text); else Session.Remove("RD_codMandato"); if (this.txb_ClienteNSG.Text != "") Session.Add("RD_codNSG", this.txb_ClienteNSG.Text); else Session.Remove("RD_codNSG"); if (this.txb_da.Text != "") Session.Add("RD_dataDa", this.txb_da.Text); else Session.Remove("RD_dataDa"); if (this.txb_a.Text != "") { dayA = Convert.ToDateTime(this.txb_a.Text); TimeSpan ungiorno = new TimeSpan(1, 0, 0, 0); Session.Add("RD_dataA", dayA.Add(ungiorno)); } else Session.Remove("RD_dataA"); if (this.chk_RicercaStampeProvvisorie.Checked) Session.Add("RD_flagArchiviato", false); else if (this.chk_RicercaStampeDefinitive.Checked) Session.Add("RD_flagArchiviato", true); else Session.Remove("RD_flagArchiviato"); Session.Add("RD_flagStorico", this.chk_RicercaStampedaRichiedere.Checked); } } private DataTable GetData(string codNSG) { List parametri = new List(); Parametro parametro; // se dalla combo tipologia modello non è stato selezionato nulla, // il parametro "tpReport" non viene passato alla stored per il recupero dati if (Session["RD_tpReport"] != null) { parametro = new Parametro(); parametro.DbType = DbType.Int32; parametro.Value = Convert.ToInt32(Session["RD_tpReport"]); parametro.ParameterName = "tpReport"; parametri.Add(parametro); } #region //parametro = new Parametro(); //parametro.DbType = DbType.AnsiString; //if (string.IsNullOrEmpty(this.txt_contratto.Text)) // parametro.Value = DBNull.Value; //else // parametro.Value = this.txt_contratto.Text; //parametro.ParameterName = "codiceContratto"; //parametri.Add(parametro); //parametro = new Parametro(); //parametro.DbType = DbType.Int32; //parametro.ParameterName = "tpReportHD_US"; //parametri.Add(parametro); //if (utenteHD_US) // parametro.Value = 1; //else // parametro.Value = 0; #endregion parametro = new Parametro(); parametro.DbType = DbType.String; if (utente != null) parametro.Value = Session["RD_utente"]; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "utente"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.String; if (Session["RD_codNSG"] != null) parametro.Value = Session["RD_codNSG"]; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "codNSG"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.String; if (Session["RD_ClienteCognome"] != null) parametro.Value = Session["RD_ClienteCognome"]; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "cognome"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.String; if (Session["RD_ClienteNome"] != null) parametro.Value = Session["RD_ClienteNome"]; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "nome"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.DateTime; if (Session["RD_dataDa"] != null) { dayDa = Convert.ToDateTime(Session["RD_dataDa"]); parametro.Value = dayDa; } else parametro.Value = System.DBNull.Value; parametro.ParameterName = "dataDa"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.DateTime; if (Session["RD_dataA"] != null) { parametro.Value = Session["RD_dataA"]; } else parametro.Value = System.DBNull.Value; parametro.ParameterName = "dataA"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.Boolean; if (Session["RD_flagArchiviato"] != null) parametro.Value = Session["RD_flagArchiviato"]; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "flagArchiviato"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.Boolean; parametro.Value = Session["RD_flagStorico"]; parametro.ParameterName = "flagStorico"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.String; if (Session["RD_codMandato"] != null) parametro.Value = Session["RD_codMandato"]; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "codman"; parametri.Add(parametro); DataTable dtDgData = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getAllDocumentsByFilters_new", parametri); hashPeriodico = dtDgData; return dtDgData; } protected void fillDG(string codFiscale) { //// Nel caso in cui il cliente è una fiduciaria imposto il codiceFiscale come FF@CodiceMandatoFiduciaria //if (codFiscale.Contains("@")) //{ // string codiceMandato = ""; // int pos = codFiscale.LastIndexOf("@"); // codiceMandato = codFiscale.Substring(pos + 1, codFiscale.Length - (pos + 1)); // codFiscale = "FF@" + codiceMandato; //} this.lbl_Message.Text = ""; //int _numeroRighe = StampaDG(); DataTable dtDg = GetData(Request.QueryString.Get("codcliente")); // ANOMALIA 529 //foreach (DataRow dr in dtDg.Rows) //{ // string cognome = dr["Cognome"].ToString(); // string nome = dr["Nome"].ToString(); // if ((dr["Cognome"].ToString().Length != 0)) // { // if (dr["Nome"].ToString().Contains("-")) // dr["Nominativo"] = dr["Cognome"].ToString(); // else // if (dr[11].ToString().Contains("@")) // dr["Nominativo"] = dr["Cognome"].ToString() + " " + dr["Nome"].ToString(); // else // dr["Nominativo"] = dr["Nome"].ToString() + " " + dr["Cognome"].ToString(); // } // else // { // var cliente = Cliente.getCliente(dr["Rete"].ToString() + dr["CodicePB"], dr["codNSG"].ToString()); // if ((cliente.Cognome.Length >= 32 && cliente.Nome.ToString().Length != 0) && cliente.Cognome.Contains(",")) // dr["Nominativo"] = cliente.Cognome + cliente.Nome; // else // dr["Nominativo"] = cliente.Nome + " " + cliente.Cognome; // } //} foreach (DataRow dr in dtDg.Rows) { string cognome = dr["Cognome"].ToString(); string nome = dr["Nome"].ToString(); if(cognome != "") { if ((cognome.Length >= 31 && nome.Length != 0) && (cognome.Contains(",") || nome.Contains(","))) dr["Nominativo"] = cognome + ((cognome.Length == 31) ? " " + nome : nome); else { if (nome.Contains("-")) dr["Nominativo"] = cognome; else if (dr[11].ToString().Contains("@")) dr["Nominativo"] = cognome + " " + nome; else dr["Nominativo"] = nome + " " + cognome; } } } dg.CurrentPageIndex = 0; dg.DataSource = dtDg; dg.DataBind(); dg.Visible = true; this.lbl_Message.ForeColor = System.Drawing.Color.Black; this.lbl_Message.Text = "Sono stati trovati " + dtDg.Rows.Count + " documenti con il criterio di ricerca prescelto."; } //======================================================================= private int getClienteFromCodFiscale(string codFiscale) { List parametri = new List(); Parametro codiceCliente = new Parametro(); codiceCliente.DbType = DbType.String; codiceCliente.Value = codNSG; codiceCliente.ParameterName = "codiceFiscale"; parametri.Add(codiceCliente); return (Int32)DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServer, "sp_getIdClienteFromCodFiscale", parametri); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.dg.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dg_PageIndex); this.dg.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.dg_SortCommand); this.dg.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dg_ItemDataBound); } #endregion //------------------------------------------------------------------------------------------ private void dg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { //se lo stato e' "archiviato" non e' possibile operare sul record if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { object fieldRichiestaInoltrata; Int16 statoBottoneRichiedi = 0; DataRowView drv = (DataRowView)e.Item.DataItem; if (Convert.ToBoolean(e.Item.Cells[2].Text)) { ((CheckBox)e.Item.FindControl("chk")).Visible = false; } //Recupero controlli HTML immagine ed ancora al documento: System.Web.UI.HtmlControls.HtmlAnchor linkDocumento = ((System.Web.UI.HtmlControls.HtmlAnchor)e.Item.Cells[11].FindControl("linkDocumento")); System.Web.UI.HtmlControls.HtmlImage imglinkDocumento = ((System.Web.UI.HtmlControls.HtmlImage)e.Item.Cells[11].FindControl("imgLinkDocumento")); if (e.Item.Cells[15].Text == "0") { //Download del documento già disponibile. imglinkDocumento.Src = "Images/PDF-Icon.jpg"; linkDocumento.Title = "Clicca per vedere il documento"; linkDocumento.HRef = "javascript:showPdf(" + e.Item.Cells[4].Text + "," + e.Item.Cells[16].Text + ",'" + codNSG + "')"; } else { fieldRichiestaInoltrata = DataBinder.Eval(e.Item.DataItem, "RichiestaInoltrata"); if (fieldRichiestaInoltrata != System.DBNull.Value) { statoBottoneRichiedi = Convert.ToInt16(fieldRichiestaInoltrata); } if (statoBottoneRichiedi.Equals(0)) { //Richiesta di un documento non ancora disponibile. imglinkDocumento.Src = "Images/richiediDoc.jpg"; linkDocumento.Title = "Clicca per richiedere il documento"; linkDocumento.HRef = "richiediDocumenti.aspx?Nominativo=" + e.Item.Cells[6].Text + "&dtCreazione=" + e.Item.Cells[8].Text + "&identificativo=" + e.Item.Cells[4].Text + "&rete=" + e.Item.Cells[17].Text + "&codfis=" + e.Item.Cells[14].Text + "&pb=" + e.Item.Cells[5].Text + "&Tipo=" + e.Item.Cells[7].Text + "&token=" + Request.QueryString.Get("token") + "&checkPrivacy=" + Request.QueryString.Get("checkPrivacy") + "&pathNav=" + Request.QueryString.Get("pathNav") + "&ambiente=" + Request.QueryString.Get("ambiente") + ""; } else { //Richiesta già in corso. imglinkDocumento.Src = "Images/richiediDoc_disabilitata.jpg"; linkDocumento.Title = "Recupero documento in corso"; linkDocumento.HRef = ""; imglinkDocumento.Attributes.Add("onmouseover", "this.style.cursor='wait';"); imglinkDocumento.Attributes.Add("onmouseout", "this.style.cursor='default';"); } e.Item.ForeColor = System.Drawing.Color.Gray; } if (utenteHD_US) { e.Item.Attributes.Add("oncontextmenu", "javascript:ShowContextMenu(" + e.Item.ItemIndex + "," + e.Item.Cells[4].Text + ",1,'" + txb_Rete.Text.Trim() + "','" + txb_ClienteCF.Text.Trim() + "');"); } } } //------------------------------------------------------------------------------------------ protected bool checkIfAtLeastOneItemClicked() { bool rc = false; for (int i = 0; i < dg.Items.Count; i++) { if (((CheckBox)dg.Items[i].FindControl("chk")).Checked == true) { rc = true; break; } } return rc; } //===================================================================== protected void btn_EliminaSelezionati_Click(object sender, EventArgs e) { this.lbl_Message.Text = ""; bool rc = checkIfAtLeastOneItemClicked(); if (rc)//almeno 1 item deputato alla cancellazione.... { int docToDelete; int idRepository; int deleted = 0; int itemsToDelete = 0; //conto il numero dei modelli da cancellare for (int i = 0; i < dg.Items.Count; i++) { if (((CheckBox)dg.Items[i].FindControl("chk")).Checked == true && ((CheckBox)dg.Items[i].FindControl("chk")).Visible == true) { itemsToDelete++; } } for (int i = 0; i < dg.Items.Count; i++) { if (((CheckBox)dg.Items[i].FindControl("chk")).Checked == true) { docToDelete = Convert.ToInt32(dg.Items[i].Cells[4].Text); //campo nascosto con l'ID del Report da cancellare idRepository = Convert.ToInt32(dg.Items[i].Cells[16].Text); //campo nascosto con l'ID del Report da cancellare int retCode = deleteDocumentFromDB(docToDelete, idRepository); if (retCode != -1) { deleted++; } } } if (deleted == itemsToDelete) { lbl_Message.ForeColor = System.Drawing.Color.Black; } Response.Redirect(prevPage); readData(codNSG); if (justOneCustomer == true) { lastUsedCF = dg.Items[0].Cells[12].Text; if (codNSG != lastUsedCF && lastUsedCF != string.Empty) codNSG = lastUsedCF; justOneCustomer = false; } //else //{ // codiceFiscale = ""; //} string tipoDoc = dg.Items[0].Cells[6].Text; if (tipoDoc != null && tipoDoc != "") { HttpCookie ck_tipologiaReport = new HttpCookie("tipologiaReport"); ck_tipologiaReport.Value = tipoDoc.ToUpper(); Response.Cookies.Add(ck_tipologiaReport); } //Response.Redirect("archivioDocumenti.aspx?codiceFiscale=" + codiceFiscale + "&codiceRete=" + codiceRete + "&codicePB=" + codicePB + "&pathNav=" + pathNav + "&tpReport=" + tpReport + "&utente=" + utente + "&deleted=" + deleted + "&toBeDeleted=" + itemsToDelete + "&operation=DOCUMENTDELETED" + "&dayDa=" + txb_da.Text + "&dayA=" + txb_a.Text + "&rsd=" + this.chk_RicercaStampeDefinitive.Checked.ToString() + "&rsp=" + chk_RicercaStampeProvvisorie.Checked.ToString() + "&cognome=" + txb_ClienteCognome.Text + "&nome=" + txb_ClienteNome.Text); //Response.Redirect("archivioDocumenti.aspx?codiceFiscale=" + codiceFiscale + "&codiceRete=" + codiceRete + "&codicePB=" + codicePB + "&pathNav=" + pathNav + "&tpReport=" + ddl_Modello.SelectedValue + "&utente=" + utente + "&deleted=" + deleted + "&toBeDeleted=" + itemsToDelete + "&operation=DOCUMENTDELETED" + "&dayDa=" + txb_da.Text + "&dayA=" + txb_a.Text + "&rsd=" + this.chk_RicercaStampeDefinitive.Checked.ToString() + "&rsp=" + chk_RicercaStampeProvvisorie.Checked.ToString() + "&cognome=" + txb_ClienteCognome.Text + "&nome=" + txb_ClienteNome.Text); //Response.Redirect("archivioDocumenti.aspx?codCliente=" + codNSG + "&tipoRete=" + codiceRete + "&codPB=" + codicePB + "&pathNav=" + pathNav + "&tpReport=" + ddl_Modello.SelectedValue + "&utente=" + utente + "&deleted=" + deleted + "&toBeDeleted=" + itemsToDelete + "&operation=DOCUMENTDELETED" + "&dayDa=" + txb_da.Text + "&dayA=" + txb_a.Text + "&rsd=" + this.chk_RicercaStampeDefinitive.Checked.ToString() + "&rsp=" + chk_RicercaStampeProvvisorie.Checked.ToString() + "&cognome=" + txb_ClienteCognome.Text + "&nome=" + txb_ClienteNome.Text); } else { //this.lbl_Message.Text = "Attenzione. Selezionare almeno un DOCUMENTO da cancellare."; } } //===================================================================== private int deleteDocumentFromDB(int iddocument, int idrepository) { List parametri = new List(); Parametro parametro = new Parametro(); parametro.ParameterName = "idDocument"; parametro.Value = iddocument; parametro.DbType = DbType.Int32; parametri.Add(parametro); parametro = new Parametro(); parametro.ParameterName = "idRepository"; parametro.Value = idrepository; parametro.DbType = DbType.Int32; parametri.Add(parametro); return DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "sp_deleteDocumentFromDB_ByIdDocument", parametri); } //===================================================================== protected void btn_Archivia_Click(object sender, EventArgs e) { this.lbl_Message.Text = ""; bool rc = checkIfAtLeastOneItemClicked(); if (rc)//almeno 1 item deputato alla archiviazione.... { int docToArchive; int archived = 0; int itemsToArchive = 0; string tipoReport = ""; //conto il numero dei modelli da cancellare for (int i = 0; i < dg.Items.Count; i++) { if (((CheckBox)dg.Items[i].FindControl("chk")).Checked == true && ((CheckBox)dg.Items[i].FindControl("chk")).Visible == true) { itemsToArchive++; } } for (int i = 0; i < dg.Items.Count; i++) { if (((CheckBox)dg.Items[i].FindControl("chk")).Checked == true) { docToArchive = Convert.ToInt32(dg.Items[i].Cells[4].Text); //campo nascosto con l'ID del Report da archiviare tipoReport = dg.Items[i].Cells[7].Text.ToUpper(); int retCode = archiveDocumentIntoDB(docToArchive, tipoReport); if (retCode != -1) { //VALERIO 10/03/2009 Aggancio il log GestoreLogPDF gl = new GestoreLogPDF(docToArchive); gl.scriviLog(EventLog.CambioStato_UnlockedLocked); // archived++; } } } if (archived == itemsToArchive) { lbl_Message.ForeColor = System.Drawing.Color.Black; } Response.Redirect(prevPage); readData(null); if (justOneCustomer == true) { lastUsedCF = dg.Items[0].Cells[12].Text; if (codNSG != lastUsedCF && lastUsedCF != string.Empty) codNSG = lastUsedCF; justOneCustomer = false; } //else //{ // codiceFiscale = ""; //} string tipoDoc = dg.Items[0].Cells[6].Text; if (tipoDoc != null && tipoDoc != "") { HttpCookie ck_tipologiaReport = new HttpCookie("tipologiaReport"); ck_tipologiaReport.Value = tipoDoc.ToUpper(); Response.Cookies.Add(ck_tipologiaReport); } Response.Redirect("archivioDocumenti.aspx?codcliente=" + codNSG + "&tipoRete=" + codiceRete + "&codPB=" + codicePB + "&pathNav=" + pathNav + "&tpReport=" + ddl_Modello.SelectedValue + "&utente=" + utente + "&archived=" + archived + "&toBeArchived=" + itemsToArchive + "&operation=DOCUMENTARCHIVED" + "&dayDa=" + txb_da.Text + "&dayA=" + txb_a.Text + "&rsd=" + this.chk_RicercaStampeDefinitive.Checked.ToString() + "&rsp=" + chk_RicercaStampeProvvisorie.Checked.ToString() + "&cognome=" + txb_ClienteCognome.Text + "&nome=" + txb_ClienteNome.Text); } else { //this.lbl_Message.Text = "Attenzione. Selezionare almeno un DOCUMENTO da ARCHIVIARE."; } } //===================================================================== private int archiveDocumentIntoDB(int docToArchive, string tipoReport) { //SOLO SE IL CLIENTE E' CONTRATTUALIZZATO //CTable tbl = new CTable(codiceFiscale, codicePB, codiceRete); //bool clienteConContrattoSEI = tbl.CustomerHasNoContrattoSEI(codicePB, codiceFiscale, codiceRete); bool clienteConContrattoSEI = Cliente.getCliente(codiceRete + codicePB, codNSG).SottoscrizioneContrattoSei; int result = -1; DocumentPDF documentPDF = new DocumentPDF(); //PRIMA RECUPERO IL FILE PDF POI LO RIELABORO APPLICANDO LA PATCH PER CAMBIAMENTO DISCLAIMAR //VALERIO 10/03/2009 //Applico la patch dei disclaimer a tutti i report per i quali il cliente è CONTRATTUALIZZATO //if ((tipoReport == "DIAGNOSI") && (clienteConContrattoSEI) && (WebConfigParameter.getParameter("GestioneDisclaimerC6") == "SI")){ if (clienteConContrattoSEI && (WebConfigParameter.getParameter("GestioneDisclaimerC6") == "SI")) { result = documentPDF.patchAndArchive(docToArchive); } else { result = documentPDF.archive(docToArchive); } return result; } //===================================================================== protected void btn_Ricerca_Click(object sender, EventArgs e) { Ricerca(0, ""); } private void Ricerca(int _pageIndex, string ordinamentoGriglia) { string rc = checkTypedData(); //ordinamentoGriglia = string.Empty; //codNSG = txb_ClienteCF.Text; string nomeCliente = txb_ClienteNome.Text.ToUpper(); string cognomeCliente = txb_ClienteCognome.Text.ToUpper(); string codNSG = txb_ClienteNSG.Text.ToUpper(); //string mandato = txb_mandato.Text.ToUpper(); DateTime dataDa; DateTime dataA; Boolean daRimuovere; int _conteggio=0; if (rc == "") { AggiungiParametriDiRicercaInSessione(); dg.DataSource = null; dg.DataBind(); if (codNSG.Length == 11) fillDG(Request.QueryString.Get("codcliente")); else { this.lbl_Message.Text = ""; DataTable dtDg = GetData(Request.QueryString.Get("codcliente")); for (int i = dtDg.Rows.Count - 1; i >= 0; i--) { daRimuovere = false; DataRow dr = dtDg.Rows[i]; Cliente cliente = Cliente.getCliente(dr["Rete"].ToString() + dr["CodicePB"], dr["codNSG"].ToString()); string cognome = dr["Cognome"].ToString(); string nome = dr["Nome"].ToString(); if (cognome == "") daRimuovere = true; if (cognome != "" && daRimuovere == false) { //FC Aggiunta gestione Cointestazione if ((cognomeCliente.Length >= 31 && cognomeCliente.Length != 0) && cognomeCliente.Contains(",")) { if ((!cognome.Contains(cognomeCliente) && cognomeCliente != "") && (nomeCliente != "" && !(nome.Contains(nomeCliente))) ) daRimuovere = true; } else { if (!cognome.Contains(cognomeCliente) && cognomeCliente != "") daRimuovere = true; } } if (nome != "" && daRimuovere == false) { if (nomeCliente != "" && !(nome.Contains(nomeCliente))) daRimuovere = true; } if (txb_da.Text.ToUpper() != "" && !daRimuovere) { dataDa = Convert.ToDateTime(txb_da.Text.ToUpper()); if (Convert.ToDateTime(dr["DtCreazione"]) < dataDa) daRimuovere = true; } // ANOMALIA INSERIMENTO MANDATO //if (mandato != "" && dr[17] != mandato && !daRimuovere) //{ // daRimuovere = true; //} if (txb_a.Text.ToUpper() != "" && !daRimuovere) { dataA = Convert.ToDateTime(txb_a.Text.ToUpper()); if (Convert.ToDateTime(dr["DtCreazione"]) > dataA) daRimuovere = true; } if (daRimuovere) dr.Delete(); else { _conteggio++; if ((cognome.Length >= 32 && nome.Length != 0) && (cognome.Contains(",") || nome.Contains(","))) dr["Nominativo"] = cognome + nome; else { if (nome.Contains("-")) dr["Nominativo"] = cognome; else if (dr[11].ToString().Contains("@")) dr["Nominativo"] = cognome + " " + nome; else dr["Nominativo"] = nome + " " + cognome; } //if ((dr["Cognome"].ToString().Length != 0)) //{ // if (dr["Nome"].ToString().Contains("-")) // dr["Nominativo"] = dr["Cognome"].ToString(); // else // if (dr[11].ToString().Contains("@")) // dr["Nominativo"] = dr["Cognome"].ToString() + " " + dr["Nome"].ToString(); // else // dr["Nominativo"] = dr["Nome"].ToString() + " " + dr["Cognome"].ToString(); //} //else //{ // if ((cliente.Cognome.Length >= 32 && cliente.Nome.ToString().Length != 0) && cliente.Cognome.Contains(",")) // dr["Nominativo"] = cliente.Cognome + cliente.Nome; // else // dr["Nominativo"] = cliente.Nome + " " + cliente.Cognome; //} } } dg.CurrentPageIndex = _pageIndex; if (ordinamentoGriglia != "") { DataView dv = new DataView(dtDg); dv.Sort = ordinamentoGriglia; dtDg = dv.ToTable("Table"); } dg.DataSource = dtDg; dg.DataBind(); dg.Visible = true; this.lbl_Message.ForeColor = System.Drawing.Color.Black; this.lbl_Message.Text = "Sono stati trovati " + _conteggio + " documenti con il criterio di ricerca prescelto."; } } else { this.lbl_Message.ForeColor = System.Drawing.Color.Red; this.lbl_Message.Text = rc; } } //===================================================================== private string checkTypedData() { string rc = ""; bool rcode; Validation vld = new Validation(); if (this.txb_ClienteCF.Text != "") { //if (txb_ClienteCF.Text.Length != 11) // rcode = vld.IsValidCF(this.txb_ClienteCF.Text); //else // rcode = true; //if (!rcode) rc = "Attenzione. Codice Fiscale NON valido."; } if (this.txb_da.Text != "") { rcode = vld.IsData(this.txb_da.Text); if (!rcode) rc = "Attenzione. Data di inizio periodo NON valida."; } if (this.txb_a.Text != "") { rcode = vld.IsData(this.txb_a.Text); if (!rcode) rc = "Attenzione. Data di fine periodo NON valida."; } if (this.txb_a.Text != "" && this.txb_da.Text != "" && rc == "") { if (Convert.ToDateTime(this.txb_a.Text) < Convert.ToDateTime(this.txb_da.Text)) { rc = "Attenzione. Data di fine periodo inferiore alla data di inizio periodo."; } } return rc; } //===================================================================== protected void imgCalendar_Da_Click(object sender, ImageClickEventArgs e) { this.cldSF_da.Visible = !this.cldSF_da.Visible; this.cldSF_a.Visible = false; } //====================================================================== protected void imgCalendar_a_Click(object sender, ImageClickEventArgs e) { this.cldSF_a.Visible = !this.cldSF_a.Visible; this.cldSF_da.Visible = false; } //====================================================================== protected void cldSF_da_SelectionChanged(object sender, EventArgs e) { dayDa = this.cldSF_da.SelectedDate; this.txb_da.Text = this.cldSF_da.SelectedDate.ToShortDateString(); this.cldSF_da.Visible = false; } //====================================================================== protected void cldSF_a_SelectionChanged(object sender, EventArgs e) { dayA = this.cldSF_a.SelectedDate; this.txb_a.Text = this.cldSF_a.SelectedDate.ToShortDateString(); this.cldSF_a.Visible = false; } //====================================================================== protected void chk_RicercaStampeDefinitive_CheckedChanged(object sender, EventArgs e) { // this.chk_RicercaStampeProvvisorie.Checked = !this.chk_RicercaStampeDefinitive.Checked; if (this.chk_RicercaStampeDefinitive.Checked) { if (this.chk_RicercaStampeProvvisorie.Checked) this.chk_RicercaStampeProvvisorie.Checked = false; if (this.chk_RicercaStampedaRichiedere.Checked) this.chk_RicercaStampedaRichiedere.Checked = false; } } //======================================================================= protected void chk_RicercaStampeProvvisorie_CheckedChanged(object sender, EventArgs e) { //this.chk_RicercaStampeDefinitive.Checked = !this.chk_RicercaStampeProvvisorie.Checked; if (this.chk_RicercaStampeProvvisorie.Checked) { if (this.chk_RicercaStampeDefinitive.Checked) this.chk_RicercaStampeDefinitive.Checked = false; if (this.chk_RicercaStampedaRichiedere.Checked) this.chk_RicercaStampedaRichiedere.Checked = false; } } //======================================================================= protected void btn_Azzera_Click(object sender, EventArgs e) { if (utenteHD_US) { this.txb_da.Text = ""; this.txb_a.Text = ""; } else { this.chk_RicercaStampeDefinitive.Checked = false; this.chk_RicercaStampeProvvisorie.Checked = false; this.txb_da.Text = ""; this.txb_a.Text = ""; this.txb_ClienteCognome.Text = ""; this.txb_ClienteNome.Text = ""; this.txb_ClienteCF.Text = ""; this.cldSF_a.SelectedDate = new DateTime(1, 1, 1); this.cldSF_da.SelectedDate = new DateTime(1, 1, 1); this.ddl_Modello.SelectedIndex = 0; this.lbl_Message.Text = ""; } AggiungiParametriDiRicercaInSessione(); btn_Ricerca_Click(sender, e); } //------------------------------------------------------------------------------------------ protected void readData(string codFiscale) { //check se ho un trovato 1 gruppo di clienti o 1 solo, in questo caso ho 1 CF valido List parametri = new List(); Parametro parametro = new Parametro(); parametro.DbType = DbType.Int32; parametro.Value = Convert.ToInt32(ddl_Modello.SelectedValue); parametro.ParameterName = "tpReport"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.String; if (utente != null) parametro.Value = utente; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "utente"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.String; if (codFiscale != null && codFiscale != "") parametro.Value = codFiscale; else if (this.txb_ClienteCF.Text != "") parametro.Value = this.txb_ClienteCF.Text; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "codiceFiscale"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.String; if (this.txb_ClienteCognome.Text != null) parametro.Value = this.txb_ClienteCognome.Text; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "cognome"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.String; if (this.txb_ClienteNome.Text != null) parametro.Value = this.txb_ClienteNome.Text; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "nome"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.DateTime; if (this.txb_da.Text != "") { dayDa = Convert.ToDateTime(this.txb_da.Text); parametro.Value = dayDa; } else parametro.Value = System.DBNull.Value; parametro.ParameterName = "dataDa"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.DateTime; if (this.txb_a.Text != "") { dayA = Convert.ToDateTime(this.txb_a.Text); TimeSpan ungiorno = new TimeSpan(1, 0, 0, 0); parametro.Value = dayA; } else parametro.Value = System.DBNull.Value; parametro.ParameterName = "dataA"; parametri.Add(parametro); parametro = new Parametro(); parametro.DbType = DbType.Boolean; if (this.chk_RicercaStampeProvvisorie.Checked) parametro.Value = false; else if (this.chk_RicercaStampeDefinitive.Checked) parametro.Value = true; else parametro.Value = System.DBNull.Value; parametro.ParameterName = "flagArchiviato"; parametri.Add(parametro); DataTable dtDg = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getAllDocumentsByFilters_new", parametri); //justOneCustomer string lastCustomer = ""; string customer = ""; if (dtDg.Rows.Count > 0) { customer = dtDg.Rows[0]["Cognome"].ToString(); foreach (DataRow dr in dtDg.Rows) { lastCustomer = dr["Cognome"].ToString(); if (lastCustomer != customer) { justOneCustomer = false; break; } else { customer = lastCustomer; } } } } protected void HomePage_Click(object sender, EventArgs e) { Response.Redirect("RicercaHD.aspx"); } protected void chk_RicercaStampedaRichiedere_CheckedChanged(object sender, EventArgs e) { if (this.chk_RicercaStampedaRichiedere.Checked) { if (this.chk_RicercaStampedaRichiedere.Checked) { if (this.chk_RicercaStampeDefinitive.Checked) this.chk_RicercaStampeDefinitive.Checked = false; if (this.chk_RicercaStampeProvvisorie.Checked) this.chk_RicercaStampeProvvisorie.Checked = false; } } } private string __; public string _ { get { return __; } set { __ = value; } } }