Ejemplo n.º 1
0
        protected void ExportToPdfPerMatCant()
        {
            decimal totale        = 0m;
            decimal totaleFinale  = 0m;
            long    numDdtAttuale = 0;
            List <MaterialiCantieri> matCantList = MaterialiCantieriDAO.GetMaterialeCantiere(txtDataDa.Text, txtDataA.Text, ddlScegliAcquirente.SelectedItem.Text, ddlScegliFornitore.SelectedItem.Text, txtNumDDT.Text);

            //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 = InitializePdfTableMatCant();
            Phrase    title = new Phrase(txtNomeFile.Text, FontFactory.GetFont("Arial", 24, iTextSharp.text.Font.BOLD, BaseColor.RED));

            pdfDoc.Add(title);
            GeneraPDFPerMatCant(pdfDoc, matCantList, table, totale, numDdtAttuale, totaleFinale);
            pdfDoc.Close();
            Response.ContentType = "application/pdf";
            Response.AddHeader("content-disposition", "attachment;filename=" + txtNomeFile.Text + ".pdf");
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Write(pdfDoc);
            Response.End();
        }
Ejemplo n.º 2
0
        protected void btnInserisci_Click(object sender, EventArgs e)
        {
            MaterialiCantieri mc = new MaterialiCantieri();

            FillMatCant(mc);

            if (Convert.ToInt32(txtQta.Text) > 0)
            {
                bool isInserito = MaterialiCantieriDAO.InserisciSpesa(mc);

                if (isInserito)
                {
                    lblIsManodopInserita.Text      = "Record inserito con successo";
                    lblIsManodopInserita.ForeColor = Color.Blue;
                }
                else
                {
                    lblIsManodopInserita.Text      = "Errore durante l'inserimento del record";
                    lblIsManodopInserita.ForeColor = Color.Red;
                }
            }
            else
            {
                lblIsManodopInserita.Text      = "La quantità deve essere maggiore di '0'";
                lblIsManodopInserita.ForeColor = Color.Red;
            }
        }
        protected void btnInserisci_Click(object sender, EventArgs e)
        {
            string            idCant     = ddlScegliCant.SelectedItem.Value;
            string            acquirente = ddlScegliOperaio.SelectedItem.Value;
            MaterialiCantieri mc         = new MaterialiCantieri();

            FillMatCant(mc);

            if (Convert.ToInt32(txtQta.Text) > 0)
            {
                bool isInserito = MaterialiCantieriDAO.InserisciOperaio(mc);

                if (isInserito)
                {
                    lblIsOperInserita.Text      = "Record inserito con successo";
                    lblIsOperInserita.ForeColor = Color.Blue;
                }
                else
                {
                    lblIsOperInserita.Text      = "Errore durante l'inserimento del record";
                    lblIsOperInserita.ForeColor = Color.Red;
                }
            }
            else
            {
                lblIsOperInserita.Text      = "Il valore della quantità deve essere maggiore di '0'";
                lblIsOperInserita.ForeColor = Color.Red;
            }
        }
Ejemplo n.º 4
0
        protected void btnResocontoRaggruppato_Click(object sender, EventArgs e)
        {
            try
            {
                List <MaterialiCantieri> items = MaterialiCantieriDAO.GetMatCantPerResocontoOperaio(txtDataDa.Text, txtDataA.Text, ddlScegliOperaio.SelectedItem.Value, txtFiltroCantiere.Text, Convert.ToInt32(rblChooseView.SelectedValue));
                items.Where(w => w.CodCant == "Acconto").ToList().ForEach(f => f.Acquirente = $"Acconto {f.Acquirente}");
                items = items.GroupBy(g => new { g.Data, g.Acquirente })
                        .Select(s => new MaterialiCantieri
                {
                    Data            = s.Key.Data,
                    Acquirente      = s.Key.Acquirente,
                    Qta             = s.Sum(x => x.Qta),
                    PzzoUniCantiere = s.Min(x => x.PzzoUniCantiere),
                    Valore          = s.Sum(x => x.Valore)
                }).ToList();

                grdResocontoRaggruppato.DataSource = items;
                grdResocontoRaggruppato.DataBind();

                grdResocontoOperaio.Visible     = false;
                grdResocontoRaggruppato.Visible = !grdResocontoOperaio.Visible;
            }
            catch (Exception ex)
            {
                lblIsOperaioPagato.Text      = $"Errore durante il btnResocontoRaggruppato_Click - {ex.Message}";
                lblIsOperaioPagato.ForeColor = Color.Red;
            }
        }
