Exemplo n.º 1
0
 private void hlkb_SOElectronicCard_Caculater_Click(object sender, RoutedEventArgs e)
 {
     if (string.IsNullOrEmpty(txtOriginalPrice.Text) ||
         string.IsNullOrEmpty(txtQuantity.Text) ||
         string.IsNullOrEmpty(txtPrice.Text))
     {
         CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOMaintain.Info_ElectronicCard_Error, MessageType.Error);
     }
     else
     {
         try
         {
             decimal      OriginalPrice = Convert.ToDecimal(txtOriginalPrice.Text);
             int          Quantity      = Convert.ToInt32(txtQuantity.Text);
             decimal      Price         = Convert.ToDecimal(txtPrice.Text);
             SOItemInfoVM soItemInfoVM  = new SOItemInfoVM();
             soItemInfoVM.OriginalPrice = OriginalPrice;
             soItemInfoVM.Quantity      = Quantity;
             soItemInfoVM.Price         = Price;
             soItemInfoVM.ProductType   = ECCentral.BizEntity.SO.SOProductType.Product;
             if (OriginalPrice < Price)
             {
                 CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOMaintain.Info_ElectronicCard_Price_Error, MessageType.Error);
             }
             else if (soItemInfoVM.Quantity < 0 || soItemInfoVM.Price < 0)
             {
                 CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOMaintain.Info_ElectronicCard_Price_Value_Error, MessageType.Error);
             }
             else
             {
                 decimal TotalAmount        = (decimal)(soItemInfoVM.Quantity * soItemInfoVM.OriginalPrice);
                 decimal TotalReceiveAmount = (decimal)(soItemInfoVM.Quantity * soItemInfoVM.Price);
                 //总面额
                 txtTotalAmount.Text = TotalAmount.ToString();
                 //总数量
                 txtTotalQuantity.Text = soItemInfoVM.Quantity.ToString();
                 //应付金额
                 txtReceiveAmount.Text = TotalReceiveAmount.ToString();
                 decimal DiscountRate = Math.Abs((decimal)(TotalAmount - TotalReceiveAmount) / TotalAmount) * 100;
                 txtDiscountRate.Text         = Math.Round(DiscountRate, 2) + "%";
                 soItemInfoVM.PromotionAmount = -(TotalAmount - TotalReceiveAmount);
                 soItemInfoVM.Price           = soItemInfoVM.OriginalPrice;
                 soItemInfoVM.OnlineQty       = 99999;
                 soItemInfoVM.AvailableQty    = 99999;
                 ECCentral.Portal.Basic.Utilities.AppSettingHelper.GetSetting(ConstValue.DomainName_SO, ConstValue.SOElectronicCard_ProductID, (obj, args) =>
                 {
                     if (!string.IsNullOrEmpty(args.Result))
                     {
                         soItemInfoVM.ProductID = args.Result;
                     }
                 });
                 ECCentral.Portal.Basic.Utilities.AppSettingHelper.GetSetting(ConstValue.DomainName_SO, ConstValue.SOElectronicCard_ProductName, (obj, args) =>
                 {
                     if (!string.IsNullOrEmpty(args.Result))
                     {
                         soItemInfoVM.ProductName = args.Result;
                     }
                 });
                 ECCentral.Portal.Basic.Utilities.AppSettingHelper.GetSetting(ConstValue.DomainName_IM, ConstValue.IM_ElectronicCard_ProductSysNo_Key, (obj, args) =>
                 {
                     int pSysNo = 0;
                     if (int.TryParse(args.Result, out pSysNo))
                     {
                         soItemInfoVM.ProductSysNo = pSysNo;
                     }
                     SelectedItemInfo = new List <SOItemInfoVM>();
                     SelectedItemInfo.Add(soItemInfoVM);
                 });
             }
         }
         catch (Exception)
         {
             CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOMaintain.Info_ElectronicCard_Price_Format_Error, MessageType.Information);
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 添加赠品订单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddGiftSO_Click(object sender, RoutedEventArgs e)
        {
            if (giftList != null && giftList.Count > 0)
            {
                SOVM giftSOVM = new SOVM();
                giftSOVM.BaseInfoVM.SOType          = SOType.Gift;
                giftSOVM.BaseInfoVM.Memo            = txtAddGiftNote.Text;
                giftSOVM.BaseInfoVM.CustomerChannel = CurrentSOVM.BaseInfoVM.CustomerChannel;
                giftSOVM.BaseInfoVM.CustomerSysNo   = CurrentSOVM.BaseInfoVM.CustomerSysNo;
                SOItemInfoVM soItem = null;

                foreach (dynamic g in dataGridGift.ItemsSource)
                {
                    if (g.IsChecked)
                    {
                        soItem = giftSOVM.ItemsVM.FirstOrDefault(item => item.ProductSysNo == g.ProductSysNo);
                        if (soItem == null)
                        {
                            soItem = new SOItemInfoVM
                            {
                                Quantity           = 1,
                                Price              = 0,
                                ProductSysNo       = g.ProductSysNo,
                                ProductType        = 0,
                                OriginalPrice      = 0,
                                MasterProductSysNo = g.MasterProductSysNo.ToString()
                            };
                            giftSOVM.ItemsVM.Add(soItem);
                        }
                        else
                        {
                            soItem.Quantity += 1;
                        }
                    }
                }
                if (giftSOVM.ItemsVM.Count > 0)
                {
                    string errMsg = string.Empty;
                    #region 原订单中是否已经存在赠品

                    List <string> existsGifts = new List <string>();
                    foreach (var gift in giftSOVM.ItemsVM)
                    {
                        if (CurrentSOVM.ItemsVM.FirstOrDefault(x => { return(x.ProductSysNo == gift.ProductSysNo); }) != null)
                        {
                            existsGifts.Add(gift.ProductID);
                        }
                    }

                    if (existsGifts.Count > 0)
                    {
                        errMsg = string.Format(ResSO.Msg_ConfirmCreateRepeatGiftSOOrder, string.Join(",", existsGifts.ToArray()));
                    }

                    #endregion

                    #region 订单是否创建过赠品单
                    SOLogQueryFilter query = new SOLogQueryFilter();
                    query.SOSysNo    = SOSysNo;
                    query.PagingInfo = new PagingInfo()
                    {
                        PageSize  = int.MaxValue,
                        PageIndex = 0,
                        SortBy    = "SO_Log.OptTime DESC"
                    };
                    SOQueryFacade facade = new SOQueryFacade();
                    facade.QuerySOSystemLog(query, (obj, args) =>
                    {
                        if (args.FaultsHandle())
                        {
                            return;
                        }
                        foreach (var item in args.Result.Rows)
                        {
                            //note需要特殊处理
                            if ((BizLogType)item["OptType"] == BizLogType.Sale_SO_CreateGiftSO)
                            {
                                errMsg += string.Format(ResSO.Msg_ConfirmCreateRepeatSOGiftOrder
                                                        , item["OptTime"]
                                                        , item["Note"]);
                                break;
                            }
                        }
                        if (errMsg.Length > 0)
                        {
                            Window.Confirm(errMsg, (giftCreaterSender, giftCreaterArgs) =>
                            {
                                if (giftCreaterArgs.DialogResult == DialogResultType.OK)
                                {
                                    ConfirmCreateGiftSO(giftSOVM);
                                }
                            });
                        }
                        else
                        {
                            ConfirmCreateGiftSO(giftSOVM);
                        }
                    });
                    #endregion
                }
                else
                {
                    Page.Context.Window.Alert(ResSO.Info_GiftSO_ItemIsNull);
                }
            }
            else
            {
                Page.Context.Window.Alert(ResSO.Info_GiftSO_ItemIsNull);
            }
        }