private void btnEliminar_Click(object sender, EventArgs e)
 {
     oTransporte = (Modelo_Entidades.Transporte)bsTransportes.Current;
     if (oTransporte == null)
     {
         MessageBox.Show("Primero debe elegir un transporte.", "Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     else
     {
         DialogResult oDialogResult = MessageBox.Show("¿Está seguro que desea eliminar el transporte seleccionado?", "Confirmar eliminar.", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
         if (oDialogResult == DialogResult.Yes)
         {
             try
             {
                 if (ComprobarRelaciones())
                 {
                     bool resultado = oCCUGTransportes.Eliminar(oTransporte);
                     if (resultado)
                     {
                         MessageBox.Show("Transporte eliminado correctamente.", "Resultado.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         ActualizarDGVTransportes();
                     }
                     else
                     {
                         MessageBox.Show("El transporte no se pudo eliminar.", "Resultado.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
                 }
                 else
                 {
                     MessageBox.Show("No se pudo eliminar el transporte porque estuvo involucrado en una operación.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
             }
             catch (EntitySqlException ex)
             {
                 MessageBox.Show(ex.Message, "Excepción.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
 }
        private bool ValidarDatos()
        {
            if (string.IsNullOrEmpty(this.cbPermiso.Text))
            {
                this.cbPermiso.Focus();
                MessageBox.Show("Primero debe especificar si permite o no el acceso del transporte a planta.", "Faltan datos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.cbTipoOperacion.Text))
            {
                this.cbPermiso.Focus();
                MessageBox.Show("Primero debe especificar si la operación será una carga o descarga.", "Faltan datos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            oTransporte = (Modelo_Entidades.Transporte)bsTransportes.Current;
            if (oTransporte == null)
            {
                MessageBox.Show("Primero debe seleccionar un transporte.", "Faltan datos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.cbCliente.Text))
            {
                this.cbPermiso.Focus();
                MessageBox.Show("Primero debe seleccionar un Cliente.", "Faltan datos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            if (string.IsNullOrEmpty(this.cbChofer.Text))
            {
                this.cbPermiso.Focus();
                MessageBox.Show("Primero debe seleccionar un Chofer.", "Faltan datos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            return true;
        }
        private void btnRegistrar_Click(object sender, EventArgs e)
        {
            if (ValidarDatos())
            {
                oTransporte = (Modelo_Entidades.Transporte)bsTransportes.Current;
                Modelo_Entidades.Operacion oOperacion = new Modelo_Entidades.Operacion();
                if (this.cbPermiso.Text == "Si")
                    oOperacion.Estado_Operacion.descripcion = "Ingresa";
                else oOperacion.Estado_Operacion.descripcion = "Rechazado";
                oOperacion.tipo_operacion = this.cbTipoOperacion.SelectedIndex;
                oOperacion.notas = this.tbNotas.Text;
                oOperacion.fecha_y_hora_inicio = DateTime.Now;
                oOperacion.Transporte = oTransporte;
                oOperacion.Cliente = (Modelo_Entidades.Cliente)bsClientes.Current;
                oOperacion.Chofer = (Modelo_Entidades.Chofer)bsChoferes.Current;

                //datos auditoría
                oOperacion.USU_CODIGO = oUsuarioActual.USU_CODIGO;
                oOperacion.fecha_y_hora_accion = DateTime.Now;
                if (oOperacion.Estado_Operacion.descripcion == "Ingresa")
                {
                    oOperacion.accion = "Alta - Autorizar Ingreso";
                }
                else
                {
                    oOperacion.accion = "Alta - Rechazar Ingreso";
                }

                bool resultado;
                try
                {
                    resultado = oCCUCore.Agregar(oOperacion);
                    if (resultado)
                    {
                        MessageBox.Show("Registrado con éxito", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        frmClientes.ObtenerInstancia().ActualizarDGVClientes();
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("No registrado.", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    }
                }
                catch (System.Data.EntitySqlException ex)
                {
                    MessageBox.Show("No se ha podido registrar el nuevo ingreso: " + ex.Message + ".", "Error de base de datos.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
 private void btnModificar_Click(object sender, EventArgs e)
 {
     oTransporte = (Modelo_Entidades.Transporte)bsTransportes.Current;
     if (oTransporte == null)
     {
         MessageBox.Show("Primero debe elegir un transporte.", "Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     else
     {
         frmTransporte ofrmTransporte = new frmTransporte(oTransporte);
         ofrmTransporte.Show();
     }
 }
 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);
             }
         }
     }
 }
 public frmTransporte(Modelo_Entidades.Transporte TransporteEnviado)
 {
     InitializeComponent();
     Modo = "Modificacion";
     oTransporte = TransporteEnviado;
 }