public GestionFacturacion(EN.ENReservas enRe)
        {
            InitializeComponent();

            enRes = enRe;

            TimeSpan ts = enRe.FechaFin - enRe.FechaInicio;

            enVe.Matricula = enRe.Matricula;
            enVe.ObtenerDatosVehiculos();
            enCli.DNI = enRe.Cliente;
            enCli.RellenarCliente();
            enFa.Categoria = enVe.Categoria;
            enFa.Conductores = enRe.Conductores;
            enFa.Cliente = enRe.Cliente;
            enFa.Tarifa = enCli.Tarifa;
            enFa.Tiempo = ts.Days + 1;
            enFa.Vehiculo = enRe.Matricula;
            enFa.ObtenerPrecio();

            TTextBoxCategoria.Text = enVe.Categoria;
            TTextBoxVehiculo.Text = enRe.Matricula;
            TTextBoxConductores.Text = enRe.Conductores.ToString();
            TTextBoxTiempo.Text = ( ts.Days + 1).ToString();
            TTextBoxTarifa.Text = enCli.Tarifa;
            TLabelCliente.Text = "Nombre: " + enCli.Nombre + " Apellidos: " + enCli.Apellidos;
            TLabelDirec.Text = "Dirección: " + enCli.Direccion;
            TLabelTelf.Text = "Teléfono: " + enCli.Telefono;
            TLabelDNI.Text = "DNI: " + enCli.DNI;
            TLabelTar.Text = "Tarifa aplicada: " + enCli.Tarifa;
            TTextBoxPTotal.Text = enFa.PrecioTotal.ToString();
            TTextBoxTIva.Text = enFa.IVA.ToString();
            TTextBoxTPSinIva.Text = enFa.PrecioSinIVA.ToString();
        }
        public AltaReservas(EN.ENReservas enRe, string texto)
        {
            InitializeComponent();
            editar = editar2 = true;
            DataSet dsCli = new DataSet();
            EN.ENVehiculo enVe = new EN.ENVehiculo();
            EN.ENReservas enRes = new EN.ENReservas();
            DataSet dsRes = new DataSet();

            enCliente.DNI = enRe.Cliente;
            aux = enRe;
            dsCli = enCliente.ObtenerDatosClienteConDni(enRe.Cliente.ToString());
            enVe.Matricula = enRe.Matricula;
            enVe.ObtenerDatosVehiculos();

            string nombre = dsCli.Tables["Cliente"].Rows[0][1].ToString();
            string apellidos = dsCli.Tables["Cliente"].Rows[0][2].ToString();
            string dni = dsCli.Tables["Cliente"].Rows[0][0].ToString();
            string telf = dsCli.Tables["Cliente"].Rows[0][3].ToString();
            string direc = dsCli.Tables["Cliente"].Rows[0][5].ToString();
            provincias = dsCli.Tables["Cliente"].Rows[0][6].ToString();
            ciudades = dsCli.Tables["Cliente"].Rows[0][7].ToString();
            string sexo = dsCli.Tables["Cliente"].Rows[0][9].ToString();
            enCliente.Sexo = sexo;

            TLabelNombre.Text = "Nombre: " + nombre + "Apellidos: " + apellidos;
            TLabelDNI.Text = "DNI: " + dni + "Telf: " + telf;
            TLabelDirec.Text = "Direccion: " + direc;
            TButtonBuscarCliente.Visible = false;
            TLabelNombre.Visible = true;
            TLabelDirec.Visible = true;
            TLabelDNI.Visible = true;
            TRectangleShapeCliente.Visible = true;
            TButtonEditar.Visible = true;
            TButtonReserva.Text = texto;

            TComboBoxConductores.SelectedIndex = TComboBoxConductores.FindStringExact(enRe.Conductores.ToString());
            TDateTimePickerFechaFin.Value = enRe.FechaFin;
            TDateTimePickerFechaInicio.Value = enRe.FechaInicio;
            TComboBoxCategoria.Items.Add(enVe.Categoria);
            TComboBoxCategoria.SelectedIndex = 0;
            TComboBoxMarca.Items.Add(enVe.Marca);
            TComboBoxMarca.SelectedIndex = 0;
            TComboBoxModelo.Items.Add(enVe.Modelo);
            TComboBoxModelo.SelectedIndex = 0;
            TComboBoxMatricula.Items.Add(enVe.Matricula);
            TComboBoxMatricula.SelectedIndex = 0;
        }
 private void AltaReservas_Load(object sender, EventArgs e)
 {
     if (!editar)
     {
         TDateTimePickerFechaInicio.Value = TDateTimePickerFechaFin.Value = DateTime.Today;
         EN.ENReservas enRes = new EN.ENReservas();
         DataSet dsRes = new DataSet();
         dsRes = enRes.RellenarCategoria();
         RellenarCategoria(dsRes);
     }
 }
 private void TComboBoxModelo_Click(object sender, EventArgs e)
 {
     if (editar && editar2)
     {
         string[] texto = { TComboBoxCategoria.Text, TComboBoxMarca.Text, TComboBoxModelo.Text, TComboBoxMatricula.Text };
         EN.ENReservas enRes = new EN.ENReservas();
         DataSet dsRes = new DataSet();
         dsRes = enRes.RellenarCategoria();
         editar = false;
         RellenarCategoria(dsRes);
         TComboBoxCategoria.SelectedIndex = TComboBoxCategoria.FindStringExact(texto[0]);
         TComboBoxMarca.SelectedIndex = TComboBoxMarca.FindStringExact(texto[1]);
         TComboBoxModelo.SelectedIndex = TComboBoxModelo.FindStringExact(texto[2]);
         TComboBoxMatricula.SelectedIndex = TComboBoxMatricula.FindStringExact(texto[3]);
     }
 }
        private void TButtonReserva_Click(object sender, EventArgs e)
        {
            if (!Comprobar_OK())
            {
                MessageBox.Show(mens, "Error en los datos", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                EN.ENReservas enRe = new EN.ENReservas();
                EN.ENVehiculo enVe = new EN.ENVehiculo();
                enVe.Matricula = TComboBoxMatricula.Text.ToString();
                enRe.Cliente = enCliente.DNI;
                enRe.Conductores = Int32.Parse(TComboBoxConductores.Text);
                enRe.FechaFin = TDateTimePickerFechaFin.Value;
                enRe.FechaInicio = TDateTimePickerFechaInicio.Value;
                enRe.Matricula = TComboBoxMatricula.Text.ToString();
                enRe.Modelo = TComboBoxModelo.Text.ToString();
                enRe.Activa = true;
                enRe.NumRes = aux.NumRes;

                if (TButtonReserva.Text == "Realizar Reserva")
                {
                    enRe.AnyadirReserva();
                    MessageBox.Show("Reserva realizada con éxito", "Nueva Reserva", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    enRe.EditarReserva();
                    MessageBox.Show("Cambios guardados con éxito", "Editar Reserva", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                enVe.ObtenerDatosVehiculos();
                enVe.Estado = "Reservado";
                enVe.EditarVehiculo();
                ImprimirReserva FPrint = new ImprimirReserva(enCliente,enRe,enVe,enRe.NumeroUltimaReserva(),enFa.PrecioTotal,TLabelTarifa.Text.ToString());
                FPrint.Show();
                FPrint.Imprimir();

                Close();
            }
        }
        public GestionClientes(EN.ENCliente enCliente, string nombrebotonguardar,string provincias,string ciudades)
        {
            InitializeComponent();

            //////////Para rellenar TListBoxCoches con los coches que ha alquilado el cliente.
            DataSet vehi = new DataSet();
            EN.ENReservas enVehi = new EN.ENReservas();
            string dnicadena = "FK_Cliente ='" + enCliente.DNI + "'";
            vehi = enVehi.ObtenerReservas(dnicadena);

            if (vehi.Tables["Reservas"].Rows.Count > 0)
            {
                TTextBoxNumeroReservas.Text = vehi.Tables["Reservas"].Rows.Count.ToString();
                for (int i = 0; i < vehi.Tables["Reservas"].Rows.Count; i++)
                {
                    // MessageBox.Show(vehi.Tables["Reservas"].Rows[i][2].ToString());
                    TListBoxCoches.Items.Add(vehi.Tables["Reservas"].Rows[i][2].ToString());
                }
            }
            else
                TTextBoxNumeroReservas.Text = "0";

            TGroupBoxCliente.Size = new Size(581, 334);
            TLabelVehiculosAlquiler.Visible = true;
            TListBoxCoches.Visible = true;
            TLabelNumeroReserva.Visible = true;
            TTextBoxNumeroReservas.Visible = true;
            TTextBoxNumeroReservas.Enabled = false;
            TListBoxCoches.Enabled = false;

            /////////////

            TTextBoxDNI.Enabled = false;
            DataSet dscli = new DataSet();
            dscli = enCliente.ObtenerDatosClienteConDni(enCliente.DNI);

            TTextBoxNombre.Text = enCliente.Nombre = dscli.Tables["Cliente"].Rows[0][1].ToString();
            TTextBoxApellidos.Text = enCliente.Apellidos =  dscli.Tables["Cliente"].Rows[0][2].ToString();
            TTextBoxDNI.Text = enCliente.DNI = dscli.Tables["Cliente"].Rows[0][0].ToString();
            enCliente.Telefono = int.Parse(dscli.Tables["Cliente"].Rows[0][3].ToString());
            TTextBoxTelefono.Text = enCliente.Telefono.ToString();
            TTextBoxEmail.Text = enCliente.Email = dscli.Tables["Cliente"].Rows[0][4].ToString();;
            TTextBoxDireccion.Text = enCliente.Direccion = dscli.Tables["Cliente"].Rows[0][5].ToString();
              /* if (provincias != null && ciudades != null)
            {
                TComboBoxProvincias.Items.Add(provincias);
                TComboBoxProvincias.SelectedIndex = 0;
                TComboBoxCiudades.Items.Add(ciudades);
                TComboBoxCiudades.SelectedIndex = 0;
            }*/
            enCliente.Provincia = dscli.Tables["Cliente"].Rows[0][6].ToString();
            enCliente.Ciudad = dscli.Tables["Cliente"].Rows[0][7].ToString();

            TComboBoxProvincias.Items.Add(enCliente.Provincia);
            TComboBoxProvincias.SelectedIndex = 0;
            TComboBoxCiudades.Items.Add(enCliente.Ciudad);
            TComboBoxCiudades.SelectedIndex = 0;
            textoProvincia = TComboBoxProvincias.Text;

            enCliente.Tarifa = dscli.Tables["Cliente"].Rows[0][8].ToString();
            TComboBoxTarifa.Items.Add(enCliente.Tarifa);
            TComboBoxTarifa.SelectedIndex = 0;

            enCliente.Sexo = dscli.Tables["Cliente"].Rows[0][9].ToString();

            if (enCliente.Sexo == "V")
                TRadioButtonH.Checked = true;
            else if (enCliente.Sexo == "M")
                TRadioButtonM.Checked = true;

            TButtonGuardarCliente.Text = nombrebotonguardar; // importante le cambiamos el nombre al boton para saber que venimos del formulario buscar, y estamos editando no guardando uno nuevo
            TButtonGuardarCliente.Size = new Size(120, 33);

            ////////////////////////////////////////////////
            EN.ENProveedores provi = new EN.ENProveedores(); //PAra arreglar el problema de los combobox y que el de ciudad vaya a la primera sin pulsar primero provincia
            DataSet dsProv = new DataSet();
            dsProv = provi.ObtenerListaProvincias();
            //ObtenerProvincias(dsProv)

            numProvincia = new DataSet();
            numProvincia = dsProv;
            /////////////////////////////////////////////////
        }
        //constructor sobrecargado
        public GestionClientes(string nombre, string dni, string apell, string telef, string mail, string direc, string ciu, string prov, string tarifa, string sexo, string nombrebotonguardar)
        {
            //lo uso yo para editar un usuario a partir del formulario clientebuscar

            InitializeComponent();

            //////////Para rellenar TListBoxCoches con los coches que ha alquilado el cliente.
            DataSet vehi = new DataSet();
            EN.ENReservas enVehi = new EN.ENReservas();
            string dnicadena = "FK_Cliente ='"+dni+"'";
            vehi = enVehi.ObtenerReservas(dnicadena);

            if (vehi.Tables["Reservas"].Rows.Count > 0)
            {
                TTextBoxNumeroReservas.Text = vehi.Tables["Reservas"].Rows.Count.ToString();
                for (int i = 0; i < vehi.Tables["Reservas"].Rows.Count; i++)
                {
                   // MessageBox.Show(vehi.Tables["Reservas"].Rows[i][2].ToString());
                    TListBoxCoches.Items.Add(vehi.Tables["Reservas"].Rows[i][2].ToString());
                }
            }
            else
                TTextBoxNumeroReservas.Text = "0";

            TGroupBoxCliente.Size = new Size(581, 334);
            TLabelVehiculosAlquiler.Visible = true;
            TListBoxCoches.Visible = true;
            TLabelNumeroReserva.Visible = true;
            TTextBoxNumeroReservas.Visible = true;
            TTextBoxNumeroReservas.Enabled = false;
            TListBoxCoches.Enabled = false;
            /////////////

            TTextBoxDNI.Enabled = false;
            TTextBoxNombre.Text = nombre;
            TTextBoxApellidos.Text = apell;
            TTextBoxDNI.Text = dni;
            TTextBoxTelefono.Text = telef;
            TTextBoxEmail.Text = mail;
            TTextBoxDireccion.Text = direc;

            TComboBoxProvincias.Items.Add(prov);
            TComboBoxProvincias.SelectedIndex = 0;
            TComboBoxCiudades.Items.Add(ciu);
            TComboBoxCiudades.SelectedIndex = 0;
            textoProvincia = TComboBoxProvincias.Text;

            TComboBoxTarifa.Items.Add(tarifa);
            TComboBoxTarifa.SelectedIndex = 0;

            if (sexo == "V")
                TRadioButtonH.Checked = true;
            else if (sexo == "M")
                TRadioButtonM.Checked = true;
            ////////////////////////////////////////////////
            EN.ENProveedores provi = new EN.ENProveedores(); //PAra arreglar el problema de los combobox y que el de ciudad vaya a la primera sin pulsar primero provincia
            DataSet dsProv = new DataSet();
            dsProv = provi.ObtenerListaProvincias();
            //ObtenerProvincias(dsProv)

            numProvincia= new DataSet();
            numProvincia = dsProv;
            /////////////////////////////////////////////////

            TButtonGuardarCliente.Text = nombrebotonguardar; // importante le cambiamos el nombre al boton para saber que venimos del formulario buscar, y estamos editando no guardando uno nuevo
            TButtonGuardarCliente.Size = new Size(120, 33);
        }
        private void TButtonBuscar_Click(object sender, EventArgs e)
        {
            bool correcto = true;
            string sentencia = "";
            if (!Regex.Match(TTextBoxNumeroReserva.Text, @"^[0-9]{1,10000}$").Success && TTextBoxNumeroReserva.Text.ToString() != "")
            {
                err1.SetError(TTextBoxNumeroReserva, "Solo se admiten números (vacio para buscar todas)");
                correcto = false;
            }
            else
            {
                err1.Clear();
                if (TTextBoxNumeroReserva.Text.ToString() != "")
                {
                    if (TRadioButtonReservas.Checked)
                        sentencia += " NºReserva='" + TTextBoxNumeroReserva.Text.ToString() + "'";
                    else
                        sentencia += " Numero = '" + TTextBoxNumeroReserva.Text.ToString() + "'";
                }
            }
            if (TDateTimePickerFechaFin.Visible == true)
            {
                if (TDateTimePickerFechaInicio.Value <= TDateTimePickerFechaFin.Value)
                {
                    if (TRadioButtonReservas.Checked)
                    {
                        err2.Clear();
                        if (sentencia == "")
                        {
                            sentencia += " FechaInicio between '" + Convert.ToDateTime(TDateTimePickerFechaInicio.Value.ToString()) + "' and '" + Convert.ToDateTime(TDateTimePickerFechaFin.Value.ToString()) + "'";
                            sentencia += " and FechaFin <= '" + Convert.ToDateTime(TDateTimePickerFechaFin.Value.ToString()) + "'";
                        }
                        else
                        {
                            sentencia += " and FechaInicio between '" + Convert.ToDateTime(TDateTimePickerFechaInicio.Value.ToString()) + "' and '" + Convert.ToDateTime(TDateTimePickerFechaFin.Value.ToString()) + "'";
                            sentencia += " and FechaFin <= '" + Convert.ToDateTime(TDateTimePickerFechaFin.Value.ToString()) + "'";
                        }
                    }
                    else
                    {
                        err2.Clear();
                        if (sentencia == "")
                        {
                            sentencia += " Fecha between '" + Convert.ToDateTime(TDateTimePickerFechaInicio.Value.ToString()) + "' and '" + Convert.ToDateTime(TDateTimePickerFechaFin.Value.ToString()) + "'";
                        }
                        else
                        {
                            sentencia += " and Fecha between '" + Convert.ToDateTime(TDateTimePickerFechaInicio.Value.ToString()) + "' and '" + Convert.ToDateTime(TDateTimePickerFechaFin.Value.ToString()) + "'";
                        }
                    }
                }
                else
                {
                    err2.SetError(TDateTimePickerFechaFin, "Fecha fin superior a fecha inicio");
                    correcto = false;
                }
            }
            if (TLabelCliente.Visible == true)
            {
                if (TRadioButtonReservas.Checked)
                {
                    if (sentencia == "")
                    {
                        sentencia += " FK_Cliente ='" + enCliente.DNI.ToString() + "'";
                    }
                    else
                    {
                        sentencia += " and FK_Cliente ='" + enCliente.DNI.ToString() + "'";
                    }
                }
                else
                {
                    if (sentencia == "")
                    {
                        sentencia += " FK_DNI_Cliente ='" + enCliente.DNI.ToString() + "'";
                    }
                    else
                    {
                        sentencia += " and FK_DNI_Cliente ='" + enCliente.DNI.ToString() + "'";
                    }
                }

            }
            if (correcto)
            {
                //location 199,38 size 558 285
                //location 142 343
                TDataGridViewReservas.Visible = true;
                TGroupBoxReservas.Location = new Point(26, 343); //para desplazar el panel de busqueda hacia abajo.
                EN.ENReservas enRe = new EN.ENReservas();
                EN.ENVentasRealizadas enVeR = new EN.ENVentasRealizadas();

                DataSet ds = new DataSet();

                eliminado = sentencia;
                if (TRadioButtonReservas.Checked)
                    ds = enRe.ObtenerReservas(sentencia);
                else
                    ds = enVeR.ObtenerVentasRealizadas(sentencia);

                TDataGridViewReservas.DataSource = ds;
                if (TRadioButtonReservas.Checked)
                    TDataGridViewReservas.DataMember = "Reservas";
                else
                    TDataGridViewReservas.DataMember = "VentasRealizadas";

                for (int i = 0; i < TDataGridViewReservas.Columns.Count; i++) //esto nos servira para bloquear todas las columnas para que no se puedan editar
                {
                    if (i != 0) { TDataGridViewReservas.Columns[i].ReadOnly = true; } //dejamos desbloqueada la columna de eliminar para que podamos pulsar, la columna boton no se bloquea asiq no hace falta desbloquearla
                }
            }
        }
        private void TDataGridViewReservas_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (TDataGridViewReservas.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "Seleccionar")
            {
                if (TRadioButtonReservas.Checked)
                {
                    EN.ENReservas enRe = new EN.ENReservas();

                    enRe.NumRes = Int32.Parse(TDataGridViewReservas.Rows[e.RowIndex].Cells[1].Value.ToString());
                    enRe.Cliente = TDataGridViewReservas.Rows[e.RowIndex].Cells[2].Value.ToString();
                    enRe.Matricula = TDataGridViewReservas.Rows[e.RowIndex].Cells[3].Value.ToString();
                    enRe.FechaInicio = Convert.ToDateTime(TDataGridViewReservas.Rows[e.RowIndex].Cells[4].Value.ToString());
                    enRe.FechaFin = Convert.ToDateTime(TDataGridViewReservas.Rows[e.RowIndex].Cells[5].Value.ToString());
                    enRe.Conductores = Int32.Parse(TDataGridViewReservas.Rows[e.RowIndex].Cells[6].Value.ToString());

                    GestionFacturacion F1 = new GestionFacturacion(enRe);
                    F1.StartPosition = FormStartPosition.Manual;
                    F1.Location = Location;
                    F1.Left += 147;
                    F1.Top += 44;
                    F1.ShowDialog();
                }
                else
                {
                    EN.ENVentasRealizadas realizadas = new EN.ENVentasRealizadas();

                    realizadas.Numero = TDataGridViewReservas.Rows[e.RowIndex].Cells[1].Value.ToString();
                    realizadas.DNI = TDataGridViewReservas.Rows[e.RowIndex].Cells[2].Value.ToString();
                    realizadas.Matricula = TDataGridViewReservas.Rows[e.RowIndex].Cells[3].Value.ToString();
                    realizadas.Marca = TDataGridViewReservas.Rows[e.RowIndex].Cells[4].Value.ToString();
                    realizadas.Modelo = TDataGridViewReservas.Rows[e.RowIndex].Cells[5].Value.ToString();
                    realizadas.Garantia = TDataGridViewReservas.Rows[e.RowIndex].Cells[6].Value.ToString();
                    realizadas.PrecioVenta = TDataGridViewReservas.Rows[e.RowIndex].Cells[7].Value.ToString();
                    realizadas.Fecha = TDataGridViewReservas.Rows[e.RowIndex].Cells[8].Value.ToString();
                    realizadas.Facturado = TDataGridViewReservas.Rows[e.RowIndex].Cells[9].Value.ToString();

                    FacturaVentas F1 = new FacturaVentas(realizadas);
                    F1.StartPosition = FormStartPosition.Manual;
                    F1.Location = Location;
                    F1.Left += 147;
                    F1.Top += 44;
                    F1.ShowDialog();
                }
            }
        }