private void barButtonItemCorrispettivi_ItemClick(object sender, ItemClickEventArgs e)
        {
            if (Parametri())
            {
                DateTime dataagg = Postazione.DataSicuroAggiornamento();

                if (dataagg <= _Fine)
                {
                    XtraMessageBox.Show(string.Format("Attenzione: alcune biglietterie non hanno ancora conferito i dati per il periodo indicato. Data sicuro aggiornamento: {0:d}", Postazione.DataSicuroAggiornamento()), "Attenzione", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

                XPCollection <Vendita> vendite = new XPCollection <Vendita>(this.unitOfWork1, new GroupOperator(new CriteriaOperator[] {
                    new BinaryOperator("Struttura", _Struttura),
                    new BinaryOperator("DataContabile", _Inizio, BinaryOperatorType.GreaterOrEqual),
                    new BinaryOperator("DataContabile", _Fine, BinaryOperatorType.LessOrEqual)
                }));

                if (_Struttura.Descrizione == "Biglietteria Online")
                {
                    XtraReportCorrispettiviInternet rcs = new XtraReportCorrispettiviInternet();
                    rcs.Init(vendite, _Inizio, _Fine, _Struttura);

                    rcs.ShowRibbonPreview();
                }
                else
                {
                    XtraReportCorrispettiviBiglietteria rcs = new XtraReportCorrispettiviBiglietteria();
                    rcs.Init(vendite, _Inizio, _Fine, _Struttura);

                    rcs.ShowRibbonPreview();
                }
            }
        }
Exemplo n.º 2
0
        public List <Postazione> GetAll()
        {
            DbEntity db = new DbEntity();

            SqlCommand cmd = new SqlCommand();

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = @"SELECT Postazioni.*, dbo.TipoPostazione.descrizione
                            FROM Postazioni
                            INNER JOIN TipoPostazione ON TipoPostazione.idtipopost = Postazioni.fk_tipo";

            DataTable         dt         = db.eseguiQuery(cmd);
            List <Postazione> postazioni = null;

            if (dt.Rows.Count > 0)
            {
                postazioni = new List <Postazione>();
                foreach (DataRow dr in dt.Rows)
                {
                    Postazione newPost = new Postazione();
                    newPost.ID   = (int)dr["idpostazione"];
                    newPost.Tag  = (string)dr["tag"];
                    newPost.Tipo = (string)dr["descrizione"];

                    postazioni.Add(newPost);
                }
            }

            return(postazioni);
        }
Exemplo n.º 3
0
        public List <Postazione> GetBasedOnUtente(Utente U)
        {
            DbEntity db = new DbEntity();

            SqlCommand cmd = new SqlCommand();

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = String.Format(@"SELECT Postazioni.*, dbo.TipoPostazione.descrizione
                            FROM Postazioni
                            INNER JOIN TipoPostazione ON TipoPostazione.idtipopost = Postazioni.fk_tipo
                            INNER JOIN Utenti_postazioni ON Utenti_postazioni.fk_postazione = Postazioni.idpostazione
                            INNER JOIN Utenti ON Utenti.idutente = Utenti_postazioni.fk_utente
                            WHERE Utenti.idutente = {0}", U.ID);

            DataTable         dt         = db.eseguiQuery(cmd);
            List <Postazione> postazioni = null;

            if (dt.Rows.Count > 0)
            {
                postazioni = new List <Postazione>();
                foreach (DataRow dr in dt.Rows)
                {
                    Postazione newPost = new Postazione();
                    newPost.ID   = (int)dr["idpostazione"];
                    newPost.Tag  = (string)dr["tag"];
                    newPost.Tipo = (string)dr["descrizione"];

                    postazioni.Add(newPost);
                }
            }

            return(postazioni);
        }
Exemplo n.º 4
0
        static void GO()
        {
            List <MyFeData> elenco = DownloadData();

            List <MyFeData> elencoNuovi = new List <MyFeData>();

            using (Session session = new Session())
            {
                Utente utente = session.FindObject <Utente>(new BinaryOperator("AdUsername", "Internet"));
                MuseiBase.CurrentUser = utente;

                Postazione postazione = session.FindObject <Postazione>(new BinaryOperator("CodiceUnivoco", 1));
                postazione.Utente      = utente.FullName;
                postazione.SyncSuccess = postazione.SyncTry = DateTime.Now;
                postazione.SyncResult  = EnumSyncResult.Ok;
                postazione.Save();

                foreach (MyFeData myFeData in elenco)
                {
                    var trans = session.FindObject <TransazioneWeb>(new GroupOperator(GroupOperatorType.And,
                                                                                      new CriteriaOperator[] {
                        new BinaryOperator("Transazione", myFeData.Transazione),
                        new BinaryOperator("CodiceOperazione", myFeData.CodiceOperazione)
                    }));
                    if (trans == null)
                    {
                        elencoNuovi.Add(myFeData);
                    }
                }

                var           mioelenco = elencoNuovi.OrderBy(m => m.InseritaIlDateTime).ToArray();
                List <string> log       = new List <string>();

                foreach (MyFeData myFeData in mioelenco)
                {
                    if (myFeData.TipoOperazione == "vendita")
                    {
                        CreaVendita(myFeData);

                        string logitem = string.Format("Creata Vendita {0} del {1:g}", myFeData.CodiceTessera, myFeData.InseritaIlDateTime);
                        log.Add(logitem);
                        Console.WriteLine(logitem);
                    }

                    if (myFeData.TipoOperazione == "annullo")
                    {
                        AnnullaVendita(myFeData);

                        string logitem = string.Format("Annullata Vendita {0} del {1:g}", myFeData.CodiceTessera, myFeData.InseritaIlDateTime);
                        log.Add(logitem);
                        Console.WriteLine(logitem);
                    }
                }

                if (log.Count > 0)
                {
                    // send email
                }
            }
        }
Exemplo n.º 5
0
        protected void btn_AddNewPostazione_Click(object sender, EventArgs e)
        {
            string Tag    = txt_Tag.Text;
            int    IDTipo = Convert.ToInt32(drp_Tipo.SelectedItem.Value);

            if (Tag != "")
            {
                if (new daoPostazioni().CheckTag(Tag) != false)
                {
                    Postazione P = new Postazione();
                    P.Tag    = Tag;
                    P.TipoID = IDTipo;

                    new daoPostazioni().AddPostazione(P);

                    pnl_Alert.Visible  = true;
                    pnl_Alert.CssClass = "alert alert-success";
                    lbl_Alert.Text     = "<strong>OK!</strong> Postazione inserita con ID ";
                }
                else
                {
                    pnl_Alert.Visible  = true;
                    pnl_Alert.CssClass = "alert alert-danger";
                    lbl_Alert.Text     = "<strong>Errore!</strong> TAG già presente";
                }
            }
            else
            {
                pnl_Alert.Visible  = true;
                pnl_Alert.CssClass = "alert alert-danger";
                lbl_Alert.Text     = "<strong>Errore!</strong> Inserisci un Tag valido";
            }
        }
Exemplo n.º 6
0
        public async Task <IActionResult> Edit(int id, [Bind("IdPostazione,NomePostazione,Descrizione")] Postazione postazione)
        {
            if (id != postazione.IdPostazione)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(postazione);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PostazioneExists(postazione.IdPostazione))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(postazione));
        }
Exemplo n.º 7
0
        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 ..
                }
            }
        }
