コード例 #1
0
        public SoluzioneIngressiItem(Variante variante, Titolo titolo, int quantita)
        {
            Variante = variante;
            Titolo   = titolo;
            Quantita = quantita;

            m_PrezzoUnitario = Variante.Prezzo;
            m_PrezzoTotale   = PrezzoUnitario * Quantita;
        }
コード例 #2
0
        public SoluzioneIngressiItem(Variante variante)
        {
            Variante = variante;
            Titolo   = null;
            Quantita = 1;

            m_PrezzoUnitario = Variante.Prezzo;
            m_PrezzoTotale   = PrezzoUnitario * Quantita;
        }
コード例 #3
0
        private void lookUpEditVariante_EditValueChanged(object sender, EventArgs e)
        {
            this.lookUpEditTitolo.EditValue = null;

            Variante variante = this.lookUpEditVariante.EditValue as Variante;

            if (variante != null)
            {
                this.lookUpEditTitolo.Properties.DataSource = variante.ElencoTitoli;
            }
        }
コード例 #4
0
        public FormVarianteNuevo(FormProductoNuevo formProductoNuevo, Variante currentVariante)
        {
            InitializeComponent();
            this.formProductoNuevo = formProductoNuevo;
            this.currentVariante   = currentVariante;
            this.currentIDVariante = currentVariante.idVariante;
            this.mostrarDatosModificar();

            // Cambiando al estado modificar
            this.nuevo = false;
        }
コード例 #5
0
 private void crearObjetoSucursal()
 {
     currentVariante = new Variante();
     if (!nuevo)
     {
         currentVariante.idVariante = currentIDVariante;         // Llenar el id categoria cuando este en esdo modificar
     }
     currentVariante.nombreVariante = textNombre.Text;
     currentVariante.estado         = 1;
     currentVariante.esCombo        = chkEsCombo.Checked;
     currentVariante.idProducto     = formProductoNuevo.currentIDProducto;
 }
コード例 #6
0
ファイル: Proceso.cs プロジェクト: gonlh/PGNConverter
        public void Procesar()
        {
            Variante lineaPrincipal = new Variante(1);
            Jugada   primerJugada   = new Jugada(1);


            List <string> wordsList = new List <string>();

            StreamReader sr = new StreamReader(pathArchivo);

            string line  = sr.ReadToEnd();
            var    words = line.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            sr.Close();

            int palabrasProcesadas = CargarVariante(0, words, ref lineaPrincipal, primerJugada);
        }
