private void button2_Click(object sender, EventArgs e)
 {
     PasajeDAO dao1 = new PasajeDAO();
     PaqueteDAO dao2 = new PaqueteDAO();
     Random rnd = new Random();
     int codigo = rnd.Next(10000000, 99999999); // creates a 8 digit random no.
     foreach (Pasaje p in pasajes_a_cancelar)
     {
         dao1.Cancelar(p, txtMotivo.Text, codigo);
     }
     foreach (Paquete p in paquetes_a_cancelar)
     {
         dao2.Cancelar(p, txtMotivo.Text, codigo);
     }
     MostrarDatos();
     ActualizarSeleccionados();
 }
        public void MostrarDatos()
        {
            if (String.IsNullOrEmpty(txtDni.Text))
            {
                MessageBox.Show("El campo DNI no puede estar incompleto");
                return;
            }
            if (!Information.IsNumeric(txtDni.Text.Trim()))
            {
                MessageBox.Show("Debe Ingresar un valor numerico");
                return;
            }

            int dni = Convert.ToInt32(txtDni.Text);
            lbBuscando.Visible = true;
            List<Pasaje> pasajes = new PasajeDAO().ObtenerPorDni(dni);
            List<Paquete> paquetes = new PaqueteDAO().ObtenerPorDni(dni);
            dgvCompras.DataSource = DominioDataSet.PasajesYPaquetes_DataSet(pasajes, paquetes).Tables[0];
            lbBuscando.Visible = false;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            DataBase.GetInstance().Transaccion_Comenzar();

            ClienteDAO cl_dao = new ClienteDAO();
            Cliente responsable = cl_dao.Cliente_FindByDni(Convert.ToInt32(txtDni.Text));
            if (responsable == null)
                responsable = new Cliente();

            responsable.Dni = Convert.ToInt32(txtDni.Text);
            responsable.Nombre = txtNombre.Text;
            responsable.Apellido = txtApellido.Text;
            responsable.Direccion = txtDireccion.Text;
            responsable.Mail = txtMail.Text;
            responsable.Telefono = Convert.ToInt32(txtTelefono.Text);
            responsable.FechaNac = new DateTime(cmbAnio.SelectedIndex + 1900, cmbMes.SelectedIndex + 1, (int)cmbDia.SelectedValue);

            cl_dao.Guardar_cliente(responsable);

            string base64Guid = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 8).ToUpper();
            detalle.PNR = base64Guid;
            detalle.FechaCompra = DateTime.Now;
            detalle.Responsable_Pago = responsable;
            if (rdbTarjeta.Checked)
            {
                if (txtTC_Venc.Text.Length != 4)
                {
                    MessageBox.Show("El vencimiento de la tarjeta es invalido");
                    return;
                }

                detalle.TC_Numero = Convert.ToInt32(txtTC_Numero.Text);
                detalle.TC_Tipo = cmbTC_Tipo.SelectedValue.ToString();
                detalle.Cuotas = Convert.ToInt32(cmbTC_Cuotas.SelectedValue);
                detalle.TC_Vencimiento = txtTC_Venc.Text;
                detalle.MedioPago = "TC";
            }
            else
            {
                detalle.MedioPago = "Efectivo";
            }

            new DetalleCompraDAO().Guardar_detalleCompra(detalle);
            PasajeDAO pasaje_dao = new PasajeDAO();
            foreach (Pasaje p in pasajes)
            {
                pasaje_dao.Guardar_pasaje(p);
            }
            if (paquete != null)
                new PaqueteDAO().Guardar_paquete(paquete);

            DataBase.GetInstance().Transaccion_Commit();
            MessageBox.Show("Gracias por su compra. Su PNR es: " + base64Guid);
            Main form = new Main();
            form.Show();
            this.Hide();
        }
        private void dgvCompras_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvCompras.Columns[e.ColumnIndex].Name == "Selected" && e.RowIndex > -1)
            {
                DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgvCompras.Rows[e.RowIndex].Cells["Selected"];
                bool check = (Boolean)checkCell.Value;
                int id = Convert.ToInt32(dgvCompras.Rows[dgvCompras.CurrentRow.Index].Cells[0].Value);
                string tipo = dgvCompras.Rows[dgvCompras.CurrentRow.Index].Cells[2].Value.ToString();
                if (tipo == "Pasaje")
                {
                    if (check)
                    {
                        Pasaje pasaje = new PasajeDAO().FindById(id);
                        pasajes_a_cancelar.Add(pasaje);
                    }
                    else
                    {
                        pasajes_a_cancelar.Remove(pasajes_a_cancelar.FirstOrDefault(x => x.Id == id));
                    }
                }
                else
                {
                    if (check)
                    {
                        Paquete paquete = new PaqueteDAO().FindById(id);
                        paquetes_a_cancelar.Add(paquete);
                    }
                    else
                    {
                        paquetes_a_cancelar.Remove(paquetes_a_cancelar.FirstOrDefault(x => x.Id == id));
                    }
                }

                ActualizarSeleccionados();
            }
        }