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; }
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; }); }