Exemplo n.º 8
0
        internal void Add(Postazione postazione, int number, int anno)
        {
            if (!Elenco.ContainsKey(postazione))
            {
                Elenco.Add(postazione, new ClassNumerazionePostazione(postazione));
            }

            Elenco[postazione].Add(number, anno);
        }
Exemplo n.º 9
0
 internal int NB(Postazione postazione)
 {
     if (Elenco.ContainsKey(postazione))
     {
         return(Elenco[postazione].NB());
     }
     else
     {
         return(0);
     }
 }
Exemplo n.º 10
0
 internal string EB(Postazione postazione)
 {
     if (Elenco.ContainsKey(postazione))
     {
         return(Elenco[postazione].EB());
     }
     else
     {
         return(string.Empty);
     }
 }
Exemplo n.º 11
0
        public async Task <IActionResult> Create([Bind("IdPostazione,NomePostazione,Descrizione")] Postazione postazione)
        {
            if (ModelState.IsValid)
            {
                _context.Add(postazione);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(postazione));
        }
Exemplo n.º 12
0
        private static void AnnullaVendita(MyFeData myFeData)
        {
            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("ANNULLO: Manca 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();

                obj.Stampa.Vendita.EliminaVendita();
                obj.Delete();

                uow.CommitChanges();
            }
        }
