public void AddData(XPCollection <RigaVenditaVariante> elenco, List <Postazione> postazioni) { ClassNumerazione numerazione = new ClassNumerazione(); List <TotaliPostazione> listaReport = new List <TotaliPostazione>(); foreach (RigaVenditaVariante rigaVenditaVariante in elenco) { bool found = false; foreach (TotaliPostazione totaliPostazione in listaReport) { if (totaliPostazione.Biglietto == rigaVenditaVariante.Variante.Biglietto.Descrizione && totaliPostazione.Variante == rigaVenditaVariante.Variante.Descrizione) { found = true; totaliPostazione.Qta += rigaVenditaVariante.Quantita; totaliPostazione.Tot += rigaVenditaVariante.PrezzoTotale; totaliPostazione.Contanti += rigaVenditaVariante.IncassoContanti; totaliPostazione.Pos += rigaVenditaVariante.IncassoPos; totaliPostazione.Online += rigaVenditaVariante.IncassoOnline; totaliPostazione.FatturaElettronica += rigaVenditaVariante.IncassoFatturaElettronica; break; } } if (!found) { TotaliPostazione nriga = new TotaliPostazione(); nriga.Biglietto = rigaVenditaVariante.Variante.Biglietto.Descrizione; nriga.Variante = rigaVenditaVariante.Variante.Descrizione; nriga.Qta = rigaVenditaVariante.Quantita; nriga.Tot = rigaVenditaVariante.PrezzoTotale; nriga.Contanti = rigaVenditaVariante.IncassoContanti; nriga.Pos = rigaVenditaVariante.IncassoPos; nriga.Online += rigaVenditaVariante.IncassoOnline; nriga.FatturaElettronica += rigaVenditaVariante.IncassoFatturaElettronica; listaReport.Add(nriga); } foreach (Stampa stampa in rigaVenditaVariante.Vendita.Stampe) { numerazione.Add(stampa.Vendita.Postazione, stampa.NumeroProgressivo, stampa.Vendita.DataContabile.Year); } } foreach (TotaliPostazione totaliPostazione in listaReport) { this.bindingSource1.Add(totaliPostazione); } Postazioni(postazioni, numerazione); }
private string RicevuteMesePeriodo(DateTime dateTime, SoggettoEconomico soggetto) { DateTime mese = new DateTime(dateTime.Year, dateTime.Month, 1); ClassNumerazione numerazione = new ClassNumerazione(); XPCollection <Vendita> vendite = new XPCollection <Vendita>(this.unitOfWork1); vendite.Criteria = new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] { new BinaryOperator("Struttura.Oid", _Struttura.Oid), new BinaryOperator("DataContabile", mese, BinaryOperatorType.GreaterOrEqual), new BinaryOperator("DataContabile", mese.AddMonths(1).AddDays(-1), BinaryOperatorType.LessOrEqual) }); foreach (Vendita vendita in vendite) { foreach (Stampa stampa in vendita.Stampe) { if (soggetto == null) { numerazione.Add(stampa.Vendita.Postazione, stampa.NumeroProgressivo, stampa.Vendita.DataContabile.Year); } else { foreach (RigaStampaIngresso riga in stampa.RigheStampaIngresso) { if (riga.Ingresso.SoggettoEconomico.Oid == soggetto.Oid) { numerazione.Add(stampa.Vendita.Postazione, stampa.NumeroProgressivo, stampa.Vendita.DataContabile.Year); } } } } } return(numerazione.EB()); }
private int RicevutePeriodo(DateTime inizio, DateTime fine, SoggettoEconomico soggetto) { ClassNumerazione numerazione = new ClassNumerazione(); XPCollection <Vendita> vendite = new XPCollection <Vendita>(this.unitOfWork1); vendite.Criteria = new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] { new BinaryOperator("Struttura.Oid", _Struttura.Oid), new BinaryOperator("DataContabile", inizio, BinaryOperatorType.GreaterOrEqual), new BinaryOperator("DataContabile", fine, BinaryOperatorType.LessOrEqual) }); foreach (Vendita vendita in vendite) { bool soggettoEsterno = false; if (soggetto != null) { foreach (var rigaVenditaVariante in vendita.RigheVenditaVariante) { if (rigaVenditaVariante.Card != null && rigaVenditaVariante.Variante.Biglietto.Gestore.Oid == soggetto.Oid) { soggettoEsterno = true; } } } foreach (Stampa stampa in vendita.Stampe) { foreach (RigaStampaIngresso riga in stampa.RigheStampaIngresso) { if (riga.Ingresso.SoggettoEconomico.Oid == soggetto.Oid || soggettoEsterno) { numerazione.Add(stampa.Vendita.Postazione, stampa.NumeroProgressivo, stampa.Vendita.DataContabile.Year); } } } } return(numerazione.NB()); }
private void CreaTabellaIncassi(Session session) { ClassNumerazione numerazione = new ClassNumerazione(); XPCollection <Vendita> vendite = new XPCollection <Vendita>(session); vendite.Criteria = new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] { new BinaryOperator("Struttura.Oid", _Struttura.Oid), new BinaryOperator("DataContabile", _Inizio, BinaryOperatorType.GreaterOrEqual), new BinaryOperator("DataContabile", _Fine, BinaryOperatorType.LessOrEqual) }); decimal posquesta = 0; decimal posaltre = 0; decimal conquesta = 0; decimal conaltre = 0; var incassi = new Dictionary <string, decimal>(); foreach (Vendita vendita in vendite) { switch (vendita.Incasso) { case EnumIncasso.Pos: foreach (RigaVenditaVariante rigaVenditaVariante in vendita.RigheVenditaVariante) { if (rigaVenditaVariante.Variante.Biglietto.Gestore == _Struttura.SoggettoEconomico) { posquesta += rigaVenditaVariante.PrezzoTotale; } else { posaltre += rigaVenditaVariante.PrezzoTotale; if (!incassi.ContainsKey(rigaVenditaVariante.Variante.Biglietto.Gestore.RagioneSociale)) { incassi[rigaVenditaVariante.Variante.Biglietto.Gestore.RagioneSociale] = 0; } incassi[rigaVenditaVariante.Variante.Biglietto.Gestore.RagioneSociale] += rigaVenditaVariante.PrezzoTotale; } } break; case EnumIncasso.Internet: case EnumIncasso.Contanti: foreach (RigaVenditaVariante rigaVenditaVariante in vendita.RigheVenditaVariante) { if (rigaVenditaVariante.Variante.Biglietto.Gestore == _Struttura.SoggettoEconomico) { conquesta += rigaVenditaVariante.PrezzoTotale; } else { conaltre += rigaVenditaVariante.PrezzoTotale; if (!incassi.ContainsKey(rigaVenditaVariante.Variante.Biglietto.Gestore.RagioneSociale)) { incassi[rigaVenditaVariante.Variante.Biglietto.Gestore.RagioneSociale] = 0; } incassi[rigaVenditaVariante.Variante.Biglietto.Gestore.RagioneSociale] += rigaVenditaVariante.PrezzoTotale; } } break; default: throw new Exception(String.Format("Caso non previsto: {0}", vendita.Incasso)); } foreach (Stampa stampa in vendita.Stampe) { numerazione.Add(stampa.Vendita.Postazione, stampa.NumeroProgressivo, stampa.Vendita.DataContabile.Year); } } XRTableRow lastrow = this.xrTableIncassi.Rows[this.xrTableIncassi.Rows.Count - 1]; lastrow.Cells[0].Text = string.Format("{0:MMMM}", _Inizio).ToUpper(); lastrow.Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; lastrow.Cells[0].Font = xrLabelTitoloTabVersamenti.Font; lastrow.Cells[0].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); lastrow.Cells[1].Text = (conquesta + posquesta).ToString("c"); lastrow.Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; lastrow.Cells[1].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); //lastrow.Cells[2].Text = (posquesta + posaltre).ToString("c"); // lastrow.Cells[2].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; // lastrow.Cells[2].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); //lastrow.Cells[3].Text = (conquesta - posaltre).ToString("c"); // lastrow.Cells[3].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; // lastrow.Cells[3].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); lastrow = this.xrTableAltriEnti.Rows[0]; foreach (var item in incassi) { lastrow = this.xrTableAltriEnti.InsertRowBelow(lastrow); lastrow.Cells[0].Text = item.Key; lastrow.Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; lastrow.Cells[0].Font = xrLabelTitoloTabVersamenti.Font; lastrow.Cells[0].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); lastrow.Cells[1].Text = item.Value.ToString("c"); lastrow.Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; lastrow.Cells[1].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); } lastrow = this.xrTableAltriEnti.InsertRowBelow(lastrow); lastrow.Cells[0].Text = "TOTALI"; lastrow.Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; lastrow.Cells[0].Font = xrLabelTitoloTabVersamenti.Font; lastrow.Cells[0].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); lastrow.Cells[1].Text = (conaltre + posaltre).ToString("c"); lastrow.Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; lastrow.Cells[1].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); lastrow = this.xrTableTotale.Rows[0]; lastrow.Cells[0].Text = "TOTALE INCASSI"; lastrow.Cells[0].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; lastrow.Cells[0].Font = xrLabelTitoloTabVersamenti.Font; lastrow.Cells[0].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); lastrow.Cells[1].Text = (conquesta + conaltre + posquesta + posaltre).ToString("c"); lastrow.Cells[1].TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; lastrow.Cells[1].Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 5, 5); foreach (var item in numerazione.Elenco) { this.xrLabelBiglietti.Text += string.Format("{0}: {1} biglietti: {2}", item.Key.Nome, numerazione.NB(item.Key), numerazione.EB(item.Key)) + Environment.NewLine; } if (totalone != (conquesta + conaltre + posquesta + posaltre)) { this.xrLabelErr.Visible = true; } }