예제 #1
0
        public Stampa GetStampa(int id)
        {
            ISession s      = DataLayer.GetSession();
            Stampa   stampa = s.Query <Stampa>().Where(x => x.id == id).Select(p => p).FirstOrDefault();

            return(stampa);
        }
예제 #2
0
        private void CreaStampa(UnitOfWork uow,
                                DateTime inizioVal, DateTime fineVal,
                                Vendita vendita, int qta, decimal totale, List <Ingresso> ingressi, int profilo, Card cardMyFE = null)
        {
            Stampa stampa = new Stampa(uow);

            stampa.Vendita        = vendita;
            stampa.InizioValidita = inizioVal;
            stampa.FineValidita   = fineVal;
            stampa.Quantita       = qta;
            stampa.ImportoTotale  = totale;
            stampa.Save();
            stampa.GeneraBarCode(Program.Postazione, ingressi);
            stampa.StatoStampa = profilo;
            stampa.TipoStampa  = EnumTipoStampa.Standard;
            if (cardMyFE != null)
            {
                stampa.FineValidita = stampa.InizioValidita.AddDays(cardMyFE.Giorni() - 1);
                stampa.TipoStampa   = EnumTipoStampa.Card;
                stampa.Card         = cardMyFE;

                cardMyFE.Stampa = stampa;
                cardMyFE.Status = EnumStatoCard.Emessa;
                cardMyFE.Save();
            }

            Stampa doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode));

            if (doppia != null)
            {
                stampa.GeneraBarCode(Program.Postazione, ingressi);

                doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode));
                if (doppia != null)
                {
                    stampa.GeneraBarCode(Program.Postazione, ingressi);

                    doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode));
                    if (doppia != null)
                    {
                        stampa.GeneraBarCode(Program.Postazione, ingressi);
                    }
                }
            }

            stampa.Save();

            //Dictionary<Guid, RigaStampaIngresso> elencoingressi = new Dictionary<Guid, RigaStampaIngresso>();
            foreach (Ingresso ingresso in ingressi)
            {
                RigaStampaIngresso rigaingresso = new RigaStampaIngresso(uow);
                rigaingresso.Ingresso      = uow.GetObjectByKey <Ingresso>(ingresso.Oid);
                rigaingresso.Stampa        = stampa;
                rigaingresso.TotalePersone = qta;
                rigaingresso.Save();

                //elencoingressi.Add(ingresso.Oid, rigaingresso);
            }
        }
예제 #3
0
        public Stampa Get(int id)
        {
            DataProvider provider = new DataProvider();

            Stampa stampa = provider.GetStampa(id);

            return(stampa);
        }
