예제 #1
0
        public static HistoricoStock MapToEntity(DtoHistoricoStock dto)
        {
            HistoricoStock entity = new HistoricoStock();

            entity.Ubicacion        = dto.Ubicacion;
            entity.Cantidad         = dto.Cantidad;
            entity.Motivo           = dto.Motivo;
            entity.idEmpleado       = dto.idEmpleado;
            entity.CantidadAddOBaja = dto.CantidadAddOBaja;

            return(entity);
        }
예제 #2
0
        public static DtoHistoricoStock MapToDto(HistoricoStock entity)
        {
            DtoHistoricoStock dto = new DtoHistoricoStock();

            dto.Ubicacion        = entity.Ubicacion;
            dto.Cantidad         = entity.Cantidad;
            dto.Motivo           = entity.Motivo;
            dto.idEmpleado       = entity.idEmpleado;
            dto.CantidadAddOBaja = entity.CantidadAddOBaja;

            return(dto);
        }
예제 #3
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"
                }
            }
        }
예제 #4
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();
                        }
                    }
                }
            }
        }