Exemplo n.º 13
0
        public static void DataAgg(BarStaticItem item)
        {
            DateTime data = Postazione.DataSicuroAggiornamento();

            item.Caption = string.Format("Dati aggiornati a {0:F}", data);
            if ((DateTime.Now - data).TotalMinutes > 60)
            {
                item.Glyph = WinTicketNext.Properties.Resources.sign_warning_BF_16_P;
            }
            else
            {
                item.Glyph = WinTicketNext.Properties.Resources.about_BF_16_P;
            }
        }
Exemplo n.º 14
0
        private List <Postazione> ElencoPostazioni()
        {
            List <Postazione> elenco = new List <Postazione>();

            for (int i = 0; i < this.checkedListBoxControlPostazioni.CheckedItems.Count; i++)
            {
                Postazione item = (Postazione)this.checkedListBoxControlPostazioni.CheckedItems[i];

                XPCollection <Postazione> queste = new XPCollection <Postazione>(this.unitOfWork1, new BinaryOperator("Ingresso", item.Ingresso));
                elenco.AddRange(queste);
            }

            return(elenco);
        }
Exemplo n.º 15
0
        public Panel CustomDiv(Postazione P)
        {
            //  <div class="col" runat="server" id="div_Foratura">
            //        <div class="card text-center">
            //            <asp:ImageButton ID = "btn_Foratura" CssClass="mx-auto d-block width-70" ImageUrl="~/imgs/foratura.png" runat="server" />
            //            <div class="card-title">
            //                <span>Foratura</span>
            //            </div>
            //        </div>
            //    </div>

            Panel wrapper = new Panel();

            wrapper.CssClass = "col";

            Panel card = new Panel();

            card.CssClass = "card text-center postazione";

            ImageButton imgBtn = new ImageButton();

            imgBtn.CssClass = "mx-auto d-block width-70";
            imgBtn.ID       = "btn_" + P.ID;
            imgBtn.ImageUrl = "~/imgs/ic" + P.Tipo + ".png";
            imgBtn.Click   += new ImageClickEventHandler(btn_Postazione_Click);
            imgBtn.Attributes.Add("idpostazione", P.ID.ToString());
            imgBtn.Attributes.Add("tipo", P.Tipo);

            Panel cardTitle = new Panel();

            cardTitle.CssClass = "card-title";

            Label title = new Label();

            title.Text = P.Tipo.ToUpper() + " - " + P.Tag;

            card.Controls.Add(imgBtn);
            cardTitle.Controls.Add(title);
            card.Controls.Add(cardTitle);
            wrapper.Controls.Add(card);

            return(wrapper);
        }
