Esempio n. 1
0
 public void AgregarOrdenPedido()
 {
     if (int.Parse(txtTotalOrden.Text) > 0)
     {
         DateTime  fechaCreacion  = DateTime.Now.Date;
         int       total          = int.Parse(txtTotalOrden.Text);
         DateTime  fechaRecepcion = DateTime.Now.Date;
         Proveedor proveedor      = new Proveedor();
         proveedor.Rut = (int)cmbProveedor.SelectedValue;
         EstadoOrden estadoOrden = new EstadoOrden();
         estadoOrden.Id = 1;//<--debe ser No Recepcionada
         Usuario usuario = new Usuario();
         usuario.RunUsuario = Global.RunUsuarioActivo;
         OrdenPedido orden = new OrdenPedido(fechaCreacion, total, fechaRecepcion, proveedor, estadoOrden, usuario);
         if (orden.AgregarOrdenPedido())
         {
             int numeroOrden = orden.ObtenerNumeroMaximoOrden();
             foreach (DataGridViewRow row in grdOrden.Rows)
             {
                 string        codigo   = row.Cells[0].Value.ToString();
                 int           cantidad = int.Parse(row.Cells[2].Value.ToString());
                 DetallePedido detalle  = new DetallePedido(numeroOrden, codigo, cantidad);
                 detalle.AgregarDetallePedido();
             }
             MessageBox.Show("Orden de Pedido N°" + numeroOrden + " ha sido agregada.");
         }
     }
 }
Esempio n. 2
0
 public void RecepcionarOrden()
 {
     if (_numeroOrdenSeleccionado != 0)
     {
         OrdenPedido orden = new OrdenPedido();
         orden = orden.ObtenerOrdenPedido(_numeroOrdenSeleccionado);
         if (!orden.OrdenRecepcionada(orden))
         {
             EstadoOrden estado = new EstadoOrden();
             estado.Id = (int)cmbEstadoOrden.SelectedValue;
             DateTime fechaRecepcion = DateTime.Now.Date;
             orden.Estado         = estado;
             orden.FechaRecepcion = fechaRecepcion;
             bool ordenRecepcionada = orden.RecepcionarOrdenPedido(orden);
             if (ordenRecepcionada)
             {
                 MessageBox.Show("Orden Recepcionada");
                 _numeroOrdenSeleccionado = 0;
             }
             else
             {
                 MessageBox.Show("Orden no se ha recepcionado.");
             }
         }
         else
         {
             MessageBox.Show("La orden ya fue recepcionada");
         }
     }
 }