コード例 #7
0
        private async void executeEliminarVariante()
        {
            // Verificando la existencia de datos en el datagridview
            if (dataGridViewVariante.Rows.Count == 0)
            {
                MessageBox.Show("No hay un registro seleccionado", "Eliminar", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            // Pregunta de seguridad de eliminacion
            DialogResult dialog = MessageBox.Show("¿Está seguro de eliminar este registro?", "Eliminar",
                                                  MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

            if (dialog == DialogResult.No)
            {
                return;
            }


            try
            {
                int index = dataGridViewVariante.CurrentRow.Index;                                             // Identificando la fila actual del datagridview
                currentVariante            = new Variante();                                                   //creando una instancia del objeto categoria
                currentVariante.idVariante = Convert.ToInt32(dataGridViewVariante.Rows[index].Cells[0].Value); // obteniedo el idCategoria del datagridview

                loadState(true);                                                                               // cambiando el estado
                Response response = await varianteModel.eliminar(currentVariante);                             // Eliminando con el webservice correspondiente

                MessageBox.Show(response.msj, "Eliminar", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cargarVariantes(); // recargando el datagridview
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "Eliminar", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            finally
            {
                loadState(false); // cambiando el estado
            }
        }
コード例 #8
0
        private void Tentativo(ProfiloCliente cliente, List <SoluzioneIngressiItem> elencoPercorso, decimal importoPercorso, int indice, List <Ingresso> dafare)
        {
            if (dafare.Count == 0)
            {
                // valida soluzione per bigliettone
                if (SoluzioneValidaPerBigliettone(elencoPercorso))
                {
                    decimal importoTotale   = 0;
                    decimal importoUnitario = 0;

                    // ho trovato una soluzione
                    foreach (SoluzioneIngressiItem item in elencoPercorso)
                    {
                        importoTotale   += item.PrezzoTotale;
                        importoUnitario += item.PrezzoUnitario;
                    }

                    List <Ingresso> visitati = new List <Ingresso>();
                    foreach (SoluzioneIngressiItem variante1 in elencoPercorso)
                    {
                        foreach (Ingresso item in variante1.Variante.Biglietto.Percorso.Ingressi)
                        {
                            if (!visitati.Contains(item))
                            {
                                visitati.Add(item);
                            }
                        }
                    }

                    SoluzioneIngressi sol = new SoluzioneIngressi();

                    sol.Elenco = new List <SoluzioneIngressiItem>();
                    sol.Elenco.AddRange(elencoPercorso);

                    sol.NumeroIngressi  = visitati.Count;
                    sol.NumeroPercorsi  = elencoPercorso.Count;
                    sol.ImportoTotale   = importoTotale;
                    sol.ImportoUnitario = importoUnitario;
                    sol.NumeroPersone   = cliente.NumeroPersone;

                    cliente.ElencoSoluzioni.AggiungiSoluzioneSeNonDuplicata(sol);
                }
            }
            else
            {
                if (cliente.OttimizzaCalcolo && cliente.ElencoSoluzioni.SogliaImporto >= 0)
                {
                    // inutile proseguire ulteriormente
                    if (importoPercorso > cliente.ElencoSoluzioni.SogliaImporto)
                    {
                        return;
                    }
                }

                for (int newIndice = indice + 1; newIndice < m_TutteLeVarianti.Count; newIndice++)
                {
                    Titolo   titolo   = null;
                    Variante variante = m_TutteLeVarianti[newIndice];

                    if (variante.TipologiaTre == EnumTipologiaTre.CardMyFE)
                    {
                        // CARD MY-FE con prezzo sdoppiato -C]
                        if (variante.ComprendeAlmenoUno(dafare) && variante.GiorniCardMyFe() == m_GestoreProfili.TipologiaMyFe && variante.Note.Contains("-C]"))
                        {
                            List <Ingresso> davisitare = new List <Ingresso>(dafare);
                            foreach (Ingresso ingresso in variante.Biglietto.Percorso.Ingressi)
                            {
                                davisitare.Remove(ingresso);
                            }

                            decimal prezzo = 0;
                            SoluzioneIngressiItem tentativo           = null;
                            SoluzioneIngressiItem tentativoSecondario = null;

                            tentativo = new SoluzioneIngressiItem(variante, null, cliente.NumeroPersone);
                            prezzo    = tentativo.PrezzoTotale;

                            tentativoSecondario = new SoluzioneIngressiItem(variante.PrezzoAttuale.PrezzoRidotto, null, cliente.NumeroPersone);
                            prezzo += tentativoSecondario.PrezzoTotale;

                            elencoPercorso.Add(tentativo);
                            elencoPercorso.Add(tentativoSecondario);

                            Tentativo(cliente, elencoPercorso, importoPercorso + prezzo, newIndice, davisitare);

                            elencoPercorso.Remove(tentativoSecondario);
                            elencoPercorso.Remove(tentativo);
                        }

                        // campo note che finisce con -B è solo COMUNE
                        if (variante.ComprendeAlmenoUno(dafare) && variante.GiorniCardMyFe() == m_GestoreProfili.TipologiaMyFe && variante.Note.Contains("-B]"))
                        {
                            List <Ingresso> davisitare = new List <Ingresso>(dafare);
                            foreach (Ingresso ingresso in variante.Biglietto.Percorso.Ingressi)
                            {
                                davisitare.Remove(ingresso);
                            }

                            decimal prezzo = 0;
                            SoluzioneIngressiItem tentativo = null;
                            //SoluzioneIngressiItem tentativoSecondario = null;

                            tentativo = new SoluzioneIngressiItem(variante, null, cliente.NumeroPersone);
                            prezzo    = tentativo.PrezzoTotale;

                            //tentativoSecondario = new SoluzioneIngressiItem(variante.PrezzoAttuale.PrezzoRidotto, null, cliente.NumeroPersone);
                            //prezzo += tentativoSecondario.PrezzoTotale;

                            elencoPercorso.Add(tentativo);
                            //elencoPercorso.Add(tentativoSecondario);

                            Tentativo(cliente, elencoPercorso, importoPercorso + prezzo, newIndice, davisitare);

                            //elencoPercorso.Remove(tentativoSecondario);
                            elencoPercorso.Remove(tentativo);
                        }
                    }
                    else
                    {
                        if (variante.HoTitoloPerComprarlo(cliente.ElencoTitoli, cliente.ElencoCodiciSconto, cliente.NumeroPersone, cliente.Scuola, out titolo))
                        {
                            if (variante.ComprendeAlmenoUno(dafare))
                            {
                                List <Ingresso> davisitare = new List <Ingresso>(dafare);
                                foreach (Ingresso ingresso in variante.Biglietto.Percorso.Ingressi)
                                {
                                    davisitare.Remove(ingresso);
                                }

                                decimal prezzo = 0;
                                SoluzioneIngressiItem tentativo           = null;
                                SoluzioneIngressiItem tentativoSecondario = null;
                                if (titolo != null && titolo.TitoloPrincipale != null && titolo.TitoloSecondario != null)
                                {
                                    // GESTIONE TITOLI SECONDARI (solo il primo e' titolare, gli altri accompagnatori)
                                    tentativo = new SoluzioneIngressiItem(variante, titolo.TitoloPrincipale, 1);
                                    prezzo    = tentativo.PrezzoTotale;

                                    if (cliente.NumeroPersone > 1)
                                    {
                                        tentativoSecondario = new SoluzioneIngressiItem(variante, titolo.TitoloSecondario, cliente.NumeroPersone - 1);
                                        prezzo += tentativoSecondario.PrezzoTotale;
                                    }
                                }
                                else
                                {
                                    if (variante.PrezzoAttuale.UnaRiduzioneOgni > 0 && variante.PrezzoAttuale.PrezzoRidotto != null)
                                    {
                                        int numRidotti = cliente.NumeroPersone / variante.PrezzoAttuale.UnaRiduzioneOgni;
                                        int numInteri  = cliente.NumeroPersone - numRidotti;

                                        tentativo = new SoluzioneIngressiItem(variante, titolo, numInteri);
                                        prezzo    = tentativo.PrezzoTotale;

                                        if (numRidotti > 0)
                                        {
                                            tentativoSecondario = new SoluzioneIngressiItem(variante.PrezzoAttuale.PrezzoRidotto, titolo, numRidotti);
                                            prezzo += tentativoSecondario.PrezzoTotale;
                                        }
                                    }
                                    else
                                    {
                                        tentativo = new SoluzioneIngressiItem(variante, titolo, cliente.NumeroPersone);
                                        prezzo    = tentativo.PrezzoTotale;
                                    }
                                }

                                elencoPercorso.Add(tentativo);
                                if (tentativoSecondario != null)
                                {
                                    elencoPercorso.Add(tentativoSecondario);
                                    foreach (Ingresso ingresso in tentativoSecondario.Variante.Biglietto.Percorso.Ingressi)
                                    {
                                        davisitare.Remove(ingresso);
                                    }
                                }

                                Tentativo(cliente, elencoPercorso, importoPercorso + prezzo, newIndice, davisitare);

                                if (tentativoSecondario != null)
                                {
                                    elencoPercorso.Remove(tentativoSecondario);
                                }
                                elencoPercorso.Remove(tentativo);
                            }
                        }
                    }
                }
            }
        }
コード例 #9
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);
        }
コード例 #10
0
        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);
            }
        }
