public object[] ActualizarSubDetalleControl(ENTRADA_SALIDA_MATERIAL_SUBDETALLE poSubDetalleControl, int IdCabecera)
        {
            using (var db = new ASIS_PRODEntities())
            {
                object[] resultado = new object[3];

                var buscarabecera = db.ENTRADA_SALIDA_MATERIAL_CABECERA.Find(IdCabecera);
                if (buscarabecera.EstadoControl)
                {
                    resultado[0] = "003";
                    resultado[1] = "El control se encuetra aprobado, no puede ser modificado";
                    resultado[2] = poSubDetalleControl;
                }
                else
                {
                    var buscarSubDetalle = db.ENTRADA_SALIDA_MATERIAL_SUBDETALLE.Find(poSubDetalleControl.IdSubDetalleEntradaSalidaMaterial);
                    buscarSubDetalle.FechaModificacionLog    = poSubDetalleControl.FechaIngresoLog;
                    buscarSubDetalle.UsuarioModificacionLog  = poSubDetalleControl.UsuarioIngresoLog;
                    buscarSubDetalle.TerminalModificacionLog = poSubDetalleControl.TerminalIngresoLog;
                    buscarSubDetalle.Salida = poSubDetalleControl.Salida;
                    db.SaveChanges();
                    resultado[0] = "001";
                    resultado[1] = "Registro actualizado con éxito";
                    resultado[2] = poSubDetalleControl;
                }
                return(resultado);
            }
        }
        public object[] InactivarSubDetalleControl(ENTRADA_SALIDA_MATERIAL_SUBDETALLE poSubDetalle, int IdCabecera)
        {
            using (var db = new ASIS_PRODEntities())
            {
                object[] resultado             = new object[3];
                var      BuscarCabeceraControl = db.ENTRADA_SALIDA_MATERIAL_CABECERA.Find(IdCabecera);
                if (BuscarCabeceraControl.EstadoControl)
                {
                    resultado[0] = "003";
                    resultado[1] = "No es posible inactivar el control, por que se encuentra aprobado";
                    resultado[2] = poSubDetalle;
                }
                else
                {
                    var BuscarSubDetalle = db.ENTRADA_SALIDA_MATERIAL_SUBDETALLE.FirstOrDefault(x => x.IdSubDetalleEntradaSalidaMaterial == poSubDetalle.IdSubDetalleEntradaSalidaMaterial &&
                                                                                                x.EstadoRegistro == clsAtributos.EstadoRegistroActivo);

                    BuscarSubDetalle.EstadoRegistro          = clsAtributos.EstadoRegistroInactivo;
                    BuscarSubDetalle.FechaModificacionLog    = poSubDetalle.FechaIngresoLog;
                    BuscarSubDetalle.UsuarioModificacionLog  = poSubDetalle.UsuarioIngresoLog;
                    BuscarSubDetalle.TerminalModificacionLog = poSubDetalle.TerminalIngresoLog;
                    db.SaveChanges();
                    resultado[0] = "002";
                    resultado[1] = "Registro Inactivado con éxito";
                    resultado[2] = poSubDetalle;
                }
                return(resultado);
            }
        }
        public object[] GuardarSubDetalleControl(ENTRADA_SALIDA_MATERIAL_SUBDETALLE poSubDetalle, int IdCabecera)
        {
            using (var db = new ASIS_PRODEntities())
            {
                object[] resultado     = new object[3];
                var      buscarabecera = db.ENTRADA_SALIDA_MATERIAL_CABECERA.Find(IdCabecera);
                if (buscarabecera.EstadoControl)
                {
                    resultado[0] = "003";
                    resultado[1] = "El control se encuetra aprobado, no puede ser modificado";
                    resultado[2] = poSubDetalle;
                }
                else
                {
                    var BuscarSubDetalle = db.ENTRADA_SALIDA_MATERIAL_SUBDETALLE.FirstOrDefault(x => x.IdDetalleEntradaSalidaMaterial == poSubDetalle.IdDetalleEntradaSalidaMaterial &&
                                                                                                x.Hora == poSubDetalle.Hora && x.EstadoRegistro == clsAtributos.EstadoRegistroActivo);
                    if (BuscarSubDetalle == null)
                    {
                        db.ENTRADA_SALIDA_MATERIAL_SUBDETALLE.Add(poSubDetalle);
                        db.SaveChanges();
                        resultado[0] = "000";
                        resultado[1] = "Registro ingresado con éxito";
                        resultado[2] = new
                        {
                            poSubDetalle.EstadoRegistro,
                            poSubDetalle.FechaIngresoLog,
                            poSubDetalle.FechaModificacionLog,
                            poSubDetalle.IdSubDetalleEntradaSalidaMaterial,
                            poSubDetalle.IdDetalleEntradaSalidaMaterial,
                            poSubDetalle.Hora,
                            poSubDetalle.Salida,
                            poSubDetalle.TerminalIngresoLog,
                            poSubDetalle.TerminalModificacionLog,
                            poSubDetalle.UsuarioIngresoLog,
                            poSubDetalle.UsuarioModificacionLog
                        };
                    }
                    else
                    {
                        resultado[0] = "003";
                        resultado[1] = "Error, ya existe un registro ingresado para la hora indicada";
                        resultado[2] = poSubDetalle;
                    }
                }

                return(resultado);
            }
        }