//Check Stocks Count Allowed For Selling
        public bool CheckStockCountForSelling(SellingOrderModel sellingOrderModel)
        {
            var PortofolioStocks = unitOfWork.PortfolioTransactionsRepository.Get(filter: m => m.PortfolioID == sellingOrderModel.PortfolioID);
            var Details          = sellingOrderModel.sellingOrderDetailModels;

            foreach (var detail in Details)
            {
                if (!PortofolioStocks.Any(m => m.PartnerID == detail.PartnerID))
                {
                    return(false);
                }
                else
                {
                    foreach (var item in PortofolioStocks)
                    {
                        if (detail.PartnerID == item.PartnerID)
                        {
                            if (detail.StockCount > item.CurrentStocksCount)
                            {
                                return(false);
                            }
                        }
                    }
                }
            }
            return(true);
        }
Exemplo n.º 2
0
        public IActionResult FirstOpen()
        {
            SellingOrderModel model = new SellingOrderModel();

            model.Count = unitOfWork.SellingOrderRepository.Count();
            if (model.Count > 0)
            {
                model.LastCode = unitOfWork.SellingOrderRepository.Last().Code;
            }


            return(Ok(model));
        }
Exemplo n.º 3
0
        public IActionResult Update(int id, [FromBody] SellingOrderModel sellingOrderModel)
        {
            if (id != sellingOrderModel.SellingOrderID)
            {
                return(Ok(1));
            }

            if (ModelState.IsValid)
            {
                if (sellingOrderModel.OrderDateGorg == null)
                {
                    sellingOrderModel.OrderDateGorg = DateTime.Now.ToString();
                    sellingOrderModel.FromDateGorg  = DateTime.Now.ToString();
                    sellingOrderModel.ToDateGorg    = DateTime.Now.ToString();
                }

                var model = _mapper.Map <SellingOrder>(sellingOrderModel);
                #region Warehouse
                //Check Stocks Count Allowed For Selling
                var Chk = _stocksHelper.CheckStockCountForSelling(sellingOrderModel);
                if (!Chk)
                {
                    return(Ok(7));
                }

                #endregion


                var Check = unitOfWork.SellingOrderRepository.Get(NoTrack: "NoTrack");

                if (Check.Any(m => m.Code == sellingOrderModel.Code))
                {
                    unitOfWork.SellingOrderRepository.Update(model);


                    // Details
                    var oldDetails = unitOfWork.SellingOrderDetailRepository

                                     .Get(filter: m => m.SellingOrderID == model.SellingOrderID);

                    if (oldDetails != null)
                    {
                        unitOfWork.SellingOrderDetailRepository.RemovRange(oldDetails);
                    }
                    if (sellingOrderModel.sellingOrderDetailModels != null)
                    {
                        foreach (var item in sellingOrderModel.sellingOrderDetailModels)
                        {
                            item.SellingOrderID    = sellingOrderModel.SellingOrderID;
                            item.SellOrderDetailID = 0;
                            var newDetail = _mapper.Map <SellingOrderDetail>(item);

                            unitOfWork.SellingOrderDetailRepository.Insert(newDetail);
                        }
                    }
                }



                else
                {
                    if (Check.Any(m => m.Code != sellingOrderModel.Code && m.SellingOrderID == id))
                    {
                        unitOfWork.SellingOrderRepository.Update(model);

                        // Details
                        var oldDetails = unitOfWork.SellingOrderDetailRepository

                                         .Get(filter: m => m.SellingOrderID == model.SellingOrderID);

                        if (oldDetails != null)
                        {
                            unitOfWork.SellingOrderDetailRepository.RemovRange(oldDetails);
                        }
                        if (sellingOrderModel.sellingOrderDetailModels != null)
                        {
                            foreach (var item in sellingOrderModel.sellingOrderDetailModels)
                            {
                                item.SellingOrderID    = sellingOrderModel.SellingOrderID;
                                item.SellOrderDetailID = 0;
                                var newDetail = _mapper.Map <SellingOrderDetail>(item);

                                unitOfWork.SellingOrderDetailRepository.Insert(newDetail);
                            }
                        }
                    }
                }
                var result = unitOfWork.Save();
                if (result == 200)
                {
                    var UserID = loggerHistory.getUserIdFromRequest(Request);

                    loggerHistory.InsertUserLog(UserID, " امر البيع", "تعديل امر البيع", false);
                    return(Ok(4));
                }
                else if (result == 501)
                {
                    return(Ok(5));
                }
                else
                {
                    return(Ok(6));
                }
            }
            else
            {
                return(Ok(6));
            }
        }
Exemplo n.º 4
0
        public IActionResult Postselling([FromBody] SellingOrderModel sellingOrderModel)
        {
            if (ModelState.IsValid)
            {
                var Check = unitOfWork.SellingOrderRepository.Get();
                if (sellingOrderModel == null)
                {
                    return(Ok(0));
                }
                if (Check.Any(m => m.Code == sellingOrderModel.Code))
                {
                    return(Ok(2));
                }
                else
                {
                    if (sellingOrderModel.OrderDateGorg == null)
                    {
                        sellingOrderModel.OrderDateGorg = DateTime.Now.ToString("d/M/yyyy");
                        sellingOrderModel.FromDateGorg  = DateTime.Now.ToString("d/M/yyyy");
                        sellingOrderModel.ToDateGorg    = DateTime.Now.ToString("d/M/yyyy");
                    }



                    var model = _mapper.Map <SellingOrder>(sellingOrderModel);

                    #region Warehouse
                    //Check Stocks Count Allowed For Selling
                    var Chk = _stocksHelper.CheckStockCountForSelling(sellingOrderModel);
                    if (!Chk)
                    {
                        return(Ok(7));
                    }

                    #endregion


                    unitOfWork.SellingOrderRepository.Insert(model);



                    if (sellingOrderModel.sellingOrderDetailModels != null)
                    {
                        foreach (var item in sellingOrderModel.sellingOrderDetailModels)
                        {
                            SellingOrderDetailModel detail = new SellingOrderDetailModel();
                            detail.PartnerID         = item.PartnerID;
                            detail.SellingOrderID    = model.SellingOrderID;
                            detail.PriceType         = item.PriceType;
                            detail.StockCount        = item.StockCount;
                            detail.SellOrderDetailID = 0;
                            detail.TradingValue      = item.TradingValue;
                            detail.Remarks           = item.Remarks;
                            var ob = _mapper.Map <SellingOrderDetail>(detail);
                            unitOfWork.SellingOrderDetailRepository.Insert(ob);
                        }
                    }



                    var Result = unitOfWork.Save();
                    if (Result == 200)
                    {
                        var UserID = loggerHistory.getUserIdFromRequest(Request);

                        loggerHistory.InsertUserLog(UserID, " امر البيع", "اضافه امر البيع", false);
                        return(Ok(4));
                    }
                    else if (Result == 501)
                    {
                        return(Ok(5));
                    }
                    else
                    {
                        return(Ok(6));
                    }
                }
            }
            else
            {
                return(Ok(3));
            }
        }