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); } }
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 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); }
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(); } }