예제 #4
0
        private void buttonPotvrdi_Click(object sender, EventArgs e)
        {
            try
            {
                ISession s = DataLayer.GetSession();

                if (radioButtonStampa.Checked)
                {
                    Stampa st = new Stampa();
                    st.nazivLista          = textBoxList.Text;
                    st.kolor               = textBoxKolor.Text;
                    st.iznos               = Convert.ToInt32(textBoxIznos.Text);
                    st.pocetakReklamiranja = dateTimePicker1.Value;
                    st.krajReklamiranja    = dateTimePicker2.Value;

                    s.Save(st);
                }
                else if (radioButtonPanoi.Checked)
                {
                    Panoi pn = new Panoi();
                    pn.grad                = textBoxGrad.Text;
                    pn.nazivAgencije       = textBoxAgencija.Text;
                    pn.adresa              = textBoxAdresa.Text;
                    pn.povrsinaPanoa       = Convert.ToInt16(textBoxPovrsina.Text);
                    pn.iznos               = Convert.ToInt32(textBoxIznos.Text);
                    pn.pocetakReklamiranja = dateTimePicker1.Value;
                    pn.krajReklamiranja    = dateTimePicker2.Value;

                    s.Save(pn);
                }
                else if (radioButtonTV.Checked)
                {
                    R_TV rt = new R_TV();
                    rt.nazivStanice        = textBoxTV.Text;
                    rt.trajanje            = Convert.ToInt32(textBoxTrajanje.Text);
                    rt.brojEmitovanja      = Convert.ToInt16(textBoxEmitovanja.Text);
                    rt.iznos               = Convert.ToInt32(textBoxIznos.Text);
                    rt.pocetakReklamiranja = dateTimePicker1.Value;
                    rt.krajReklamiranja    = dateTimePicker2.Value;

                    s.Save(rt);
                }

                s.Flush();
                s.Close();
                MessageBox.Show("Uspesno ste dodali podatke u bazu.");

                g.RefreshGridPanoi();
                g.RefreshGridR_TV();
                g.RefreshGridStampa();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 private void barButtonItemStampaMyFE_ItemClick(object sender, ItemClickEventArgs e)
 {
     if (CoStampa.Count > 0)
     {
         Stampa stampa = CoStampa[0];
         if (stampa != null)
         {
             StampaVenditaOnline(stampa, true);
         }
     }
 }
        private void StampaVenditaOnline(Stampa stampa, bool force)
        {
            if (stampa.Card != null && stampa.Card.VendutaOnline && (!stampa.Card.EmessoBiglietto || force))
            {
                ReportHelper.Print(stampa.Vendita);

                stampa.Card.EmessoBiglietto = true;
                stampa.Card.Save();
                this.unitOfWork1.CommitChanges();
            }
        }
예제 #7
0
        private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            if (this.xpCollection1.Count == 1)
            {
                Stampa stampa = this.xpCollection1[0] as Stampa;

                if (stampa != null)
                {
                    stampa.NumeroStampe++;
                    stampa.Save();
                    this.unitOfWork1.CommitChanges();

                    if (stampa.Quantita == 1)
                    {
                        this.xrLabelTitleRiga1.Text =
                            string.Format("Ingresso ({0:c} {1})", stampa.ImportoTotale, GetDesc(stampa));
                    }
                    else
                    {
                        this.xrLabelTitleRiga1.Text =
                            string.Format("Ingresso {0} pax {1:c}: {2}", stampa.Quantita, stampa.ImportoTotale, GetDesc(stampa));
                    }

                    if (stampa.InizioValidita == stampa.FineValidita)
                    {
                        this.xrLabelTitleRiga2.Text =
                            string.Format("Valido il giorno {0:d}", stampa.InizioValidita);
                    }
                    else
                    {
                        this.xrLabelTitleRiga2.Text =
                            string.Format("Validità dal {0:d} al {1:d}", stampa.InizioValidita, stampa.FineValidita);
                    }

                    string descrizione =
                        string.Format("Emesso da {0} ({1}) il {2}.", stampa.Vendita.Struttura.Descrizione, stampa.CodiceProgressivo, stampa.Vendita.DataContabile.ToShortDateString());

                    if (string.IsNullOrEmpty(stampa.Vendita.CodicePrevent))
                    {
                        descrizione += " Valido per i seguenti ingressi:";
                    }
                    else
                    {
                        descrizione += string.Format(" Valido per i seguenti ingressi (prenotazione {0}):", stampa.Vendita.CodicePrevent);
                    }

                    this.xrLabelInfo1.Text = descrizione;
                }
            }
            else
            {
                throw new Exception("STAMPA is wrong");
            }
        }
        private static RigaStampaIngresso GetElemento(Stampa stampa, Ingresso ingresso)
        {
            // cerca ingresso giusto
            RigaStampaIngresso elemento = null;

            foreach (RigaStampaIngresso item in stampa.RigheStampaIngresso)
            {
                if (item.Ingresso.Oid == ingresso.Oid)
                {
                    elemento = item;
                }
            }
            return(elemento);
        }
        private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            if (this.xpCollection1.Count == 1)
            {
                Stampa stampa = this.xpCollection1[0] as Stampa;

                if (stampa != null)
                {
                    stampa.NumeroStampe++;
                    stampa.Save();
                    this.unitOfWork1.CommitChanges();

                    foreach (XRTableCell cell in this.xrTable1.Rows[0].Cells)
                    {
                        cell.Text = string.Empty;
                    }

                    List <RigaStampaIngresso> sl = new List <RigaStampaIngresso>(stampa.RigheStampaIngresso);
                    sl.Sort((a, b) => a.Ingresso.Descrizione.CompareTo(b.Ingresso.Descrizione));
                    for (int i = 0; i < sl.Count; i++)
                    {
                        this.xrTable1.Rows[0].Cells[i].Text = sl[i].Ingresso.IntestazioneStampa;
                    }
                    foreach (XRTableCell cell in this.xrTable1.Rows[0].Cells)
                    {
                        if (string.IsNullOrEmpty(cell.Text))
                        {
                            cell.Visible = false;
                        }
                    }

                    this.xrLabelTitleRiga1.Text = string.Format("MyFE CARD - {0} days {1:c}", stampa.Card.Giorni(), stampa.ImportoTotale);

                    string descrizione =
                        string.Format("Emesso da {0} il {1:g}. Validità dal {2:d} al {3:d} per i seguenti musei:",
                                      stampa.Vendita.Struttura.Descrizione,
                                      stampa.Vendita.DataOraStampa,
                                      stampa.InizioValidita,
                                      stampa.FineValidita
                                      );

                    this.xrLabelInfo1.Text = descrizione;
                }
            }
            else
            {
                throw new Exception("STAMPA is wrong");
            }
        }