Exemplo n.º 16
0
        private static void SetPostazione()
        {
            Session session = new Session();

            string key = Environment.MachineName;

            Postazione posto = session.FindObject <Postazione>(new BinaryOperator("MachineName", key));

            if (posto == null)
            {
                XtraMessageBox.Show(string.Format("Postazione '{0}' non trovata o non codificata. Impossibile proseguire.", key), "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            Program.Postazione = posto;

            XPCollection <Provenienza> provol = new XPCollection <Provenienza>(session);

            Program.Provenienze = new List <Provenienza>();
            Program.Provenienze.AddRange(provol);
        }
Exemplo n.º 17
0
        public void AddPostazione(Postazione P)
        {
            DataTable dt = new DataTable();
            DbEntity  db = new DbEntity();

            SqlCommand cmd = new SqlCommand();

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = String.Format(@"INSERT Postazioni
                                        (
                                            tag,
                                            fk_tipo
                                        )
                                        VALUES
                                        (   '{0}', -- tag - varchar(55)
                                            {1}   -- fk_tipo - int
                                        )", P.Tag, P.TipoID);

            db.eseguiQueryNOreturn(cmd);
        }
Exemplo n.º 18
0
        private void simpleButtonQuery_Click(object sender, EventArgs e)
        {
            Cursor saveCursor = Cursor.Current;

            try
            {
                Cursor.Current = Cursors.WaitCursor;

                _Inizio     = this.dateNavigatorAperture.MyStartDate;
                _Fine       = this.dateNavigatorAperture.MyEndDate;
                _Postazione = this.lookUpEdit1.EditValue as Postazione;

                if (_Postazione != null)
                {
                    _Aperture = new GestoreAperture();

                    // per sicurezza aggiungo un mese alla data di fine periodo
                    XPCollection <PostazioneAccesso> accessi = new XPCollection <PostazioneAccesso>(this.unitOfWork1);
                    GroupOperator periodoa1 = new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] {
                        new BinaryOperator("Data", _Inizio, BinaryOperatorType.GreaterOrEqual),
                        new BinaryOperator("Data", _Fine, BinaryOperatorType.LessOrEqual),
                        new BinaryOperator("Postazione", _Postazione)
                    });
                    accessi.Criteria = periodoa1;
                    foreach (PostazioneAccesso postazioneAccesso in accessi)
                    {
                        _Aperture.Add(postazioneAccesso.Postazione.Oid, postazioneAccesso.Data);
                    }

                    this.labelControlInfo.Text = string.Format("{0} dal {1:d} al {2:d}", _Postazione.Nome, _Inizio, _Fine);
                }

                this.dateNavigatorAperture.Refresh();

                timer1.Enabled = true;
            }
            finally
            {
                Cursor.Current = saveCursor;
            }
        }
Exemplo n.º 19
0
        public void GoSync()
        {
            using (Session session = new Session())
            {
                if (StaticInfo.NoSync() || session.DataLayer.Connection == null || !session.DataLayer.Connection.ConnectionString.Contains("MuseiXafRev1locale"))
                {
                    Result       = true;
                    SyncFinished = true;

                    try
                    {
                        Postazione postazione = session.GetObjectByKey <Postazione>(Program.Postazione.Oid);
                        postazione.SyncTry     = DateTime.Now;
                        postazione.SyncSuccess = DateTime.Now;
                        postazione.Save();
                    }
                    catch (Exception)
                    {
                        // possiamo avere un problema sullo schema del database
                        // ignoriamo e proseguiamo l'operazione ..
                    }
                }
                else
                {
                    try
                    {
                        Postazione postazione = session.GetObjectByKey <Postazione>(Program.Postazione.Oid);
                        postazione.SyncTry = DateTime.Now;
                        postazione.Save();
                    }
                    catch (Exception)
                    {
                        // possiamo avere un problema sullo schema del database
                        // ignoriamo e proseguiamo l'operazione ..
                    }

                    Thread newt = new Thread(start);
                    newt.Start(this);
                }
            }
        }
Exemplo n.º 20
0
        public List <Lavorazione> GetForPostazione(Postazione P)
        {
            DbEntity db = new DbEntity();

            SqlCommand cmd = new SqlCommand();

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = String.Format(@"SELECT *
                                            FROM (SELECT Lavorazioni.*, OpzioniLavorazione.opzione, TipoLavorazione.*, Ordini.data AS DataOrdine
		                                            FROM Lavorazioni
		                                            INNER JOIN OpzioniLavorazione ON OpzioniLavorazione.idopz = Lavorazioni.fk_opzione
		                                            INNER JOIN TipoLavorazione ON TipoLavorazione.idtipolav = OpzioniLavorazione.fk_idtipolavorazione
		                                            INNER JOIN Ordini ON Ordini.idordine = Lavorazioni.fkordine 
		                                            WHERE stato = 0 OR (stato = 1 AND fk_postazione = {1})) AS SUBQUERY
                                            WHERE descrizione = '{0}' AND ((stato = 0 AND inizio IS NULL) OR (stato = 1 AND fk_postazione = {1}))
                                            ORDER BY stato DESC, DataOrdine", P.Tipo, P.ID);

            DataTable          dt          = db.eseguiQuery(cmd);
            List <Lavorazione> lavorazioni = new List <Lavorazione>();

            if (dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    //int ID, TipoLavorazione Tipo, string Opzione, int OpzioneID, string Note, DateTime Inizio, DateTime Fine, int Stato
                    Lavorazione newLav = new Lavorazione();
                    newLav.ID         = (int)dr["idlavorazione"];
                    newLav.Tipo       = new TipoLavorazione((int)dr["idtipolav"], (string)dr["descrizione"]);
                    newLav.Opzione    = (string)dr["opzione"];
                    newLav.OpzioneID  = (int)dr["fk_opzione"];
                    newLav.Note       = (string)dr["note"];
                    newLav.Inizio     = dr.IsNull("inizio") ? default(DateTime) : (DateTime)dr["inizio"];
                    newLav.Fine       = dr.IsNull("fine") ? default(DateTime) : (DateTime)dr["fine"];
                    newLav.Stato      = (int)dr["stato"];
                    newLav.DataOrdine = (DateTime)dr["DataOrdine"];
                    lavorazioni.Add(newLav);
                }
            }

            return(lavorazioni);
        }
Exemplo n.º 21
0
        private CriteriaOperator GetPostazioni(CriteriaOperator original)
        {
            GroupOperator op = new GroupOperator(GroupOperatorType.Or);

            for (int i = 0; i < this.checkedListBoxControlPostazioni.CheckedItems.Count; i++)
            {
                Postazione item = (Postazione)this.checkedListBoxControlPostazioni.CheckedItems[i];
                op.Operands.Add(new BinaryOperator("Vendita.Postazione.Ingresso.Oid", item.Ingresso.Oid));
            }

            if (op.Operands.Count == 0)
            {
                return(original);
            }
            else
            {
                return(new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] {
                    op, original
                }));
            }
        }
