예제 #1
0
        //Agrega mas cantidad de stock.
        public ActionResult SumaStock(DtoStock stock)
        {
            string NombreUsu = Session["NombreDeUsuario"].ToString();

            HStock.getInstace().SumStock(stock, NombreUsu);
            return(RedirectToAction("AddStock"));
        }
예제 #2
0
        public static Stock MapToEntity(DtoStock dto)
        {
            Stock entity = new Stock();

            entity.Ubicacion         = dto.Ubicacion;
            entity.Cantidad          = dto.Cantidad;
            entity.Motivo            = dto.Motivo;
            entity.nombreUsuEmpleado = dto.nombreUsuEmpleado;
            entity.idProducto        = dto.idProducto;

            return(entity);
        }
예제 #3
0
        public static DtoStock MapToDto(Stock entity)
        {
            DtoStock dto = new DtoStock();

            dto.Ubicacion         = entity.Ubicacion;
            dto.Cantidad          = entity.Cantidad;
            dto.Motivo            = entity.Motivo;
            dto.nombreUsuEmpleado = entity.nombreUsuEmpleado;
            dto.idProducto        = entity.idProducto;

            return(dto);
        }
예제 #4
0
        public void DeleteStock(DtoStock dto)
        {
            double cantidadBaja = (double)dto.Cantidad;
            double cantResto    = 0;
            Stock  stock        = new Stock();
            int    idEmpl;

            using (AliyavaEntities context = new AliyavaEntities())
            {
                bool existeProducto = context.Stock.Include("Producto").Any(a => a.Producto.codigo_barras == dto.codigoBarras);


                if (existeProducto)
                {
                    stock = context.Stock.FirstOrDefault(f => f.Producto.codigo_barras == dto.codigoBarras);

                    stock.Cantidad = (-stock.Cantidad);
                    cantResto      = (double)(cantidadBaja - (stock.Cantidad));
                    stock.Cantidad = cantResto;

                    HistoricoStock hisStock = new HistoricoStock();
                    hisStock.Cantidad         = (double)stock.Cantidad;
                    hisStock.Ubicacion        = stock.Ubicacion;
                    hisStock.Motivo           = dto.Motivo;
                    hisStock.CantidadAddOBaja = cantidadBaja;

                    idEmpl = context.Empleado.FirstOrDefault(f => f.NombreUsuario == stock.nombreUsuEmpleado).idEmpleado;

                    hisStock.idEmpleado = idEmpl;
                    context.HistoricoStock.Add(hisStock);
                    context.SaveChanges();

                    if (stock.Cantidad == 0)
                    {
                        context.Stock.Remove(stock);
                        context.SaveChanges();
                    }
                    else
                    {
                        context.SaveChanges();
                    }
                }
                else
                {
                    //Mensaje de error sobre "No existe el producto a dar de baja"
                }
            }
        }
예제 #5
0
        public List <DtoStock> getAllStock()
        {
            List <DtoStock> colDtoStock = new List <DtoStock>();

            using (AliyavaEntities context = new AliyavaEntities())
            {
                List <Stock> colStock = context.Stock.Select(s => s).ToList();

                foreach (Stock s in colStock)
                {
                    DtoStock dto = MStock.MapToDto(s);
                    colDtoStock.Add(dto);
                }
            }
            return(colDtoStock);
        }
예제 #6
0
        //public void AltaStock(DtoStock dto)
        //{
        //    using (AliyavaEntities context = new AliyavaEntities())
        //    {
        //        using (TransactionScope scope = new TransactionScope())
        //        {
        //            try
        //            {
        //                Stock nuevoStock = new Stock();
        //                nuevoStock.idProducto = dto.idProducto;
        //                nuevoStock.Ubicacion = dto.Ubicacion;
        //                nuevoStock.Motivo = dto.Motivo;
        //                nuevoStock.Cantidad = dto.Cantidad;

        //                context.Stock.Add(nuevoStock);
        //                context.SaveChanges();

        //                scope.Complete();

        //            }
        //            catch (Exception ex)
        //            {
        //                scope.Dispose();

        //            }

        //        }

        //    }
        //}

        public void SumarStock(DtoStock dto, string NombreUsu)
        {
            double cantidadAlta = (double)dto.Cantidad;
            double cantResto    = 0;
            Stock  stock        = new Stock();
            int    idEmpl;

            using (AliyavaEntities context = new AliyavaEntities())
            {
                bool existeProducto = context.Stock.Include("Producto").Any(a => a.Producto.codigo_barras == dto.codigoBarras);


                if (existeProducto)
                {
                    stock = context.Stock.FirstOrDefault(f => f.Producto.codigo_barras == dto.codigoBarras);

                    if (cantidadAlta > 0)
                    {
                        //stock = MStock.MapToEntity(dto);
                        cantResto      = (double)(cantidadAlta + stock.Cantidad);
                        stock.Cantidad = cantResto;

                        HistoricoStock hisStock = new HistoricoStock();
                        hisStock.Cantidad         = (double)stock.Cantidad;
                        hisStock.Ubicacion        = stock.Ubicacion;
                        hisStock.Motivo           = dto.Motivo;
                        hisStock.CantidadAddOBaja = (double)cantidadAlta;

                        idEmpl = context.Empleado.FirstOrDefault(f => f.NombreUsuario == stock.nombreUsuEmpleado).idEmpleado;

                        hisStock.idEmpleado = idEmpl;
                        context.HistoricoStock.Add(hisStock);
                        context.SaveChanges();
                    }
                    else if (cantidadAlta < 0)
                    {
                        DeleteStock(dto);
                    }
                }
                else
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        Producto pro = context.Producto.FirstOrDefault(f => f.codigo_barras == dto.codigoBarras);

                        try
                        {
                            if (cantidadAlta > 0)
                            {
                                Stock nuevoStock = new Stock();
                                nuevoStock.Producto          = pro;
                                nuevoStock.Ubicacion         = dto.Ubicacion;
                                nuevoStock.Motivo            = dto.Motivo;
                                nuevoStock.Cantidad          = dto.Cantidad;
                                nuevoStock.nombreUsuEmpleado = NombreUsu;

                                context.Stock.Add(nuevoStock);
                                context.SaveChanges();

                                HistoricoStock hisStock = new HistoricoStock();
                                hisStock.Cantidad         = (double)nuevoStock.Cantidad;
                                hisStock.Ubicacion        = nuevoStock.Ubicacion;
                                hisStock.Motivo           = nuevoStock.Motivo;
                                hisStock.CantidadAddOBaja = (double)cantidadAlta;

                                idEmpl = context.Empleado.FirstOrDefault(f => f.NombreUsuario == nuevoStock.nombreUsuEmpleado).idEmpleado;

                                hisStock.idEmpleado = idEmpl;
                                context.HistoricoStock.Add(hisStock);

                                context.SaveChanges();
                            }
                            else
                            {
                                //Error estas tratando de dar de baja cant de producto que no tiene stock.
                                //El producto no tiene stock.
                            }

                            scope.Complete();
                        }
                        catch (Exception ex)
                        {
                            scope.Dispose();
                        }
                    }
                }
            }
        }
예제 #7
0
        //public void CreateStock(DtoStock dto)
        //{
        //    PStock ps = new PStock();
        //    ps.AltaStock(dto);
        //}

        public void SumStock(DtoStock dto, string NombreUsu)
        {
            PStock ps = new PStock();

            ps.SumarStock(dto, NombreUsu);
        }