public async Task <Response> PostRecepcionArticulo([FromBody] RecepcionArticulos recepcionArticulo) { try { if (!ModelState.IsValid) { return(new Response { IsSuccess = false, Message = Mensaje.ModeloInvalido }); } if (recepcionArticulo.MaestroArticuloSucursal.Minimo > recepcionArticulo.Cantidad || recepcionArticulo.MaestroArticuloSucursal.Maximo < recepcionArticulo.Cantidad) { return(new Response { IsSuccess = false, Message = "La Cantidad no está en el rango del Mínimo y Máximo" }); } db.Entry(recepcionArticulo.Articulo).State = EntityState.Unchanged; db.Entry(recepcionArticulo.MaestroArticuloSucursal).State = EntityState.Unchanged; db.Entry(recepcionArticulo).State = EntityState.Added; await db.SaveChangesAsync(); db.ExistenciaArticuloProveeduria.Add(new ExistenciaArticuloProveeduria { IdArticulo = recepcionArticulo.IdArticulo, Existencia = recepcionArticulo.Cantidad }); await db.SaveChangesAsync(); return(new Response { IsSuccess = true, Message = Mensaje.Satisfactorio }); } catch (Exception ex) { await GuardarLogService.SaveLogEntry(new LogEntryTranfer { ApplicationName = Convert.ToString(Aplicacion.SwRm), ExceptionTrace = ex, Message = Mensaje.Excepcion, LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical), LogLevelShortName = Convert.ToString(LogLevelParameter.ERR), UserName = "", }); return(new Response { IsSuccess = false, Message = Mensaje.Error, }); } }
public async Task <Response> PutRecepcionArticulo([FromRoute] int id, [FromBody] RecepcionArticulos recepcionArticulo) { try { if (!ModelState.IsValid) { return(new Response { IsSuccess = false, Message = Mensaje.ModeloInvalido, }); } var recepcionArticuloActualizar = await db.RecepcionArticulos.Where(x => x.IdRecepcionArticulos == id).FirstOrDefaultAsync(); if (recepcionArticuloActualizar != null) { try { var existenciaArticuloProveeduria = await db.ExistenciaArticuloProveeduria.SingleOrDefaultAsync(c => c.IdArticulo == recepcionArticulo.IdArticulo); if (await db.AltaProveeduria.CountAsync(c => c.IdArticulo == recepcionArticulo.IdArticulo) > 0) { if (recepcionArticulo.Cantidad < existenciaArticuloProveeduria.Existencia) { return(new Response { IsSuccess = false, Message = String.Format("La Cantidad no puede ser menor que la existencia real de Artículos ({0})", existenciaArticuloProveeduria.Existencia) }); } else { existenciaArticuloProveeduria.Existencia = recepcionArticulo.Cantidad >= recepcionArticuloActualizar.Cantidad ? (recepcionArticulo.Cantidad - recepcionArticuloActualizar.Cantidad) + existenciaArticuloProveeduria.Existencia : recepcionArticulo.Cantidad - existenciaArticuloProveeduria.Existencia; } } else { existenciaArticuloProveeduria.Existencia = recepcionArticulo.Cantidad; } if (recepcionArticulo.MaestroArticuloSucursal.Minimo > recepcionArticulo.Cantidad || recepcionArticulo.MaestroArticuloSucursal.Maximo < recepcionArticulo.Cantidad) { return(new Response { IsSuccess = false, Message = "La Cantidad no está en el rango del Mínimo y Máximo" }); } recepcionArticuloActualizar.Fecha = recepcionArticulo.Fecha; recepcionArticuloActualizar.Cantidad = recepcionArticulo.Cantidad; recepcionArticuloActualizar.IdEmpleado = recepcionArticulo.IdEmpleado; recepcionArticuloActualizar.IdArticulo = recepcionArticulo.IdArticulo; recepcionArticuloActualizar.IdMaestroArticuloSucursal = recepcionArticulo.IdMaestroArticuloSucursal; recepcionArticuloActualizar.IdProveedor = recepcionArticulo.IdProveedor; db.RecepcionArticulos.Update(recepcionArticuloActualizar); await db.SaveChangesAsync(); return(new Response { IsSuccess = true, Message = Mensaje.ModeloInvalido, }); } catch (Exception ex) { await GuardarLogService.SaveLogEntry(new LogEntryTranfer { ApplicationName = Convert.ToString(Aplicacion.SwRm), ExceptionTrace = ex, Message = Mensaje.Excepcion, LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical), LogLevelShortName = Convert.ToString(LogLevelParameter.ERR), UserName = "", }); return(new Response { IsSuccess = false, Message = Mensaje.Error, }); } } return(new Response { IsSuccess = false, Message = Mensaje.ExisteRegistro }); } catch (Exception) { return(new Response { IsSuccess = false, Message = Mensaje.Excepcion }); } }