コード例 #11
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);
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: ComuneFerrara/WinTicket
        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();
            }
        }
コード例 #13
0
 public ProductBoxViewModel(Variante item)
 {
     _TypeBox      = TypeBox.VARIANTE;
     this.variante = item;
 }
コード例 #14
0
ファイル: Proceso.cs プロジェクト: gonlh/PGNConverter
        private int CargarVariante(int posicionArray, string[] words, ref Variante variante, Jugada jugada)
        {
            var word = words[posicionArray];


            if (EsJugadaBlanca(word))
            {
                jugada.JugadaBlanco = ExtraerJugada(word);
                jugada.Estado       = Estado.JugadaBlancaCargada;
            }
            else if (EsJugadaNegra(word))
            {
                jugada.JugadaNegro = ExtraerJugada(word);
                jugada.Estado      = Estado.JugadaNegraCargada;
                variante.Jugadas.Add(jugada);
            }
            else if (EsComentario(word))
            {
                switch (jugada.Estado)
                {
                case Estado.JugadaBlancaSinCargar:
                {
                    jugada.ComentarioPrevioBlanco += " " + word;
                    break;
                }

                case Estado.JugadaBlancaCargada:
                {
                    jugada.ComentarioPosteriorBlanco += " " + word;
                    break;
                }

                case Estado.JugadaNegraCargada:
                {
                    jugada.ComentarioPosteriorNegro += " " + word;
                    break;
                }
                }
            }

            if (AbreVariante(word, jugada, variante.NumeroJugadaInicio))
            {
                Variante nuevaVariante    = new  Variante(jugada.NumeroJugada);
                Jugada   jugadaDeVariante = new Jugada(jugada.NumeroJugada);
                jugadaDeVariante.Estado = jugada.Estado;
                words[posicionArray]    = EliminarAbridorVariante(word);

                int posicionesAvanzadas = CargarVariante(posicionArray, words, ref nuevaVariante, jugadaDeVariante);
                if (jugada.Estado == Estado.JugadaBlancaCargada)
                {
                    if (jugada.VariantesBlanco != null)
                    {
                        jugada.VariantesBlanco.Add(nuevaVariante);
                    }
                }
                posicionArray = posicionesAvanzadas;
            }
            if (CierraVariante(word))
            {
                posicionArray++;
                return(posicionArray);
            }

            if (jugada.Estado == Estado.JugadaNegraCargada)
            {
                return(CargarVariante(posicionArray++, words, ref variante, new Jugada(jugada.NumeroJugada + 1)));
            }
            else
            {
                return(CargarVariante(posicionArray++, words, ref variante, jugada));
            }
        }