示例#1
0
        public void BizUserCreateAndDeleteStock()
        {
            var createStockRequest1 = new StockRequestModel
            {
                Id        = 0,
                Name      = "Розничный склад 1",
                IsMain    = false,
                StockType = 2
            };

            var createStockRequest2 = new StockRequestModel
            {
                Id        = 0,
                Name      = "Розничный склад 2",
                IsMain    = false,
                StockType = 2
            };

            string login = TesterUtils.CreateBizUserOooUsn15AndFillRequisites();

            TesterUtils.SwitchOnStock(login);
            string             token           = OauthUtils.GetAutorizationToken(login);
            StockResponseModel responseCreate1 = StockUtils.СreateStock(token, createStockRequest1);
            StockResponseModel responseCreate2 = StockUtils.СreateStock(token, createStockRequest2);

            StockUtils.DeleteStock(token, responseCreate1.Id);
            StockListResponseModel stockList = StockUtils.GetStockList(token, 1, 10);
            int count = stockList.ResourceList.Count;

            Assert.AreEqual(2, count);
        }
示例#2
0
 public IActionResult Index(StockRequestModel input)
 {
     try
     {
         var listParam = new List <KeyValuePair <string, string> >();
         listParam.Add(new KeyValuePair <string, string>("customerId", Convert.ToString(new SessionUtility().GetLoginSession().customerId)));
         listParam.Add(new KeyValuePair <string, string>("fromDate", Convert.ToString(input.FromDate.ToString("yyyyMMdd"))));
         listParam.Add(new KeyValuePair <string, string>("toDate", Convert.ToString(input.ToDate.ToString("yyyyMMdd"))));
         listParam.Add(new KeyValuePair <string, string>("StockTypeId", input.StockType));
         string errorMessage = string.Empty;
         var    response     = new CallService().GetResponse <List <StockReqRes> >("getStockRequestStatus", listParam, ref errorMessage);
         if (string.IsNullOrEmpty(errorMessage))
         {
             ViewBag.StockReqReport = response;
         }
         else
         {
             ViewData["ErrorMessage"] = errorMessage;
         }
     }
     catch (Exception)
     {
     }
     GetStockType();
     return(View(input));
 }
示例#3
0
        public void BizUserCreateUpdateAndGetStock()
        {
            var createStockRequest = new StockRequestModel
            {
                Id        = 0,
                Name      = "Розничный склад",
                IsMain    = false,
                StockType = 2
            };

            string login = TesterUtils.CreateBizUserOooUsn15AndFillRequisites();

            TesterUtils.SwitchOnStock(login);
            string             token          = OauthUtils.GetAutorizationToken(login);
            StockResponseModel responseCreate = StockUtils.СreateStock(token, createStockRequest);

            var updateStockRequest = new StockRequestModel
            {
                Id        = responseCreate.Id,
                Name      = "Отредактированный склад",
                IsMain    = true,
                StockType = 1
            };

            StockResponseModel responceUpdate = StockUtils.UpdateStock(token, responseCreate.Id, updateStockRequest);
            StockResponseModel responceGet    = StockUtils.GetStock(token, responseCreate.Id);

            Assert.AreEqual(updateStockRequest.Id, responceGet.Id);
            Assert.AreEqual(updateStockRequest.Name, responceGet.Name);
            Assert.AreEqual(updateStockRequest.IsMain, responceGet.IsMain);
            Assert.AreEqual(updateStockRequest.StockType, responceGet.StockType);
            Assert.AreEqual(responceUpdate.SubcontoId, responceGet.SubcontoId);
        }
        public bool Modify([FromBody] StockRequestModel stock)
        {
            ProductDTO product  = this.productsFacade.Get(stock.ProductId);
            StockDTO   stockDto = StockRequestModel.StockRequestModelToStockDTO(stock);

            stockDto.Product = product;
            return(stocksFacade.Modify(stockDto));
        }
        public StockRequestModel Add([FromBody] StockNewRequestModel stock)
        {
            ProductDTO product  = this.productsFacade.Get(stock.ProductId);
            StockDTO   stockDto = StockNewRequestModel.StockNewRequestModelToStockDTO(stock);

            stockDto.Product = product;
            return(StockRequestModel.StockDTOToStockRequestModel(
                       stocksFacade.Add(stockDto)));
        }
