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() { 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 bool RecuperaEntratePosticipate() { try { using (UnitOfWork ses = new UnitOfWork()) { Postazione postazione = ses.GetObjectByKey <Postazione>(Program.Postazione.Oid); XPCollection <EntrataPosticipata> entrate = new XPCollection <EntrataPosticipata>(ses, new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] { //new BinaryOperator("") new BinaryOperator("Postazione", postazione), new BinaryOperator("Status", EnumStatusEntrata.InCoda) })); foreach (var item in entrate) { XPCollection <Stampa> stampe = new XPCollection <Stampa>(ses, new GroupOperator(GroupOperatorType.Or, new CriteriaOperator[] { new BinaryOperator("BarCode", item.BarCode), new BinaryOperator("CodiceProgressivo", item.BarCode), new BinaryOperator("Card.Codice", item.BarCode) })); stampe.Sorting = new DevExpress.Xpo.SortingCollection(new SortProperty[] { new SortProperty("Vendita.DataOraStampa", DevExpress.Xpo.DB.SortingDirection.Descending) }); if (stampe.Count > 0) { Stampa stampa = stampe[0]; foreach (PostazioneIngresso ping in postazione.Ingressi) { if (ping.Tipologia == EnumTipologiaPostazioneIngresso.MarcaturaAutomatica) { foreach (RigaStampaIngresso riga in stampa.RigheStampaIngresso) { if (riga.Ingresso == ping.Ingresso) { if (riga.TotalePersone > riga.TotaleIngressi) { // registra entrate su questo ingresso Entrata entrata = new Entrata(ses); entrata.DataOraEntrata = item.DataOraEntrata; entrata.Quantita = riga.TotalePersone - riga.TotaleIngressi; entrata.RigaStampaIngresso = riga; entrata.Save(); riga.TotaleIngressi = riga.TotalePersone; riga.Save(); } } } } } item.DataEvasione = DateTime.Now; item.Status = EnumStatusEntrata.Evasa; item.Save(); Messaggio msg = new Messaggio(ses); msg.Data = DateTime.Now; msg.Oggetto = String.Format("BarCode {0} evaso", item.BarCode); msg.TestoEsteso = String.Format("BarCode {0} evaso", item.BarCode); msg.Autore = ses.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); msg.Tipologia = EnumTipoMessaggio.RecuperoEntrataPosticipata; msg.Save(); } else { if (item.DataOraEntrata.AddMonths(1) < DateTime.Now) { item.DataEvasione = DateTime.Now; item.Status = EnumStatusEntrata.Annullata; item.Save(); Messaggio msg = new Messaggio(ses); msg.Data = DateTime.Now; msg.Oggetto = String.Format("BarCode {0} annullato", item.BarCode); msg.TestoEsteso = String.Format( "BarCode {0} annullato perche' risale a piu' di un mese fa ed attualmente non ancora presente in archivio ...", item.BarCode); msg.Autore = ses.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); msg.Tipologia = EnumTipoMessaggio.RecuperoEntrataPosticipata; msg.Save(); } } } ses.CommitChanges(); } } catch (Exception) { XtraMessageBox.Show( "Errore nel recupero dei codici a barre posticipati. Riavviare il programma e riprovare.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } return(true); }
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); }