コード例 #1
0
        private void SaveReturnItems(ReturnPurchaseDetailExtn item, int?billNo)
        {
            _rmsEntities.ReturnDamagedStocks.Add(new ReturnDamagedStock()
            {
                isReturn  = true,
                PriceId   = item.PriceId,
                ProductId = item.ProductId,
                Quantity  = item.ReturnQty,
                BillId    = billNo,
                comments  = item.SelectedReturnReason.ToString()
            });

            var stock = _rmsEntities.Stocks.Where(s => s.PriceId == item.PriceId && s.ProductId == item.ProductId).FirstOrDefault();

            stock.Quantity += item.ReturnQty;
        }
コード例 #2
0
        private void OnGetBill(object parameter)
        {
            PanelLoading = true;
            var GetBillTask = System.Threading.Tasks.Task.Run((Action)(() =>
            {
                _returnPurchaseDetailsList = new ObservableCollection <ReturnPurchaseDetailExtn>();
                var companyBill = RMSEntitiesHelper.CheckIfPurchaseBillExists(BillNo.Value, _categoryId);
                if (companyBill == null)
                {
                    PanelLoading = false;
                    return;
                }

                _billPurchase = _rmsEntities.Purchases.Where(s => s.RunningBillNo == BillNo && companyBill.CompanyId == s.CompanyId).FirstOrDefault();

                //CompanyName = _billPurchase.Company.Name;
                PurchaseDate = _billPurchase.AddedOn.Value;
                PaymentMode pm = new PaymentMode();
                ModeOfPayment = pm.GetPaymentString(_billPurchase.PaymentMode);
                var purhcaseDetailsForBill = _rmsEntities.PurchaseDetails.Where(b => b.BillId == _billPurchase.BillId);

                foreach (var purchaseDetailItem in purhcaseDetailsForBill.ToList())
                {
                    //Get the item and check if there is any return done for the item.
                    var returnQty = _rmsEntities.ReturnDamagedStocks.FirstOrDefault(b => b.BillId == _billPurchase.BillId && purchaseDetailItem.ProductId == b.ProductId);
                    var remainingQty = 0.0M;
                    if (returnQty != null)
                    {
                        remainingQty = purchaseDetailItem.PurchasedQty.Value - returnQty.Quantity;
                        if (remainingQty == 0)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        remainingQty = purchaseDetailItem.PurchasedQty.Value;
                    }

                    var productPrice = _rmsEntities.PriceDetails.Where(p => p.PriceId == purchaseDetailItem.PriceId).FirstOrDefault();
                    var purchaseDetailExtn = new ReturnPurchaseDetailExtn()
                    {
                        Discount = purchaseDetailItem.Discount,
                        PriceId = purchaseDetailItem.PriceId.Value,
                        ProductId = purchaseDetailItem.ProductId.Value,
                        Qty = remainingQty,
                        OriginalQty = purchaseDetailItem.PurchasedQty,
                        //SellingPrice = purchaseDetailItem.SellingPrice,
                        BillId = purchaseDetailItem.BillId,
                        CostPrice = productPrice.Price,
                        ProductName = _rmsEntities.Products.FirstOrDefault(p => p.Id == purchaseDetailItem.ProductId).Name,
                        //AvailableStock = productPrice.Quantity,
                        Amount = productPrice.SellingPrice * purchaseDetailItem.PurchasedQty
                    };

                    ReturnPurchaseDetailList.Add(purchaseDetailExtn);

                    purchaseDetailExtn.PropertyChanged += (object s, PropertyChangedEventArgs e) =>
                    {
                        if (e.PropertyName == Constants.RETURN_QTY)
                        {
                            purchaseDetailExtn.ReturnAmount = purchaseDetailExtn.SellingPrice.Value * purchaseDetailExtn.ReturnQty;
                            this.TotalAmount = this._returnPurchaseDetailsList.Sum(p => p.ReturnAmount);
                        }
                    };

                    //tempTotalAmount += productPrice.SellingPrice * remainingQty;
                }
                //TotalAmount = tempTotalAmount;
                System.Threading.Thread.Sleep(1000);
            })).ContinueWith(
                (t) =>
            {
                PanelLoading = false;
                base.RaisePropertyChanged("ReturnPurchaseDetailList");
                IsBillBasedReturn = true;
            });
        }