Exemplo n.º 1
0
 private void ButtonExit_Click(object sender, EventArgs e)
 {
     string puertoHasta = lbResultado.Items[lbResultado.Items.Count - 1].ToString();
     int longDesde = puertoHasta.LastIndexOf("HASTA: ") + 7;
     int longHasta = puertoHasta.Length - longDesde;
     List<Filtro> filtros = new List<Filtro>();
     filtros.Add(FiltroFactory.Exacto("descripcion", puertoHasta.Substring(longDesde, longHasta)));
     Dictionary<string, List<object>> resul = conexion.ConsultaPlana(Tabla.Puerto, new List<string>(new string[] { "ID" }), filtros);
     int IdPuertoDest = Convert.ToInt32(resul["ID"][0]);
     Dictionary<string, object> data = new Dictionary<string, object>();
     data["puerto_destino_id"] = IdPuertoDest;
     string puertoDesde = lbResultado.Items[0].ToString();
     longDesde = 7;
     longHasta = puertoDesde.LastIndexOf(';') - longDesde;
     filtros[0] = FiltroFactory.Exacto("descripcion", puertoDesde.Substring(longDesde, longHasta));
     resul = conexion.ConsultaPlana(Tabla.Puerto, new List<string>(new string[] { "ID" }), filtros);
     data["puerto_origen_id"] = resul["ID"][0];
     Transaccion tr = conexion.IniciarTransaccion();
     int PkRecorrido = tr.Insertar(Tabla.Recorrido, data);
     foreach (int cod in IDsInsert)
         tr.InsertarTablaIntermedia(Tabla.Tramo_X_Recorrido, "id_recorrido", "id_tramo", PkRecorrido, cod);
     tr.Commit();
     DialogResult = DialogResult.OK;
 }
Exemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.camposVacios())
            {
                MessageBox.Show("Se han encontrado campos vacios. Por favor completelos e intentelo nuevamente", "Campos vacios", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                List <Filtro> filtros2 = new List <Filtro>();
                filtros2.Add(FiltroFactory.Exacto("codigo", textBox1.Text));
                filtros2.Add(FiltroFactory.Exacto("pagado", "0"));
                List <string> colum = new List <string>();
                colum.Add("ID");
                colum.Add("cliente_id");
                colum.Add("fecha_de_reserva");
                colum.Add("cabina_id");
                colum.Add("precio");
                Dictionary <string, List <object> > resulta3 = conexion.ConsultaPlana(Tabla.Reserva, colum, filtros2);
                if (resulta3["precio"].Count == 0)
                {
                    MessageBox.Show("No se encontro reserva con ese código", "Error ID Reserva", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                var fkPago = 1;
                if (cmbMetodoDePago.Text != "EFECTIVO")
                {
                    List <Filtro> filtros = new List <Filtro>();
                    filtros.Add(FiltroFactory.Exacto("tipo", cmbMetodoDePago.Text));
                    filtros.Add(FiltroFactory.Exacto("numero_de_tarjeta", txtNumeroDeTarjerta.Text));

                    List <string> col = new List <string>();
                    col.Add("ID");

                    Dictionary <string, List <object> > resul = conexion.ConsultaPlana(Tabla.MedioDePago, col, filtros);

                    if (resul["ID"].Count > 0)
                    {
                        fkPago = int.Parse(resul["ID"][0].ToString());
                    }
                    else
                    {
                        Dictionary <string, object> campos = new Dictionary <string, object> {
                            { "tipo", cmbMetodoDePago.Text }, { "numero_de_tarjeta", txtNumeroDeTarjerta.Text }
                        };
                        fkPago = conexion.Insertar(Tabla.MedioDePago, campos);
                    }
                }

                DateTime fecha = Convert.ToDateTime(resulta3["fecha_de_reserva"][0]);
                TimeSpan dif   = ConfigurationHelper.FechaActual.Subtract(fecha);
                if (dif.Days > 3)
                {
                    MessageBox.Show("Esa reserva se encuentra vencida", "Reserva vencida", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                Dictionary <string, object> valores = new Dictionary <string, object>();
                valores["cliente_id"]       = resulta3["cliente_id"][0];
                valores["fecha_de_compra"]  = resulta3["fecha_de_reserva"][0];
                valores["cabina_id"]        = resulta3["cabina_id"][0];
                valores["medio_de_pago_id"] = fkPago;
                valores["precio"]           = resulta3["precio"][0];
                if (MessageBox.Show("El precio total es de " + resulta3["precio"][0].ToString() + "\n¿Desea continuar?", "confirmar", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    if (conexion.Insertar(Tabla.Pasaje, valores) != -1)
                    {
                        conexion.PagarReserva(int.Parse(textBox1.Text), Tabla.Reserva);

                        MessageBox.Show("Se pago el pasaje exitosamente", "Pago exitoso", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        txtNumeroDeTarjerta.Text = string.Empty;
                        cmbCantidadDeCuotas.Text = string.Empty;
                        cmbMetodoDePago.Text     = string.Empty;
                        textBox1.Text            = string.Empty;
                    }
                    else
                    {
                        MessageBox.Show("Hubo un error, intente de nuevo más tarde", "Error rancio", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Se cancelo la operacion", "Operacion", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
        private void BtnConfirmar_Click(object sender, EventArgs e)
        {
            String mensaje = ValidarCampos();

            if (mensaje == "")
            {
                // Se obtienen los datos que se van a insertar
                Dictionary <string, object> datosMetodoDePago = ObtenerDatosMetodoDePago();
                Dictionary <string, object> datosViaje        = ObtenerDatosViaje();
                string tipo = "";

                // Se Inserta el Cliente en caso de que no exista
                if (ClienteComprador.Id == -1)
                {
                    Dictionary <string, object> datos = new Dictionary <string, object>();

                    datos["fecha_nacimiento"] = ClienteComprador.FechaDeNacimiento;
                    datos["telefono"]         = ClienteComprador.Telefono;
                    datos["nombre"]           = ClienteComprador.Nombre;
                    datos["apellido"]         = ClienteComprador.Apellido;
                    datos["DNI"]       = ClienteComprador.Dni;
                    datos["direccion"] = ClienteComprador.Direccion;
                    datos["mail"]      = ClienteComprador.Mail;

                    ClienteComprador.Id = conexion.Insertar(Tabla.Cliente, datos);
                }

                int           idMetodoDePago = 0;
                List <Filtro> filtros        = new List <Filtro>();

                if (TipoDeOperacion == "COMPRA" && MedioDePago.Tipo != "EFECTIVO")
                {
                    filtros.Add(FiltroFactory.Exacto("tipo", MedioDePago.Tipo));
                    filtros.Add(FiltroFactory.Exacto("numero_de_tarjeta", MedioDePago.NumeroTarjeta.ToString()));

                    if (!(conexion.ExisteRegistro(Tabla.MedioDePago, new List <string>(new string[] { "ID" }), filtros)))
                    {
                        // Se inserta metodo de pago
                        idMetodoDePago = conexion.Insertar(Tabla.MedioDePago, datosMetodoDePago);
                    }
                    else
                    {
                        Dictionary <string, List <object> > tipoCabina = conexion.ConsultaPlana(Tabla.MedioDePago, new List <string>(new string[] { "ID" }), filtros);

                        idMetodoDePago = Convert.ToInt32(tipoCabina["ID"].First());
                    }
                }

                if (TipoDeOperacion == "COMPRA")
                {
                    idMetodoDePago = 1;
                }


                // Se suma al viaje elegido por el usuario la cantidad de pasajes vendidos
                conexion.Modificar(ViajeElegido.Id, Tabla.Viaje, datosViaje);

                // Se marcan a las cabinas como ocupada y se insertan las compras/reservas
                for (int i = 0; i < CantidadDePasajes; i++)
                {
                    int idCabina = ObtenerIdCabina();
                    int nroOperacion;
                    Dictionary <string, object> datosOperacion = ObtenerDatosOperacion(idCabina);
                    datosOperacion["cliente_id"] = ClienteComprador.Id;

                    if (TipoDeOperacion == "COMPRA")
                    {
                        // Se inserta una compra
                        nroOperacion = NumerosOperacion[i];

                        datosOperacion["medio_de_pago_id"] = idMetodoDePago;
                        datosOperacion["fecha_de_compra"]  = FrbaCrucero.ConfigurationHelper.FechaActual;
                        datosOperacion["codigo"]           = nroOperacion;

                        conexion.Insertar(Tabla.Pasaje, datosOperacion);
                        tipo = "compra";
                    }
                    else
                    {
                        // Se inserta una reserva
                        nroOperacion = NumerosOperacion[0];

                        datosOperacion["fecha_de_reserva"] = FrbaCrucero.ConfigurationHelper.FechaActual;
                        datosOperacion["codigo"]           = nroOperacion;

                        conexion.Insertar(Tabla.Reserva, datosOperacion);
                        tipo = "reserva";
                    }

                    // Se marca a la cabina como ocupada
                    Dictionary <string, object> datosCabina = ObtenerDatosCabina();
                    conexion.Modificar(idCabina, Tabla.Cabina, datosCabina);
                }

                MessageBox.Show("Se ha hecho la " + tipo + " correctamente!\n" + "Gracias por su " + tipo + "\n", "Confirmación");
                if (tipo == "reserva")
                {
                    MessageBox.Show("Su codigo de reserva es " + NumerosOperacion[0]);
                }
                DialogResult = DialogResult.OK;
            }
            else
            {
                MessageBox.Show(mensaje, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 4
0
        private String ValidarEsteDisponibleCrucero(string resultado)
        {
            if (resultado == "")
            {
                // EL CRUCERO ESTA DE BAJA DEFINITIVA
                List <Filtro> filtros = new List <Filtro>();
                filtros.Add(FiltroFactory.Exacto("ID", txtCrucero.Text.ToString()));
                List <string> columnasFechaBajaDefinitiva = new List <string>();
                columnasFechaBajaDefinitiva.Add("fecha_baja_definitiva");

                Dictionary <string, List <object> > fechaBajaDefinitiva = conexion.ConsultaPlana(Tabla.Crucero, columnasFechaBajaDefinitiva, filtros);

                if (!Convert.IsDBNull(fechaBajaDefinitiva["fecha_baja_definitiva"].First()))
                {
                    if (Convert.ToDateTime(fechaBajaDefinitiva["fecha_baja_definitiva"].First()) < ViajeAGenerar.Fecha_Fin_Estimada)
                    {
                        return("El crucero está de baja de forma definitiva en el rango de fechas que eligió.\n");
                    }
                }


                // EL CRUCERO NO EMPEZO A INICIAR SU SERVICIO
                List <string> columnasFechaDeInicioServicio = new List <string>();
                columnasFechaDeInicioServicio.Add("fecha_de_alta");

                Dictionary <string, List <object> > fechaDeInicioServicio = conexion.ConsultaPlana(Tabla.Crucero, columnasFechaDeInicioServicio, filtros);

                if (!Convert.IsDBNull(fechaDeInicioServicio["fecha_de_alta"].First()))
                {
                    if (Convert.ToDateTime(fechaDeInicioServicio["fecha_de_alta"].First()) > ViajeAGenerar.FechaInicio)
                    {
                        return("El crucero no empezó a iniciar su servicio en rango de fechas que eligió.\n");
                    }
                }


                // EL CRUCERO ESTA DE BAJA EN RANGO DE FECHAS
                List <Filtro> filtrosFechasBajas = new List <Filtro>();
                filtrosFechasBajas.Add(FiltroFactory.Exacto("id_Crucero", txtCrucero.Text.ToString()));

                List <string> campos = new List <string>();
                campos.Add("fecha_reinicio_servicio");
                campos.Add("fecha_fuera_de_servicio");

                Dictionary <string, List <object> > fechasFueraServicio = conexion.ConsultaPlana(Tabla.Fuera_Servicio, campos, filtrosFechasBajas);

                if (fechasFueraServicio[campos[0]].Count > 0 || fechasFueraServicio[campos[1]].Count > 0)
                {
                    if (!(Convert.IsDBNull(fechasFueraServicio["fecha_reinicio_servicio"].First()) || Convert.IsDBNull(fechasFueraServicio["fecha_fuera_de_servicio"].First())))
                    {
                        for (int i = 0; i < fechasFueraServicio["fecha_reinicio_servicio"].Count(); i++)
                        {
                            if (!(
                                    (Convert.ToDateTime(fechasFueraServicio["fecha_reinicio_servicio"][i]) <= ViajeAGenerar.FechaInicio &&
                                     Convert.ToDateTime(fechasFueraServicio["fecha_fuera_de_servicio"][i]) < ViajeAGenerar.FechaInicio)
                                    ||
                                    (Convert.ToDateTime(fechasFueraServicio["fecha_fuera_de_servicio"][i]) > ViajeAGenerar.Fecha_Fin_Estimada &&
                                     Convert.ToDateTime(fechasFueraServicio["fecha_reinicio_servicio"][i]) > ViajeAGenerar.Fecha_Fin_Estimada)))
                            {
                                return("El crucero está de baja en el rango de fechas que eligió.\n");
                            }
                        }
                    }
                }


                // ESTA EL CRUCERO OCUPADO EN OTRO VIAJE EN LAS FECHAS ELEGIDAS
                List <Filtro> filtrosCruceroEnViaje = new List <Filtro>();
                filtrosCruceroEnViaje.Add(FiltroFactory.Exacto("crucero_id", txtCrucero.Text.ToString()));

                List <string> camposViajes = new List <string>();
                camposViajes.Add("id_viaje");
                camposViajes.Add("fecha_inicio");
                camposViajes.Add("fecha_fin_estimada");

                Dictionary <string, List <object> > viajesConCrucero = conexion.ConsultaPlana(Tabla.ViajesConCrucero, camposViajes, filtrosCruceroEnViaje);

                int cantidadDeViajesConCrucero = viajesConCrucero["id_viaje"].Count();
                for (int i = 0; i < cantidadDeViajesConCrucero; i++)
                {
                    if (!((Convert.ToDateTime(viajesConCrucero["fecha_inicio"][i]) <= ViajeAGenerar.FechaInicio &&
                           Convert.ToDateTime(viajesConCrucero["fecha_fin_estimada"][i]) <= ViajeAGenerar.FechaInicio) ||
                          (Convert.ToDateTime(viajesConCrucero["fecha_inicio"][i]) >= ViajeAGenerar.Fecha_Fin_Estimada &&
                           Convert.ToDateTime(viajesConCrucero["fecha_fin_estimada"][i]) >= ViajeAGenerar.Fecha_Fin_Estimada)))
                    {
                        return("El crucero está ocupado en otro viaje en el rango de fechas que eligió.\n");
                    }
                }

                // EL CRUCERO ESTA DISPONIBLE
                return("");
            }
            return("");
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.camposVacios())
            {
                MessageBox.Show("Se han encontrado campos vacios. Por favor completelos e intentelo nuevamente", "Campos vacios", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (this.identRepetido())
            {
                MessageBox.Show("Ya existe un crucero con ese identificador", "Identificador existente", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                // Extraigo fabricante
                Filtro filtroNombre     = FiltroFactory.Exacto("nombre", comboBox2.Text);
                var    returnFabricante = conexion.ConsultaPlana(Tabla.Fabricante, new List <string> {
                    "id"
                }, new List <Filtro> {
                    filtroNombre
                });
                var id = returnFabricante["id"][0];

                Transaccion tr = conexion.IniciarTransaccion();

                Dictionary <string, object> crucero = new Dictionary <string, object>();
                crucero.Add("modelo", textBox1.Text);
                crucero.Add("fabricante_id", id);
                crucero.Add("identificador", textBox2.Text);
                crucero.Add("baja_fuera_de_servicio", false);
                crucero.Add("baja_vida_util", false);
                crucero.Add("fecha_de_alta", ConfigurationHelper.FechaActual);

                int pkCrucero = tr.Insertar(Tabla.Crucero, crucero);

                Dictionary <string, object> piso = new Dictionary <string, object>();

                for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    var row = dataGridView1.Rows[i];

                    piso["Nro_piso"]   = row.Cells["nroPiso"].Value;
                    piso["id_crucero"] = pkCrucero;
                    piso["id_tipo"]    = row.Cells["tipoPiso"].Value.ToString();

                    var tipo = row.Cells["tipoPiso"].Value.ToString();

                    Filtro filtroTipo = FiltroFactory.Exacto("tipo", tipo);

                    var returnAsqueroso = conexion.ConsultaPlana(Tabla.Tipo, new List <string>()
                    {
                        "ID"
                    }, new List <Filtro> {
                        filtroTipo
                    });

                    piso["id_tipo"] = returnAsqueroso["ID"][0];

                    piso["cant_cabina"] = row.Cells["cantCabinasPiso"].Value;

                    tr.Insertar(Tabla.Piso, piso);
                }

                tr.Commit();

                MessageBox.Show("Crucero dado de alta exitosamente. Felicidades :D", "Crucero creado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DialogResult = DialogResult.OK;
            }
        }