Exemplo n.º 22
0
        private void RibbonFormDashBoard_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (Program.Postazione != null)
            {
                using (Session session = new Session())
                {
                    Postazione postazione = session.GetObjectByKey <Postazione>(Program.Postazione.Oid);
                    postazione.Utente = "--";
                    postazione.Save();
                }

                using (XtraFormSync form = new XtraFormSync())
                {
                    if (form.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
                    {
                        this.backgroundWorkerPush.CancelAsync();
                        Program.UtenteCollegato = null;
                        Program.Postazione      = null;
                    }
                }
            }
        }
Exemplo n.º 23
0
        private void barButtonItemQuery_ItemClick(object sender, ItemClickEventArgs e)
        {
            if (Parametri())
            {
                DateTime dataagg = Postazione.DataSicuroAggiornamento();

                if (dataagg <= _Fine)
                {
                    XtraMessageBox.Show(string.Format("Attenzione: alcune biglietterie non hanno ancora conferito i dati per il periodo indicato. Data sicuro aggiornamento: {0:d}", Postazione.DataSicuroAggiornamento()), "Attenzione", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

                this.xpCollectionVersamenti.Criteria =
                    new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] {
                    new BinaryOperator("Struttura.Oid", _Struttura.Oid),
                    new BinaryOperator("FinePeriodo", _Inizio, BinaryOperatorType.GreaterOrEqual),
                    new BinaryOperator("FinePeriodo", _Fine, BinaryOperatorType.LessOrEqual)
                });

                this.gridViewVersamenti.BestFitColumns();

                Abilita(true);
            }
        }
