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 static bool VarcoPostazione(RigaStampaIngresso item2) { foreach (PostazioneIngresso postazioneIngresso in Program.Postazione.Ingressi) { if (postazioneIngresso.Tipologia == EnumTipologiaPostazioneIngresso.MarcaturaAutomatica && postazioneIngresso.Ingresso.Oid == item2.Ingresso.Oid) { return(true); } } return(false); }
private static RigaStampaIngresso GetElemento(Stampa stampa, Ingresso ingresso) { // cerca ingresso giusto RigaStampaIngresso elemento = null; foreach (RigaStampaIngresso item in stampa.RigheStampaIngresso) { if (item.Ingresso.Oid == ingresso.Oid) { elemento = item; } } return(elemento); }
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 simpleButtonVerifica_Click(object sender, EventArgs e) { string codice = this.buttonEditCodice.Text; CoStampa = new XPCollection <Stampa>(this.unitOfWork1); CoStampa.Criteria = new GroupOperator(GroupOperatorType.Or, new CriteriaOperator[] { new BinaryOperator("BarCode", codice), new BinaryOperator("CodiceProgressivo", codice), new BinaryOperator("Card.Codice", codice) }); CoStampa.Sorting = new SortingCollection(new SortProperty[] { new SortProperty("Vendita.DataOraStampa", DevExpress.Xpo.DB.SortingDirection.Descending) }); this.gridControlIngressi.DataSource = CoStampa; if (CoStampa.Count == 0) { Pulisci(); if (!string.IsNullOrEmpty(codice) && codice.Length > 3) { Postazione postazione = this.unitOfWork1.GetObjectByKey <Postazione>(Program.Postazione.Oid); EntrataPosticipata entrata = this.unitOfWork1.FindObject <EntrataPosticipata>(new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] { new BinaryOperator("BarCode", codice), new BinaryOperator("Postazione", postazione), new BinaryOperator("Status", EnumStatusEntrata.InCoda) })); if (entrata == null) { entrata = new EntrataPosticipata(this.unitOfWork1); entrata.BarCode = codice; entrata.DataOraEntrata = DateTime.Now; entrata.Postazione = postazione; entrata.Utente = this.unitOfWork1.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); entrata.Status = EnumStatusEntrata.InCoda; entrata.Save(); Messaggio msg = new Messaggio(this.unitOfWork1); msg.Data = DateTime.Now; msg.Oggetto = String.Format("BarCode {0}", codice); msg.TestoEsteso = String.Format("BarCode {0} non trovato, utente {1}, postazione {2} ! (inserito nella lista per il recupero posticipato)", codice, Program.UtenteCollegato.FullName, Program.Postazione.Nome); msg.Autore = entrata.Utente; msg.Tipologia = EnumTipoMessaggio.EntrataPosticipata; msg.Save(); this.unitOfWork1.CommitChanges(); XtraMessageBox.Show(String.Format("Codice {0} NON trovato! (inserito nella lista per il recupero posticipato)", codice), "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { XtraMessageBox.Show(String.Format("Codice {0} NON trovato! (il codice è già presente nella lista per il recupero posticipato)", codice), "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { XtraMessageBox.Show(String.Format("Codice {0} errato!", codice), "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { this.spinEdit1.Value = 0; this.spinEdit1.Enabled = false; this.simpleButtonRegistra.Enabled = false; this.barButtonItemAltre.Enabled = true; this.panelControlInfo.Visible = true; this.gridViewIngressi.BestFitColumns(); this.barButtonItemIngresso.Enabled = true; // prendo la prima stampa (dovrebbe essere l'unica, se non ho cercato per vendita.codiceleggibile) Stampa stampa = CoStampa[0]; ImpostaValiditaCard(stampa); AbilitaStampaCardMyFE(stampa); this.textEditIntestazioneCard.Text = ""; if (stampa.Card != null) { if (stampa.Card.Albergo != null) { this.textEditIntestazioneCard.Text = stampa.Card.Albergo.RagioneSociale; } if (stampa.Card.VendutaOnline) { this.textEditIntestazioneCard.Text = stampa.Card.TitolareCarta; } } this.textEditBarCode.Text = stampa.BarCode; this.textEditProg.Text = stampa.CodiceProgressivo; this.dateEditStart.DateTime = stampa.InizioValidita; this.dateEditEnd.DateTime = stampa.FineValidita; this.textEdit1.Text = stampa.Vendita.Postazione.Nome; this.labelControlStatus.Text = "Regolare"; this.labelControlStatus.ForeColor = Color.Green; // toglie tutti i check foreach (BarItemLink itemLink in this.ribbonPageGroupIngressi.ItemLinks) { itemLink.Item.LargeGlyph = WinTicketNext.Properties.Resources.checkbox_unchecked; itemLink.Item.Enabled = false; } int qta = int.MaxValue; int totali = 0; foreach (PostazioneIngresso postazioneIngresso in Program.Postazione.Ingressi) { RigaStampaIngresso elemento = GetElemento(stampa, postazioneIngresso.Ingresso); if (elemento != null) { totali += elemento.TotalePersone; int poq = elemento.TotalePersone - elemento.TotaleIngressi; if (poq > 0) { qta = Math.Min(poq, qta); foreach (BarItemLink itemLink in this.ribbonPageGroupIngressi.ItemLinks) { Ingresso ingre = itemLink.Item.Tag as Ingresso; if (ingre != null && ingre.Oid == elemento.Ingresso.Oid) { itemLink.Item.LargeGlyph = WinTicketNext.Properties.Resources.checkbox; itemLink.Item.Enabled = true; } } } } } if (qta > 0 && qta < 10000) { StampaVenditaOnline(stampa, false); this.spinEdit1.Value = qta; this.spinEdit1.Enabled = true; this.simpleButtonRegistra.Enabled = true; } else { if (totali > 0) { this.labelControlStatus.Text = "Già utilizzato"; this.labelControlStatus.ForeColor = Color.Orange; } else { this.labelControlStatus.Text = "non valido per questa postazione"; this.labelControlStatus.ForeColor = Color.Orange; } } DateTime adesso = DateTime.Now.Date; if (adesso >= stampa.InizioValidita && adesso <= stampa.FineValidita) { this.dateEditEnd.BackColor = Color.FromArgb(247, 245, 241); this.dateEditStart.BackColor = Color.FromArgb(247, 245, 241); this.labelControlStatus.Text += " (non scaduto)"; } else { this.dateEditEnd.BackColor = Color.Orange; this.dateEditStart.BackColor = Color.Orange; this.labelControlStatus.Text += " (SCADUTO)"; } } MoveFocus(); }
private void simpleButtonRegistra_Click(object sender, EventArgs e) { int pax = (int)this.spinEdit1.Value; Stampa stampa = CoStampa[0]; ImpostaValiditaCard(stampa); if (stampa != null && pax > 0) { string descrizione = string.Empty; foreach (PostazioneIngresso postazioneIngresso in Program.Postazione.Ingressi) { RigaStampaIngresso elemento = GetElemento(stampa, postazioneIngresso.Ingresso); if (elemento != null) { int poq = elemento.TotalePersone - elemento.TotaleIngressi; if (poq > 0 && poq >= pax) { descrizione += string.Format("-< {0} >-", elemento.Ingresso.Descrizione); } } } if (!string.IsNullOrEmpty(descrizione)) { if (XtraMessageBox.Show( string.Format("Confermi l'ingresso di {0} persone a: {1}", pax, descrizione), "Conferma", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { foreach (PostazioneIngresso postazioneIngresso in Program.Postazione.Ingressi) { RigaStampaIngresso elemento = GetElemento(stampa, postazioneIngresso.Ingresso); if (elemento != null) { int poq = elemento.TotalePersone - elemento.TotaleIngressi; if (poq > 0 && poq >= pax) { elemento.TotaleIngressi += pax; elemento.Save(); Entrata entrata = new Entrata(this.unitOfWork1); entrata.DataOraEntrata = DateTime.Now; entrata.Quantita = pax; entrata.RigaStampaIngresso = elemento; entrata.Save(); } } } this.unitOfWork1.CommitChanges(); Pulisci(); } } else { XtraMessageBox.Show("Errore"); } } else { XtraMessageBox.Show("Errore"); } MoveFocus(); }
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(); } }