예제 #10
0
 public int UpdateStampa(Stampa stampa)
 {
     try
     {
         ISession s = DataLayer.GetSession();
         s.Update(stampa);
         s.Flush();
         s.Close();
         return(1);
     }
     catch (Exception)
     {
         return(-1);
     }
 }
        private void ImpostaValiditaCard(Stampa stampa)
        {
            if (stampa.Card != null && stampa.Card.Albergo != null && !stampa.EsistonoEntrate() && stampa.InizioValidita != DateTime.Today)
            {
                if (XtraMessageBox.Show(string.Format("La card {0}:{1} risulta NON essere stata ancora usata. Imposto la validità a partire da oggi ?",
                                                      stampa.Card.Codice, stampa.Card.Albergo.RagioneSociale),
                                        "Validità Card", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    stampa.InizioValidita = DateTime.Today;
                    stampa.FineValidita   = DateTime.Today.AddDays(stampa.Card.Giorni());
                    stampa.Save();

                    this.unitOfWork1.CommitChanges();
                }
            }
        }
예제 #12
0
        private string GetDesc(Stampa stampa)
        {
            Vendita vendita = stampa.Vendita;
            int     profilo = stampa.StatoStampa;

            string result1 = string.Empty;
            string result2 = string.Empty;

            foreach (EnumTipologiaUno uno in Enum.GetValues(typeof(EnumTipologiaUno)))
            {
                foreach (RigaVenditaVariante item in vendita.RigheVenditaVariante)
                {
                    if (item.Profilo == profilo || profilo == -1)
                    {
                        if (item.Variante.TipologiaUno == uno)
                        {
                            string def1 = item.Variante.TipologiaUno.ToString();
                            if (!result1.Contains(def1))
                            {
                                result1 += (string.IsNullOrEmpty(result1) ? "" : "-") + def1;
                            }
                        }
                    }
                }
            }

            foreach (EnumTipologiaDue due in Enum.GetValues(typeof(EnumTipologiaDue)))
            {
                foreach (RigaVenditaVariante item in vendita.RigheVenditaVariante)
                {
                    if (item.Profilo == profilo || profilo == -1)
                    {
                        if (item.Variante.TipologiaDue == due)
                        {
                            string def2 = item.Variante.TipologiaDue.ToString();
                            if (!result2.Contains(def2))
                            {
                                result2 += (string.IsNullOrEmpty(result2) ? "" : "-") + def2;
                            }
                        }
                    }
                }
            }

            return(string.Format("{0} {1}", result1, result2));
        }
        private void barButtonItemAnnulla_ItemClick(object sender, ItemClickEventArgs e)
        {
            if (CoStampa.Count > 0)
            {
                Stampa stampa = CoStampa[0];
                if (stampa != null)
                {
                    using (XtraFormDettaglioVendita dettaglio = new XtraFormDettaglioVendita())
                    {
                        dettaglio.Init(stampa.Vendita);
                        if (dettaglio.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            Pulisci();
                        }
                    }
                }
            }

            MoveFocus();
        }
예제 #14
0
        public void popolaLista()
        {
            //svuoto subito la lista
            this.svuotaLista();

            string          query  = " SELECT * FROM Stampa";
            List <string[]> reader = SQLiteManager.eseguiSelect(query);

            if (reader.Count > 0)
            {
                foreach (string[] record in reader)
                {
                    bool     Sesso;
                    String   Nome          = record[1].ToString();
                    String   Cognome       = record[2].ToString();
                    String   date          = record[3].ToString();
                    DateTime DataDiNascita = Convert.ToDateTime(date);
                    String   Email         = record[4].ToString();
                    String   Telefono      = record[5].ToString();
                    String   sex           = record[6].ToString();
                    if (sex.Length == 0)
                    {
                        Sesso = true;
                    }
                    else
                    {
                        Sesso = false;
                    }
                    String earn      = record[7].ToString();
                    int    Stipendio = Convert.ToInt32(earn);
                    Stampa stampa    = new Stampa(Nome, Cognome, DataDiNascita, Email, Telefono, Sesso, Stipendio);
                    String identity  = record[0];
                    stampa.Id = Convert.ToInt32(identity);
                    this.listaStampa.Add(stampa);
                }
            }
        }
예제 #15
0
        public RibbonFormDashBoard()
        {
            InitializeComponent();

            SkinHelper.InitSkinGallery(ribbonGalleryBarItemSkin, true, true);

            CriteriaOperator criteria1 = new GroupOperator(GroupOperatorType.And,
                                                           new CriteriaOperator[] {
                new BinaryOperator("Data", DateTime.Now.Date.AddMonths(-4), BinaryOperatorType.GreaterOrEqual),
                new BinaryOperator("Data", DateTime.Now.Date.AddDays(1), BinaryOperatorType.Less)
            });
            CriteriaOperator criteria2 = new GroupOperator(GroupOperatorType.And,
                                                           new CriteriaOperator[] {
                new BinaryOperator("Data", DateTime.Now.Date.AddMonths(-4), BinaryOperatorType.GreaterOrEqual),
                new BinaryOperator("Autore.Oid", Program.UtenteCollegato.Oid, BinaryOperatorType.Equal)
            });
            CriteriaOperator criteria = new GroupOperator(GroupOperatorType.Or, new CriteriaOperator[] { criteria1, criteria2 });

            this.xpCollectionMessaggi.Criteria = criteria;

            this.xpCollectionPostazioni.Criteria = new BinaryOperator("SyncSuccess", DateTime.Now.AddDays(-100), BinaryOperatorType.GreaterOrEqual);

            //new GroupOperator(GroupOperatorType.Or, new CriteriaOperator[]{
            //new BinaryOperator("Tipologia", EnumTipoMessaggio.MessaggioInformativo),
            //new BinaryOperator("Tipologia", EnumTipoMessaggio.Eliminazione),
            //new BinaryOperator("Tipologia", EnumTipoMessaggio.EliminazioneConPrenotazione),
            //new BinaryOperator("Tipologia", EnumTipoMessaggio.Ristampa)});

            timerMessaggi_Tick(null, null);

            StaticInfo.DataAgg(barStaticItemInfo);

            this.backgroundWorkerPush.RunWorkerAsync();

            try
            {
                this.Text = String.Format("Win Ticket Next ({0})",
                                          Program.UtenteCollegato.FullName);

                string sw = MostraVersione();
                this.barStaticItemInfo1.Caption = sw;
                this.barStaticItemInfo2.Caption = Program.Postazione.Nome;
                this.barStaticItemInfo3.Caption = Program.UtenteCollegato.FullName;

                Program.Postazione.Reload();
                if (Program.Postazione.SoftwareVersion != sw || Program.Postazione.Utente != Program.UtenteCollegato.FullName)
                {
                    Program.Postazione.SoftwareVersion = sw;
                    Program.Postazione.Utente          = Program.UtenteCollegato.FullName;
                    Program.Postazione.Save();
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show("Errore: " + ex.Message, "ERRORE2", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            if (!Program.UtenteCollegato.Autorizzato(Utente.OperazioneRiepiloghi))
            {
                this.barButtonItemPivotRiga.Enabled    = false;
                this.barButtonItemPivotEntrate.Enabled = false;
                this.barButtonItemPivotVendite.Enabled = false;
            }

            if (!Program.UtenteCollegato.Autorizzato(Utente.OperazioneRiepiloghiGenerali))
            {
                this.barButtonItemReport03.Enabled  = false;
                this.barButtonItemReport03b.Enabled = false;
                this.barButtonItemReport06.Enabled  = false;
                this.barButtonItemReport07.Enabled  = false;
                this.barButtonItemReportBv1.Enabled = false;
                this.barButtonItemReportBv2.Enabled = false;
            }

            VisualizzaMessaggi();

            Stampa.SetProgressivoMinimo(this.unitOfWork1, Program.Postazione.Oid);
        }
예제 #16
0
        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);
            }
        }
예제 #18
0
        public int Post(Stampa stamp)
        {
            DataProvider provider = new DataProvider();

            return(provider.AddStampa(stamp));
        }
예제 #19
0
        public int Put(Stampa stampa)
        {
            DataProvider provider = new DataProvider();

            return(provider.UpdateStampa(stampa));
        }
예제 #20
0
        public int Delete(Stampa stampa)
        {
            DataProvider provider = new DataProvider();

            return(provider.RemoveStampa(stampa));
        }
예제 #21
0
 public Stampa_View(Stampa s) : base(s)
 {
     Boja       = s.Boja;
     NazivLista = s.NazivLista;
 }
예제 #22
0
        private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            if (this.xpCollection1.Count == 1)
            {
                Stampa stampa = this.xpCollection1[0] as Stampa;

                if (stampa != null)
                {
                    stampa.NumeroStampe++;
                    stampa.Save();
                    this.unitOfWork1.CommitChanges();

                    foreach (XRTableCell cell in this.xrTable1.Rows[0].Cells)
                    {
                        cell.Text = string.Empty;
                    }

                    List <RigaStampaIngresso> sl = new List <RigaStampaIngresso>(stampa.RigheStampaIngresso);
                    sl.Sort((a, b) => a.Ingresso.Descrizione.CompareTo(b.Ingresso.Descrizione));
                    for (int i = 0; i < sl.Count; i++)
                    {
                        this.xrTable1.Rows[0].Cells[i].Text = sl[i].Ingresso.IntestazioneStampa;
                    }
                    foreach (XRTableCell cell in this.xrTable1.Rows[0].Cells)
                    {
                        if (string.IsNullOrEmpty(cell.Text))
                        {
                            cell.Visible = false;
                        }
                    }

                    if (stampa.Quantita == 1)
                    {
                        this.xrLabelTitleRiga1.Text =
                            string.Format("Ingresso ({0:c} {1})", stampa.ImportoTotale, GetDesc(stampa));
                    }
                    else
                    {
                        this.xrLabelTitleRiga1.Text =
                            string.Format("Ingresso {0} pax {1:c}: {2}", stampa.Quantita, stampa.ImportoTotale, GetDesc(stampa));
                    }

                    string prevendita = (stampa.Vendita.Descrizione ?? "").Contains("PREVENDITA") ? " (apertura serale straordinaria)" : "";
                    if (stampa.InizioValidita == stampa.FineValidita)
                    {
                        this.xrLabelTitleRiga2.Text =
                            string.Format("Valido il giorno {0:d}", stampa.InizioValidita) + prevendita;
                    }
                    else
                    {
                        this.xrLabelTitleRiga2.Text =
                            string.Format("Validità dal {0:d} al {1:d}", stampa.InizioValidita, stampa.FineValidita);
                    }

                    string descrizione =
                        string.Format("Emesso da {0} ({1}) il {2}.", stampa.Vendita.Struttura.Descrizione, stampa.CodiceProgressivo, stampa.Vendita.DataContabile.ToShortDateString());

                    if (string.IsNullOrEmpty(stampa.Vendita.CodicePrevent))
                    {
                        descrizione += " Valido per i seguenti ingressi:";
                    }
                    else
                    {
                        descrizione += string.Format(" Valido per i seguenti ingressi (prenotazione {0}):", stampa.Vendita.CodicePrevent);
                    }

                    this.xrLabelInfo1.Text = descrizione;
                }
            }
            else
            {
                throw new Exception("STAMPA is wrong");
            }
        }
        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();
        }