Exemplo n.º 24
0
        public Postazione GetByID(int ID)
        {
            DbEntity db = new DbEntity();

            SqlCommand cmd = new SqlCommand();

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = String.Format(@"SELECT Postazioni.*, dbo.TipoPostazione.descrizione
                            FROM Postazioni
                            INNER JOIN TipoPostazione ON TipoPostazione.idtipopost = Postazioni.fk_tipo
                            WHERE idpostazione = {0}", ID);

            DataTable  dt      = db.eseguiQuery(cmd);
            Postazione newPost = null;

            if (dt.Rows.Count > 0)
            {
                newPost      = new Postazione();
                newPost.ID   = (int)dt.Rows[0]["idpostazione"];
                newPost.Tag  = (string)dt.Rows[0]["tag"];
                newPost.Tipo = (string)dt.Rows[0]["descrizione"];
            }
            return(newPost);
        }
Exemplo n.º 25
0
 public ClassNumerazionePostazione(Postazione postazione)
 {
     Postazione = postazione;
     Insiemi    = new List <ClassNumerazioneSet>();
 }
        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);
            }
        }
Exemplo n.º 27
0
        public Panel CustomDiv(Postazione P, int IDUtente, bool Assegnato)
        {
            //  <div class="col" runat="server" id="div_Foratura">
            //        <div class="card text-center">
            //            <asp:ImageButton ID = "btn_Foratura" CssClass="mx-auto d-block width-70" ImageUrl="~/imgs/foratura.png" runat="server" />
            //            <div class="card-title">
            //                <h5>Foratura</h5>
            //            </div>
            //        </div>
            //    </div>

            Panel wrapper = new Panel();

            wrapper.CssClass = "col";

            Panel card = new Panel();

            card.CssClass = "card text-center postazione form-group";

            Image img = new Image();

            img.CssClass = "mx-auto d-block width-70";
            img.ID       = "btn_" + P.ID;
            img.ImageUrl = "~/imgs/ic" + P.Tipo + ".png";

            Panel cardTitle = new Panel();

            cardTitle.CssClass = "card-title";

            Label title = new Label();

            title.Text = P.Tipo.ToUpper() + " - " + P.Tag;

            Button btn = new Button();

            //btn.ID = "btn_" + P.ID + IDUtente;
            btn.Attributes.Add("PID", P.ID.ToString());
            btn.Attributes.Add("UID", IDUtente.ToString());
            //btn.UseSubmitBehavior = true;
            if (Assegnato)
            {
                btn.Click += new EventHandler(btn_Rimuovi_Click);
                //btn.Click += delegate {
                //    btn_Rimuovi_Click(btn, null);
                //};
                btn.CssClass = "btn btn-warning mx-auto form-control";
                btn.Text     = "Rimuovi";
            }
            else
            {
                btn.Click += new EventHandler(btn_Assegna_Click);
                //btn.Click += delegate {
                //    btn_Assegna_Click(btn, null);
                //};
                btn.CssClass = "btn btn-success mx-auto form-control";
                btn.Text     = "Assegna";
            }

            card.Controls.Add(img);
            cardTitle.Controls.Add(title);
            card.Controls.Add(cardTitle);
            card.Controls.Add(btn);
            wrapper.Controls.Add(card);

            return(wrapper);
        }
Exemplo n.º 28
0
        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();
        }
Exemplo n.º 30
0
        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();
            }
        }