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; } } }
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}"; }
public static void GeneraTotalePerContoFinCli(PdfPTable tblTotali, decimal totale, int idCantiere) { decimal totValAcconti = PagamentiDAO.GetAll().Where(w => w.IdTblCantieri == Convert.ToInt32(idCantiere)).ToList().Sum(s => s.Imporo); //Totale No Iva Phrase totContoFinCli = new Phrase($"Totale: {totale:n}", FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.ITALIC, BaseColor.BLACK)); PdfPCell totContoFinCliCell = new PdfPCell(totContoFinCli); //Totale Acconti Phrase totAcconti = new Phrase($"Totale Acconti: {totValAcconti:n}", FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.ITALIC, BaseColor.BLACK)); PdfPCell totAccontiCell = new PdfPCell(totAcconti); Phrase totaleFinale = new Phrase($"Totale Finale Escluso IVA: {totale - totValAcconti:n}", FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.ITALIC, BaseColor.BLACK)); PdfPCell totaleFinaleCell = new PdfPCell(totaleFinale); totContoFinCliCell.HorizontalAlignment = totAccontiCell.HorizontalAlignment = totaleFinaleCell.HorizontalAlignment = Element.ALIGN_RIGHT; totContoFinCliCell.BorderWidth = totAccontiCell.BorderWidth = totaleFinaleCell.BorderWidth = 0; totContoFinCliCell.BorderWidthTop = 1; totContoFinCliCell.BorderColorTop = BaseColor.BLUE; totaleFinaleCell.PaddingBottom = 20; tblTotali.AddCell(totContoFinCliCell); tblTotali.AddCell(totAccontiCell); tblTotali.AddCell(totaleFinaleCell); }
protected void BindGrid() { grdPagamenti.DataSource = PagamentiDAO.GetAll(txtFiltroPagamDescri.Text).Where(w => w.IdTblCantieri == Convert.ToInt32(ddlScegliCant.SelectedItem.Value)).ToList(); grdPagamenti.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}"); } }