//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)); }
/* EVENTI CLICK */ protected void btnStampaContoCliente_Click(object sender, EventArgs e) { List <MaterialiCantieri> matCantList = RicalcoloContiManager.GetMaterialiCantieri(Convert.ToInt32(ddlScegliCant.SelectedValue)); if (matCantList == null) { lblControlloMatVisNasc.Text = "Materiale visibile con ricalcolo = 0, ma è presente del Materiale nascosto. --- Oppure sono presenti record con PzzoFinCli."; lblControlloMatVisNasc.ForeColor = Color.Red; } else { ExportToPdfPerContoFinCli(matCantList); } }
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)); }
public void BindGridExcel() { grdStampaMateCantExcel.DataSource = RicalcoloContiManager.GetMaterialiCantieri(Convert.ToInt32(ddlScegliCant.SelectedValue)); grdStampaMateCantExcel.DataBind(); }
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}"); } }