예제 #24
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);
        }
예제 #25
0
        private static void Print(Stampa stampa)
        {
            if (stampa.TipoStampa == EnumTipoStampa.Standard)
            {
                XtraReportStampa2 report = new XtraReportStampa2();
                report.xpCollection1.Criteria = new BinaryOperator("Oid", stampa.Oid);

                report.ShowPrintMarginsWarning = false;
                report.ShowPrintStatusDialog   = false;

                if (string.IsNullOrEmpty(Program.Postazione.PrinterName))
                {
                    report.ShowPreview();
                }
                else
                {
                    report.Print(Program.Postazione.PrinterName);
                }
            }

            if (stampa.TipoStampa == EnumTipoStampa.Card)
            {
                XtraReportStampaMyFe report = new XtraReportStampaMyFe();
                report.xpCollection1.Criteria = new BinaryOperator("Oid", stampa.Oid);

                report.ShowPrintMarginsWarning = false;
                report.ShowPrintStatusDialog   = false;

                if (string.IsNullOrEmpty(Program.Postazione.PrinterName))
                {
                    report.ShowPreview();
                }
                else
                {
                    report.Print(Program.Postazione.PrinterName);
                }
            }

            if (stampa.TipoStampa == EnumTipoStampa.CardInternet)
            {
                XtraReportStampaMyFeOnline report = new XtraReportStampaMyFeOnline();
                report.xpCollection1.Criteria = new BinaryOperator("Oid", stampa.Oid);

                report.ShowPrintMarginsWarning = false;
                report.ShowPrintStatusDialog   = false;

                if (string.IsNullOrEmpty(Program.Postazione.PrinterName))
                {
                    report.ShowPreview();
                }
                else
                {
                    report.Print(Program.Postazione.PrinterName);
                }
            }

            if (stampa.TipoStampa == EnumTipoStampa.CardAlbergatori)
            {
                XtraReportStampaMyFeAlberghi report = new XtraReportStampaMyFeAlberghi();
                report.xpCollection1.Criteria = new BinaryOperator("Oid", stampa.Oid);

                report.ShowPrintMarginsWarning = false;
                report.ShowPrintStatusDialog   = false;

                if (string.IsNullOrEmpty(Program.Postazione.PrinterName))
                {
                    report.ShowPreview();
                }
                else
                {
                    report.Print(Program.Postazione.PrinterName);
                }
            }
        }
