private void InstantinateOrderDetailItems() { IsOrderDetailsModified = false; CurrentOrderDetails = new ObservablePropertiesCollection <OrderDetailOV>(); foreach (tblOrderDetail orderDetail in CurrentCustomerOrder.tblOrderDetails) { if (orderDetail.IsActive) { var oDOV = new OrderDetailOV() { OrderDetailID = orderDetail.OrderDetailID, MedicineName = orderDetail.tblMedicine.MedicineName, MedicineID = orderDetail.tblMedicine.MedicineID, MedicineUnitName = orderDetail.tblMedicine.tblMedicineUnit.MedicineUnitName, Quantity = orderDetail.Quantity, UnitPrice = orderDetail.UnitPrice, TotalPrice = orderDetail.TotalPrice, PromoPercent = orderDetail.PromoPercent, UnitBidPrice = orderDetail.UnitBidPrice }; CurrentOrderDetails.Add(oDOV); } } CurrentOrderDetails.CollectionChanged -= OrderDetailsCollectionChanged; CurrentOrderDetails.CollectionChanged += OrderDetailsCollectionChanged; CurrentOrderDetails.ItemPropertiesChanged -= ItemPropertiesChanged; CurrentOrderDetails.ItemPropertiesChanged += ItemPropertiesChanged; }
private void CreateNewOrderDetail() { try { OrderDetailOV orderDetailVO = new OrderDetailOV(); orderDetailVO.MedicineName = CBPViewModel.MedicineOV.CurrentSelectedMedicine.MedicineName; orderDetailVO.MedicineID = CBPViewModel.MedicineOV.CurrentSelectedMedicine.MedicineID; orderDetailVO.MedicineUnitName = CBPViewModel.MedicineOV.CurrentSelectedMedicine.tblMedicineUnit.MedicineUnitName; orderDetailVO.Quantity = Convert.ToDouble(CBPViewModel.MedicineOV.Quantity); orderDetailVO.UnitPrice = CBPViewModel.MedicineOV.CurrentSelectedMedicine.AskingPrice; orderDetailVO.UnitBidPrice = CBPViewModel.MedicineOV.CurrentSelectedMedicine.BidPrice; GetPromo(orderDetailVO); orderDetailVO.TotalPrice = Convert.ToDecimal(Convert.ToDouble(CBPViewModel.MedicineOV.Quantity) * Convert.ToDouble(CBPViewModel.MedicineOV.CurrentSelectedMedicine.AskingPrice) * (100 - orderDetailVO.PromoPercent) / 100); OrderDetailOV checkExistedVO = null; try { if (CBPViewModel.CurrentOrderDetails.Count > 0) { checkExistedVO = CBPViewModel.CurrentOrderDetails.First(VO => VO.MedicineID.Equals(orderDetailVO.MedicineID)); } } catch (Exception e) { } if (checkExistedVO != null) { checkExistedVO.Quantity += orderDetailVO.Quantity; checkExistedVO.TotalPrice += orderDetailVO.TotalPrice; //ctrl.Items.Refresh(); //_viewModel.Invalidate(_viewModel, "MedicineCost"); //_viewModel.Invalidate(_viewModel, "TotalCost"); //_viewModel.Invalidate(_viewModel, "RestAmount"); } else { CBPViewModel.CurrentOrderDetails.Add(orderDetailVO); } } catch (Exception e) { } finally { CBPViewModel.ButtonCommandOV.IsAddOrderDeatailButtonRunning = false; CBPViewModel.MedicineOV.CurrentSelectedMedicine = null; CBPViewModel.MedicineOV.Quantity = null; CBPViewModel.MedicineOV.Invalidate("CurrentSelectedMedicine"); CBPViewModel.MedicineOV.Invalidate("Quantity"); } }
private void GetPromo(OrderDetailOV orderDetailVO) { tblPromo appliedPromo = new tblPromo(); if (CBPViewModel.CurrentCustomerOrder != null) { foreach (tblPromo promo in CBPViewModel.CurrentCustomerOrder.tblCustomer.tblPromoes) { if (promo.MedicineID == CBPViewModel.MedicineOV.CurrentSelectedMedicine.MedicineID) { appliedPromo = promo; break; } } } orderDetailVO.PromoPercent = appliedPromo.PromoPercent; }