示例#6
0
        public StockResponseModel UpdateStock(string token, StockRequestModel stockRequest)
        {
            request = GivenRequest(token, Method.PUT);
            request.AddJsonBody(stockRequest);
            Console.WriteLine("Редактирование склада");
            var response = Execute <StockResponseModel>(request);

            Console.WriteLine(response.ResponseUri.ToString());
            Console.WriteLine(response.Content);

            return(response.Data);
        }
示例#7
0
        public async Task <IActionResult> GetProductStockCount([FromQuery] StockRequestModel stockRequestModel)
        {
            var stock = await _stockRepository.GetStockByProductId(stockRequestModel.ProductId);

            if (stock == null)
            {
                return(NotFound($"The Stock whose Product ID is equal to {stockRequestModel.ProductId} cannot be found."));
            }

            const int MIN_STOCK_VALUE = 1;

            if (stock.Value < MIN_STOCK_VALUE || stock.Value < stockRequestModel.Quantity)
            {
                return(NotFound($"The Stock whose Product ID is equal to {stockRequestModel.ProductId} has no available stock !"));
            }

            return(Ok(stock));
        }
示例#8
0
        public ServerResponse getCompetitor(string symbol, [FromBody] StockRequestModel payload)
        {
            ServerResponse sr;

            string[] fields;
            //if user didn't specify anything, give them everything!
            if (payload == null || payload.fields.Count() == 0 || payload.fields.Contains("*"))
            {
                fields = new string[] { };
            }
            else
            {
                fields = payload.fields.ToArray();
            }


            sr = StockUtilities.getCompetitor(symbol, fields);
            return(sr);
        }
示例#9
0
        public int Count(StockRequestModel request)
        {
            request.StartDate = request.StartDate.Date;
            request.EndDate   = request.EndDate.Date.AddDays(1).AddMinutes(-1);

            Bookmark bookmark = db.Bookmarks.OrderByDescending(x => x.Created).FirstOrDefault(x => x.Created < request.StartDate);

            if (bookmark == null)
            {
                return(0);
            }
            IQueryable <ProductBookmark> queryablePBookmarks = bookmark.ProductBookmarks.AsQueryable();

            ProductBookmarkRequestModel pbRequestModel = new ProductBookmarkRequestModel(request.Keyword, "Modified", "False");

            queryablePBookmarks = pbRequestModel.GetOrderedData(queryablePBookmarks);
            queryablePBookmarks = pbRequestModel.SkipAndTake(queryablePBookmarks);
            return(queryablePBookmarks.Count());
        }
