protected void PopolaCodCantAnnoNumero(string anno, string num = "") { string numCant = ""; if (num == "") { List <Cantieri> items = CantieriDAO.GetAll().Where(w => w.Anno == Convert.ToInt32(anno)).ToList(); if (items.Count > 0) { txtNumeroCant.Text = (items.Select(s => s.Numero).Max() + 1).ToString() ?? ""; } else { txtNumeroCant.Text = "001"; } numCant = txtNumeroCant.Text; } else { numCant = num; } if (numCant.Length == 1) { numCant = "00" + numCant; } else if (numCant.Length == 2) { numCant = "0" + numCant; } txtCodCant.Text = anno.Substring(2, 2) + numCant + "Ma"; }
protected void grdDiCo_RowCommand(object sender, GridViewCommandEventArgs e) { try { int idCantiere = Convert.ToInt32(e.CommandArgument); switch (e.CommandName) { case "Modifica": ddlScegliCantiere.SelectedValue = idCantiere.ToString(); txtData.Enabled = false; btnSalva.Text = "Modifica"; hfDataDichiarazioneCantiereOld.Value = CantieriDAO.GetSingle(idCantiere).NumDiCo.Value.ToString(); CantieriDAO.DeleteDiCo(idCantiere); break; case "Elimina": // In realtà è una Delete LOGICA, che va a impostare il campo NumDiCo a NULL CantieriDAO.DeleteDiCo(idCantiere); Bind(); break; } } catch (Exception ex) { (Master as layout).SetModal($"Errore durante il grdDiCo_RowCommand in DichiarazioneConformità.aspx.cs ===> {ex.Message}"); } }
//Stampa PDF public void ExportToPdfPerContoFinCli(List <MaterialiCantieri> matCantList) { decimal totale = 0m; int idCantiere = Convert.ToInt32(ddlScegliCant.SelectedValue); Cantieri cant = CantieriDAO.GetSingle(idCantiere); MaterialiCantieri mc = new MaterialiCantieri { RagSocCli = cant.RagSocCli, CodCant = cant.CodCant, DescriCodCant = cant.DescriCodCant }; //Apro lo stream verso il file PDF Document pdfDoc = new Document(PageSize.A4, 8f, 2f, 2f, 2f); PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open(); PdfPTable table = RicalcoloContiManager.InitializePdfTableDDT(); Phrase title = new Phrase($"Ragione Sociale Cliente: {mc.RagSocCli}", FontFactory.GetFont("Arial", 16, iTextSharp.text.Font.BOLD, BaseColor.BLACK)); pdfDoc.Add(title); RicalcoloContiManager.GeneraPDFPerContoFinCli(pdfDoc, mc, table, matCantList, totale, idCantiere, ddlScegliTipoNote.SelectedValue); pdfDoc.Close(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=" + mc.RagSocCli + ".pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Write(pdfDoc); Response.End(); }
/* Necessario per la creazione della GridView con intestazioni dinamiche */ /* Definisce l'ordinamento dei dati presenti nella GridView */ protected void grdStampaVerificaCant_Sorting(object sender, GridViewSortEventArgs e) { int idCantiere = Convert.ToInt32(ddlScegliCant.SelectedItem.Value); Cantieri cant = CantieriDAO.GetSingle(idCantiere); List <MaterialiCantieri> materiali = RicalcoloContiManager.GetMaterialiCantieri(idCantiere); BindGrid(cant, materiali.Sum(s => s.Valore)); }
protected string CostruisciCodRiferCant() { DateTime date = DateTime.Now; int numCant = CantieriDAO.GetAll().Where(w => w.Anno == Convert.ToInt32(txtAnnoCant.Text)).Count(); int descrLength = txtDescrCodCant.Text.Trim().Length; string firstTwoDescrCodCant = txtDescrCodCant.Text.Substring(0, 2); string lastYearDigits = date.Year.ToString().Substring(2, 2); string firstTwoRagSocCli = ddlScegliClientePerCantiere.SelectedItem.Text.Substring(0, 2); string codRiferCant = Convert.ToString(numCant + descrLength) + firstTwoDescrCodCant + lastYearDigits + firstTwoRagSocCli; return(codRiferCant.Replace(" ", "-").ToUpper()); }
protected void btnInsCantiere_Click(object sender, EventArgs e) { if (ddlScegliClientePerCantiere.SelectedIndex != 0) { bool isInserito = CantieriDAO.InserisciCantiere(new Cantieri { IdtblClienti = Convert.ToInt32(ddlScegliClientePerCantiere.SelectedValue), Data = Convert.ToDateTime(txtDataInserCant.Text), CodCant = txtCodCant.Text, DescriCodCant = txtDescrCodCant.Text, //Indirizzo = txtIndirizzoCant.Text, //Città = txtCittaCant.Text, Ricarico = Convert.ToInt32(txtRicaricoCant.Text), PzzoManodopera = Convert.ToDecimal(txtPzzoManodopCant.Text), Chiuso = chkCantChiuso.Checked, Riscosso = chkCantRiscosso.Checked, Numero = Convert.ToInt32(txtNumeroCant.Text), ValorePreventivo = Convert.ToDecimal(txtValPrevCant.Text == "" ? "0" : txtValPrevCant.Text), Iva = Convert.ToInt32(txtIvaCant.Text), Anno = Convert.ToInt32(txtAnnoCant.Text), Preventivo = chkPreventivo.Checked, DaDividere = chkDaDividere.Checked, Diviso = chkDiviso.Checked, Fatturato = chkFatturato.Checked, NonRiscuotibile = chkNonRiscuotibile.Checked, FasciaTblCantieri = Convert.ToInt32(txtFasciaCant.Text), IdPreventivo = Convert.ToInt32(ddlScegliPreventivoCant.SelectedValue), //CodRiferCant = CostruisciCodRiferCant() CodRiferCant = txtCodiceRiferimentoCant.Text }); if (isInserito) { lblIsCantInserito.Text = "Cantiere '" + txtDescrCodCant.Text + "' inserito con successo"; lblIsCantInserito.ForeColor = Color.Blue; } else { lblIsCantInserito.Text = "Errore durante l'inserimento del cantiere '" + txtDescrCodCant.Text + "'"; lblIsCantInserito.ForeColor = Color.Red; } BindGridCantieri(); ResettaCampi(pnlTxtBoxCantContainer); txtAnnoCant.Text = txtAnnoCant.Text != "" ? txtAnnoCant.Text : DateTime.Now.Year.ToString(); PopolaCodCantAnnoNumero(txtAnnoCant.Text); } else { lblIsCantInserito.Text = "Devi scegliere un cliente da associare al nuovo cantiere"; lblIsCantInserito.ForeColor = Color.Red; } }
protected void grdCantieri_RowCommand(object sender, GridViewCommandEventArgs e) { int idCant = Convert.ToInt32(e.CommandArgument.ToString()); if (e.CommandName == "VisualCant") { lblTitoloInserimento.Text = "Visualizza Cantiere"; lblIsCantInserito.Text = ""; btnInsCantiere.Visible = btnModCantiere.Visible = false; PopolaCampiCantiere(idCant, false); } else if (e.CommandName == "ModCant") { lblTitoloInserimento.Text = "Modifica Cantiere"; lblIsCantInserito.Text = ""; btnInsCantiere.Visible = false; btnModCantiere.Visible = !btnInsCantiere.Visible; hidIdCant.Value = idCant.ToString(); PopolaCampiCantiere(idCant, true); } else if (e.CommandName == "ElimCant") { if (PagamentiDAO.GetAll().Where(w => w.IdTblCantieri == Convert.ToInt32(idCant)).Count() == 0) { bool isDeleted = CantieriDAO.EliminaCantiere(idCant); if (isDeleted) { lblIsCantInserito.Text = "Cantiere eliminato con successo"; lblIsCantInserito.ForeColor = Color.Blue; } else { lblIsCantInserito.Text = "Errore durante l'eliminazione del cantiere"; lblIsCantInserito.ForeColor = Color.Red; } BindGridCantieri(); ResettaCampi(pnlTxtBoxCantContainer); txtCodCant.Enabled = false; btnInsCantiere.Visible = true; btnModCantiere.Visible = !btnInsCantiere.Visible; lblTitoloInserimento.Text = "Inserimento Cantieri"; } else { lblIsCantInserito.Text = "Impossibile eliminare il cantiere selezionato perchè ha dei pagamenti associati"; lblIsCantInserito.ForeColor = Color.Red; } } }
private void Bind() { List <Cantieri> cantieri = CantieriDAO.GetCantieri(txtFiltroAnno.Text, txtFiltroCodCant.Text, txtFiltroDescr.Text); ddlScegliCantiere.Items.Clear(); ddlScegliCantiere.Items.Add(new ListItem("", "-1")); DropDownListManager.FillDdlCantieri(cantieri, ref ddlScegliCantiere); grdDiCo.DataSource = cantieri.Where(w => w.NumDiCo != null).OrderBy(o => o.NumDiCo).ToList(); grdDiCo.DataBind(); txtData.Text = ""; txtData.TextMode = TextBoxMode.Date; }
public IHttpActionResult GetDiCo([FromUri] string codiceCantiere, [FromUri] string descrizione) { try { List <Cantieri> items = CantieriDAO.GetCantieri(codiceCantiere, descrizione); return(Ok(items.Where(w => w.NumDiCo != null).OrderBy(o => o.NumDiCo).ToList())); } catch (Exception ex) { string messaggio = $"Errore durante la GetDiCo in CantieriController --- {ex}"; log.Error(messaggio); return(BadRequest(messaggio)); } }
//Fill Ddl protected void FillDdlScegliCant() { DataTable dt = CantieriDAO.GetCantieri(txtFiltroCantAnno.Text, txtFiltroCantCodCant.Text, txtFiltroCantDescrCodCant.Text, chkFiltroCantChiuso.Checked, chkFiltroCantRiscosso.Checked); List <Cantieri> listCantieri = dt.DataTableToList <Cantieri>(); ddlScegliCant.Items.Clear(); ddlScegliCant.Items.Add(new ListItem("", "-1")); foreach (Cantieri c in listCantieri) { string show = c.Anno + " - " + c.CodCant + " - " + c.DescriCodCAnt; ddlScegliCant.Items.Add(new ListItem(show, c.IdCantieri.ToString())); } }
protected void btnSalva_Click(object sender, EventArgs e) { try { long numDiCo = Convert.ToInt64(txtData.Text != "" ? Convert.ToDateTime(txtData.Text).ToString("yyyyMMdd") : hfDataDichiarazioneCantiereOld.Value); CantieriDAO.SetDiCo(Convert.ToInt32(ddlScegliCantiere.SelectedValue), numDiCo); btnSalva.Text = "Salva"; Bind(); } catch (Exception ex) { (Master as layout).SetModal($"Errore durante il btnSalva_Click in DichiarazioneConformità.aspx.cs ===> {ex.Message}"); } }
public IHttpActionResult GetAll([FromUri] string codiceCantiere, [FromUri] string descrizione) { try { List <Cantieri> items = CantieriDAO.GetCantieri(codiceCantiere, descrizione); return(Ok(items)); } catch (Exception ex) { string messaggio = $"Errore durante la GetAll in CantieriController --- {ex}"; log.Error(messaggio); return(BadRequest(messaggio)); } }
protected void CompilaCampi(int idCantiere, decimal totale) { //Popolo il campo Conto/Preventivo Cantieri c = CantieriDAO.GetSingle(idCantiere); txtContoPreventivo.Text = c.Preventivo ? string.Format("{0:n}", c.ValorePreventivo) : Math.Round(totale, 2).ToString(); //Popolo il campo Tot. Acconti decimal totAcconti = 0m; totAcconti = PagamentiDAO.GetAll().Where(w => w.IdTblCantieri == idCantiere).ToList().Sum(s => s.Imporo); txtTotPagamenti.Text = $"{totAcconti:n}"; //Popolo il campo Tot. Finale decimal totContoPreventivo = Convert.ToDecimal(txtContoPreventivo.Text); decimal totFin = totContoPreventivo - totAcconti; txtTotFinale.Text = $"{totFin:n}"; }
protected void PopolaCampiCantiere(int idCant, bool isControlEnabled) { EnableDisableFields(pnlTxtBoxCantContainer, isControlEnabled); //Deseleziono tutti gli elementi della dropdownlist foreach (ListItem item in ddlScegliClientePerCantiere.Items) { item.Selected = false; } Cantieri cant = CantieriDAO.GetSingle(idCant); // Seleziono il cliente con la Ragione Sociale associata al cantiere di riferimento ddlScegliClientePerCantiere.SelectedValue = ddlScegliClientePerCantiere.Items.FindByText(cant.RagSocCli).Value; ddlScegliPreventivoCant.SelectedValue = "-1"; //Popolo i textbox txtDataInserCant.Text = cant.Data.ToString("yyyy-MM-dd"); txtDataInserCant.TextMode = TextBoxMode.Date; txtCodCant.Text = cant.CodCant; txtDescrCodCant.Text = cant.DescriCodCant; txtCodiceRiferimentoCant.Text = cant.CodRiferCant; //txtIndirizzoCant.Text = cant.Indirizzo; //txtCittaCant.Text = cant.Città; txtRicaricoCant.Text = cant.Ricarico.ToString(); txtPzzoManodopCant.Text = cant.PzzoManodopera.ToString("N2"); txtNumeroCant.Text = cant.Numero.ToString(); txtValPrevCant.Text = cant.ValorePreventivo.ToString("N2"); txtIvaCant.Text = cant.Iva.ToString(); txtAnnoCant.Text = cant.Anno.ToString(); txtFasciaCant.Text = cant.FasciaTblCantieri.ToString(); txtConcatenazioneCant.Text = $"{cant.CodCant}-{cant.DescriCodCant}"; //Spunto i checkbox se necessario chkCantChiuso.Checked = cant.Chiuso; chkCantRiscosso.Checked = cant.Riscosso; chkPreventivo.Checked = cant.Preventivo; chkDaDividere.Checked = cant.DaDividere; chkDiviso.Checked = cant.Diviso; chkFatturato.Checked = cant.Fatturato; chkNonRiscuotibile.Checked = cant.NonRiscuotibile; }
private void PopolaCampi(int idFattura, bool isModifica) { Fattura fatt = FattureDAO.GetSingle(idFattura); List <FatturaCantiere> fatCantieri = FattureCantieriDAO.GetByIdFattura(fatt.IdFatture); List <FatturaAcconto> fatAcconti = FattureAccontiDAO.GetByIdFattura(fatt.IdFatture); Cantieri cantiere = null; if (fatCantieri.Count > 0) { cantiere = CantieriDAO.GetSingle(fatCantieri?.FirstOrDefault().IdCantieri ?? 0); } txtNumeroFattura.Text = fatt.Numero.ToString(); ddlScegliCliente.SelectedValue = fatt.IdClienti.ToString(); fatCantieri.ForEach(f => lblShowCantieriAggiunti.Text += (lblShowCantieriAggiunti.Text == "" ? "" : ",") + CantieriDAO.GetSingle(f.IdCantieri).CodCant); txtData.Text = fatt.Data.ToString("yyyy-MM-dd"); txtData.TextMode = TextBoxMode.Date; fatAcconti.ForEach(f => lblShowAccontiAggiunti.Text += (lblShowAccontiAggiunti.Text == "" ? "" : "-") + f.ValoreAcconto.ToString()); txtImponibile.Text = fatt.Imponibile.ToString(); txtRitenutaAcconto.Text = fatt.RitenutaAcconto.ToString(); txtIva.Text = fatt.Iva.ToString(); chkNotaCredito.Checked = fatt.IsNotaDiCredito; chkReverseCharge.Checked = fatt.ReverseCharge; chkRiscosso.Checked = fatt.Riscosso; txtConcatenazione.Text = $"Fat. {fatt.Numero} del {fatt.Data:dd/MM/yyyy}"; if (cantiere != null) { txtConcatenazione.Text += $" - {cantiere.CodCant}"; } // Accessibilità campi txtNumeroFattura.ReadOnly = txtData.ReadOnly = txtValoreAcconto.ReadOnly = !isModifica; txtImponibile.ReadOnly = txtRitenutaAcconto.ReadOnly = txtIva.ReadOnly = !isModifica; txtFiltroCliente.ReadOnly = txtFiltroCodCantiere.ReadOnly = txtFiltroDescrizioneCantiere.ReadOnly = !isModifica; chkNotaCredito.Enabled = chkReverseCharge.Enabled = chkRiscosso.Enabled = isModifica; ddlScegliCantiere.Enabled = ddlScegliCliente.Enabled = isModifica; // Visibilità pannelli pnlInsFatture.Visible = true; pnlRicercaFatture.Visible = !pnlInsFatture.Visible; }
protected void btnStampaVerificaCant_Click(object sender, EventArgs e) { //Ricreo i passaggi della "Stampa Ricalcolo Conti" per ottenere il valore del "Totale Ricalcolo" //MaterialiCantieri mc = new MaterialiCantieri //{ // RagSocCli = cant.RagSocCli, // CodCant = cant.CodCant, // DescriCodCant = cant.DescriCodCant //}; //PdfPTable pTable = RicalcoloContiManager.InitializePdfTableDDT(); //Document pdfDoc = new Document(PageSize.A4, 8f, 2f, 2f, 2f); //pdfDoc.Open(); //RicalcoloContiManager.GeneraPDFPerContoFinCli(pdfDoc, mc, pTable, materiali, 0, idCantiere); //pdfDoc.Close(); int idCantiere = Convert.ToInt32(ddlScegliCant.SelectedItem.Value); Cantieri cant = CantieriDAO.GetSingle(idCantiere); List <MaterialiCantieri> materiali = RicalcoloContiManager.GetMaterialiCantieri(idCantiere); pnlViewGridAndLabels.Visible = true; BindGrid(cant, materiali.Sum(s => s.Valore)); GroupGridViewCells(); }
protected void btnStampaContoCliente_Click(object sender, EventArgs e) { //Ricreo i passaggi della "Stampa Ricalcolo Conti" per ottenere il valore del "Totale Ricalcolo" int idCantiere = Convert.ToInt32(ddlScegliCant.SelectedItem.Value); Cantieri cant = CantieriDAO.GetSingle(idCantiere); MaterialiCantieri mc = new MaterialiCantieri { RagSocCli = cant.RagSocCli, CodCant = cant.CodCant, DescriCodCant = cant.DescriCodCant }; PdfPTable pTable = RicalcoloContiManager.InitializePdfTableDDT(); Document pdfDoc = new Document(PageSize.A4, 8f, 2f, 2f, 2f); pdfDoc.Open(); List <MaterialiCantieri> materiali = RicalcoloContiManager.GetMaterialiCantieri(idCantiere); RicalcoloContiManager.GeneraPDFPerContoFinCli(pdfDoc, mc, pTable, materiali, 0, idCantiere); pdfDoc.Close(); //Popolo i campi di riepilogo con i dati necessari CompilaCampi(idCantiere, materiali.Sum(s => s.Valore)); }
protected void FillDdlScegliCantiere(string codiceCantiere = "", string descrizioneCantiere = "") { ddlScegliCantiere.Items.Clear(); ddlScegliCantiere.Items.Add(new ListItem("", "-1")); DropDownListManager.FillDdlCantieri(CantieriDAO.GetCantieri(codiceCantiere, descrizioneCantiere).Where(w => !w.Fatturato && !w.Riscosso && !w.NonRiscuotibile).ToList(), ref ddlScegliCantiere); }
protected void FillDdlScegliCantiere() { ddlScegliCantiere.Items.Clear(); ddlScegliCantiere.Items.Add(new ListItem("", "-1")); DropDownListManager.FillDdlCantieri(CantieriDAO.GetAll().Where(w => !w.Chiuso).ToList(), ref ddlScegliCantiere); }
protected void BindGridCantieri() { grdCantieri.DataSource = CantieriDAO.GetCantieri(txtFiltroAnno.Text, txtFiltroCodCant.Text, txtFiltroDescr.Text, txtFiltroCliente.Text, chkFiltroChiuso.Checked, chkFiltroRiscosso.Checked, chkFiltroFatturato.Checked, chkFiltroNonRiscuotibile.Checked); grdCantieri.DataBind(); }
protected void btnAggiungiCantiereAllaLista_Click(object sender, EventArgs e) { int idCantiere = Convert.ToInt32(ddlScegliCantiere.SelectedValue); if (idCantiere != -1) { lblShowCantieriAggiunti.Text += (lblShowCantieriAggiunti.Text == "" ? "" : ",") + CantieriDAO.GetSingle(idCantiere).CodCant; hfIdCantieriDaAggiungere.Value += (hfIdCantieriDaAggiungere.Value == "" ? "" : ";") + idCantiere; } }
protected void FillDdlScegliCantiere() { ddlScegliCant.Items.Clear(); ddlScegliCant.Items.Add(new ListItem("", "-1")); DropDownListManager.FillDdlCantieri(CantieriDAO.GetCantieri(txtAnno.Text, txtCodCant.Text, "", chkChiuso.Checked, chkRiscosso.Checked), ref ddlScegliCant); }
protected void btnStampaContoCliente_Click(object sender, EventArgs e) { try { List <Cantieri> listaCantieri = CantieriDAO.GetCantieri(txtAnno.Text, Convert.ToInt32(ddlScegliCliente.SelectedValue), chkFatturato.Checked, chkChiuso.Checked, chkRiscosso.Checked, chkNonRiscuotibile.Checked); if (listaCantieri.Count() > 0) { List <MaterialiCantieri> materiali = MaterialiCantieriDAO.GetByListOfCantieri(RicalcoloContiManager.GetStringFromListForQuery(listaCantieri.Select(s => s.IdCantieri).ToList())); List <Pagamenti> pagamenti = PagamentiDAO.GetAll(); List <Database.Models.StampaValoriCantieriConOpzioni> gridViewItems = new List <Database.Models.StampaValoriCantieriConOpzioni>(); materiali.ForEach(f => { Cantieri cantiere = listaCantieri.Where(w => w.IdCantieri == f.IdTblCantieri).FirstOrDefault(); Database.Models.StampaValoriCantieriConOpzioni objStampa = new Database.Models.StampaValoriCantieriConOpzioni { CodCant = cantiere.CodCant, DescriCodCAnt = cantiere.DescriCodCant, RagSocCli = cantiere.RagSocCli }; objStampa.TotaleAcconti = objStampa.TotaleConto = objStampa.TotaleFinale = 0m; //Popolo il campo Conto/Preventivo objStampa.TotaleConto = cantiere.Preventivo ? cantiere.ValorePreventivo : Math.Round(RicalcoloContiManager.GetMaterialiCantieri(cantiere.IdCantieri).Sum(s => s.Valore), 2); //Popolo il campo Tot. Acconti decimal totAcconti = 0m; totAcconti = pagamenti.Where(w => w.IdTblCantieri == cantiere.IdCantieri).ToList().Sum(s => s.Imporo); objStampa.TotaleAcconti = totAcconti; //Popolo il campo Tot. Finale decimal totContoPreventivo = objStampa.TotaleConto; decimal totFin = totContoPreventivo - totAcconti; objStampa.TotaleFinale = totFin; if (RicalcoloContiManager.CalcolaPercentualeTotaleMaterialiNascosti(f.IdTblCantieri) == -1) { objStampa.TotaleAcconti = objStampa.TotaleConto = objStampa.TotaleFinale = -999.99m; } //Aggiungo l'oggetto alla lista gridViewItems.Add(objStampa); }); gridViewItems = gridViewItems.GroupBy(s => new { s.CodCant, s.DescriCodCAnt, s.RagSocCli, s.TotaleConto, s.TotaleAcconti, s.TotaleFinale }).Distinct().Select(s => s.First()).ToList(); grdStampaConOpzioni.DataSource = gridViewItems; grdStampaConOpzioni.DataBind(); // Metto i dati in sessione per poter successivamente creare l'excel senza dover rifare tutto il giro Session["StampaValConOpzData"] = gridViewItems; // Assegno il valore alla label che mostra il totale generale decimal totGen = gridViewItems.Sum(s => s.TotaleFinale); for (int i = 0; i < grdStampaConOpzioni.Rows.Count; i++) { //if (grdStampaConOpzioni.Rows[i].Cells[5].Text == "0") //{ // grdStampaConOpzioni.Rows[i].Visible = false; //} // Se il totale Conto mostra un valore palesemente errato, la cella viene modificata mostrando l'errore invece del valore del cantiere if (grdStampaConOpzioni.Rows[i].Cells[3].Text == "-999,99") { grdStampaConOpzioni.Rows[i].Cells[3].Text = grdStampaConOpzioni.Rows[i].Cells[4].Text = grdStampaConOpzioni.Rows[i].Cells[5].Text = "VEDI VALORI NON VISIBILI"; grdStampaConOpzioni.Rows[i].Cells[3].BackColor = grdStampaConOpzioni.Rows[i].Cells[4].BackColor = grdStampaConOpzioni.Rows[i].Cells[5].BackColor = Color.Red; } } lblTotaleGeneraleStampa.Text = $"Totale: {totGen:N2} €"; // Nascondo eventuali alert visualizzati in precedenza (Master as layout).HideAlert(); } else { Session["StampaValConOpzData"] = null; (Master as layout).SetAlert("alert-warning", "Non ci sono cantieri che corrispondano ai filtri impostati"); } } catch (Exception ex) { Session["StampaValConOpzData"] = null; (Master as layout).SetAlert("alert-danger", $"Errore durante la stampa del cantiere ==> {ex.Message}"); } }