private void AsignarValores()
        {
            if (Modo == "Alta")
            {
                oAlmacen = (Modelo_Entidades.Almacen)bsAlmacenes.Current;
                oCliente = (Modelo_Entidades.Cliente)bsClientes.Current;
                oAlquiler = new Modelo_Entidades.Alquiler();
            }

            oAlquiler.Almacen = oAlmacen;
            oAlquiler.Cliente = oCliente;
            oAlquiler.capacidad = Convert.ToInt32(this.msktbEspacioAlquilado.Text);
            oAlquiler.fecha_inicio_alquiler = Convert.ToDateTime(this.msktbFecha_Hora_Inicio.Text);
            oAlquiler.fecha_fin_alquiler = Convert.ToDateTime(this.msktbFecha_Hora_Fin.Text);
            oAlquiler.estado = this.cbActivo.Checked;
        }
        private void frmAlquiler_Load(object sender, EventArgs e)
        {
            ActualizarDGVAlmacenes();
            ActualizarDGVClientes();
            this.msktbCapacidadNoUtilizada.Enabled = false;
            if (Modo == "Alta")
            {
                this.msktbCapacidadNoUtilizada.Enabled = false;
            }
            else
            {
                oAlmacen = oAlquiler.Almacen;
                oCliente = oAlquiler.Cliente;
                this.msktbEspacioAlquilado.Text = Convert.ToString(oAlquiler.capacidad);
                this.cbActivo.Checked = Convert.ToBoolean(oAlquiler.estado);
                this.msktbFecha_Hora_Inicio.Text = oAlquiler.fecha_inicio_alquiler.ToString();
                this.msktbFecha_Hora_Fin.Text = oAlquiler.fecha_fin_alquiler.ToString();
                //this.msktbEspacioNoUtilizado.Text = Convert.ToString(oAlquiler);
                this.msktbCapacidadNoUtilizada.Enabled = false;
                //deshabilitar los datagridview para impedir el cambio de el almacen o el cliente
                this.dgvAlmacenes.Enabled = false;
                this.gbFiltrosAlmacenes.Enabled = false;
                this.dgvClientes.Enabled = false;
                this.gbFiltrosClientes.Enabled = false;

                //seleccionar los objetos en los dgv
            }
        }
 private void btnModificar_Click(object sender, EventArgs e)
 {
     oAlmacen = (Modelo_Entidades.Almacen)bsAlmacenes.Current;
     if (oAlmacen == null)
     {
         MessageBox.Show("Primero debe elegir un almacén.", "Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     else
     {
         frmAlmacen ofrmAlmacen = new frmAlmacen(oAlmacen);
         ofrmAlmacen.Show();
     }
 }
 private void btnEliminar_Click(object sender, EventArgs e)
 {
     oAlmacen = (Modelo_Entidades.Almacen)bsAlmacenes.Current;
     if (oAlmacen == null)
     {
         MessageBox.Show("Primero debe elegir un almacén.", "Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     else
     {
         DialogResult oDialogResult = MessageBox.Show("¿Está seguro que desea eliminar el almacén seleccionado?", "Confirmar eliminar.", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
         if (oDialogResult == DialogResult.Yes)
         {
             try
             {
                 if (ComprobarRelaciones())
                 {
                     bool resultado = oCCUGAlmacenes.Eliminar(oAlmacen);
                     if (resultado)
                     {
                         MessageBox.Show("Almacén eliminado correctamente.", "Resultado.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         ActualizarDGVAlmacenes();
                     }
                     else
                     {
                         MessageBox.Show("El almacén no se pudo eliminar.", "Resultado.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
                 }
                 else
                 {
                     MessageBox.Show("El almacén no se puede eliminar porque se ha alquilado parcial o totalmente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
             }
             catch (Exception ex)
             {
                 MessageBox.Show("El almacén no se puede eliminar porque se ha alquilado parcial o totalmente. " + ex, "Excepción.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
 }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (Modo == "Alta")
            {
                if (ValidarObligatorios())
                {
                    oAlmacen = new Modelo_Entidades.Almacen();
                    oAlmacen.nombre = this.tbNombre.Text;
                    oAlmacen.direccion = this.tbDireccion.Text;
                    oAlmacen.distancia_a_empresa = Convert.ToInt32(this.msktbDistancia.Text);
                    oAlmacen.capacidad = Convert.ToInt32(this.msktbCapacidadTotal.Text);
                    this.msktbCapacidad_no_Alquilada.Text = this.msktbCapacidadTotal.Text;
                    //oAlmacen.superficie_no_alquilada = Convert.ToInt32(this.msktbSupTotal.Text);
                    bool resultado;
                    try
                    {
                        if (oCCUGAlmacenes.ObtenerAlmacen(this.tbNombre.Text, this.tbDireccion.Text) == null)
                        {
                            resultado = oCCUGAlmacenes.Agregar(oAlmacen);
                            if (resultado)
                            {
                                MessageBox.Show("Guardado con éxito", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                frmAlmacenes.ObtenerInstancia().ActualizarDGVAlmacenes();
                                this.Close();
                            }
                            else
                            {
                                MessageBox.Show("No guardado.", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                            }
                        }
                        else
                        {
                            DialogResult oDialogResult = MessageBox.Show("Ya existe un Almacén con este Nombre o dirección, ¿Desea agregarlo de todas maneras?", "Confirmar.", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            if (oDialogResult == DialogResult.Yes)
                            {
                                resultado = oCCUGAlmacenes.Agregar(oAlmacen);
                                if (resultado)
                                {
                                    MessageBox.Show("Guardado con éxito", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    frmAlmacenes.ObtenerInstancia().ActualizarDGVAlmacenes();
                                    this.Close();
                                }
                                else
                                {
                                    MessageBox.Show("No guardado.", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                                }
                            }
                            else
                            {
                                MessageBox.Show("Cancelado.", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                            }
                        }
                    }
                    catch (System.Data.DataException ex)
                    {
                        MessageBox.Show("No se ha podido guardar el nuevo almacén: " + ex + ".", "Error de base de datos.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                if (ValidarObligatorios())
                {
                    if (oAlmacen.CapacidadAlquilada <= Convert.ToDouble(msktbCapacidadTotal.Text))
                    {
                        oAlmacen.nombre = this.tbNombre.Text;
                        oAlmacen.direccion = this.tbDireccion.Text;
                        oAlmacen.distancia_a_empresa = Convert.ToInt32(this.msktbDistancia.Text);
                        oAlmacen.capacidad = Convert.ToInt32(this.msktbCapacidadTotal.Text);
                        //oAlmacen.superficie_no_alquilada = Convert.ToInt32(this.msktbSup_no_Alquilada.Text);
                        bool resultado;
                        try
                        {
                            resultado = oCCUGAlmacenes.Modificar(oAlmacen);
                            if (resultado)
                            {
                                MessageBox.Show("Actualizado con éxito", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                frmAlmacenes.ObtenerInstancia().ActualizarDGVAlmacenes();
                                this.Close();
                            }
                            else
                            {
                                MessageBox.Show("No guardado.", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                            }
                        }
                        catch (System.Data.EntitySqlException ex)
                        {
                            MessageBox.Show("No se ha podido actualizar el almacén: " + ex + ".", "Error de base de datos.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("La capacidad nueva del almacén no puede ser menor a la capacidad alquilada.", "Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }
                }
            }
        }
 public frmAlmacen(Modelo_Entidades.Almacen AlmacenEnviado)
 {
     InitializeComponent();
     Modo = "Modificacion";
     oAlmacen = AlmacenEnviado;
 }