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 } }
public PrenotazioneComplessiva(GestoreProfili profili) { GestoreProfili = profili; Prenotazioni = new List <PrenotazioneIngresso>(); CodiceVendita = Vendita.NuovoCodiceVendita(); }
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 } }
public static void Print(Vendita vendita) { foreach (Stampa item in vendita.Stampe) { Print(item); } }
private void barButtonItemFElettronica_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (!m_Vendita.PossoEliminarla()) { XtraMessageBox.Show("Non puoi modificare questa vendita perchè è già stata inserita in un report contabile.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (XtraMessageBox.Show("Vuoi cambiare modalità di pagamento in: FATTURA ELETTRONICA ?", "Conferma", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } using (Session delSession = new Session()) { Vendita toModify = delSession.GetObjectByKey <Vendita>(m_Vendita.Oid); if (toModify != null && toModify.Incasso != EnumIncasso.FatturaElettronica) { toModify.Incasso = EnumIncasso.FatturaElettronica; toModify.Save(); } } DialogResult = System.Windows.Forms.DialogResult.OK; }
public static string Descrizione(Vendita toDelete) { string result = String.Format("{0}{0}Righe-Vendita-Variante:{0}", Environment.NewLine); foreach (var item in toDelete.RigheVenditaVariante) { result += string.Format("pax {0} importo unitario {1:c} => {2} [{3}] | Card: {4} | Bonus: {5}", item.Quantita, item.PrezzoUnitario, item.Variante.Descrizione, item.Titolo != null ? item.Titolo.Descrizione : "", item.Card != null ? item.Card.Codice : "", item.CodiceSconto != null ? item.CodiceSconto.Codice : "" ) + Environment.NewLine; } result += String.Format("{0}Stampe:{0}", Environment.NewLine); foreach (var item in toDelete.Stampe) { result += string.Format("barcode {0} valido per {1} pax dal {2:d} al {3:d}, importo {4:c}", item.BarCode, item.Quantita, item.InizioValidita, item.FineValidita, item.ImportoTotale) + Environment.NewLine; } return(result); }
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 CreaStampa(UnitOfWork uow, DateTime inizioVal, DateTime fineVal, Vendita vendita, int qta, decimal totale, List <Ingresso> ingressi, int profilo, Card cardMyFE = null) { Stampa stampa = new Stampa(uow); stampa.Vendita = vendita; stampa.InizioValidita = inizioVal; stampa.FineValidita = fineVal; stampa.Quantita = qta; stampa.ImportoTotale = totale; stampa.Save(); stampa.GeneraBarCode(Program.Postazione, ingressi); stampa.StatoStampa = profilo; stampa.TipoStampa = EnumTipoStampa.Standard; if (cardMyFE != null) { stampa.FineValidita = stampa.InizioValidita.AddDays(cardMyFE.Giorni() - 1); stampa.TipoStampa = EnumTipoStampa.Card; stampa.Card = cardMyFE; cardMyFE.Stampa = stampa; cardMyFE.Status = EnumStatoCard.Emessa; cardMyFE.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(); //Dictionary<Guid, RigaStampaIngresso> elencoingressi = new Dictionary<Guid, RigaStampaIngresso>(); foreach (Ingresso ingresso in ingressi) { RigaStampaIngresso rigaingresso = new RigaStampaIngresso(uow); rigaingresso.Ingresso = uow.GetObjectByKey <Ingresso>(ingresso.Oid); rigaingresso.Stampa = stampa; rigaingresso.TotalePersone = qta; rigaingresso.Save(); //elencoingressi.Add(ingresso.Oid, rigaingresso); } }
public ActionResult DeleteConfirmed(string id) { Vendita vendita = db.Vendite.Find(id); db.Vendite.Remove(vendita); db.SaveChanges(); return(RedirectToAction("Index")); }
// // GET: /Vendita/Details/5 public ActionResult Details(string id = null) { Vendita vendita = db.Vendite.Find(id); if (vendita == null) { return(HttpNotFound()); } return(View(vendita)); }
private void SoloAltre(Vendita item, RigaVenditaVariante rigaVenditaVariante) { if (item.Struttura == _Struttura) { // non interessa } else { // non interessa } }
// // GET: /Vendita/Edit/5 public ActionResult Edit(string id = null) { Vendita vendita = db.Vendite.Find(id); if (vendita == null) { return(HttpNotFound()); } ViewBag.FKCataloghiID = new SelectList(db.Cataloghi, "CatalogoID", "Nome", vendita.FKCataloghiID); ViewBag.FKProdottoID = new SelectList(db.Prodotti, "ProdottoID", "Nome", vendita.FKProdottoID); return(View(vendita)); }
public ActionResult Edit(Vendita vendita) { if (ModelState.IsValid) { db.Entry(vendita).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.FKCataloghiID = new SelectList(db.Cataloghi, "CatalogoID", "Nome", vendita.FKCataloghiID); ViewBag.FKProdottoID = new SelectList(db.Prodotti, "ProdottoID", "Nome", vendita.FKProdottoID); return(View(vendita)); }
private void gridControlVendite_DoubleClick(object sender, EventArgs e) { Vendita vendita = this.gridViewVendite.GetFocusedRow() as 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(); } } }
public ActionResult Create(Vendita vendita) { if (ModelState.IsValid) { Guid id = Guid.NewGuid(); string idS = id.ToString(); vendita.VenditeID = idS; db.Vendite.Add(vendita); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.FKCataloghiID = new SelectList(db.Cataloghi, "CatalogoID", "Nome", vendita.FKCataloghiID); ViewBag.FKProdottoID = new SelectList(db.Prodotti, "ProdottoID", "Nome", vendita.FKProdottoID); return(View(vendita)); }
private string GetDesc(Stampa stampa) { Vendita vendita = stampa.Vendita; int profilo = stampa.StatoStampa; string result1 = string.Empty; string result2 = string.Empty; foreach (EnumTipologiaUno uno in Enum.GetValues(typeof(EnumTipologiaUno))) { foreach (RigaVenditaVariante item in vendita.RigheVenditaVariante) { if (item.Profilo == profilo || profilo == -1) { if (item.Variante.TipologiaUno == uno) { string def1 = item.Variante.TipologiaUno.ToString(); if (!result1.Contains(def1)) { result1 += (string.IsNullOrEmpty(result1) ? "" : "-") + def1; } } } } } foreach (EnumTipologiaDue due in Enum.GetValues(typeof(EnumTipologiaDue))) { foreach (RigaVenditaVariante item in vendita.RigheVenditaVariante) { if (item.Profilo == profilo || profilo == -1) { if (item.Variante.TipologiaDue == due) { string def2 = item.Variante.TipologiaDue.ToString(); if (!result2.Contains(def2)) { result2 += (string.IsNullOrEmpty(result2) ? "" : "-") + def2; } } } } } return(string.Format("{0} {1}", result1, result2)); }
public ActionResult NewProdotto(Vendita vendita, int id = 0) { if (ModelState.IsValid) { //id generato casualmente tipo string Guid gu = Guid.NewGuid(); string idS = gu.ToString(); vendita.VenditeID = idS; vendita.FKCataloghiID = id; db.Vendite.Add(vendita); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.FKCataloghiID = new SelectList(db.Cataloghi, "CatalogoID", "Nome", vendita.FKCataloghiID); ViewBag.FKProdottoID = new SelectList(db.Prodotti, "ProdottoID", "Nome", vendita.FKProdottoID); return(View(vendita)); }
private void gridControl1_DoubleClick(object sender, EventArgs e) { PivotDrillDownDataRow row = this.gridView1.GetFocusedRow() as PivotDrillDownDataRow; if (row != null) { string codice = row.DataSource.GetValue(row.Index, "RigaStampaIngresso.Stampa.Vendita.CodiceLeggibile") as string; using (UnitOfWork uow = new UnitOfWork()) { Vendita vendita = uow.FindObject <Vendita>(new BinaryOperator("CodiceLeggibile", codice)); XtraFormDettaglioVendita dettaglio = new XtraFormDettaglioVendita(); dettaglio.Init(vendita); dettaglio.ShowDialog(this); } } }
public ActionResult EditV(string id = null) { Vendita vendita = db.Vendite.Find(id); var idp = vendita.FKProdottoID; var idc = vendita.FKCataloghiID; if (vendita == null) { return(HttpNotFound()); } List <Catalogo> c = new List <Catalogo>(); c.Add(db.Cataloghi.Find(idc)); List <Prodotto> p = new List <Prodotto>(); p.Add(db.Prodotti.Find(idp)); ViewBag.FKCataloghiID = new SelectList(c, "CatalogoID", "Nome", vendita.FKCataloghiID); ViewBag.FKProdottoID = new SelectList(p, "ProdottoID", "Nome", vendita.FKProdottoID); return(View(vendita)); }
public void Init(Vendita vendita) { vendita.Reload(); vendita.RigheVenditaVariante.Reload(); vendita.Stampe.Reload(); vendita.Fatture.Reload(); m_Vendita = vendita; this.Text = String.Format("Dettaglio Vendita {0}", m_Vendita.CodiceLeggibile); this.labelControlRiga1.Text = String.Format("Vendita effettuata da: <b>{0}</b> il <b>{1}</b> dalla postazione <b>{2}</b>", m_Vendita.Utente.FullName, m_Vendita.DataOraStampa, m_Vendita.Postazione.Nome); this.gridControl1.DataSource = m_Vendita.Stampe; this.gridControl2.DataSource = m_Vendita.RigheVenditaVariante; this.gridControl3.DataSource = m_Vendita.Fatture; this.gridView1.BestFitColumns(); this.gridView3.BestFitColumns(); this.gridView4.BestFitColumns(); this.gridViewFatture.BestFitColumns(); if (string.IsNullOrEmpty(m_Vendita.CodicePrevent)) { this.labelControlRiga2.Text = String.Format("Totale <b>{0}</b> <b>{1:c}</b> per <b>{2}</b> persone", m_Vendita.Incasso, m_Vendita.TotaleImporto, m_Vendita.TotalePersone); this.barButtonItemAnnulla.Caption = "Elimina VENDITA"; } else { this.labelControlRiga2.Text = String.Format("Totale <b>{0}</b> <b>{1:c}</b> per <b>{2}</b> persone (prenotazione <b>{3}</b>)", m_Vendita.Incasso, m_Vendita.TotaleImporto, m_Vendita.TotalePersone, m_Vendita.CodicePrevent); this.barButtonItemAnnulla.Caption = "Ripristino PRENOTAZIONE ed eliminazione VENDITA"; } this.barButtonItemPos.Enabled = m_Vendita.Incasso != EnumIncasso.Pos; this.barButtonItemContanti.Enabled = m_Vendita.Incasso != EnumIncasso.Contanti; this.barButtonItemOnline.Enabled = m_Vendita.Incasso != EnumIncasso.Internet; this.barButtonItemFElettronica.Enabled = m_Vendita.Incasso != EnumIncasso.FatturaElettronica; }
private void barButtonItemNewInvoice_ItemClick(object sender, ItemClickEventArgs e) { Vendita vendita = this.gridViewVendite.GetFocusedRow() as Vendita; if (vendita != null) { Fattura fattura = null; if (vendita.Fatture.Count > 0) { fattura = vendita.Fatture[0]; } XtraFormCreaFattura dettaglio = new XtraFormCreaFattura(); dettaglio.Init(vendita, fattura); if (dettaglio.ShowDialog(this) == DialogResult.OK) { this.xpServerCollectionSourceVendite.Reload(); this.xpCollectionRigaVenditaVariante.Reload(); this.xpCollectionFatture.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 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 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 barButtonItemAnnulla_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (!m_Vendita.PossoEliminarla()) { XtraMessageBox.Show("Non puoi eliminare questa vendita perchè è già stata inserita in un report contabile.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Program.UtenteCollegato.Amministratore) { if (m_Vendita.Postazione.Oid != Program.Postazione.Oid) { XtraMessageBox.Show("Non puoi eliminare questa vendita perchè è stata effettuata da un'altra postazione e non sei amministratore.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } if (m_Vendita.EsistonoCardMyFE()) { if (XtraMessageBox.Show("Attenzione, esistono delle Card MyFE associate a questa vendita. Vuoi proseguire ugualmente (IMPLICA IL RECUPERO DELLE CARD) ?", "Conferma", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } } if (m_Vendita.EsistonoEntrate()) { if (XtraMessageBox.Show("Attenzione, esistono delle entrate associate a questa vendita. Vuoi proseguire ugualmente ?", "Conferma", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } } if (XtraMessageBox.Show(string.Format("Confermi l'eliminazione di TUTTA la vendita ({0:c} persone {1}) ?", m_Vendita.TotaleImporto, m_Vendita.TotalePersone), "Conferma", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { if (string.IsNullOrEmpty(m_Vendita.CodicePrevent)) { using (Session delSession = new Session()) { Vendita toDelete = delSession.GetObjectByKey <Vendita>(m_Vendita.Oid); if (toDelete != null) { Messaggio msg = new Messaggio(delSession); msg.Autore = delSession.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); msg.Data = DateTime.Now; msg.Oggetto = "Eliminazione " + toDelete.CodiceLeggibile; msg.TestoEsteso = String.Format("L'utente {0} ha eliminato la vendita {1} di importo totale {2:c} dalla postazione {3}.", Program.UtenteCollegato.FullName, toDelete.CodiceLeggibile, toDelete.TotaleImporto, Program.Postazione.Nome); msg.TestoEsteso += Descrizione(toDelete); msg.Tipologia = EnumTipoMessaggio.Eliminazione; msg.Save(); toDelete.EliminaVendita(); } } DialogResult = System.Windows.Forms.DialogResult.OK; } else { if (XtraMessageBox.Show(string.Format("La prenotazione {0} verrà ripristinata al suo stato originario. Vuoi proseguire ?", m_Vendita.CodicePrevent), "Conferma", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { // RIPRISTINO PRENOTAZIONE prevent.verifica.Out obj = RichiestaDelete.MakeDelete(m_Vendita.CodiceLeggibile); if (obj != null && (obj.ReturnCode == "00" || obj.ReturnCode == "51" || obj.ReturnCode == "52")) { using (Session delSession = new Session()) { Vendita toDelete = delSession.GetObjectByKey <Vendita>(m_Vendita.Oid); if (toDelete != null) { Messaggio msg = new Messaggio(delSession); msg.Autore = delSession.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); msg.Data = DateTime.Now; msg.Oggetto = String.Format("Eliminazione {0} con prenotazione {1}", toDelete.CodiceLeggibile, toDelete.CodicePrevent); msg.TestoEsteso = String.Format("L'utente {0} ha eliminato la vendita {1} di importo totale {2:c} dalla postazione {3} associata alla prenotazione {4}.", Program.UtenteCollegato.FullName, toDelete.CodiceLeggibile, toDelete.TotaleImporto, Program.Postazione.Nome, toDelete.CodicePrevent); msg.TestoEsteso += Descrizione(toDelete); msg.Tipologia = EnumTipoMessaggio.EliminazioneConPrenotazione; msg.Save(); toDelete.EliminaVendita(); } } DialogResult = System.Windows.Forms.DialogResult.OK; } else { XtraMessageBox.Show( String.Format("Errore: {0}", RichiestaDelete.UltimoErrore.DescrizioneErrore, String.Format("Errore Web: {0}", RichiestaDelete.UltimoErrore.ReturnCode), MessageBoxButtons.OK, MessageBoxIcon.Error)); } } } } }
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 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); }
internal void Init(Vendita vendita, Fattura fattura) { m_Vendita = this.unitOfWork1.GetObjectByKey <Vendita>(vendita.Oid); m_Struttura = m_Vendita.Struttura; if (m_Struttura.Oid != Program.Postazione.Struttura.Oid && !Program.UtenteCollegato.Amministratore) { throw new Exception("non autorizzato"); } if (fattura != null) { m_Fattura = this.unitOfWork1.GetObjectByKey <Fattura>(fattura.Oid); this.textEditFatturaNumero.Text = m_Fattura.Codice; Lock(true); } else { m_IsNewInvoice = true; m_Fattura = new Fattura(this.unitOfWork1); m_Fattura.Vendita = m_Vendita; m_Fattura.Struttura = m_Struttura; m_Fattura.DataContabile = m_Vendita.DataContabile; m_Fattura.Codice = m_Struttura.SiglaFattura; m_Fattura.Anno = m_Fattura.DataContabile.Year; if (string.IsNullOrEmpty(m_Fattura.Codice)) { throw new Exception("Nessuna SiglaFattura associata alla struttura " + m_Struttura.Descrizione); } var prog = this.unitOfWork1.FindObject <Progressivo>(new GroupOperator(new CriteriaOperator[] { new BinaryOperator("Codice", m_Fattura.Codice), new BinaryOperator("Anno", m_Fattura.Anno) })); if (prog == null) { m_Fattura.Numero = 1; } else { m_Fattura.Numero = prog.UltimoNumero + 1; } m_Fattura.CodiceCompleto = string.Format("{0}/{1}/{2}", m_Fattura.Numero, m_Fattura.Codice, m_Fattura.Anno); m_Fattura.IntestazioneRiga1 = "Spett.le "; m_Fattura.IntestazioneRiga4 = "C.F. : "; m_Fattura.Note = "Pagamento effettuato in contante"; m_Fattura.Utente = this.unitOfWork1.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); m_Fattura.Postazione = this.unitOfWork1.GetObjectByKey <Postazione>(Program.Postazione.Oid); foreach (var rv in m_Vendita.RigheVenditaVariante) { if (rv.PrezzoTotale > 0) { if (rv.Variante.TipologiaTre == EnumTipologiaTre.CardMyFE) { if (rv.Variante.MyFeComune()) { var mrr = new RigaFattura(this.unitOfWork1); mrr.Fattura = m_Fattura; mrr.DescrizioneRiga = rv.Variante.Descrizione; mrr.PrezzoUnitario = Card.PrezzoCard(rv.Card.TipologiaCard); mrr.Quantita = rv.Quantita; mrr.PrezzoTotale = mrr.PrezzoUnitario * rv.Quantita; m_Fattura.RigheFattura.Add(mrr); } } else { var mrr = new RigaFattura(this.unitOfWork1); mrr.Fattura = m_Fattura; mrr.DescrizioneRiga = rv.Variante.Descrizione; mrr.PrezzoUnitario = rv.PrezzoUnitario; mrr.Quantita = rv.Quantita; mrr.PrezzoTotale = rv.PrezzoTotale; m_Fattura.RigheFattura.Add(mrr); } } } Lock(false); } this.textEditFatturaNumero.Text = m_Fattura.CodiceCompleto; this.textEditFatturaData.DateTime = m_Fattura.DataContabile; this.textEditIntestazione1.Text = m_Fattura.IntestazioneRiga1; this.textEditIntestazione2.Text = m_Fattura.IntestazioneRiga2; this.textEditIntestazione3.Text = m_Fattura.IntestazioneRiga3; this.textEditIntestazione4.Text = m_Fattura.IntestazioneRiga4; this.textEditNote.Text = m_Fattura.Note; this.gridControl1.DataSource = m_Fattura.RigheFattura; this.gridView1.BestFitColumns(); }
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); }