示例#10
0
        public StockResponseModel HasAvailableStock(StockRequestModel stockRequestModel)
        {
            try
            {
                //TODO : ip adressleri ?
                var client = new RestClient {
                    BaseUrl = new Uri(_projectBaseUrlSettings.Stock)
                };
                var request = new RestRequest("api/v1/stocks", Method.GET);

                request.AddParameter("productId", stockRequestModel.ProductId, ParameterType.QueryString);
                request.AddParameter("quantity", stockRequestModel.Quantity, ParameterType.QueryString);

                var response = client.Execute <StockResponseModel>(request);

                return(response.Data);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
示例#11
0
        public static StockResponseModel UpdateStock(string token, int stockId, StockRequestModel stockRequest)
        {
            string url = restApiUrl + createStockUrl + "/" + stockId;

            return(new StockClient(url).UpdateStock(token, stockRequest));
        }
示例#12
0
        public static StockResponseModel СreateStock(string token, StockRequestModel stockRequest)
        {
            string url = restApiUrl + createStockUrl;

            return(new StockClient(url).CreateStock(token, stockRequest));
        }
示例#13
0
 public IHttpActionResult Count(StockRequestModel request)
 {
     return(Ok(service.Count(request)));
 }
示例#14
0
        public IHttpActionResult Data(StockRequestModel request)
        {
            StockViewModel stockViewModel = service.Search(request);

            return(Ok(stockViewModel));
        }
示例#15
0
        public StockViewModel Search(StockRequestModel request)
        {
            request.StartDate = request.StartDate.Date;
            request.EndDate   = request.EndDate.Date.AddDays(1).AddMinutes(-1);

            Bookmark bookmark = db.Bookmarks.OrderByDescending(x => x.Created).FirstOrDefault(x => x.Created < request.StartDate);

            if (bookmark == null)
            {
                return(null);
            }
            IQueryable <ProductBookmark> queryablePBookmarks = bookmark.ProductBookmarks.AsQueryable();

            ProductBookmarkRequestModel pbRequestModel = new ProductBookmarkRequestModel(request.Keyword, "Modified", "False");

            queryablePBookmarks = pbRequestModel.GetOrderedData(queryablePBookmarks);
            queryablePBookmarks = pbRequestModel.SkipAndTake(queryablePBookmarks);
            List <ProductBookmarkViewModel> productBookmarks = queryablePBookmarks.ToList().ConvertAll(x => new ProductBookmarkViewModel(x)).ToList();

            var bookmarkDate = bookmark.Created.Date;
            List <SaleDetailViewModel> saleDetails = db.SaleDetails.Include(x => x.Product).Where(x => x.Created >= bookmarkDate && x.Created <= request.EndDate).ToList().ConvertAll(x => new SaleDetailViewModel(x)).ToList();
            var purchaseDetails       = db.PurchaseDetails.Include(x => x.Product).Where(x => x.Created >= bookmarkDate && x.Created <= request.EndDate).ToList().ConvertAll(x => new PurchaseDetailViewModel(x));
            var stockDetailViewModels = new List <StockDetailViewModel>();

            foreach (var pb in productBookmarks)
            {
                var purchaseDqBefore = purchaseDetails.Where(x => x.Created < request.StartDate && x.ProductId == pb.ProductId).ToList();
                int purchasedBefore  = purchaseDqBefore.Any() ? purchaseDqBefore.Sum(x => x.Quantity) : 0;
                var purchaseDqAfter  = purchaseDetails.Where(x => x.Created >= request.StartDate && x.ProductId == pb.ProductId).ToList();
                int purchasedAfter   = purchaseDqAfter.Any() ? purchaseDqAfter.Sum(x => x.Quantity) : 0;
                var saleDqBefore     = saleDetails.Where(x => x.Created < request.StartDate && x.ProductId == pb.ProductId).ToList();
                int soldBefore       = saleDqBefore.Any() ? saleDqBefore.Sum(x => x.Quantity) : 0;
                var saleDqAfter      = saleDetails.Where(x => x.Created >= request.StartDate && x.ProductId == pb.ProductId).ToList();
                int soldAfter        = saleDqAfter.Any() ? saleDqAfter.Sum(x => x.Quantity) : 0;

                StockDetailViewModel sdetail = new StockDetailViewModel
                {
                    StartingOnHand         = pb.PhysicalOnHand + purchasedBefore - soldBefore,
                    StockIn                = purchasedAfter,
                    ProductName            = pb.ProductName,
                    StockOut               = soldAfter,
                    BookmarkStartingOnHand = pb.PhysicalOnHand
                };
                sdetail.EndOnHand = sdetail.StartingOnHand + sdetail.StockIn - sdetail.StockOut;
                sdetail.CostTotal = pb.CostPrice * sdetail.EndOnHand;
                stockDetailViewModels.Add(sdetail);
            }

            StockViewModel stockViewModel = new StockViewModel()
            {
                BookmarkDate          = bookmarkDate,
                StartDate             = request.StartDate,
                EndDate               = request.EndDate,
                CostTotal             = stockDetailViewModels.Sum(x => x.CostTotal),
                StockDetailViewModels = stockDetailViewModels
            };

            // get purchase detail by productid & date range
            // get sale detail by productid & date range
            // prepare view model & return
            return(stockViewModel);
        }
示例#16
0
 public StockRequestModel Add([FromBody] StockNewRequestModel stock)
 {
     return StockRequestModel.StockDTOToStockRequestModel(
         stocksFacade.Add(StockNewRequestModel.StockNewRequestModelToStockDTO(stock)));
 }
示例#17
0
 public bool Modify([FromBody] StockRequestModel stock)
 {
     return stocksFacade.Modify(StockRequestModel.StockRequestModelToStockDTO(stock));
 }
示例#18
0
 public StockRequestModel Get(int id)
 {
     return StockRequestModel.StockDTOToStockRequestModel(stocksFacade.Get(id));
 }