Ejemplo n.º 5
0
        protected void BindGrid()
        {
            List <MaterialiCantieri> items = MaterialiCantieriDAO.GetMatCantPerResocontoOperaio(txtDataDa.Text, txtDataA.Text, ddlScegliOperaio.SelectedItem.Value, txtFiltroCantiere.Text, Convert.ToInt32(rblChooseView.SelectedValue));

            grdResocontoOperaio.DataSource = items;
            grdResocontoOperaio.DataBind();
            lblTotaleOre.Text    = $"Totale Ore: {items.Sum(s => s.Qta)}";
            lblTotaleValore.Text = $"Totale Valore: {items.Sum(s => s.Valore):N2}";
        }
        //protected void FillDdlScegliOperaio()
        //{
        //    ddlScegliOperaio.Items.Clear();
        //    ddlScegliOperaio.Items.Add(new ListItem("", "-1"));
        //    DropDownListManager.FillDdlOperaio(OperaiDAO.GetAll(), ref ddlScegliOperaio);
        //}
        protected void BindGrid()
        {
            pnlShowGridAndLabel.Visible = true;
            List <MaterialiCantieri> mcList = MaterialiCantieriDAO.GetMaterialeCantierePerTipologia(Convert.ToInt32(ddlScegliCant.SelectedItem.Value), txtDataDa.Text, txtDataA.Text, "MANODOPERA");

            grdStampaPerTipologia.DataSource = mcList;
            grdStampaPerTipologia.DataBind();

            lblTotOre.Text = $"<strong>Totale Ore</strong>: {Math.Round(mcList.Sum(s => (decimal)s.Qta), 2)}";
            lblTotale.Text = $"<strong>Totale Valore</strong>: {Math.Round(mcList.Sum(s => (decimal)s.Qta * s.PzzoUniCantiere), 2)}";
        }
        protected void FillDdlScegliMatCant()
        {
            string idCant = ddlScegliCant.SelectedItem.Value;
            List <MaterialiCantieri> listMatCant = MaterialiCantieriDAO.GetMaterialeCantiere(idCant, txtFiltroCodArt.Text, txtFiltroDescriCodArt.Text);

            ddlScegliMatCant.Items.Clear();
            ddlScegliMatCant.Items.Add(new ListItem("", "-1"));

            foreach (MaterialiCantieri mc in listMatCant)
            {
                string data = ((mc.Data).ToString()).Split(' ')[0];
                string show = mc.CodArt + " - " + mc.DescriCodArt + " - " + mc.Qta + " - " + mc.PzzoUniCantiere + " - " + data;
                ddlScegliMatCant.Items.Add(new ListItem(show, mc.IdMaterialiCantieri.ToString()));
            }
        }
