public async Task <IActionResult> GuardarSuministros(string suministros) { if (User.Identity.IsAuthenticated) { string permiso = Permisos("PermisoSubModulo").PSMAPB ? "PermisoSubModulo" : "PermisoModulo"; bool crear = Permisos(permiso).PMMAPL.Where(w => w.Value.Contains("Crear")).Any(); if (crear) { dynamic suministroJson = JsonConvert.DeserializeObject(suministros); Col_Suministros _suministro = new Col_Suministros(); _suministro.Descripcion = suministroJson.Descripcion; _suministro.Nombre = suministroJson.Nombre; _suministro.Stock = suministroJson.Stock; _suministro.Talla = suministroJson.Talla; _suministro.Linea = suministroJson.Linea; _suministro.TipoSuministro = suministroJson.TipoSuministro; ApiCallResult result = await service.GuardarSuministros(_suministro); return(Json(result)); } else { return(NotFound()); } } else { return(RedirectToAction("Index", "Login")); } }
public async Task <ApiCallResult> EliminarSuministros(int suministroId) { Col_Suministros suministro = await context.Col_Suministros .Where(w => w.SuministroId.Equals(suministroId)) .FirstOrDefaultAsync(); context.Col_Suministros.Remove(suministro); await context.SaveChangesAsync(); return(new ApiCallResult { Status = true, Title = "Éxito", Message = $"El suministro {suministro.Nombre} - {suministro.Linea} se ha eliminado con éxito" }); }
public async Task <ApiCallResult> VaciarStock(int suministroId, int stock) { Col_Suministros suministro = await context.Col_Suministros .Where(w => w.SuministroId.Equals(suministroId)) .FirstOrDefaultAsync(); suministro.Stock = 0; context.Col_Suministros.Update(suministro); await context.SaveChangesAsync(); return(new ApiCallResult { Status = true, Title = "Éxito", Message = $"El stock del suministro {suministro.Nombre} - {suministro.Linea} se ha vaciado con éxito" }); }
public async Task <ApiCallResult> DevolverInsumos(List <Devoluciones> devoluciones) { try { bool status = false; string title = "Error"; string message = "Error al devolver el insumo"; bool query = devoluciones.Where(w => !w.Devolver.Equals(0)).Any(); if (query) { foreach (Devoluciones item in devoluciones) { List <Col_Prestamos> _prestamos = await context.Col_Prestamos .Where(w => w.PersonaId.Equals(item.IdPersona) && w.SuministroId.Equals(item.SuministroId) && w.Estado.Equals("A")) .ToListAsync(); int faltante = item.Devolver; foreach (Col_Prestamos temp in _prestamos) { if (faltante > 0) { int cantidadRestar = 0; for (int i = 1; i <= item.Devolver; i++) { if ((temp.Cantidad - i) >= 0) { cantidadRestar = i; } } faltante -= cantidadRestar; Col_Prestamos _prestamo = await context.Col_Prestamos .Where(w => w.PrestamoId.Equals(temp.PrestamoId)).FirstOrDefaultAsync(); _prestamo.Cantidad -= cantidadRestar; _prestamo.Estado = _prestamo.Cantidad == 0 ? "I" : "A"; _prestamo.FechaActualizacion = DateTime.Now; context.Col_Prestamos.Update(_prestamo); await context.SaveChangesAsync(); } } Col_Suministros suministro = await context.Col_Suministros .Where(w => w.SuministroId.Equals(item.SuministroId)).FirstOrDefaultAsync(); suministro.Stock += item.Devolver; suministro.FechaActualizacion = DateTime.Now; context.Col_Suministros.Update(suministro); } await context.SaveChangesAsync(); status = true; title = "Proceso éxitosa"; message = "¡Si hizo la devolución de los insumos satisfactoriamente!"; } else { status = false; title = "Proceso incorrecto"; message = "¡Al menos tienes que devolver un insumo!"; } return(new ApiCallResult { Status = status, Title = title, Message = message }); } #region catch catch (DbEntityValidationException e) { string err = ""; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { err += ve.ErrorMessage; Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(new ApiCallResult { Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador" }); } catch (Exception e) { string err = ""; if (e.InnerException != null) { if (e.InnerException.Message != null) { err = (e.InnerException.Message); if (e.InnerException.InnerException != null) { err += e.InnerException.InnerException.Message; } } } else { err = (e.Message); } return(new ApiCallResult { Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador" }); } #endregion }
public async Task <ApiCallResult> PrestarInsumos(List <Col_Prestamos> prestamos, string documento) { try { bool status = false; string title = "Error"; string message = "Error al ingresar el prestamo"; Col_Personas personaId = await context.Col_Personas .Where(w => w.NumeroDocumento.Equals(documento) && w.Estado.Equals("A")) .FirstOrDefaultAsync(); if (personaId != null) { List <Col_Suministros> suministros = await context.Col_Suministros.ToListAsync(); List <Col_Suministros> cantidadSuperior = suministros .Where(w => w.Stock < prestamos.Where(p => p.SuministroId == w.SuministroId) .Select(s => s.Cantidad).Sum()).ToList(); if (cantidadSuperior.Any()) { return(new ApiCallResult { Status = false, Title = "Error de stock", Message = "Asegurate de que la cantidad elegida del insumo quitado no sobrepase el stock", Comodin = cantidadSuperior.Select(s => s.SuministroId).FirstOrDefault() }); } status = true; title = "Proceso exitoso"; message = $"El prestamo se guardó correctamente al empleado con documento {documento}"; int?maxId = await context.Col_Prestamos.MaxAsync(m => (int?)m.PrestamoId); int?id = maxId == null ? 1 : maxId + 1; List <Col_Prestamos> _prestamos = new List <Col_Prestamos>(); foreach (Col_Prestamos item in prestamos) { Col_Prestamos _prestamo = new Col_Prestamos(); _prestamo.PrestamoId = Convert.ToInt32(id); _prestamo.PersonaId = personaId.PersonaId; _prestamo.SuministroId = item.SuministroId; _prestamo.Motivo = item.Motivo; _prestamo.FechaPrestamo = item.FechaPrestamo; _prestamo.FechaCreacion = DateTime.Now; _prestamo.Cantidad = item.Cantidad; _prestamo.Estado = "A"; _prestamos.Add(_prestamo); id++; Col_Suministros _suministro = await context.Col_Suministros .Where(w => w.SuministroId.Equals(item.SuministroId)).FirstOrDefaultAsync(); _suministro.Stock -= item.Cantidad; context.Col_Suministros.Update(_suministro); } await context.AddRangeAsync(_prestamos); await context.SaveChangesAsync(); } return(new ApiCallResult { Status = status, Title = title, Message = message }); } #region catch catch (DbEntityValidationException e) { string err = ""; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { err += ve.ErrorMessage; Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(new ApiCallResult { Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador" }); } catch (Exception e) { string err = ""; if (e.InnerException != null) { if (e.InnerException.Message != null) { err = (e.InnerException.Message); if (e.InnerException.InnerException != null) { err += e.InnerException.InnerException.Message; } } } else { err = (e.Message); } return(new ApiCallResult { Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador" }); } #endregion }
public async Task <ApiCallResult> GuardarSuministros(Col_Suministros suministros) { try { int?maxId = await context.Col_Suministros.MaxAsync(m => (int?)m.SuministroId); int?id = maxId == null ? 1 : maxId + 1; suministros.FechaCreacion = DateTime.Now; suministros.SuministroId = Convert.ToInt32(id); await context.AddAsync <Col_Suministros>(suministros); await context.SaveChangesAsync(); return(new ApiCallResult { Title = "Éxito", Message = "Se guardaron los insumos correctamente", Status = true, }); } #region catch catch (DbEntityValidationException e) { string err = ""; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { err += ve.ErrorMessage; Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(new ApiCallResult { Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador" }); } catch (Exception e) { string err = ""; if (e.InnerException != null) { if (e.InnerException.Message != null) { err = (e.InnerException.Message); if (e.InnerException.InnerException != null) { err += e.InnerException.InnerException.Message; } } } else { err = (e.Message); } return(new ApiCallResult { Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador" }); } #endregion }