Example #1
0
        //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();
        }
Example #2
0
        /* 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));
        }
Example #3
0
        /* 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);
            }
        }
Example #4
0
        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));
        }
Example #6
0
 public void BindGridExcel()
 {
     grdStampaMateCantExcel.DataSource = RicalcoloContiManager.GetMaterialiCantieri(Convert.ToInt32(ddlScegliCant.SelectedValue));
     grdStampaMateCantExcel.DataBind();
 }
Example #7
0
        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}");
            }
        }