public void End() { ResultProcessed = true; using (Session session = new Session()) { try { Postazione postazione = session.GetObjectByKey <Postazione>(Program.Postazione.Oid); if (Result) { postazione.SyncResult = EnumSyncResult.Ok; postazione.SyncSuccess = postazione.SyncTry; postazione.Save(); } else { postazione.SyncResult = EnumSyncResult.Error; postazione.Save(); } } catch (Exception) { // possiamo avere un problema sullo schema del database // ignoriamo e proseguiamo l'operazione .. } try { Messaggio msg = new Messaggio(session); msg.Data = DateTime.Now; if (Result) { //msg.Oggetto = String.Format("SYNCOK {0}: {1} sec. Conflitti ({2}/{3}) Modifiche ({4}/{5})", Environment.MachineName, // ResultInfo.Durata(), // ResultInfo.ConflittiSub, ResultInfo.ConflittiPub, ResultInfo.ModificheSub, ResultInfo.ModifichePub); //msg.TestoEsteso = ResultInfo.Info; //msg.Autore = session.GetObjectByKey<Utente>(Program.UtenteCollegato.Oid); //msg.Tipologia = EnumTipoMessaggio.Normale; //msg.Save(); } else { msg.Oggetto = "SYNC_ERR: " + Environment.MachineName; msg.TestoEsteso = ResultInfo.Info; msg.Autore = session.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); msg.Tipologia = EnumTipoMessaggio.SyncError; msg.Save(); } } catch (Exception) { // possiamo avere un problema sullo schema del database // ignoriamo e proseguiamo l'operazione .. } } }
private void simpleButtonForza_Click(object sender, EventArgs e) { using (Session session = new Session()) { Messaggio msg = new Messaggio(session); msg.Data = DateTime.Now; msg.Oggetto = String.Format("FORZATA CHIUSURA {0}", Program.Postazione.Nome); msg.TestoEsteso = string.Empty; msg.Autore = session.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid); msg.Tipologia = EnumTipoMessaggio.SyncDelay; msg.Save(); } DialogResult = DialogResult.OK; }
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 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 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)); } } } } }