Ejemplo n.º 8
0
        protected void BindGrid(Cantieri cant, decimal totaleValore)
        {
            decimal totMate       = 0m;
            decimal totRientro    = 0m;
            decimal totManodop    = 0m;
            decimal totOreManodop = 0m;
            decimal totOper       = 0m;
            decimal totArrot      = 0m;
            decimal totChiam      = 0m;
            decimal totSpese      = 0m;
            int     idCantiere    = Convert.ToInt32(ddlScegliCant.SelectedItem.Value);

            List <MaterialiCantieri> matCantList = MaterialiCantieriDAO.GetMaterialeCantiere(idCantiere.ToString());

            grdStampaVerificaCant.DataSource = matCantList;
            grdStampaVerificaCant.DataBind();

            lblIntestStampa.Text     = $"<strong>CodCant</strong>: {cant.CodCant} --- <strong>DescriCodCant</strong>: {cant.DescriCodCant} --- <strong>Cliente</strong>: {cant.RagSocCli}";
            lblTotContoCliente.Text  = "<strong>Tot. Conto/Preventivo</strong>: ";
            lblTotContoCliente.Text += (cant.Preventivo ? Math.Round(cant.ValorePreventivo, 2) : Math.Round(totaleValore, 2)).ToString();

            totMate             += matCantList.Where(w => w.Tipologia.ToUpper() == "MATERIALE").Sum(s => (decimal)s.Qta * s.PzzoUniCantiere);
            totRientro          += matCantList.Where(w => w.Tipologia.ToUpper() == "RIENTRO").Sum(s => (decimal)s.Qta * s.PzzoUniCantiere);
            totManodop          += matCantList.Where(w => w.Tipologia.ToUpper() == "MANODOPERA").Sum(s => (decimal)s.Qta * s.PzzoUniCantiere);
            totOreManodop       += matCantList.Where(w => w.Tipologia.ToUpper() == "MANODOPERA").Sum(s => (decimal)s.Qta);
            totOper             += matCantList.Where(w => w.Tipologia.ToUpper() == "OPERAIO").Sum(s => (decimal)s.Qta * s.PzzoUniCantiere);
            totArrot            += matCantList.Where(w => w.Tipologia.ToUpper() == "ARROTONDAMENTO").Sum(s => (decimal)s.Qta * s.PzzoUniCantiere);
            totSpese            += matCantList.Where(w => w.Tipologia.ToUpper() == "SPESA" || w.Tipologia.ToUpper() == "SPESE").Sum(s => (decimal)s.Qta * s.PzzoUniCantiere);
            totChiam            += matCantList.Where(w => w.Tipologia.ToUpper() == "A CHIAMATA").Sum(s => (decimal)s.Qta * s.PzzoUniCantiere);
            lblTotMate.Text      = $"<strong>Tot. Materiale</strong>: {totMate:n}";
            lblTotRientro.Text   = $"<strong>Tot. Rientro</strong>: {totRientro:n}";
            lblTotOper.Text      = $"<strong>Tot. Operaio</strong>: {totOper:n}";
            lblTotArrot.Text     = $"<strong>Tot. Arrotondamento</strong>: {totArrot:n}";
            lblTotAChiamata.Text = $"<strong>Tot. A Chiamata</strong>: {totChiam:n}";
            lblTotSpese.Text     = $"<strong>Tot. Spese</strong>: {totSpese:n}";

            decimal sommaTotPerTipol = totMate + totRientro + totOper;
            decimal contoFinCli      = Convert.ToDecimal(lblTotContoCliente.Text.Split(':')[1].Trim());
            decimal totGuadagno      = Convert.ToDecimal($"{contoFinCli - sommaTotPerTipol - totManodop - totSpese + totArrot + totChiam:n}");

            lblTotGuadagno.Text = $"<strong>Totale Guadagno</strong>: {totGuadagno:n}";
            lblTotManodop.Text  = $"<strong>Tot. Manodopera</strong>: {totManodop:n}";

            decimal totGuadConManodop = totGuadagno + totManodop;

            lblTotGuadagnoConManodop.Text    = $"<strong>Tot. Guadagno Con Manodopopera</strong>: {totGuadConManodop}";
            lblTotGuadagnoOrarioManodop.Text = $"<strong>Tot. Guadagno Orario Manodopopera</strong>: {totGuadConManodop / (totOreManodop == 0 ? 1 : totOreManodop):n}";
        }
