private void btnFiltrar_Click(object sender, EventArgs e)
 {
     //lo siguiente no funciona porque se ejecuta antes de que se actualize cuál es el objeto actual en el currency manager
     //oCliente = (Modelo_Entidades.Cliente)bsClientes.Current;
     oCliente = (Modelo_Entidades.Cliente)cbCliente.SelectedItem;
     //oChofer = (Modelo_Entidades.Chofer)bsChoferes.Current;
     oChofer = (Modelo_Entidades.Chofer)cbChofer.SelectedItem;
     bsTransportes.DataSource = oCCUGTransportes.ObtenerTransportes(this.cbTipo_Matricula.Text, this.tbNum_Matricula.Text, this.oCliente.nombre, this.oChofer.nombre);
     dgvTransportes.DataSource = bsTransportes;
     //MessageBox.Show(oCliente.nombre + " y " + oChofer.nombre + " fueron seleccionados.", "Informe", MessageBoxButtons.OK, MessageBoxIcon.Information);
 }
 private void btnEliminar_Click(object sender, EventArgs e)
 {
     oChofer = (Modelo_Entidades.Chofer)bsChoferes.Current;
     if (oChofer == null)
     {
         MessageBox.Show("Primero debe elegir un chofer.", "Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     else
     {
         DialogResult oDialogResult = MessageBox.Show("¿Está seguro que desea eliminar el chofer seleccionado?", "Confirmar eliminar.", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
         if (oDialogResult == DialogResult.Yes)
         {
             try
             {
                 if (ComprobarRelaciones())
                 {
                     bool resultado = oCCUGChoferes.Eliminar(oChofer);
                     if (resultado)
                     {
                         MessageBox.Show("Chofer eliminado correctamente.", "Resultado.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         ActualizarDGVChoferes();
                     }
                     else
                     {
                         MessageBox.Show("El Chofer no se pudo eliminar.", "Resultado.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
                 }
                 else
                 {
                     MessageBox.Show("El Chofer no se pudo eliminar porque estuvo involcrado en una operación.", "Resultado.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
             }
             catch (EntitySqlException ex)
             {
                 MessageBox.Show("" + ex, "Excepción.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
 }
 private void btnGuardar_Click(object sender, EventArgs e)
 {
     if (Modo == "Alta")
     {
         if (ValidarObligatorios())
         {
             oTransporte = new Modelo_Entidades.Transporte();
             oChofer = (Modelo_Entidades.Chofer)bsChoferes.Current;
             oTransporte.tipo_matricula = this.cbTipoMatricula.SelectedIndex;
             oTransporte.nro_matricula = this.tbNumMatricula.Text;
             oTransporte.tara = Convert.ToDouble(this.msktbTara.Text);
             oTransporte.carga_maxima = Convert.ToDouble(this.msktbCargaMaxima);
             foreach (object item in clbChoferes.CheckedItems)//por cada objeto "item" de la lista de objetos checkeados en clbchoferes
             {
                 oTransporte.Choferes.Add((Modelo_Entidades.Chofer)item);//agrego el item, después de transformarlo en Chofer, a la colección
             }
             bool resultado;
             try
             {
                 if (oCCUGTransportes.ObtenerTransporte(this.cbTipoMatricula.Text, this.tbNumMatricula.Text) == null)
                 {
                     resultado = oCCUGTransportes.Agregar(oTransporte);
                     if (resultado)
                     {
                         MessageBox.Show("Guardado con éxito", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         frmTransportes.ObtenerInstancia().ActualizarDGVTransportes();
                         this.Close();
                     }
                     else
                     {
                         MessageBox.Show("No guardado.", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                     }
                 }
                 else
                 {
                     MessageBox.Show("No se pudo guardar el transporte porque ya existe uno con el tipo y número de matrícula ingresados", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
             }
             catch (System.Data.EntitySqlException ex)
             {
                 MessageBox.Show("No se ha podido guardar el nuevo cliente: " + ex + ".", "Error de base de datos.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
     else
     {
         if (ValidarObligatorios())
         {
             oChofer = (Modelo_Entidades.Chofer)bsChoferes.Current;
             oTransporte.tipo_matricula = this.cbTipoMatricula.SelectedIndex;
             oTransporte.nro_matricula = this.tbNumMatricula.Text;
             oTransporte.Choferes.Clear();
             oTransporte.tara = Convert.ToDouble(this.msktbTara.Text);
             oTransporte.carga_maxima = Convert.ToDouble(this.msktbCargaMaxima);
             foreach (object item in clbChoferes.CheckedItems)//por cada objeto "item" de la lista de objetos checkeados en clbchoferes
             {
                 oTransporte.Choferes.Add((Modelo_Entidades.Chofer)item);//agrego el item, después de transformarlo en Chofer, a la colección
             }
             bool resultado;
             try
             {
                 resultado = oCCUGTransportes.Modificar(oTransporte);
                 if (resultado)
                 {
                     MessageBox.Show("Actualizado con éxito", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     frmTransportes.ObtenerInstancia().ActualizarDGVTransportes();
                     this.Close();
                 }
                 else
                 {
                     MessageBox.Show("No actualizado.", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                 }
             }
             catch (System.Data.EntitySqlException ex)
             {
                 MessageBox.Show("No se ha podido actualizar el transporte: " + ex + ".", "Error de base de datos.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
 }
 private void btnModificar_Click(object sender, EventArgs e)
 {
     oChofer = (Modelo_Entidades.Chofer)bsChoferes.Current;
     if (oChofer == null)
     {
         MessageBox.Show("Primero debe elegir un chofer.", "Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     else
     {
         frmChofer ofrmChofer = new frmChofer(oChofer);
         ofrmChofer.Show();
     }
 }
        private void frmTransporte_Load(object sender, EventArgs e)
        {
            bsChoferes.DataSource = oCCUGChoferes.ObtenerChoferes();
            foreach (Modelo_Entidades.Chofer oChoferActual in bsChoferes)
            {
                clbChoferes.Items.Add(oChoferActual);
            }
            if (Modo == "Modificacion")
            {
                //bsChoferes.Current = oTransporte.Chofer;//seleccionar el chofer en el dgv
                this.cbTipoMatricula.Text = oTransporte.Tipo_Matricula.descripcion;
                this.tbNumMatricula.Text = oTransporte.nro_matricula;
                this.msktbTara.Text = Convert.ToString(oTransporte.tara);
                this.msktbCargaMaxima.Text = oTransporte.carga_maxima.ToString();

                this.cbTipoMatricula.Enabled = false;
                this.tbNumMatricula.Enabled = false;

                for (int i = 0; i < clbChoferes.Items.Count; i++) //para i desde 0 hasta la cantidad de items en clbCchoferes(todos)
                {
                    oChofer = (Modelo_Entidades.Chofer)clbChoferes.Items[i];//mover el cliente con el índice i a oChofer
                    foreach (Modelo_Entidades.Chofer oChoferActual in oTransporte.Choferes)//por cada uno de los choferes en la colección clientes de oTransporte
                    {
                        if (oChoferActual.nro_chofer == oChofer.nro_chofer)// si el número del chofer actual es el mismo que el del chofer del checked list box seleccionado actualmente (i)
                        {
                            clbChoferes.SetItemChecked(i, true);//entonces establezco como checkeado el chofer de índice i
                        }
                    }
                }
            }
        }