private void Cumulativo(Vendita item, RigaVenditaVariante rigaVenditaVariante, List <Struttura> strutture) { if (item.Struttura == _Struttura) { Cumulativi dato = _Dati.CumulativiCerca(rigaVenditaVariante.Variante); if (rigaVenditaVariante.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && rigaVenditaVariante.Variante.PrezzoAttuale.PrezzoRidotto == null) { } else { dato.Pax += rigaVenditaVariante.Quantita; _Dati.TotalePax += rigaVenditaVariante.Quantita; } if (item.Incasso == EnumIncasso.Contanti) { dato.TotaleContanti += rigaVenditaVariante.PrezzoTotale; _Dati.TotaleContanti += rigaVenditaVariante.PrezzoTotale; } else { dato.TotalePos += rigaVenditaVariante.PrezzoTotale; _Dati.TotalePos += rigaVenditaVariante.PrezzoTotale; } } else { // non interessa if (strutture.Contains(_Struttura)) { // mi interessa } } }
private void SoloAltre(Vendita item, RigaVenditaVariante rigaVenditaVariante) { if (item.Struttura == _Struttura) { VendutiPerTerzi dato = _Dati.PerAltriCerca(rigaVenditaVariante.Variante.Biglietto.Percorso.Ingressi[0].Struttura); dato.Pax += rigaVenditaVariante.Quantita; _Dati.TotalePax += rigaVenditaVariante.Quantita; if (item.Incasso == EnumIncasso.Contanti) { dato.TotaleContanti += rigaVenditaVariante.PrezzoTotale; _Dati.TotaleContanti += rigaVenditaVariante.PrezzoTotale; } else { dato.TotalePos += rigaVenditaVariante.PrezzoTotale; _Dati.TotalePos += rigaVenditaVariante.PrezzoTotale; } } else { // non interessa } }
private void SoloQuesta(Vendita item, RigaVenditaVariante rigaVenditaVariante) { if (item.Struttura == _Struttura) { BigliettiInProprio dato = _Dati.InProprioCerca(rigaVenditaVariante.Variante); dato.Pax += rigaVenditaVariante.Quantita; _Dati.TotalePax += rigaVenditaVariante.Quantita; if (item.Incasso == EnumIncasso.Contanti) { dato.TotaleContanti += rigaVenditaVariante.PrezzoTotale; _Dati.TotaleContanti += rigaVenditaVariante.PrezzoTotale; } else { dato.TotalePos += rigaVenditaVariante.PrezzoTotale; _Dati.TotalePos += rigaVenditaVariante.PrezzoTotale; } } else { // non interessa } }
private void AddToList(RigaVenditaVariante riga) { foreach (Ingresso ingresso in riga.Variante.Biglietto.Percorso.Ingressi) { //if (ingresso.SoggettoEconomico == _Soggetto) if (_Ingressi.Contains(ingresso)) { DatiReport01b target = null; foreach (DatiReport01b dataReport01 in _List) { if (dataReport01.Museo == ingresso.Descrizione) { target = dataReport01; } } if (target == null) { target = new DatiReport01b(); target.Museo = ingresso.Descrizione; target.Ordine = ingresso.OrdineReport01; _List.Add(target); } AddToList(target, ingresso, riga); } } }
private void barButtonItemClear_ItemClick(object sender, ItemClickEventArgs e) { RigaVenditaVariante riga = this.gridViewRigheStampa.GetFocusedRow() as RigaVenditaVariante; if (riga != null) { riga.CodiceSconto = null; riga.Save(); this.unitOfWork1.CommitChanges(); } }
private void SoloAltre(Vendita item, RigaVenditaVariante rigaVenditaVariante) { if (item.Struttura == _Struttura) { // non interessa } else { // non interessa } }
private void AddToList(RigaVenditaVariante riga) { DatiReport07 target = null; foreach (DatiReport07 dataReport01 in _List) { if (dataReport01.Museo == riga.Vendita.Struttura.Descrizione) { target = dataReport01; } } if (target == null) { target = new DatiReport07(); target.Museo = riga.Vendita.Struttura.Descrizione; target.Ordine = riga.Vendita.Struttura.Descrizione; _List.Add(target); } AddToList(target, riga.Vendita.Struttura, riga); /* * foreach (Ingresso ingresso in riga.Variante.Biglietto.Percorso.Ingressi) * { * //if (ingresso.SoggettoEconomico == _Soggetto) * if (_Ingressi.Contains(ingresso)) * { * DatiReport07 target = null; * foreach (DatiReport07 dataReport01 in _List) * { * if (dataReport01.Museo == ingresso.Descrizione) * target = dataReport01; * } * * if (target == null) * { * target = new DatiReport07(); * target.Museo = ingresso.Descrizione; * target.Ordine = ingresso.OrdineReport01; * _List.Add(target); * } * * AddToList(target, ingresso, riga); * } * } * */ }
private void gridViewRigheStampa_DoubleClick(object sender, EventArgs e) { RigaVenditaVariante riga = this.gridViewRigheStampa.GetFocusedRow() as RigaVenditaVariante; if (riga != null) { Vendita vendita = riga.Vendita; if (vendita != null) { XtraFormDettaglioVendita dettaglio = new XtraFormDettaglioVendita(); dettaglio.Init(vendita); if (dettaglio.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { //this.xpServerCollectionSourceVendite.Reload(); this.xpCollectionRigaVenditaVariante.Reload(); } } } }
private void Cumulativo(Vendita item, RigaVenditaVariante rigaVenditaVariante, List <Struttura> strutture) { if (item.Struttura == _Struttura) { // non interessa } else { if (strutture.Contains(_Struttura)) { Cumulativi dato = _Dati.CumulativiCerca(rigaVenditaVariante.Variante, item.Struttura); if (rigaVenditaVariante.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && !rigaVenditaVariante.Variante.MyFeComune()) { } else { dato.Pax += rigaVenditaVariante.Quantita; _Dati.TotalePax += rigaVenditaVariante.Quantita; } //dato.Pax += rigaVenditaVariante.Quantita; //_Dati.TotalePax += rigaVenditaVariante.Quantita; if (item.Incasso == EnumIncasso.Contanti) { dato.TotaleContanti += rigaVenditaVariante.PrezzoTotale; _Dati.TotaleContanti += rigaVenditaVariante.PrezzoTotale; } else { dato.TotalePos += rigaVenditaVariante.PrezzoTotale; _Dati.TotalePos += rigaVenditaVariante.PrezzoTotale; } } } }
private bool CreaVendita() { using (UnitOfWork uow = new UnitOfWork()) { Vendita vendita = new Vendita(uow); vendita.Incasso = this.checkEditPos.Checked ? EnumIncasso.Pos : EnumIncasso.Contanti; vendita.CodiceLeggibile = Vendita.NuovoCodiceVendita(); vendita.CodicePrevent = ""; vendita.DataContabile = DateTime.Now.Date; vendita.DataOraStampa = DateTime.Now; vendita.Descrizione = ""; vendita.Utente = uow.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); vendita.Postazione = uow.GetObjectByKey <Postazione>(Program.Postazione.Oid); vendita.Struttura = uow.GetObjectByKey <Struttura>(Program.Postazione.Struttura.Oid); vendita.TotalePersone = ElencoCard.Count; vendita.TotaleImporto = CalcolaTotale(ElencoCard); vendita.Save(); //Percorso per = uow.FindObject<Percorso>(new BinaryOperator("Descrizione", "MyFE")); for (int i = 0; i < ElencoCard.Count; i++) { Matricola card = uow.GetObjectByKey <Matricola>(ElencoCard[i].Oid); Titolo unife = uow.FindObject <Titolo>(new BinaryOperator("Attributi", "-UNIFE-")); //Variante v1 = per.GetVarianteMyFe("Com", "C", card.TipologiaCard); //Variante v2 = per.GetVarianteMyFe("Pin", "C", card.TipologiaCard); if (unife == null) { XtraMessageBox.Show("Titolo per -UNIFE- mancante", "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (card == null) { XtraMessageBox.Show("Tessera unife mancante", "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (card.ValidaDal > DateTime.Today) { XtraMessageBox.Show("Tessera " + card.Codice + " valida dal " + card.ValidaDal.ToString("d"), "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (card.ValidaAl < DateTime.Today) { XtraMessageBox.Show("Tessera " + card.Codice + " valida fino al " + card.ValidaAl.ToString("d"), "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } decimal totale = 0; // = v1.Prezzo + v2.Prezzo; //List<Ingresso> ingressi = new List<Ingresso>(); //ingressi.AddRange(per.Ingressi); foreach (Ingresso ingresso in ElencoIngressi) { Variante v1 = FindVarianteSingoleOmaggio(uow, ingresso); if (v1 == null) { XtraMessageBox.Show("Per ingresso " + ingresso.Descrizione + " non esiste una variante adeguata.", "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } RigaVenditaVariante rvv1 = new RigaVenditaVariante(uow); rvv1.PrezzoTotale = v1.Prezzo; rvv1.PrezzoUnitario = v1.Prezzo; rvv1.Profilo = i; rvv1.Quantita = 1; rvv1.Variante = v1; rvv1.Vendita = vendita; rvv1.Titolo = unife; //rvv1.Card = card; rvv1.Matricola = card.Codice; rvv1.Save(); totale += v1.Prezzo; } //RigaVenditaVariante rvv2 = new RigaVenditaVariante(uow); //rvv2.PrezzoTotale = v2.Prezzo; //rvv2.PrezzoUnitario = v2.Prezzo; //rvv2.Profilo = i; //rvv2.Quantita = 1; //rvv2.Variante = v2; //rvv2.Vendita = vendita; //rvv2.Card = card; //rvv2.Save(); DateTime inizioVal = DateTime.Now.Date; DateTime fineVal = DateTime.Now.Date; Stampa stampa = new Stampa(uow); stampa.Vendita = vendita; stampa.InizioValidita = inizioVal; stampa.FineValidita = fineVal; stampa.Quantita = 1; stampa.ImportoTotale = totale; stampa.StatoStampa = i; stampa.TipoStampa = EnumTipoStampa.Standard; //stampa.Card = card; stampa.Matricola = card.Codice; stampa.Save(); stampa.GeneraBarCode(Program.Postazione, ElencoIngressi); //card.Status = EnumStatoCard.Emessa; //card.Stampa = stampa; ////if (_Albergo) //// card.Albergo = uow.GetObjectByKey<AnagraficaCard>((this.lookUpEditAlbergo.EditValue as AnagraficaCard).Oid); //card.Save(); Stampa doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(Program.Postazione, ElencoIngressi); doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(Program.Postazione, ElencoIngressi); doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(Program.Postazione, ElencoIngressi); } } } stampa.Save(); foreach (Ingresso ingresso in ElencoIngressi) { RigaStampaIngresso rigaingresso = new RigaStampaIngresso(uow); rigaingresso.Ingresso = uow.GetObjectByKey <Ingresso>(ingresso.Oid); rigaingresso.Stampa = stampa; rigaingresso.TotalePersone = 1; rigaingresso.Save(); } } // registra ingressi per QUESTA postazione foreach (Stampa item1 in vendita.Stampe) { foreach (RigaStampaIngresso item2 in item1.RigheStampaIngresso) { if (VarcoPostazione(item2)) { Entrata entrata = new Entrata(uow); entrata.DataOraEntrata = vendita.DataOraStampa; entrata.Quantita = item2.TotalePersone; entrata.RigaStampaIngresso = item2; entrata.Save(); item2.TotaleIngressi = item2.TotalePersone; item2.Save(); } } } uow.CommitChanges(); m_Vendita = this._UnitOfWork.GetObjectByKey <Vendita>(vendita.Oid); } return(true); }
private void simpleButtonOk_Click(object sender, EventArgs e) { Variante variante = this.lookUpEditVariante.EditValue as Variante; Titolo titolo = this.lookUpEditTitolo.EditValue as Titolo; Postazione postazione = this.lookUpEdit1.EditValue as Postazione; int quantita = (int)this.spinEditQta.Value; DateTime dataVendita = this.dateEditData.DateTime; if (dataVendita > DateEnd || dataVendita < DateStart) { this.dateEditData.ErrorText = string.Format("Deve essere compresa fra {0:g} e {1:g}", DateStart, DateEnd); return; } if (dataVendita > DateTime.Today) { this.dateEditData.ErrorText = string.Format("Non può essere nel futuro ..."); return; } if ((DateTime.Today - dataVendita).TotalDays > 240) { this.dateEditData.ErrorText = string.Format("Non può essere oltre 8 mesi indietro"); return; } if (dataVendita.Year <= 2013) { this.dateEditData.ErrorText = string.Format("Non può essere nel 2013 o prima"); return; } if (variante != null && postazione != null) { if (!variante.Biglietto.IsAttrib(Biglietto.STR_BIGLIETTO_STORICO)) { if (dataVendita.Date > new DateTime(2011, 6, 1)) { XtraMessageBox.Show("Data deve essere precedente a giugno 2011.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } if (variante.Biglietto.Percorso.Ingressi.Count > 1) { XtraMessageBox.Show("Non biglietti cumulativi", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { Ingresso ingresso = variante.Biglietto.Percorso.Ingressi[0]; Vendita vendita = new Vendita(this.unitOfWork1); vendita.DataContabile = dataVendita.Date; vendita.DataOraStampa = dataVendita.Add(this.timeEditOra.Time.TimeOfDay); vendita.Incasso = (EnumIncasso)this.imageComboBoxEditIncasso.EditValue; vendita.Postazione = postazione; vendita.Struttura = ingresso.Struttura; vendita.TotaleImporto = variante.PrezzoAttuale.Prezzo * quantita; vendita.TotalePersone = quantita; vendita.Utente = this.unitOfWork1.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); vendita.CodiceLeggibile = Vendita.NuovoCodiceVendita(); vendita.Save(); RigaVenditaVariante riga = new RigaVenditaVariante(this.unitOfWork1); riga.PrezzoTotale = vendita.TotaleImporto; riga.PrezzoUnitario = variante.PrezzoAttuale.Prezzo; riga.Quantita = quantita; riga.Titolo = titolo; riga.Variante = variante; riga.Vendita = vendita; riga.Save(); Stampa stampa = new Stampa(this.unitOfWork1); stampa.FineValidita = vendita.DataContabile; stampa.InizioValidita = vendita.DataContabile; stampa.ImportoTotale = vendita.TotaleImporto; stampa.Quantita = quantita; stampa.Vendita = vendita; stampa.Save(); stampa.GeneraBarCode(Program.Postazione, new List <Ingresso>()); stampa.Save(); RigaStampaIngresso rigastampa = new RigaStampaIngresso(this.unitOfWork1); rigastampa.Ingresso = ingresso; rigastampa.Stampa = stampa; rigastampa.TotaleIngressi = quantita; rigastampa.TotalePersone = quantita; rigastampa.Save(); Entrata entrata = new Entrata(this.unitOfWork1); entrata.DataOraEntrata = vendita.DataOraStampa; entrata.Quantita = quantita; entrata.RigaStampaIngresso = rigastampa; entrata.Save(); this.unitOfWork1.CommitChanges(); DialogResult = System.Windows.Forms.DialogResult.OK; } } else { XtraMessageBox.Show("Selezionare Variante e Postazione", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void AddToList(Ingresso ingresso, int qta, DateTime dateTime, EnumTipologiaEconomica enumTipologiaEconomica, RigaVenditaVariante riga) { DatiReport04 target = null; foreach (DatiReport04 dato in _List) { if (dato.Museo == ingresso.Descrizione) { target = dato; } } if (target == null) { target = new DatiReport04(); target.Museo = ingresso.Descrizione; target.Tipo = ingresso.DescrizioneTipo; target.Ordine = ingresso.OrdineReport01; _List.Add(target); } if (riga == null) { target.CalcolaTotale(); return; } // filtro in base alle giornate di apertura //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)) // return; if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura) { return; } if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6) { return; } if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))) { return; } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null) { return; } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto) { return; } if (dateTime.Year == _AnnoInCorso) { target.VisAnno1 += qta; } else if (dateTime.Year == _AnnoInCorso - 1) { target.VisAnno2 += qta; } else if (dateTime.Year == _AnnoInCorso - 2) { target.VisAnno3 += qta; } else if (dateTime.Year == _AnnoInCorso - 3) { target.VisAnno4 += qta; } else if (dateTime.Year == _AnnoInCorso - 4) { target.VisAnno5 += qta; } target.CalcolaTotale(); }
private void AddToList(RigaVenditaVariante riga, Ingresso ingresso) { int fascia = riga.Vendita.DataOraStampa.Hour; DatiReport01 target = null; foreach (DatiReport01 dataReport01 in _List) { if (dataReport01.InizioFasciaOraria == fascia) { target = dataReport01; } } if (target == null) { target = new DatiReport01(); target.Museo = ingresso.Descrizione; target.InizioFasciaOraria = fascia; _List.Add(target); } // filtro in base alle giornate di apertura //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)) // return; if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura) { return; } if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6) { return; } if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))) { return; } // esclusione doppia card provincia per split prezzo if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null) { return; } // esclusione di tutte le card ridotte (gli omaggio sono del museo di storia naturale e vanno conteggiati) if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto) { return; } if (riga.Vendita.Struttura.Oid == ingresso.Struttura.Oid) { // emesso da questa struttura switch (riga.Variante.TipologiaTre) { case EnumTipologiaTre.Standard: switch (riga.Variante.Biglietto.Tipologia) { case EnumTipologiaBiglietto.Museo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoStandardIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoStandardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Cumulativo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoCumulativoIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoCumulativoRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Card: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoCardIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoCardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.Biglietto.Tipologia={0}", riga.Variante.Biglietto.Tipologia)); } break; case EnumTipologiaTre.Bigliettone: target.MuseoBigliettone += riga.Quantita; break; case EnumTipologiaTre.OmaggioGruppo: target.MuseoOmaggio += riga.Quantita; break; case EnumTipologiaTre.CardMyFE: target.MuseoMyFE += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaTre={0}", riga.Variante.TipologiaTre)); } } else { // altre strutture switch (riga.Variante.TipologiaTre) { case EnumTipologiaTre.Standard: switch (riga.Variante.Biglietto.Tipologia) { case EnumTipologiaBiglietto.Museo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.AltriStandardIntero += riga.Quantita; //riga.Vendita.Stampe[0].StatoStampa == riga.Profilo; //riga.Vendita.Stampe[0].RigheStampaIngresso[0].Entrate break; case EnumTipologiaDue.Ridotto: target.AltriStandardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.AltriOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Cumulativo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.AltriCumulativoIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.AltriCumulativoRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.AltriOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Card: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.AltriCardIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.AltriCardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.AltriOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.Biglietto.Tipologia={0}", riga.Variante.Biglietto.Tipologia)); } break; case EnumTipologiaTre.Bigliettone: target.AltriBigliettone += riga.Quantita; break; case EnumTipologiaTre.OmaggioGruppo: target.AltriOmaggio += riga.Quantita; break; case EnumTipologiaTre.CardMyFE: target.AltriMyFE += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaTre={0}", riga.Variante.TipologiaTre)); } } target.CalcolaTotali(); }
private static void CreaVendita(MyFeData myFeData) { //var aprile = new DateTime(2016, 4, 1); //if (myFeData.InseritaIlDateTime.Date >= aprile) return; using (UnitOfWork uow = new UnitOfWork()) { Utente utente = uow.FindObject <Utente>(new BinaryOperator("AdUsername", "Internet")); Postazione postazione = uow.FindObject <Postazione>(new BinaryOperator("CodiceUnivoco", 1)); if (utente == null) { throw new Exception("Manca utente INTERNET"); } if (postazione == null) { throw new Exception("Manca postazione INTERNET, CodiceUnivoco==1"); } var obj = uow.FindObject <Card>(new BinaryOperator("Codice", myFeData.CodiceTessera)); if (obj != null) { throw new Exception("VENDITA: Esiste già card con codice: " + myFeData.CodiceTessera); } TransazioneWeb trans = new TransazioneWeb(uow); trans.PuntoVendita = myFeData.PuntoVendita; trans.Cliente = myFeData.Cliente; trans.EmailCliente = myFeData.EmailCliente; trans.IDCliente = myFeData.IDCliente; trans.Transazione = myFeData.Transazione; trans.InseritaIl = myFeData.InseritaIl; trans.TitolareCarta = myFeData.TitolareCarta; trans.EmailTitolare = myFeData.EmailTitolare; trans.Inizio = myFeData.Inizio; trans.Fine = myFeData.Fine; trans.Giorni = myFeData.Giorni; trans.Prodotto = myFeData.Prodotto; trans.CodiceOperazione = myFeData.CodiceOperazione; trans.CodiceTessera = myFeData.CodiceTessera; trans.TipoOperazione = myFeData.TipoOperazione; trans.Quantita = myFeData.Quantita; trans.InseritaIlDateTime = myFeData.InseritaIlDateTime; trans.InizioDateTime = myFeData.InizioDateTime; trans.FineDateTime = myFeData.FineDateTime; trans.Save(); Card card = new Card(uow); card.Codice = myFeData.CodiceTessera; card.AssegnataIl = myFeData.InseritaIlDateTime; card.AssegnataStruttura = postazione.Struttura; card.AssegnataUtente = utente; card.Status = EnumStatoCard.Emessa; card.Email = myFeData.EmailTitolare; card.Cliente = myFeData.Cliente; card.TitolareCarta = myFeData.TitolareCarta; card.CodiceOperazione = myFeData.CodiceOperazione; card.Transazione = myFeData.Transazione; card.VendutaOnline = true; card.EmessoBiglietto = false; switch (myFeData.Giorni) { case "2": card.TipologiaCard = EnumTipologiaCard.Card2Giorni; break; case "3": card.TipologiaCard = EnumTipologiaCard.Card3Giorni; break; case "6": card.TipologiaCard = EnumTipologiaCard.Card6Giorni; break; } card.Save(); Vendita vendita = new Vendita(uow); vendita.Incasso = EnumIncasso.Internet; vendita.CodiceLeggibile = Vendita.NuovoCodiceVendita(); vendita.CodicePrevent = ""; vendita.DataContabile = myFeData.InseritaIlDateTime.Date; vendita.DataOraStampa = myFeData.InseritaIlDateTime; vendita.Descrizione = myFeData.TitolareCarta; vendita.Utente = utente; vendita.Postazione = postazione; vendita.Struttura = postazione.Struttura; vendita.TotalePersone = 1; vendita.TotaleImporto = card.Importo; vendita.Save(); Percorso per = uow.FindObject <Percorso>(new BinaryOperator("Descrizione", "MyFE")); Variante v1 = per.GetVarianteMyFe("Com", "C", card.TipologiaCard); Variante v2 = per.GetVarianteMyFe("Pin", "C", card.TipologiaCard); if (v1 == null || v2 == null) //if (v1 == null) { throw new Exception("Manca tariffa"); //XtraMessageBox.Show("Tariffa per le card mancante", "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); //return false; } decimal totale = v1.Prezzo + (v2 != null ? v2.Prezzo : 0); List <Ingresso> ingressi = new List <Ingresso>(); ingressi.AddRange(per.Ingressi); RigaVenditaVariante rvv1 = new RigaVenditaVariante(uow); rvv1.PrezzoTotale = v1.Prezzo; rvv1.PrezzoUnitario = v1.Prezzo; rvv1.Profilo = 0; rvv1.Quantita = 1; rvv1.Variante = v1; rvv1.Vendita = vendita; rvv1.Card = card; rvv1.Save(); if (v2 != null) { RigaVenditaVariante rvv2 = new RigaVenditaVariante(uow); rvv2.PrezzoTotale = v2.Prezzo; rvv2.PrezzoUnitario = v2.Prezzo; rvv2.Profilo = 0; rvv2.Quantita = 1; rvv2.Variante = v2; rvv2.Vendita = vendita; rvv2.Card = card; rvv2.Save(); } DateTime inizioVal = myFeData.InizioDateTime.Date; DateTime fineVal = inizioVal.AddDays(card.Giorni() - 1); Stampa stampa = new Stampa(uow); stampa.Vendita = vendita; stampa.InizioValidita = inizioVal; stampa.FineValidita = fineVal; stampa.Quantita = 1; stampa.ImportoTotale = totale; stampa.StatoStampa = 0; stampa.TipoStampa = EnumTipoStampa.CardInternet; stampa.Card = card; stampa.Save(); stampa.GeneraBarCode(postazione, ingressi); card.Status = EnumStatoCard.Emessa; card.Stampa = stampa; card.Save(); Stampa doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(postazione, ingressi); doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(postazione, ingressi); doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(postazione, ingressi); } } } stampa.Save(); foreach (Ingresso ingresso in per.Ingressi) { RigaStampaIngresso rigaingresso = new RigaStampaIngresso(uow); rigaingresso.Ingresso = uow.GetObjectByKey <Ingresso>(ingresso.Oid); rigaingresso.Stampa = stampa; rigaingresso.TotalePersone = 1; rigaingresso.Save(); } uow.CommitChanges(); } }
private void AddToList(Ingresso ingresso, int qta, DateTime dateTime, EnumTipologiaEconomica enumTipologiaEconomica, RigaVenditaVariante riga) { DatiReport03b target = null; foreach (DatiReport03b datiReport03b in _List) { if (datiReport03b.Museo == ingresso.Descrizione) { target = datiReport03b; } } if (target == null) { target = new DatiReport03b(); target.Museo = ingresso.Descrizione; target.Tipo = ingresso.DescrizioneTipo; target.Ordine = ingresso.OrdineReport01; target.Tipologia = ingresso.Tipologia; _List.Add(target); } if (riga == null) { target.CalcolaTotale(); return; } // filtro in base alle giornate di apertura //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)) // return; if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura) { return; } if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6) { return; } if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))) { return; } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null) { return; } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto) { return; } if (enumTipologiaEconomica == EnumTipologiaEconomica.Pagante) { switch (dateTime.Month) { case 1: target.M01Pag += qta; break; case 2: target.M02Pag += qta; break; case 3: target.M03Pag += qta; break; case 4: target.M04Pag += qta; break; case 5: target.M05Pag += qta; break; case 6: target.M06Pag += qta; break; case 7: target.M07Pag += qta; break; case 8: target.M08Pag += qta; break; case 9: target.M09Pag += qta; break; case 10: target.M10Pag += qta; break; case 11: target.M11Pag += qta; break; case 12: target.M12Pag += qta; break; default: throw new Exception("Mese non previsto"); } } else if (enumTipologiaEconomica == EnumTipologiaEconomica.Gratuito) { switch (dateTime.Month) { case 1: target.M01NPag += qta; break; case 2: target.M02NPag += qta; break; case 3: target.M03NPag += qta; break; case 4: target.M04NPag += qta; break; case 5: target.M05NPag += qta; break; case 6: target.M06NPag += qta; break; case 7: target.M07NPag += qta; break; case 8: target.M08NPag += qta; break; case 9: target.M09NPag += qta; break; case 10: target.M10NPag += qta; break; case 11: target.M11NPag += qta; break; case 12: target.M12NPag += qta; break; default: throw new Exception("Mese non previsto"); } } else { throw new Exception("EnumTipologiaEconomica non previsto: " + enumTipologiaEconomica); } target.CalcolaTotale(); }
private bool CreaVendita() { bool result = false; using (UnitOfWork uow = new UnitOfWork()) { if (!m_ImponiData) { m_DataImposta = DateTime.Now; } bool conPrenotazione = false; DateTime inizioVal = m_DataImposta.Date; DateTime fineVal = m_DataImposta.Date; if (m_Prenotazione.GestoreProfili.Bigliettone() || m_Prenotazione.GestoreProfili.Cumulativo()) { fineVal = inizioVal.AddDays(15); } if (m_Prenotazione.GestoreProfili.CardMusei()) { fineVal = new DateTime(inizioVal.Year, 12, 31); } if (m_Prenotazione.GestoreProfili.NumeroCardMyFE() > 0) { fineVal = inizioVal.AddDays(Card.GiorniCard(m_Prenotazione.GestoreProfili.TipologiaMyFe) - 1); } if (m_Prenotazione.ConPrenotazione()) { conPrenotazione = true; inizioVal = m_Prenotazione.InizioPrenotazioni(inizioVal); fineVal = m_Prenotazione.FinePrenotazioni(fineVal); } Vendita vendita = new Vendita(uow); vendita.Incasso = this.checkEditPos.Checked ? EnumIncasso.Pos : EnumIncasso.Contanti; vendita.CodiceLeggibile = m_Prenotazione.CodiceVendita; vendita.CodicePrevent = m_Prenotazione.PrenotazionePrevent; vendita.Descrizione = m_Prenotazione.RiferimentoVendita; if (m_Prevendita) { vendita.Descrizione = "PREVENDITA"; vendita.DataContabile = DateTime.Today; vendita.DataOraStampa = DateTime.Now; } else { vendita.DataContabile = m_DataImposta.Date; vendita.DataOraStampa = m_DataImposta; } vendita.Provenienza = _provenienza != null?uow.GetObjectByKey <Provenienza>(_provenienza.Oid) : null; vendita.Utente = uow.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); vendita.Postazione = uow.GetObjectByKey <Postazione>(Program.Postazione.Oid); vendita.Struttura = uow.GetObjectByKey <Struttura>(Program.Postazione.Struttura.Oid); vendita.TotalePersone = m_Prenotazione.GestoreProfili.TotalePersone(); vendita.TotaleImporto = m_Prenotazione.GestoreProfili.TotaleImporto(); vendita.Save(); #region PRENOTAZIONE prevent.prenotazione.Parametri parametri = new prevent.prenotazione.Parametri(); //List<prevent.prenotazione.ParametriRigaBiglietti> elencorighe = new List<prevent.prenotazione.ParametriRigaBiglietti>(); List <prevent.prenotazione.ParametriRigaBiglietti> elencorigheuniche = new List <prevent.prenotazione.ParametriRigaBiglietti>(); if (conPrenotazione) { parametri.CodiceTransWinTicket = vendita.CodiceLeggibile; parametri.Denominazione = vendita.Descrizione; parametri.PaxTotali = m_Prenotazione.GestoreProfili.TotalePersone().ToString(); parametri.TipoGS = GestoreCalendario.TipoGS; parametri.Scuola = GestoreCalendario.TipoScuola; parametri.RigaPercorsoVisita = new prevent.prenotazione.ParametriRigaPercorsoVisita[m_Prenotazione.NumeroTotalePrenotazioni()]; // creazione prenotazione int count = 0; foreach (PrenotazioneIngresso prenotazioneIngresso in m_Prenotazione.Prenotazioni) { foreach (SingolaPrenotazione singolaPrenotazione in prenotazioneIngresso.Prenotazioni) { Prenotazione nuovaPrenotazione = new Prenotazione(uow); nuovaPrenotazione.Vendita = vendita; //nuovaPrenotazione.RigaStampaIngresso = elencoingressi[prenotazioneIngresso.Ingresso.Oid]; //nuovaPrenotazione.AllDay = item.AllDay; //nuovaPrenotazione.AppointmentType = item.AppointmentType; //nuovaPrenotazione.Description = item.Description; nuovaPrenotazione.Disponibilita = EnumDisponibilita.Disponibile; //item.Disponibilita; nuovaPrenotazione.EndDate = singolaPrenotazione.OrarioFine; //nuovaPrenotazione.IdRichiesta = item.IdRichiesta; nuovaPrenotazione.Ingresso = uow.GetObjectByKey <Ingresso>(prenotazioneIngresso.Ingresso.Oid); //nuovaPrenotazione.Label = item.Label; //nuovaPrenotazione.Location = item.Location; nuovaPrenotazione.NumeroPersone = singolaPrenotazione.NumeroPersone; nuovaPrenotazione.StartDate = singolaPrenotazione.Orario; //nuovaPrenotazione.Status = item.Status; nuovaPrenotazione.Subject = singolaPrenotazione.Descrizione; nuovaPrenotazione.Save(); parametri.RigaPercorsoVisita[count] = new prevent.prenotazione.ParametriRigaPercorsoVisita(); parametri.RigaPercorsoVisita[count].DataVisita = nuovaPrenotazione.StartDate.Date; parametri.RigaPercorsoVisita[count].IdMostra = nuovaPrenotazione.Ingresso.CodicePrevent.ToString(); parametri.RigaPercorsoVisita[count].PaxVisita = nuovaPrenotazione.NumeroPersone.ToString(); parametri.RigaPercorsoVisita[count].OraVisita = String.Format("{0:HH}:{1:mm}:{2:ss}.{3:ffffzzz}", nuovaPrenotazione.StartDate, nuovaPrenotazione.StartDate, nuovaPrenotazione.StartDate, nuovaPrenotazione.StartDate); count++; } } } #endregion // Numerazione dei profili int profiloCount = 0; foreach (ProfiloCliente profiloCliente in m_Prenotazione.GestoreProfili.ElencoProfili) { profiloCliente.CodiceProgressivo = profiloCount++; } if (m_Prenotazione.StampaSingolaPersona) { // ho già controllato che non ci siano gruppi oppure scuole foreach (ProfiloCliente profiloCliente in m_Prenotazione.GestoreProfili.ElencoProfili) { var elencocard = profiloCliente.SoluzionePreferita.GetElencoCardMyFE(uow); List <Ingresso> elenco = profiloCliente.ElencoIngressiSoluzionePreferita(); for (int i = 0; i < profiloCliente.NumeroPersone; i++) { CreaStampa(uow, inizioVal, fineVal, vendita, 1, profiloCliente.SoluzionePreferita.ImportoUnitario, elenco, profiloCliente.CodiceProgressivo, elencocard[i]); } } } else { // DEVE esserci almeno un PROFILO gruppo OPPURE un profilo SCUOLA ProfiloCliente profiloBase = m_Prenotazione.GestoreProfili.ElencoProfili[0]; List <Ingresso> elencoBase = profiloBase.ElencoIngressiSoluzionePreferita(); bool tuttiuguali = true; foreach (ProfiloCliente profiloCliente in m_Prenotazione.GestoreProfili.ElencoProfili) { if (Diversi(elencoBase, profiloCliente.ElencoIngressiSoluzionePreferita())) { tuttiuguali = false; break; } if (!profiloCliente.SoluzionePreferita.ContieneGruppoOppureScuola()) { tuttiuguali = false; break; } } if (tuttiuguali) { // stampa UNICA per TUTTI i profili if (m_Prenotazione.GestoreProfili.ElencoProfili.Count > 1) { CreaStampa(uow, inizioVal, fineVal, vendita, vendita.TotalePersone, vendita.TotaleImporto, elencoBase, -1); } else { CreaStampa(uow, inizioVal, fineVal, vendita, vendita.TotalePersone, vendita.TotaleImporto, elencoBase, 0); } } else { // una stampa per ogni PROFILO foreach (ProfiloCliente profiloCliente in m_Prenotazione.GestoreProfili.ElencoProfili) { List <Ingresso> elenco = profiloCliente.ElencoIngressiSoluzionePreferita(); if (profiloCliente.SoluzionePreferita.ContieneGruppoOppureScuola()) { // questo profilo è un gruppo CreaStampa(uow, inizioVal, fineVal, vendita, profiloCliente.NumeroPersone, profiloCliente.ImportoTotale, elenco, profiloCliente.CodiceProgressivo); } else { // questo profilo lo tratto come singolo for (int i = 0; i < profiloCliente.NumeroPersone; i++) { CreaStampa(uow, inizioVal, fineVal, vendita, 1, profiloCliente.SoluzionePreferita.ImportoUnitario, elenco, profiloCliente.CodiceProgressivo); } } } } } // creazione righe vendita foreach (ProfiloCliente profiloCliente in m_Prenotazione.GestoreProfili.ElencoProfili) { foreach (SoluzioneIngressiItem sol in profiloCliente.SoluzionePreferita.Elenco) { if (profiloCliente.SoluzionePreferita.CardMyFE() && sol.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE) { var elencoCard = profiloCliente.SoluzionePreferita.GetElencoCardMyFE(uow); for (int i = 0; i < sol.Quantita; i++) { RigaVenditaVariante riga = new RigaVenditaVariante(uow); riga.PrezzoTotale = sol.PrezzoUnitario; riga.PrezzoUnitario = sol.PrezzoUnitario; riga.Quantita = 1; riga.Vendita = vendita; riga.Profilo = profiloCliente.CodiceProgressivo; riga.Variante = uow.GetObjectByKey <Variante>(sol.Variante.Oid); riga.CodiceSconto = null; riga.Card = elencoCard[i]; riga.Save(); CreaVenditaElencoRigheUniche(elencorigheuniche, riga); } } else { CodiceSconto cs = null; if (profiloCliente.ElencoCodiciSconto.Count > 0 && sol.Titolo != null && sol.Titolo.Bonus()) { cs = uow.GetObjectByKey <CodiceSconto>(profiloCliente.ElencoCodiciSconto[0].Oid); } RigaVenditaVariante riga = new RigaVenditaVariante(uow); riga.PrezzoTotale = sol.PrezzoTotale; riga.PrezzoUnitario = sol.PrezzoUnitario; riga.Quantita = sol.Quantita; riga.Vendita = vendita; riga.Profilo = profiloCliente.CodiceProgressivo; if (sol.Titolo != null) { riga.Titolo = uow.GetObjectByKey <Titolo>(sol.Titolo.Oid); } riga.Variante = uow.GetObjectByKey <Variante>(sol.Variante.Oid); riga.CodiceSconto = cs; riga.Save(); CreaVenditaElencoRigheUniche(elencorigheuniche, riga); } } profiloCount++; } parametri.RigaBiglietti = elencorigheuniche.ToArray(); m_Prenotazione.Vendita = vendita; // registra ingressi per QUESTA postazione foreach (Stampa item1 in vendita.Stampe) { foreach (RigaStampaIngresso item2 in item1.RigheStampaIngresso) { if (VarcoPostazione(item2)) { Entrata entrata = new Entrata(uow); entrata.DataOraEntrata = vendita.DataOraStampa; entrata.Quantita = item2.TotalePersone; entrata.RigaStampaIngresso = item2; entrata.Save(); item2.TotaleIngressi = item2.TotalePersone; item2.Save(); } } } // QUERY WEB ... per confermare prenotazione if (conPrenotazione) { if (PrenotazioneFinale.Prenota(parametri, m_Prenotazione.PreventObj)) { vendita.CodicePrevent = parametri.CodiceTransWinTicket; vendita.Save(); // Salvo tutto ... uow.CommitChanges(); result = true; } else { // errore if (PrenotazioneFinale.UltimoErrore != null) { XtraMessageBox.Show(String.Format("Errore: {0}", PrenotazioneFinale.UltimoErrore.DescrizioneErrore), "Errore: " + PrenotazioneFinale.UltimoErrore.ReturnCode, MessageBoxButtons.OK, MessageBoxIcon.Error); } else { XtraMessageBox.Show("Impossibile completare la prenotazione. Ritornare alla maschera precedente e riprovare.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { // Salvo tutto ... uow.CommitChanges(); result = true; } } return(result); }
private static void CreaVenditaElencoRigheUniche(List <prevent.prenotazione.ParametriRigaBiglietti> elencorigheuniche, RigaVenditaVariante riga) { if (!string.IsNullOrEmpty(riga.Variante.CodicePrevent)) { prevent.prenotazione.ParametriRigaBiglietti parariga = new prevent.prenotazione.ParametriRigaBiglietti(); parariga.Quantita = riga.Quantita.ToString(); parariga.IdTipoBiglietto = riga.Variante.CodicePrevent; bool found = false; foreach (prevent.prenotazione.ParametriRigaBiglietti item in elencorigheuniche) { if (item.IdTipoBiglietto == parariga.IdTipoBiglietto) { // devo fare cosi' perche' il campo Quantita e' una stringa string newqta = (int.Parse(item.Quantita) + int.Parse(parariga.Quantita)).ToString(); item.Quantita = newqta; found = true; } } if (!found) { elencorigheuniche.Add(parariga); } } }
private void AddToList(RigaVenditaVariante riga, Ingresso ingresso, int level = 0) { // filtro in base alle giornate di apertura //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)) // return; if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura) { return; } if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6) { return; } if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))) { return; } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null) { return; } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto) { return; } DatiReport02 target = null; foreach (DatiReport02 dataReport02 in _List) { if (riga.Variante.Biglietto.Tipologia == EnumTipologiaBiglietto.Museo) { if (riga.Variante.TipologiaTre == EnumTipologiaTre.Bigliettone) { if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_Bigliettone) { target = dataReport02; } } if (riga.Variante.TipologiaTre == EnumTipologiaTre.OmaggioGruppo) { if (riga.Variante.TipologiaUno == EnumTipologiaUno.Gruppo && riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio && riga.Variante.TipologiaTre == EnumTipologiaTre.OmaggioGruppo) { if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_GruppiIngressoOmaggio) { target = dataReport02; } } } if (riga.Variante.TipologiaTre == EnumTipologiaTre.Standard) { if (riga.Variante.TipologiaUno == EnumTipologiaUno.Singolo) { if (riga.Titolo == null && dataReport02.Titolo == null && dataReport02.Descrizione == STR_BigliettoIntero) { target = dataReport02; } if (riga.Titolo != null && dataReport02.Titolo == riga.Titolo && dataReport02.Tipologia == EnumTipologiaBiglietto.Museo) { target = dataReport02; } } if (riga.Variante.TipologiaUno == EnumTipologiaUno.Gruppo) { if (riga.Titolo == null) { if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_Gruppi) { target = dataReport02; } } else { if (riga.Titolo != null && dataReport02.Titolo == riga.Titolo && dataReport02.Tipologia == EnumTipologiaBiglietto.Museo) { target = dataReport02; } } } if (riga.Variante.TipologiaUno == EnumTipologiaUno.Scuola) { if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_Scuola) { target = dataReport02; } } } } if (riga.Variante.Biglietto.Tipologia == EnumTipologiaBiglietto.Cumulativo) { if (riga.Variante.TipologiaDue == EnumTipologiaDue.Intero && dataReport02.Descrizione == STR_CumulativoIntero) { target = dataReport02; } if ((riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto || riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio) && dataReport02.Descrizione == STR_CumulativoRidotto) { target = dataReport02; } //if (riga.Variante.TipologiaUno == EnumTipologiaUno.Gruppo && riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio && riga.Variante.TipologiaTre == EnumTipologiaTre.NFR) //{ // if (dataReport02.Titolo == null && dataReport02.Descrizione == STR_GruppiIngressoOmaggio) // target = dataReport02; //} } if (riga.Variante.Biglietto.Tipologia == EnumTipologiaBiglietto.Card && riga.Variante.TipologiaTre != EnumTipologiaTre.CardMyFE) { if (riga.Variante.TipologiaDue == EnumTipologiaDue.Intero && dataReport02.Descrizione == STR_CardMuseiIntero) { target = dataReport02; } if ((riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto || riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio) && dataReport02.Descrizione == STR_CardMuseiRidotto) { target = dataReport02; } } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE) { if (dataReport02.TipologiaTre == EnumTipologiaTre.CardMyFE) { target = dataReport02; } } if (target != null) { break; } } if (target == null) { //throw new Exception(String.Format("Target not found. Tipologia Variante: {0} / Biglietto: {1} / Titolo: {2}", riga.Variante.Tipologia, riga.Variante.Biglietto.Tipologia, riga.Titolo != null ? riga.Titolo.Descrizione : string.Empty)); if (riga.Titolo != null && level == 0) { AddToList(riga.Titolo, _Descrizione); AddToList(riga, ingresso, level + 1); return; } else { XtraMessageBox.Show(String.Format("Target not found. Variante: {0} / Biglietto: {1} / Titolo: {2}", riga.Variante.Tipologia, riga.Variante.Biglietto.Tipologia, riga.Titolo != null ? riga.Titolo.Descrizione : string.Empty)); return; } } if (target.TipologiaTre == EnumTipologiaTre.CardMyFE) { // card myfe sempre come intero (erano ridotto, ma Zerbinati ha optato per intero il 24/09/2014), // anche se museo di storia naturale inserisce cardmye come omaggi target.PagantiIntero += riga.Quantita; } else { switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.PagantiIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.PagantiRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.NonPaganti += riga.Quantita; break; } } target.CalcolaTotali(); }
private void AddToList(DatiReport07 target, Struttura struttura, RigaVenditaVariante riga) { // filtro in base alle giornate di apertura //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)) // return; //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura) // return; //if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6) // return; //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))) // return; if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null) { return; } // CASO SPECIALE MUSEO DI STORIA NATURALE if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Omaggio) { return; } if (riga.Variante.TipologiaTre != EnumTipologiaTre.CardMyFE) { return; } // emesso da questa struttura switch (riga.Variante.TipologiaTre) { case EnumTipologiaTre.Standard: switch (riga.Variante.Biglietto.Tipologia) { case EnumTipologiaBiglietto.Museo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoStandardIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoStandardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Cumulativo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoCumulativoIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoCumulativoRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Card: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoCardIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoCardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.Biglietto.Tipologia={0}", riga.Variante.Biglietto.Tipologia)); } break; case EnumTipologiaTre.Bigliettone: target.MuseoBigliettone += riga.Quantita; break; case EnumTipologiaTre.OmaggioGruppo: target.MuseoOmaggio += riga.Quantita; break; case EnumTipologiaTre.CardMyFE: if (riga.Variante.Descrizione.Contains("2")) { target.MuseoCardMyFE2 += riga.Quantita; } else if (riga.Variante.Descrizione.Contains("3")) { target.MuseoCardMyFE3 += riga.Quantita; } else if (riga.Variante.Descrizione.Contains("6")) { target.MuseoCardMyFE6 += riga.Quantita; } else { throw new Exception(String.Format("Caso non previsto MyFE: {0}", riga.Variante.Descrizione)); } break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaTre={0}", riga.Variante.TipologiaTre)); } target.CalcolaTotali(); }
private void AddToList(DatiReport01b target, Ingresso ingresso, RigaVenditaVariante riga) { // filtro in base alle giornate di apertura //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)) // return; if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura) { return; } if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6) { return; } if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))) { return; } // && riga.Variante.Biglietto.Tipologia == EnumTipologiaBiglietto.Museo if (riga.Vendita.Struttura.Oid == ingresso.Struttura.Oid) { // emesso da questa struttura switch (riga.Variante.TipologiaTre) { case EnumTipologiaTre.Standard: switch (riga.Variante.Biglietto.Tipologia) { case EnumTipologiaBiglietto.Museo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoStandardIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoStandardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Cumulativo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoCumulativoIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoCumulativoRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Card: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.MuseoCardIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.MuseoCardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.Biglietto.Tipologia={0}", riga.Variante.Biglietto.Tipologia)); } break; case EnumTipologiaTre.Bigliettone: target.MuseoBigliettone += riga.Quantita; break; case EnumTipologiaTre.OmaggioGruppo: target.MuseoOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaTre={0}", riga.Variante.TipologiaTre)); } } else { // altre strutture switch (riga.Variante.TipologiaTre) { case EnumTipologiaTre.Standard: switch (riga.Variante.Biglietto.Tipologia) { case EnumTipologiaBiglietto.Museo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.AltriStandardIntero += riga.Quantita; //riga.Vendita.Stampe[0].StatoStampa == riga.Profilo; //riga.Vendita.Stampe[0].RigheStampaIngresso[0].Entrate break; case EnumTipologiaDue.Ridotto: target.AltriStandardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.AltriOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Cumulativo: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.AltriCumulativoIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.AltriCumulativoRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.AltriOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; case EnumTipologiaBiglietto.Card: switch (riga.Variante.TipologiaDue) { case EnumTipologiaDue.Intero: target.AltriCardIntero += riga.Quantita; break; case EnumTipologiaDue.Ridotto: target.AltriCardRidotto += riga.Quantita; break; case EnumTipologiaDue.Omaggio: target.AltriOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaDue={0}", riga.Variante.TipologiaDue)); } break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.Biglietto.Tipologia={0}", riga.Variante.Biglietto.Tipologia)); } break; case EnumTipologiaTre.Bigliettone: target.AltriBigliettone += riga.Quantita; break; case EnumTipologiaTre.OmaggioGruppo: target.AltriOmaggio += riga.Quantita; break; default: throw new Exception(String.Format("Caso non previsto riga.Variante.TipologiaTre={0}", riga.Variante.TipologiaTre)); } } target.CalcolaTotali(); }
private void AddToList(Ingresso ingresso, int qta, DateTime dateTime, EnumTipologiaEconomica enumTipologiaEconomica, RigaVenditaVariante riga) { DatiReport06 target = null; foreach (DatiReport06 dato in _List) { if (dato.Museo == ingresso.Descrizione) { target = dato; } } if (target == null) { target = new DatiReport06(); target.Museo = ingresso.Descrizione; target.Tipo = ingresso.DescrizioneTipo; target.Ordine = ingresso.OrdineReport01; target.Tipologia = ingresso.Tipologia; _List.Add(target); } if (riga == null) { target.CalcolaTotale(); return; } // filtro in base alle giornate di apertura //if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_VERIFICA_VALIDITA) && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile)) // return; if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_NO_VENDITA_DA_ALTRI) && riga.Vendita.Struttura != ingresso.Struttura) { return; } if (riga.Vendita.Struttura != ingresso.Struttura && riga.Vendita.DataContabile.Year <= 2011 && riga.Vendita.DataContabile.Month < 6) { return; } if (ingresso.IsAttrib(EventoParticolare.STR_INGRESSI_MOD_TERREMOTO_1) && (riga.Vendita.DataContabile > EventoParticolare.EQDataEvento && riga.Vendita.DataContabile.Year < 2015 && !_Aperture.Valido(ingresso.Oid, riga.Vendita.DataContabile))) { return; } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto && riga.Variante.PrezzoAttuale.PrezzoRidotto == null) { return; } if (riga.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE && riga.Variante.TipologiaDue == EnumTipologiaDue.Ridotto) { return; } int mese = dateTime.Month; int anno = dateTime.Year; if (anno == _AnnoInCorso) { switch (mese) { case 1: target.Gennaio += qta; break; case 2: target.Febbraio += qta; break; case 3: target.Marzo += qta; break; case 4: target.Aprile += qta; break; case 5: target.Maggio += qta; break; case 6: target.Giugno += qta; break; case 7: target.Luglio += qta; break; case 8: target.Agosto += qta; break; case 9: target.Settembre += qta; break; case 10: target.Ottobre += qta; break; case 11: target.Novembre += qta; break; case 12: target.Dicembre += qta; break; default: throw new Exception("Mese non previsto"); } } else if (anno == _AnnoInCorso - 1) { target.AnnoMeno1 += qta; } else if (anno == _AnnoInCorso - 2) { target.AnnoMeno2 += qta; } else { throw new Exception("Anno non valido"); } target.CalcolaTotale(); }
private bool CreaVendita() { using (UnitOfWork uow = new UnitOfWork()) { Vendita vendita = new Vendita(uow); vendita.Incasso = this.checkEditPos.Checked ? EnumIncasso.Pos : EnumIncasso.Contanti; vendita.CodiceLeggibile = Vendita.NuovoCodiceVendita(); vendita.CodicePrevent = ""; vendita.DataContabile = DateTime.Now.Date; vendita.DataOraStampa = DateTime.Now; vendita.Descrizione = ""; vendita.Utente = uow.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); vendita.Postazione = uow.GetObjectByKey <Postazione>(Program.Postazione.Oid); vendita.Struttura = uow.GetObjectByKey <Struttura>(Program.Postazione.Struttura.Oid); vendita.TotalePersone = ElencoCard.Count; vendita.TotaleImporto = CalcolaTotale(ElencoCard); vendita.Save(); Percorso per = uow.FindObject <Percorso>(new BinaryOperator("Descrizione", "MyFE")); for (int i = 0; i < ElencoCard.Count; i++) { Card card = uow.GetObjectByKey <Card>(ElencoCard[i].Oid); Variante v1 = per.GetVarianteMyFe("Com", "C", card.TipologiaCard); Variante v2 = per.GetVarianteMyFe("Pin", "C", card.TipologiaCard); if (v1 == null || v2 == null) //if (v1 == null) { XtraMessageBox.Show("Tariffa per le card mancante", "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } decimal totale = v1.Prezzo + (v2 != null ? v2.Prezzo : 0); List <Ingresso> ingressi = new List <Ingresso>(); ingressi.AddRange(per.Ingressi); RigaVenditaVariante rvv1 = new RigaVenditaVariante(uow); rvv1.PrezzoTotale = v1.Prezzo; rvv1.PrezzoUnitario = v1.Prezzo; rvv1.Profilo = i; rvv1.Quantita = 1; rvv1.Variante = v1; rvv1.Vendita = vendita; rvv1.Card = card; rvv1.Save(); if (v2 != null) { RigaVenditaVariante rvv2 = new RigaVenditaVariante(uow); rvv2.PrezzoTotale = v2.Prezzo; rvv2.PrezzoUnitario = v2.Prezzo; rvv2.Profilo = i; rvv2.Quantita = 1; rvv2.Variante = v2; rvv2.Vendita = vendita; rvv2.Card = card; rvv2.Save(); } DateTime inizioVal = DateTime.Now.Date; DateTime fineVal = inizioVal.AddDays(card.Giorni() - 1); Stampa stampa = new Stampa(uow); stampa.Vendita = vendita; stampa.InizioValidita = inizioVal; stampa.FineValidita = fineVal; stampa.Quantita = 1; stampa.ImportoTotale = totale; stampa.StatoStampa = i; stampa.TipoStampa = _Albergo ? EnumTipoStampa.CardAlbergatori : EnumTipoStampa.Card; stampa.Card = card; stampa.Save(); stampa.GeneraBarCode(Program.Postazione, ingressi); card.Status = EnumStatoCard.Emessa; card.Stampa = stampa; if (_Albergo) { card.Albergo = uow.GetObjectByKey <AnagraficaCard>((this.lookUpEditAlbergo.EditValue as AnagraficaCard).Oid); } card.Save(); Stampa doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(Program.Postazione, ingressi); doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(Program.Postazione, ingressi); doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode)); if (doppia != null) { stampa.GeneraBarCode(Program.Postazione, ingressi); } } } stampa.Save(); foreach (Ingresso ingresso in per.Ingressi) { RigaStampaIngresso rigaingresso = new RigaStampaIngresso(uow); rigaingresso.Ingresso = uow.GetObjectByKey <Ingresso>(ingresso.Oid); rigaingresso.Stampa = stampa; rigaingresso.TotalePersone = 1; rigaingresso.Save(); } } if (!_Albergo) { // registra ingressi per QUESTA postazione foreach (Stampa item1 in vendita.Stampe) { foreach (RigaStampaIngresso item2 in item1.RigheStampaIngresso) { if (VarcoPostazione(item2)) { Entrata entrata = new Entrata(uow); entrata.DataOraEntrata = vendita.DataOraStampa; entrata.Quantita = item2.TotalePersone; entrata.RigaStampaIngresso = item2; entrata.Save(); item2.TotaleIngressi = item2.TotalePersone; item2.Save(); } } } } else { } uow.CommitChanges(); m_Vendita = this._UnitOfWork.GetObjectByKey <Vendita>(vendita.Oid); } return(true); }