예제 #1
0
        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,
                });
            }
        }
예제 #2
0
        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
                });
            }
        }