Example #1
0
 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;
        }