예제 #26
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();
            }
        }
예제 #27
0
        private bool CreaVendita()
        {
            using (UnitOfWork uow = new UnitOfWork())
            {
                Vendita vendita = new Vendita(uow);

                vendita.Incasso         = this.checkEditPos.Checked ? EnumIncasso.Pos : EnumIncasso.Contanti;
                vendita.CodiceLeggibile = Vendita.NuovoCodiceVendita();
                vendita.CodicePrevent   = "";

                vendita.DataContabile = DateTime.Now.Date;
                vendita.DataOraStampa = DateTime.Now;

                vendita.Descrizione = "";

                vendita.Utente        = uow.GetObjectByKey <Utente>(Program.UtenteCollegato.Oid);
                vendita.Postazione    = uow.GetObjectByKey <Postazione>(Program.Postazione.Oid);
                vendita.Struttura     = uow.GetObjectByKey <Struttura>(Program.Postazione.Struttura.Oid);
                vendita.TotalePersone = ElencoCard.Count;
                vendita.TotaleImporto = CalcolaTotale(ElencoCard);
                vendita.Save();

                Percorso per = uow.FindObject <Percorso>(new BinaryOperator("Descrizione", "MyFE"));
                for (int i = 0; i < ElencoCard.Count; i++)
                {
                    Card card = uow.GetObjectByKey <Card>(ElencoCard[i].Oid);

                    Variante v1 = per.GetVarianteMyFe("Com", "C", card.TipologiaCard);
                    Variante v2 = per.GetVarianteMyFe("Pin", "C", card.TipologiaCard);

                    if (v1 == null || v2 == null)
                    //if (v1 == null)
                    {
                        XtraMessageBox.Show("Tariffa per le card mancante", "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return(false);
                    }

                    decimal totale = v1.Prezzo + (v2 != null ? v2.Prezzo : 0);

                    List <Ingresso> ingressi = new List <Ingresso>();
                    ingressi.AddRange(per.Ingressi);

                    RigaVenditaVariante rvv1 = new RigaVenditaVariante(uow);
                    rvv1.PrezzoTotale   = v1.Prezzo;
                    rvv1.PrezzoUnitario = v1.Prezzo;
                    rvv1.Profilo        = i;
                    rvv1.Quantita       = 1;
                    rvv1.Variante       = v1;
                    rvv1.Vendita        = vendita;
                    rvv1.Card           = card;
                    rvv1.Save();

                    if (v2 != null)
                    {
                        RigaVenditaVariante rvv2 = new RigaVenditaVariante(uow);
                        rvv2.PrezzoTotale   = v2.Prezzo;
                        rvv2.PrezzoUnitario = v2.Prezzo;
                        rvv2.Profilo        = i;
                        rvv2.Quantita       = 1;
                        rvv2.Variante       = v2;
                        rvv2.Vendita        = vendita;
                        rvv2.Card           = card;
                        rvv2.Save();
                    }

                    DateTime inizioVal = DateTime.Now.Date;
                    DateTime fineVal   = inizioVal.AddDays(card.Giorni() - 1);

                    Stampa stampa = new Stampa(uow);
                    stampa.Vendita        = vendita;
                    stampa.InizioValidita = inizioVal;
                    stampa.FineValidita   = fineVal;
                    stampa.Quantita       = 1;
                    stampa.ImportoTotale  = totale;
                    stampa.StatoStampa    = i;
                    stampa.TipoStampa     = _Albergo ? EnumTipoStampa.CardAlbergatori : EnumTipoStampa.Card;
                    stampa.Card           = card;
                    stampa.Save();
                    stampa.GeneraBarCode(Program.Postazione, ingressi);

                    card.Status = EnumStatoCard.Emessa;
                    card.Stampa = stampa;
                    if (_Albergo)
                    {
                        card.Albergo = uow.GetObjectByKey <AnagraficaCard>((this.lookUpEditAlbergo.EditValue as AnagraficaCard).Oid);
                    }
                    card.Save();

                    Stampa doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode));
                    if (doppia != null)
                    {
                        stampa.GeneraBarCode(Program.Postazione, ingressi);

                        doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode));
                        if (doppia != null)
                        {
                            stampa.GeneraBarCode(Program.Postazione, ingressi);

                            doppia = uow.FindObject <Stampa>(new BinaryOperator("BarCode", stampa.BarCode));
                            if (doppia != null)
                            {
                                stampa.GeneraBarCode(Program.Postazione, ingressi);
                            }
                        }
                    }

                    stampa.Save();

                    foreach (Ingresso ingresso in per.Ingressi)
                    {
                        RigaStampaIngresso rigaingresso = new RigaStampaIngresso(uow);
                        rigaingresso.Ingresso      = uow.GetObjectByKey <Ingresso>(ingresso.Oid);
                        rigaingresso.Stampa        = stampa;
                        rigaingresso.TotalePersone = 1;
                        rigaingresso.Save();
                    }
                }

                if (!_Albergo)
                {
                    // registra ingressi per QUESTA postazione
                    foreach (Stampa item1 in vendita.Stampe)
                    {
                        foreach (RigaStampaIngresso item2 in item1.RigheStampaIngresso)
                        {
                            if (VarcoPostazione(item2))
                            {
                                Entrata entrata = new Entrata(uow);
                                entrata.DataOraEntrata     = vendita.DataOraStampa;
                                entrata.Quantita           = item2.TotalePersone;
                                entrata.RigaStampaIngresso = item2;
                                entrata.Save();

                                item2.TotaleIngressi = item2.TotalePersone;
                                item2.Save();
                            }
                        }
                    }
                }
                else
                {
                }

                uow.CommitChanges();

                m_Vendita = this._UnitOfWork.GetObjectByKey <Vendita>(vendita.Oid);
            }

            return(true);
        }
 private void AbilitaStampaCardMyFE(Stampa stampa)
 {
     this.barButtonItemStampaMyFE.Enabled = (stampa.Card != null && stampa.Card.VendutaOnline);
 }
        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();
        }