public select_butaca(cargar_pasajero form_pasajero) { InitializeComponent(); this.carg_pasajero = form_pasajero; stored_procedures stored_proc = new stored_procedures(); DataTable tabla_butacas = stored_proc.get_Butacas(form_pasajero.viaje_cod); /* Filtramos Butacas que fueron seleccionadas en la compra para que no las puedan seleccionar*/ DataColumn[] columns = new DataColumn[1]; columns[0] = tabla_butacas.Columns["Nro_Butaca"]; tabla_butacas.PrimaryKey = columns; //seteamos PK del DTable pues Find encuentra filtrando por la PK foreach (cargar_pasajero pasajero in form_pasajero.listas_pasajeros) { if (pasajero.viaje_cod == this.carg_pasajero.viaje_cod) { tabla_butacas.Rows.Remove(tabla_butacas.Rows.Find(pasajero.butNro_tbox.Text)); } } this.butaca_dataGrid.DataSource = tabla_butacas; }
private void cargar_pas_boton_Click(object sender, EventArgs e) { bool error = false; if (this.CantPasaj_numericUpDown.Value <= 0) { MessageBox.Show("Cantidad de Pasajes Incorrecta", "Compra", MessageBoxButtons.OK, MessageBoxIcon.Error); error = true; } if (this.cod_viaje_pasaje == "") { MessageBox.Show("Debe Seleccionar Viaje para el Pasaje", "Compra", MessageBoxButtons.OK, MessageBoxIcon.Error); error = true; } if (error) { return; } this.CantPasaj_numericUpDown.Enabled = false; int cant_pasajes = Convert.ToInt16(this.CantPasaj_numericUpDown.Value); int i; //cargamos los datos de los pasajeros this.tipo_viaje = 'P'; //necesario porq encomienda y pasaje tienen mismo recorrido pero pueden realizarlo en distintos viajes select_viaje form_viaje = new select_viaje(this); //con esto me aseguro que siempre sea el mismo recorrido //int contador_discapacitados= 0; bool sgte_acompañante = false; string sexo; funciones func = new funciones(); for (i = 0; i < cant_pasajes; i++) { //chequeo que hayan seleccionado un viaje si NO selecciono nada salgo del ciclo if (this.cod_viaje_pasaje != "") { //cargo pasajero cargar_pasajero pasajero = new cargar_pasajero(this.cod_viaje_pasaje, listas_pasajeros, sgte_acompañante); pasajero.ShowDialog(); //chequeo que n hayan cancelado el pasaje if (pasajero.transacc_pasaje_ok) { //chequeo si es discapacitado el pasajero if (pasajero.discapacitado_checkB.Checked) { if ((i != cant_pasajes - 1) & (form_viaje.cant_butacas_disponibles - 1 != 0))//verificamos que no sea el ultimo pasajero { //si NO es el ult pasajero y es discapacitado preguntamos si viaja con acompañanate o no DialogResult respuesta = MessageBox.Show("Datos Ingresados Correctamente. El pasajero Ingresado es discapacitado, ¿viaja con acompañante ?", "Compra", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (respuesta == DialogResult.Yes) { sgte_acompañante = true; MessageBox.Show("Ingrese los datos del acompañante del pasajero Discapacitado", "Compra", MessageBoxButtons.OK, MessageBoxIcon.Information); //form_viaje.but_a_reservar++; } //else //{ // MessageBox.Show("A continuación debe seleccionar viaje del siguiente Pasajero", "Compra", MessageBoxButtons.OK, MessageBoxIcon.Information); //form_viaje.but_a_reservar++; //form_viaje.ShowDialog(); //} } } else { sgte_acompañante = false; /*----------Si no es discapacitado analizo si es Pensionado / Jubilado----------------*/ if (pasajero.mascul_radioBut.Checked) { sexo = "M"; } else { sexo = "F"; } if (pasajero.pensionado_checkB.Checked | func.es_jubilado(pasajero.fecNacDateTimeP.Text, sexo)) { pasajero.costo_pasaje = pasajero.costo_pasaje / 2; //aplico descuento del 50% } if (cant_pasajes - 1 != i) { MessageBox.Show("Datos del Pasajero Ingresados Correctamente. A continuación debe seleccionar viaje del siguiente Pasajero", "Compra", MessageBoxButtons.OK, MessageBoxIcon.Information); // form_viaje.but_a_reservar++; //form_viaje.ShowDialog(); } } //si se ingreso correctamente el pasaje lo cargamos en la coleccion de pasajeros listas_pasajeros.Add(pasajero); if (!sgte_acompañante & (cant_pasajes - 1 != i)) { form_viaje.ShowDialog(); } } } else { break; //si salieron de seleccionar un viaje salimos y se computan los pasajes cargados hasta el momento } } if (this.CantPasaj_numericUpDown.Value != this.listas_pasajeros.Count) { //si se cancelo algun pasaje actualizamos la cant_pasajes this.CantPasaj_numericUpDown.Value = this.listas_pasajeros.Count; } if (this.listas_pasajeros.Count == 0) { //se cancelaron todos los pasajes return; } /*---------Una vez cargados todos los pasajes calculo el costo total-------*/ stored_procedures stored_proc = new stored_procedures(); decimal sub_total_compra_pasaj = 0; foreach (cargar_pasajero pasaje in listas_pasajeros) { sub_total_compra_pasaj += pasaje.costo_pasaje; } this.sub_total_pasaj_tbox.Text = sub_total_compra_pasaj.ToString("N2"); //muestre 2 decimas this.total_compra += sub_total_compra_pasaj; this.total_tbox.Text = this.total_compra.ToString("N2"); this.cargar_pas_boton.Enabled = false; }