Ejemplo n.º 9
0
 protected void btnPagaOperaio_Click(object sender, EventArgs e)
 {
     if (MaterialiCantieriDAO.UpdateOperaioPagato(txtDataDa.Text, txtDataA.Text, ddlScegliOperaio.SelectedItem.Value))
     {
         if (AccontiOperaiDAO.UpdateAccontoPagato(Convert.ToDateTime(txtDataDa.Text), Convert.ToDateTime(txtDataA.Text), Convert.ToInt32(ddlScegliOperaio.SelectedItem.Value)))
         {
             lblIsOperaioPagato.Text      = "Campo \"OperaioPagato\" aggiornato con successo";
             lblIsOperaioPagato.ForeColor = Color.Blue;
         }
     }
     else
     {
         lblIsOperaioPagato.Text      = "Impossibile aggiornare il campo \"OperaioPagato\"";
         lblIsOperaioPagato.ForeColor = Color.Red;
     }
     BindGrid();
 }
        protected void btnInserisci_Click(object sender, EventArgs e)
        {
            int maxQta = Convert.ToInt32((ddlScegliMatCant.SelectedItem.Text).Split('-')[2]);

            MaterialiCantieri mc = new MaterialiCantieri();

            FillMatCant(mc);

            if (Convert.ToDecimal(txtPzzoUnit.Text) > 0)
            {
                if (Convert.ToInt32(txtQta.Text) > 0 && Convert.ToInt32(txtQta.Text) <= maxQta)
                {
                    bool isInserito = MaterialiCantieriDAO.InserisciMaterialeCantiere(mc);

                    if (isInserito)
                    {
                        lblIsRecordInserito.Text      = "Record inserito con successo";
                        lblIsRecordInserito.ForeColor = Color.Blue;
                    }
                    else
                    {
                        lblIsRecordInserito.Text      = "Errore durante l'inserimento del record";
                        lblIsRecordInserito.ForeColor = Color.Red;
                    }
                }
                else
                {
                    lblIsRecordInserito.Text      = "La quantità è 0 o maggiore di quella del materiale scelto";
                    lblIsRecordInserito.ForeColor = Color.Red;
                }
            }
            else
            {
                lblIsRecordInserito.Text      = "Inserire un valore maggiore di '0' per il campo Prezzo Unitario";
                lblIsRecordInserito.ForeColor = Color.Red;
            }
        }
        public static decimal CalcolaPercentualeTotaleMaterialiNascosti(int idCantiere)
        {
            decimal ret = -15;
            List <MaterialiCantieri> items  = MaterialiCantieriDAO.GetByIdCantiere(idCantiere);
            decimal matVisibileConRicalcolo = items.Where(w => (w.Tipologia.ToUpper() == "MATERIALE" || w.Tipologia.ToUpper() == "A CHIAMATA") && w.Visibile && w.Ricalcolo && w.PzzoFinCli == 0)
                                              .Sum(s => s.PzzoUniCantiere * (decimal)s.Qta);

            decimal matNascosto = items.Where(w => !w.Visibile).Sum(s => s.PzzoUniCantiere * (decimal)s.Qta);

            if (matVisibileConRicalcolo != 0)
            {
                ret = matNascosto * 100 / matVisibileConRicalcolo;
            }
            else if (matNascosto == 0 && matVisibileConRicalcolo == 0)
            {
                ret = 0;
            }
            else if (matNascosto != 0 && matVisibileConRicalcolo == 0)
            {
                ret = -1;
            }

            return(ret);
        }
Ejemplo n.º 12
0
 protected void BindGridStampaMatCant()
 {
     grdStampaMateCant.DataSource = MaterialiCantieriDAO.GetMaterialeCantiere(txtDataDa.Text, txtDataA.Text, ddlScegliAcquirente.SelectedItem.Text, ddlScegliFornitore.SelectedItem.Text, txtNumDDT.Text);
     grdStampaMateCant.DataBind();
 }
        public static List <MaterialiCantieri> GetMaterialiCantieri(int idCantiere)
        {
            decimal percentuale = CalcolaPercentualeTotaleMaterialiNascosti(idCantiere);

            return(percentuale == -1 ? null : MaterialiCantieriDAO.GetMaterialeCantiereForRicalcoloConti(idCantiere, percentuale));
        }
Ejemplo n.º 14
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}");
            }
        }