Esempio n. 3
0
        public async Task <IActionResult> PutEstadoOrden(Guid id, EstadoOrden estadoOrden)
        {
            if (id != estadoOrden.Id)
            {
                return(BadRequest());
            }

            _context.Entry(estadoOrden).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EstadoOrdenExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 4
0
        public async Task <ActionResult <EstadoOrden> > PostEstadoOrden(EstadoOrden estadoOrden)
        {
            _context.EstadoOrden.Add(estadoOrden);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetEstadoOrden", new { id = estadoOrden.Id }, estadoOrden));
        }
Esempio n. 5
0
 private void AnularOrdenPedido()
 {
     if (_numeroOrdenSeleccionado != 0)
     {
         OrdenPedido orden = new OrdenPedido();
         orden = orden.ObtenerOrdenPedido(_numeroOrdenSeleccionado);
         EstadoOrden estado = new EstadoOrden();
         estado = estado.ObtenerEstadoOrden(orden.Estado.Id);
         string descripcion  = estado.Descripcion;
         bool   estaGuardada = orden.OrdenPedidoGuardada(_numeroOrdenSeleccionado);
         if (estaGuardada)
         {
             bool anularOrden = orden.AnularOrdenPedido(_numeroOrdenSeleccionado);
             if (anularOrden)
             {
                 MessageBox.Show("Orden de pedido anulada");
                 _numeroOrdenSeleccionado = 0;
             }
             else
             {
                 MessageBox.Show("Orden de pedido no ha sido anulada");
                 _numeroOrdenSeleccionado = 0;
             }
         }
         else
         {
             MessageBox.Show("La orden seleccionada se encuentra " + descripcion + ", no se puede anular.");
         }
     }
 }
Esempio n. 6
0
        public async Task <OrdenModel> ActualizarEstado(Guid ordenId, EstadoOrden estado)
        {
            //este metodo devuelve el rol del usuario seleccionado
            Orden orden = await _context.Ordenes.Include(orden => orden.Producto).SingleOrDefaultAsync(orden => orden.Id == ordenId);

            orden.Estado = estado;
            return(_mapper.Map <OrdenModel>(orden));
        }
Esempio n. 7
0
 public DetalleOrdenes(string direccion1, string direccion2, string numeroMovil, int monto)
 {
     Direccion1  = direccion1;
     Direccion2  = direccion2;
     MovilNo     = numeroMovil;
     Monto       = monto;
     Fecha       = DateTime.Now;
     EstadoOrden = EstadoOrden.Created;
 }
 /// <summary>
 /// Constructor por defecto, crea una instancia de OrdenEstado vacía
 /// </summary>
 public OrdenEstadoClass()
 {
     ctx = new saluddbEntities();
     _id_orden_estado  = 0;
     _id_orden_entrega = 0;
     _usuario          = new UsuarioClass();
     _estado           = EstadoOrden.INICIADO;
     _fecha            = new DateTime();
 }
 /// <summary>
 /// Constructor de la clase, Crea una instacia de la clase OrdenEstado con los valor proporcionados
 /// </summary>
 /// <param name="id_ordenEstado">Id de la orden de estado</param>
 /// <param name="id_ordenEntrega">Id de la Orden de Entrega </param>
 /// <param name="usuario">Usuario que realizo el cambio de estado</param>
 /// <param name="estado">Estado de la orden</param>
 /// <param name="fecha">Fecha de modificación del estado</param>
 public OrdenEstadoClass(int id_ordenEstado, int id_ordenEntrega, UsuarioClass usuario, EstadoOrden estado, DateTime fecha)
 {
     ctx = new saluddbEntities();
     _id_orden_entrega = id_ordenEstado;
     _id_orden_entrega = id_ordenEntrega;
     _usuario          = usuario;
     _estado           = estado;
     _fecha            = fecha;
 }
 public OrdenConEstadoABuscarSpecification(LineaDeTrabajo linea, EstadoOrden estado)
     : base(o => o.LineaId == linea.Id && o.Estado == estado)
 {
     AddInclude(o => o.Color);
     AddInclude(o => o.Modelo);
     AddInclude(o => o.Linea);
     AddInclude(o => o.EmpleadoOrden);
     AddInclude(o => o.LineaIniciadaPor);
     AddInclude(o => o.Horarios);
 }
Esempio n. 11
0
        public int Guardar(EstadoOrden estadoOrden)
        {
            string url       = $"http://localhost/restaurant/api/estadoOrdenesProveedor/";
            var    respuesta = _restClientHttp.Post <int>(url, estadoOrden);

            if (respuesta.StatusName != HttpStatusCode.OK)
            {
                return(0);
            }
            return(respuesta.Response);
        }
Esempio n. 12
0
        public bool Modificar(EstadoOrden estadoOrden, int idEstadoOrden)
        {
            string url       = $"http://localhost/restaurant/api/estadoOrdenesProveedor/{idEstadoOrden}";
            var    respuesta = _restClientHttp.Put <bool>(url, estadoOrden);

            if (respuesta.StatusName != HttpStatusCode.OK)
            {
                return(false);
            }
            return(respuesta.Response);
        }
Esempio n. 13
0
 private void AgregarEstadoOrden()
 {
     if (!String.IsNullOrEmpty(txtEstadoOrden.Text))
     {
         string      descripcion = txtEstadoOrden.Text.ToUpper();
         EstadoOrden estado      = new EstadoOrden(descripcion);
         if (estado.AgregarEstadoOrden(descripcion))
         {
             MessageBox.Show("Estado de orden de pedido ha sido agregado");
         }
         else
         {
             MessageBox.Show("Ya existe ese estado de orden de pedido");
         }
     }
 }
Esempio n. 14
0
        public bool ObtenerLineaSiEstaFinalizada(EstadoOrden estadoFinalizada)
        {
            if (OrdenesDeProduccion.Count == 0)
            {
                return(true);
            }
            if (OrdenesDeProduccion.Count > 0)
            {
                if (OrdenesDeProduccion.All(e => e.Estado == estadoFinalizada))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 15
0
        public Orden getOrdenById(Int32 id)
        {
            cmd.CommandText = "PACKAGE_ORDEN.ORDEN_BY_ID";

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add("P_ID_ORDEN", OracleDbType.Int32).Value             = id;
            cmd.Parameters.Add("P_ORDEN_CURSOR", OracleDbType.RefCursor).Direction = ParameterDirection.Output;


            Orden orden = new Orden();

            try
            {
                OracleDataReader reader = cmd.ExecuteReader();


                foreach (var item in reader)
                {
                    orden.IdOrden           = reader.GetInt32(0);
                    orden.Descripcion       = reader.GetString(1);
                    orden.SubTotal          = reader.GetInt32(2);
                    orden.Iva               = reader.GetInt32(3);
                    orden.TotalOrden        = reader.GetInt32(4);
                    orden.TiempoPreparacion = reader.GetInt32(5);
                    orden.MotivoAnulacion   = reader.GetString(6);
                    Cliente cliente = new Cliente();
                    cliente.IdCliente = reader.GetInt32(7);
                    orden.Cliente     = cliente;
                    EstadoOrden estadoOrden = new EstadoOrden();
                    estadoOrden.IdEstadoOrden = reader.GetInt32(8);
                    orden.EstadoOrden         = estadoOrden;
                    orden.TipoOrden           = reader.GetInt32(9);
                    orden.FechaCompleta       = reader.GetString(10);

                    break;
                }

                con.Close();

                return(orden);
            }
            catch (Exception)
            {
                return(orden);
            }
        }
Esempio n. 16
0
 private void EliminarEstadoOrden()
 {
     if ((int.Parse(cmbEstadoOrden.SelectedValue.ToString())) > 0)
     {
         EstadoOrden estado         = new EstadoOrden();
         string      descripcion    = cmbEstadoOrden.Text;
         bool        eliminarEstado = estado.EliminarEstadoOrden(descripcion);
         if (eliminarEstado)
         {
             MessageBox.Show("Estado de orden de pedido eliminado");
         }
         else
         {
             MessageBox.Show("Estado de orden de pedido no eliminado");
         }
     }
 }
Esempio n. 17
0
        protected void btnModalEditarOrden_Click(object sender, RepeaterCommandEventArgs e)
        {
            try
            {
                ValidarSesion();
                int idOrdenProveedor;
                if (int.TryParse((string)e.CommandArgument, out idOrdenProveedor))
                {
                    Token token = (Token)Session["token"];
                    _ordenProveedorService = new OrdenProveedorService(token.access_token);
                    OrdenProveedor ordenProveedor = _ordenProveedorService.Obtener(idOrdenProveedor);
                    EstadoOrden    estadoOrden    = ordenProveedor.EstadosOrdenProveedor.LastOrDefault();
                    if (ordenProveedor != null)
                    {
                        tituloModalOrden.Text           = "Editar OrdenProveedor";
                        btnCrearOrden.Visible           = false;
                        btnEditarOrden.Visible          = true;
                        txtIdOrden.Text                 = ordenProveedor.Id.ToString();
                        txtTotalOrden.Text              = ordenProveedor.Total.ToString();
                        ddlEstadoOrden.SelectedValue    = estadoOrden.Id.ToString();
                        ddlProveedorOrden.SelectedValue = ordenProveedor.IdProveedor.ToString();
                        ddlInsumoOrden.SelectedValue    = "";
                        txtPrecioInsumoOrden.Text       = "";
                        txtCantidadInsumoOrden.Text     = "";

                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "modalOrden", "$('#modalOrden').modal('show');", true);
                        upModalOrden.Update();
                    }
                }
                Session["detalleOrdenProveedor"] = new List <DetalleOrdenProveedor>();

                limpiarTabs();
                tabOrdenes.Attributes.Add("class", "nav-link active");
                divOrdenes.Attributes.Add("class", "tab-pane active show");
            }
            catch (Exception ex)
            {
                string mensaje = ex != null && ex.Message != null ? ex.Message : "Ocurrió un error inesperado. Intente nuevamente";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "error", "Swal.fire('Error', '" + mensaje + "', 'error');", true);
                return;
            }
        }
Esempio n. 18
0
 public void ModificarOrdenPedidoParaDescargar()
 {
     if (decimal.Parse(txtTotalOrden.Text) > 0)
     {
         int       numeroOrden = int.Parse(lblNumeroOrden.Text);
         decimal   total       = decimal.Parse(txtTotalOrden.Text);
         Proveedor proveedor   = new Proveedor();
         proveedor.Rut = (int)cmbProveedor.SelectedValue;
         EstadoOrden estadoOrden = new EstadoOrden();
         estadoOrden.Id = 2;//<--debe ser ENVIADA
         Usuario usuario = new Usuario();
         usuario.RunUsuario = Global.RunUsuarioActivo;
         OrdenPedido orden = new OrdenPedido(numeroOrden, total, proveedor, estadoOrden, usuario);
         if (orden.ModificarOrdenPedido(orden))
         {
             DetallePedido detalle = new DetallePedido();
             bool          eliminarDetalleAnteriores = detalle.EliminarDetalleEnCascada(numeroOrden);
             if (eliminarDetalleAnteriores)
             {
                 foreach (DataGridViewRow row in grdOrden.Rows)
                 {
                     string codigo   = row.Cells[0].Value.ToString();
                     int    cantidad = int.Parse(row.Cells[2].Value.ToString());
                     detalle.NumeroOrden    = numeroOrden;
                     detalle.CodigoProducto = codigo;
                     detalle.Cantidad       = cantidad;
                     detalle.AgregarDetallePedido();
                 }
                 MessageBox.Show("Orden de Pedido N°" + numeroOrden + " ha sido modificada.");
                 this.Dispose();
             }
             else
             {
                 MessageBox.Show("Problema al eliminar detalles anteriores");
             }
         }
     }
 }
Esempio n. 19
0
 private void ModificarOrdenPedido()
 {
     if (_numeroOrdenSeleccionado != 0)
     {
         OrdenPedido orden = new OrdenPedido();
         orden = orden.ObtenerOrdenPedido(_numeroOrdenSeleccionado);
         EstadoOrden estado = new EstadoOrden();
         estado = estado.ObtenerEstadoOrden(orden.Estado.Id);
         string descripcion  = estado.Descripcion;
         bool   estaGuardada = orden.OrdenPedidoGuardada(_numeroOrdenSeleccionado);
         if (estaGuardada)
         {
             numeroOrdenModificar = _numeroOrdenSeleccionado;
             frmModificarOrdenPedido form = new frmModificarOrdenPedido();
             form.ShowDialog();
             CargarGrillaOrden();
             LimpiarGrillaDetalle();
         }
         else
         {
             MessageBox.Show("La orden seleccionada se encuentra " + descripcion + ", no se puede modicar.");
         }
     }
 }
Esempio n. 20
0
        //trae la ordenes del cliente por el id del cliente
        public List <OrdenCocina> getOrdenesByCliente(int idCliente)
        {
            cmd.CommandText = "PACKAGE_CLIENTE.PR_LISTAR_ORDEN_BY_CLIENTE";

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add("P_ID_CLIENTE", OracleDbType.Int32).Value       = idCliente;
            cmd.Parameters.Add("P_CLIENTES", OracleDbType.RefCursor).Direction = ParameterDirection.Output;

            List <OrdenCocina> ordenesCliene = new List <OrdenCocina>();

            try
            {
                OracleDataReader reader = cmd.ExecuteReader();


                foreach (var item in reader)
                {
                    OrdenCocina ordenCocina = new OrdenCocina();

                    Orden orden = new Orden();



                    orden.IdOrden           = reader.GetInt32(0);
                    orden.Descripcion       = reader.GetString(1);
                    orden.SubTotal          = reader.GetInt32(2);
                    orden.Iva               = reader.GetInt32(3);
                    orden.TotalOrden        = reader.GetInt32(4);
                    orden.TiempoPreparacion = reader.GetInt32(5);
                    orden.MotivoAnulacion   = reader.GetString(6);
                    EstadoOrden estado = new EstadoOrden();

                    estado.IdEstadoOrden          = reader.GetInt32(7);
                    estado.DescripcionEstadoOrden = reader.GetString(8);

                    orden.EstadoOrden = estado;

                    orden.TipoOrden = reader.GetInt32(9);

                    Cliente cliente = new Cliente();
                    cliente.IdCliente = idCliente;

                    orden.Cliente = cliente;

                    List <RecetaOrdenada> recetaOrdenada = new List <RecetaOrdenada>();

                    ordenCocina.Orden          = orden;
                    ordenCocina.RecetaOrdenada = recetaOrdenada;
                    ordenesCliene.Add(ordenCocina);
                }

                con.Close();

                return(ordenesCliene);
            }
            catch (Exception)
            {
                return(ordenesCliene);
            }
        }
Esempio n. 21
0
        public bool CambiaEstadoOrden(int OrdenId, EstadoOrden estado)
        {
            bool result = true;

            var orden = db.Orden.Where(o => o.OrdenId == OrdenId).FirstOrDefault();

            if (orden != null)
            {
                //Realiza una acción dependiendo el estado
                switch (estado)
                {
                case EstadoOrden.Por_despachar:
                    //Cambia estado de la orden
                    orden.OrdenEstado     = estado;
                    db.Entry(orden).State = EntityState.Modified;
                    db.SaveChanges();

                    break;

                case EstadoOrden.Despachado:
                    if (!string.IsNullOrEmpty(orden.OrdenNroGuia))
                    {
                        orden.OrdenEstado        = estado;
                        orden.OrdenFechaDespacho = DateTime.Today;
                        db.Entry(orden).State    = EntityState.Modified;
                        db.SaveChanges();

                        //Actualiza Estado del Gasto
                        var GastoList = db.Gasto.Where(g => g.ActividadId == orden.ActividadId).ToList();
                        foreach (var gasto in GastoList)
                        {
                            gasto.GastoEstado     = EstadoGasto.Ejecutado;
                            db.Entry(gasto).State = EntityState.Modified;
                            db.SaveChanges();
                        }


                        //Actualiza estado de la actividad
                        ActividadesController actCtrl = new ActividadesController();
                        actCtrl.CambiaEstadoActividad(orden.ActividadId, (int)EstadosActividades.Despachado);

                        //var actividad = db.Actividad.Where(a => a.ActividadId == orden.ActividadId).FirstOrDefault();
                        //actividad.ActividadEstado = EstadosActividades.Despachado;
                        //db.Entry(actividad).State = EntityState.Modified;
                        //db.SaveChanges();

                        //regresa Movimiento
                        List <Movimiento>     movimientoList = db.Movimiento.Where(m => m.OrdenId == OrdenId).ToList();
                        MovimientosController movCtrl        = new MovimientosController();
                        if (movimientoList.Count > 0)
                        {
                            movCtrl.RegresaMovimiento(movimientoList);
                        }

                        //Actualiza estado del movimiento
                        foreach (var mov in movimientoList)
                        {
                            mov.MovimientoEstado = EstadoMovimiento.Ejecutado;
                            db.Entry(mov).State  = EntityState.Modified;
                            db.SaveChanges();
                        }

                        //Afecta Movimiento
                        if (movimientoList.Count > 0)
                        {
                            movCtrl.AfectaMovimiento(movimientoList.FirstOrDefault().MovimientoId, movimientoList, trnMode.Update);
                        }
                    }
                    else
                    {
                        result = false;
                    }
                    break;

                default:
                    result = false;
                    break;
                } //switch (estado)
            }     //if (orden != null)



            return(result);
        }
 public LogBitacoraOrdenEntity(int idOrden, LogCodigoAccion codigoAccion, string detalleAccion, EstadoOrden idEstadoOrden, byte?idMotivoCancelacion, SourceEnum?source = null)
 {
     /*TODO*/
     IdOrden       = idOrden;
     DetalleAccion = detalleAccion;
     Fecha         = DateTime.Now.ToUniversalTime();
     if (MAEUserSession.InstanciaCargada)
     {
         IdUsuario = MAEUserSession.Instancia.IdUsuario;
         RequestId = MAEUserSession.Instancia.InCourseRequest;
     }
     else
     {
         IdUsuario = 1;
     }
     CodigoAccion  = (byte)codigoAccion;
     IdEstadoOrden = (byte)idEstadoOrden;
     if (idMotivoCancelacion.HasValue)
     {
         IdMotivoCancelacion = idMotivoCancelacion.Value;
     }
     IdSourceApplication = (byte?)source;
 }
Esempio n. 23
0
        public Dictionary <int, Orden> GetAllOrdenByPacienteByFechaByEstado(Paciente pa, DateTime init, DateTime end, EstadoOrden estado)
        {
            Dictionary <int, Orden> ordenes  = new Dictionary <int, Orden>();
            SqlConnection           conexion = new SqlConnection();
            SqlCommand comando = new SqlCommand();
            Orden      orden   = null;

            try
            {
                conexion.ConnectionString = ConfiguracionDataAccess.GetInstance().CadenaConexion;
                comando.Connection        = conexion;
                comando.CommandText       = ProcGet.GET_ORDENCAB_ALL_BYPACIENTE_BYFECHA_BYESTADO;

                comando.Parameters.AddWithValue("@idPaciente", pa.IdData);
                comando.Parameters.AddWithValue("@estado", estado);
                comando.Parameters.AddWithValue("@fechaInit", init);
                comando.Parameters.AddWithValue("@fechaEnd", end);
                comando.CommandType = CommandType.StoredProcedure;

                comando.Connection.Open();
                SqlDataReader resultado = comando.ExecuteReader();
                while (resultado.Read())
                {
                    orden                    = new Orden();
                    orden.Boleta             = resultado["numero"].ToString();
                    orden.FechaRegistro      = Convert.ToDateTime(resultado["fechaRegistro"]);
                    orden.IdPaciente         = Convert.ToInt32(resultado["idPaciente"]);;
                    orden.IdData             = Convert.ToInt32(resultado["id"]);
                    orden.Estado             = (EstadoOrden)Convert.ToInt32(resultado["estado"]);
                    orden.UltimaModificacion = Convert.ToDateTime(resultado["ultimaModificacion"]);
                    orden.EnGestacion        = Convert.ToBoolean(resultado["gestante"]);
                    orden.IdMedico           = Convert.ToInt32(resultado["idMedico"]);
                    orden.IdConsultorio      = Convert.ToInt32(resultado["idConsultorio"]);
                    orden.Detalle            = ObtenerOrdenDetalleByOrden(orden.IdData);
                    ordenes.Add(orden.IdData, orden);
                }
                resultado.Close();
            }
            catch (SqlException e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                conexion.Close();
                comando.Dispose();
            }
            return(ordenes);
        }
Esempio n. 24
0
 private void EstadoOrdenLabel_OnTapped(object sender, EventArgs e)
 {
     EstadoOrden.Focus();
 }
Esempio n. 25
0
        public Dictionary <int, Orden> ObtenerOrdenesByFechaByEstado(DateTime init, DateTime end, EstadoOrden estado)
        {
            DataOrden enlaceOrden = new DataOrden();

            return(enlaceOrden.GetAllOrdenByFechaByEstado(init, end, estado));
        }
Esempio n. 26
0
 public EstadoOrden(EstadoOrden estadoOrden)
 {
     this.codigo      = estadoOrden.codigo;
     this.descripcion = estadoOrden.descripcion;
 }
Esempio n. 27
0
        public void RecepcionarOrden()
        {
            if (_numeroOrdenSeleccionado != 0)
            {
                OrdenPedido orden = new OrdenPedido();
                orden = orden.ObtenerOrdenPedido(_numeroOrdenSeleccionado);

                EstadoOrden estado = new EstadoOrden();
                estado = estado.ObtenerEstadoOrden(orden.Estado.Id);
                string descripcion = estado.Descripcion;
                if (orden.OrdenPedidoEnviada(orden))
                {
                    estado.Id = (int)cmbEstadoOrden.SelectedValue;
                    if (estado.Id != 1)
                    {
                        if (estado.Id != 2)
                        {
                            if (estado.Id != 6)
                            {
                                DateTime fechaRecepcion = DateTime.Now.Date;
                                orden.Estado         = estado;
                                orden.FechaRecepcion = fechaRecepcion;
                                if (estado.Id == 4)
                                {
                                    bool          ordenRecepcionada = orden.RecepcionarOrdenPedido(orden);
                                    DetallePedido detalle           = new DetallePedido();
                                    bool          stockAgregado     = detalle.AgregarStockOrdenRecepcionada(orden.Numero);
                                    if (stockAgregado && ordenRecepcionada)
                                    {
                                        LimpiarGrillaDetalle();
                                        MessageBox.Show("Se ha recepcionado y agregado el stock correctamente.");
                                        _numeroOrdenSeleccionado = 0;
                                    }
                                    else
                                    {
                                        MessageBox.Show("No se ha podido agregar la recepcion.");
                                    }
                                }
                                else if (estado.Id == 3 || estado.Id == 5)
                                {
                                    bool ordenRecepcionada = orden.RecepcionarOrdenPedido(orden);
                                    if (ordenRecepcionada)
                                    {
                                        LimpiarGrillaDetalle();
                                        MessageBox.Show("Se ha guardado la recepcion de la orden de pedido.");
                                        _numeroOrdenSeleccionado = 0;
                                    }
                                    else
                                    {
                                        MessageBox.Show("No se ha guardado la recepcion.");
                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show("No se puede anular la orden desde aqui, intente con el boton anular.");
                            }
                        }
                        else
                        {
                            MessageBox.Show("La orden ya ha sido enviada");
                        }
                    }
                    else
                    {
                        MessageBox.Show("La orden de pedido ya ha sido enviada, no puede volver a estado guardada.");
                    }
                }
                else
                {
                    MessageBox.Show("La orden seleccionada se encuentra " + descripcion + " , no se puede recepcionar.");
                }
            }
        }