private void btnComprar_Click(object sender, EventArgs e)
        {
            // your code
            int kgs = chkEncomienda.Checked ? Convert.ToInt32(txtKgsEncomienda.Text) : 0;
            int pasajes = chkPasajes.Checked ? Convert.ToInt32(txtCantPasajes.Text) : 0;

            if (kgs + pasajes > 0)
            {
                int pasajes_restantes = Convert.ToInt32(dgvViajes.SelectedRows[0].Cells[3].Value);
                int kgs_restantes = Convert.ToInt32(dgvViajes.SelectedRows[0].Cells[2].Value);
                if (kgs > kgs_restantes || pasajes > pasajes_restantes)
                    MessageBox.Show("La cantidad ingresada excede la cantidad disponible");
                else
                {
                    Viaje viaje = new ViajeDAO().FindById(Convert.ToInt32(dgvViajes.SelectedRows[0].Cells[0].Value));
                    DetalleCompra form = new DetalleCompra(kgs, pasajes, viaje);
                    try
                    {
                        form.Show();
                        this.Hide();
                    }
                    catch
                    {
                        DataBase.GetInstance().Transaccion_Rollback();
                        this.Show();
                        MessageBox.Show("Ha ocurrido un error. Compra cancelada.");
                    }

                }
            }
            else MessageBox.Show("Debe ingresar una cantidad valida de pasajes y/o encomiendas");
        }
 private void btnBuscar_Click(object sender, EventArgs e)
 {
     bool error1 = dtpFechaViaje.Value.Date < DateTime.Now.Date;
     bool error2 = cmbDestino2.SelectedValue == cmbOrigen.SelectedValue;
     if (error1)
         MessageBox.Show("Fecha incorrecta");
     else if (error2)
         MessageBox.Show("Las ciudades origen y destino no pueden coincidir");
     else
     {
         List<Viaje> resultados = new ViajeDAO().Buscar(dtpFechaViaje.Value.Date, (Ciudad)cmbOrigen.SelectedItem, (Ciudad)cmbDestino2.SelectedItem);
        // List<Viaje> resultados = new ViajeDAO().Buscar(Convert.ToDateTime("2016-02-01 01:00:00.000"), new CiudadDAO().Ciudad_FindById(21), new CiudadDAO().Ciudad_FindById(3));
         dgvViajes.DataSource = DominioDataSet.Viaje_DataSet(resultados).Tables[0];
         dgvViajes.Columns["Salida"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
         dgvViajes.Visible = true;
         pnlContenido.Visible = resultados.Count > 0;
     }
 }
        private void btn_registrar_llegada_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(txt_matricula.Text))
            {
                error = error + "Falta completar el campo Matricula Aeronave.\n";
            }

            if (ciudades_origen_comboBox.SelectedItem == null)
            {
                error = error + "Falta completar el campo Aeropuerto Origen.\n";
            }

            if (ciudad_llegada_comboBox1.SelectedItem == null)
            {
                error = error + "Falta completar el campo Aeropuerto Llegada.\n";
            }

            if(clk_llegada_estimada1.Value.Day > DateTime.Now.Day){
               error = error + "No puede ser una fecha posterior al dia de hoy.\n";
            }

            Ciudad origen = (Ciudad)ciudades_origen_comboBox.SelectedItem;
            Ciudad destino = (Ciudad)ciudad_llegada_comboBox1.SelectedItem;

            if (origen == destino && ciudades_origen_comboBox.SelectedItem != null && ciudad_llegada_comboBox1.SelectedItem != null)
            {
                error = error + "Aeropuerto origen y aeropuerto llegada no pueden ser los mismos.\n";
            }

            if (error != "")
            {
                MessageBox.Show(error);
                error = "";
                return;
            }

            int resultado = new ViajeDAO().Resultado_Viaje(aeronave_id, origen.Id, destino.Id, Convert.ToDateTime(clk_llegada_estimada1.Text));

            if (resultado == 1)
            {
                int id_viaje = new ViajeDAO().Obtener_id_del_vuelo(aeronave_id, origen.Id, destino.Id, Convert.ToDateTime(clk_llegada_estimada1.Text));
                new ViajeDAO().Registrar_Viaje(id_viaje);
                error = error + "Llego correctamente a su destino.\n";
                error = error + "Fecha llegada es " + Convert.ToDateTime(clk_llegada_estimada1.Text).ToString();
             }
            if (resultado == 2)
            {
                int id_viaje = new ViajeDAO().Obtener_id_del_vuelo(aeronave_id, origen.Id, destino.Id, Convert.ToDateTime(clk_llegada_estimada1.Text));
                new ViajeDAO().Registrar_Viaje(id_viaje);
                error = error + "Dicha Aeronave NO cumplio con su Ruta.\n";
                error = error + "Fecha llegada es " + Convert.ToDateTime(clk_llegada_estimada1.Text).ToString();
             }

            if (resultado == 3)
            {
                error = error + "Dicha Aeronave NO realizo viajes para registrar entre dichas ciudades con dicho horario de llegada a destino.\n";

            }

            if (error != "")
            {
                MessageBox.Show(error);
                error = "";
            }

            AerolineaFrba.Main form = new AerolineaFrba.Main();
            this.Hide();
            form.Show();
        }
        public static DataSet Viaje_DataSet(List<Viaje> lista)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Id");
            dt.Columns.Add("Salida");
            dt.Columns.Add("Kgs disponibles");
            dt.Columns.Add("Pasajes disponibles");
            dt.Columns.Add("Tipo Servicio");
            dt.Columns.Add("Precio Base KG");
            dt.Columns.Add("Precio Base Pasaje");

            ViajeDAO viaje_dao = new ViajeDAO();
            ButacaDAO butaca_dao = new ButacaDAO();

            foreach (Viaje viaje in lista)
            {
                dt.Rows.Add(viaje.Id, viaje.Salida.ToString("HH:mm"), viaje.Aeronave.Kg_disponibles - viaje_dao.ObtenerKgsTransportados(viaje.Id) , butaca_dao.ObtenerLibres(viaje.Id).Count ,viaje.Ruta.Tipo_servicio.Nombre, viaje.Ruta.Precio_baseKG, viaje.Ruta.Precio_basePasaje);
            }
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }