public Modificacion(Aeronave seleccionado)
 {
     InitializeComponent();
     txt_cant_asientos.Text = seleccionado.Cantidad_Asientos.ToString();
     txt_kgs_disp.Text = seleccionado.Kg_disponibles.ToString();
     txt_matricula.Text = seleccionado.Matricula;
     txt_modelo.Text = seleccionado.Modelo;
     fabricantes = new List<Fabricante>();
     servicios = new List<Servicio>();
     CargarCombos();
     cmb_fabricante.SelectedIndex=seleccionado.Fabricante.Id-1;
     cmb_servicio.SelectedIndex = seleccionado.Servicio.Id-1;
 }
        private void btn_modificar_Click(object sender, EventArgs e)
        {
            Aeronave aeronave_seleccionada = new Aeronave();
            aeronave_seleccionada.Modelo = txt_modelo.Text;
            aeronave_seleccionada.Matricula = txt_matricula.Text;
            aeronave_seleccionada.Kg_disponibles = Convert.ToInt32(txt_kgs_disp.Text);
            aeronave_seleccionada.Cantidad_Asientos = Convert.ToInt32(txt_cant_asientos.Text);
            Fabricante fabricant = (Fabricante)cmb_fabricante.SelectedItem;
            Servicio service = (Servicio)cmb_servicio.SelectedItem;
            aeronave_seleccionada.Servicio = service;
            aeronave_seleccionada.Fabricante = fabricant;

            new AeronaveDAO().Guardar(aeronave_seleccionada);
            Abm_Aeronave.abm_aeronave form = new Abm_Aeronave.abm_aeronave();
            this.Close();
            form.Show();
        }
        private void btn_ingresar_Click(object sender, EventArgs e)
        {
            var aeronavesActuales = new AeronaveDAO().Obtener_Todas(0);
            var matriculasActuales = aeronavesActuales.Select(x => x.Matricula);
            if (matriculasActuales.Contains(txt_matricula.Text))
            {
                MessageBox.Show("Matricula existente");
            }
            else
            {
                Aeronave aeronave_seleccionada = new Aeronave();

                aeronave_seleccionada.Modelo = txt_modelo.Text;
                aeronave_seleccionada.Matricula = txt_matricula.Text;
                Fabricante fabricant = (Fabricante)cmb_fabricante.SelectedItem;
                Servicio service = (Servicio)cmb_servicio.SelectedItem;
                aeronave_seleccionada.Servicio = service;
                aeronave_seleccionada.Fabricante = fabricant;
                aeronave_seleccionada.Kg_disponibles = Convert.ToInt32(txt_kgs_disp.Text);
                aeronave_seleccionada.Cantidad_Asientos = Convert.ToInt32(txt_cant_asientos.Text);
                aeronave_seleccionada.Fecha_Alta = Convert.ToDateTime(clk_fecha_alta.Text);

                new AeronaveDAO().Guardar(aeronave_seleccionada);

                if (retorno == 0)
                {
                    Abm_Aeronave.abm_aeronave form = new Abm_Aeronave.abm_aeronave();
                    this.Close();
                    form.Show();
                }
                else
                {
                    this.Close();
                }
            }
        }
        public Baja(Aeronave seleccionado)
        {
            InitializeComponent();
            cmb_tipo_baja.Items.Add("Baja definitiva");
            cmb_tipo_baja.Items.Add("Baja por fuera de servicio");
            cmb_accion.Items.Add("Cancelar pasajes/encomiendas");
            cmb_accion.Items.Add("Suplantar aeronave");
            panel_reinicio.Hide();
            panel_fecha_definitiva.Hide();
            aeronave = seleccionado;

            dateTimePicker_fecha_definitiva.Format = DateTimePickerFormat.Custom;
            dateTimePicker_fecha_definitiva.CustomFormat = "yyyy-MM-dd HH:mm:ss.000";
            dateTimePicker_fecha_definitiva.Value = DateTime.Now;

            dateTimePicker_fecha_reinicio.Format = DateTimePickerFormat.Custom;
            dateTimePicker_fecha_reinicio.CustomFormat = "yyyy-MM-dd HH:mm:ss.000";
            dateTimePicker_fecha_reinicio.Value = DateTime.Now;

            pn_accion.Hide();
            btn_select.Hide();
            lb_fecha.Hide();
            pn_reemplazo.Hide();
        }
        private Aeronave LoadObject(SqlDataReader reader)
        {
            Aeronave aeronave = new Aeronave();
            aeronave.Id = Convert.ToInt32(reader["id"].ToString());
            aeronave.Modelo = reader["modelo"].ToString();
            aeronave.Matricula = reader["matricula"].ToString();
            aeronave.Kg_disponibles =  Convert.ToInt32(reader["kg_disponibles"].ToString());
            aeronave.Cantidad_Asientos= Convert.ToInt32(reader["cantidad_asientos"].ToString());
            aeronave.Servicio = new ServicioDAO().Servicio_FindById(Convert.ToInt32(reader["id_tipo_servicio"].ToString()));
            aeronave.Fabricante = new FabricanteDAO().Fabricante_FindById(Convert.ToInt32(reader["id_fabricante"].ToString()));
            aeronave.Baja_definitiva=Convert.ToBoolean(reader["baja_definitiva"].ToString());
            aeronave.Baja_fuera_servicio = Convert.ToBoolean(reader["baja_fuera_servicio"].ToString());

            if (!DBNull.Value.Equals(reader["fecha_alta"]))
                aeronave.Fecha_Alta = Convert.ToDateTime(reader["fecha_alta"].ToString());
            else
                aeronave.Fecha_Alta = DateTime.MinValue;
            if (!DBNull.Value.Equals(reader["fecha_baja"]))
                aeronave.Fecha_Baja = Convert.ToDateTime(reader["fecha_baja"].ToString());
            else
                aeronave.Fecha_Baja = DateTime.MinValue;

            return aeronave;
        }
        public void Guardar(Aeronave aeronave)
        {
            SqlCommand cmd = new SqlCommand("SANTI_EL_LIDER.Aeronave_Guardar", db.Connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Transaction = db.Transaccion;
            cmd.Parameters.AddWithValue("@modelo", SqlDbType.VarChar).Value = aeronave.Modelo;
            cmd.Parameters.AddWithValue("@matricula", SqlDbType.VarChar).Value = aeronave.Matricula;
            cmd.Parameters.AddWithValue("@kg_disponibles", SqlDbType.Int).Value = aeronave.Kg_disponibles;
            cmd.Parameters.AddWithValue("@fabricante", SqlDbType.Int).Value = aeronave.Fabricante.Id;
            cmd.Parameters.AddWithValue("@servicio", SqlDbType.Int).Value = aeronave.Servicio.Id;
            if (aeronave.Fecha_Alta == DateTime.MinValue)
                cmd.Parameters.AddWithValue("@fecha_alta", DBNull.Value );
            else
                cmd.Parameters.AddWithValue("@fecha_alta", SqlDbType.DateTime).Value = aeronave.Fecha_Alta;

            cmd.Parameters.AddWithValue("@cantidad_asientos", SqlDbType.Int).Value = aeronave.Cantidad_Asientos;

            cmd.ExecuteNonQuery();
        }