private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (!DataGridViewUtil.CheckPerrmisson(this, sender, e)) { return; } try { if (e.RowIndex > -1 && e.ColumnIndex > -1) { if (CommonGlobalUtil.ConvertToString(this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value) == "删除") { DialogResult dialogResult = GlobalMessageBox.Show("确定删除该条数据?", "提示", MessageBoxButtons.OKCancel); if (dialogResult != DialogResult.OK) { return; } RetailDetail detail = this.retailDetailList[e.RowIndex]; this.retailDetailList.RemoveAt(e.RowIndex); dataGridViewPagingSumCtrl.BindingDataSource(DataGridViewUtil.ListToBindingList(this.retailDetailList)); } if (e.ColumnIndex == GuideName.Index) { RetailDetail detail = this.retailDetailList[e.RowIndex]; // detail.GuideID = this.retailDetailList[e.ColumnIndex]; detail.GuideID = this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); //detail.GuideName = CommonGlobalCache.GetUserName(detail.GuideID); } } } catch (Exception ee) { GlobalUtil.WriteLog(ee); } }
//将绑定的RetailDetail源转换成RefundDetail private RetailDetail RetailDetailToRefundDetail(RetailDetail retailDetail, string orderID) { return(new RetailDetail() { RetailOrderID = orderID, CostumeID = retailDetail.CostumeID, CostumeName = GlobalCache.GetCostumeName(retailDetail.CostumeID), ColorName = retailDetail.ColorName, SizeName = retailDetail.SizeName, Discount = retailDetail.Discount, DiscountOrigin = retailDetail.DiscountOrigin, IsRefund = true, Price = retailDetail.Price, BuyCount = retailDetail.RefundCount * -1, IsBuyout = retailDetail.IsBuyout, BrandName = ValidateUtil.CheckNotNullValue(retailDetail.BrandName), GiftTicketMoney = retailDetail.GiftTicketMoney, //268 畅滞排行榜:商品退货后,零售金额变成0 //20180820 summoney 修改为除以购买数量再乘以退货数量 SalePrice = Math.Round((retailDetail.SumMoney / retailDetail.BuyCount) * -1, 1, MidpointRounding.AwayFromZero),//每件商品退货单价 SumMoney = Math.Round(retailDetail.RefundCount * (retailDetail.SumMoney / retailDetail.BuyCount) * -1, 1, MidpointRounding.AwayFromZero), SumMoneyActual = Math.Round(retailDetail.RefundCount * retailDetail.Price * -1, 1, MidpointRounding.AwayFromZero), SizeDisplayName = retailDetail.SizeDisplayName, //retailDetail.RefundCount * retailDetail.Price * -1, CostPrice = retailDetail.CostPrice * -1, SumCost = retailDetail.RefundCount * retailDetail.CostPrice * -1, Remarks = retailDetail.Remarks, InSalesPromotion = retailDetail.InSalesPromotion, GiftTickets = retailDetail.GiftTickets, RefundCount = retailDetail.RefundCount, OccureTime = dateTimePicker_Start.Value, GuideID = retailDetail.GuideID, }); }
// 随机的个体 public void GenerateIndividual(List <RetailDetail> retailsOrg, List <GiftTicket> ticketsOrg) { this.RetailsOrg = retailsOrg; this.TicketsOrg = ticketsOrg; retails = new List <RetailDetail>(); tickets = new List <GiftTicket>(); retails.AddRange(retailsOrg); tickets.AddRange(ticketsOrg); for (int i = 0; i < retailsOrg.Count; i++) { //Random randomDetail = new Random(GlobalUtil.GetRandomSeed()); //int randomDetailIndex = random.Next(0, retails.Count); RetailDetail retail = retailsOrg[i]; //随机拿一张优惠券 Random random = new Random(GetRandomSeed()); GiftTicket ticket = null; if (tickets.Count > 0) { int pickTicket = random.Next(0, tickets.Count); ticket = tickets[pickTicket]; } SetMatch(i, retail, ticket); // int pickTicket = (int)(new Random().NextDouble() * tickets.Count); //是否考虑到,优惠券被占用的条件,被占用的话,这个是无效的适应度 } }
private void SetMatch(int i, RetailDetail retail, GiftTicket ticket) { if (ticket == null) { //优惠券不够用了 genes[i] = new GiftTicketMatch() { Retail = retail, Ticket = null }; retails.Remove(retail); } //如果是款号有匹配的优惠券则完成匹配,否则,设置为空,那么优惠券就保留。 else if (String.IsNullOrEmpty(retail.MatchGiftTickets)) { //该款号没有匹配的优惠券。 genes[i] = new GiftTicketMatch() { Retail = retail, Ticket = null }; retails.Remove(retail); } else { //款号有匹配的优惠券 String[] retailMatchTickets = retail.MatchGiftTickets.Split(','); List <String> retailMatchTicketList = new List <string>(retailMatchTickets); if (retailMatchTicketList.Contains(ticket.ID)) { //匹配到了 genes[i] = new GiftTicketMatch() { Retail = retail, Ticket = ticket }; retails.Remove(retail); tickets.Remove(ticket); } else { genes[i] = new GiftTicketMatch() { Retail = retail, Ticket = null }; retails.Remove(retail); } } }
public override void HighlightCostume() { if (this.dataGridView_Detail.DataSource != null) { if (!String.IsNullOrEmpty(BaseModifyCostumeID)) { foreach (DataGridViewRow row in dataGridView_Detail.Rows) { RetailDetail detail = row.DataBoundItem as RetailDetail; HighlightCostume(row, detail?.CostumeID); } } } }
private void BuildSumMoneyActual() { decimal sum = 0; decimal buyout = 0; List <RetailDetail> refundDetailListBuyout = refundCostume.RefundDetailList.FindAll(t => t.IsBuyout); List <RetailDetail> refundDetailListNotBuyout = refundCostume.RefundDetailList.FindAll(t => !t.IsBuyout); if (refundDetailListBuyout != null) { foreach (RetailDetail detail in refundDetailListBuyout) { buyout += detail.SumMoney; } } foreach (RetailDetail detail in refundCostume.RefundDetailList) { sum += detail.SumMoney; } //按实收的摊 if (refundDetailListNotBuyout != null) { foreach (RetailDetail detail in refundDetailListNotBuyout) { CommonGlobalUtil.WriteLog("单款吊牌总额:" + detail.SumMoneyActual); sum += detail.SumMoneyActual; } CommonGlobalUtil.WriteLog("总吊牌价:" + sum); decimal totalMoneyReceivedWithoutBuyout = refundCostume.RefundOrder.TotalMoneyReceived - buyout; decimal mjMoneyRemain = refundCostume.RefundOrder.TotalMoneyReceivedActual - buyout; //按实收的摊 for (int i = 0; i < refundDetailListNotBuyout.Count; i++) { RetailDetail detail = (RetailDetail)refundDetailListNotBuyout[i]; //如果是最后一个就把剩余的给他 if (i + 1 == refundDetailListNotBuyout.Count) { detail.SumMoneyActual = mjMoneyRemain; } else { decimal rate = detail.SumMoneyActual / sum; decimal rateMoney = MathHelper.Rounded(totalMoneyReceivedWithoutBuyout * rate, 2); mjMoneyRemain = MathHelper.Rounded(mjMoneyRemain - rateMoney, 2); detail.SumMoneyActual = rateMoney; } } } }
private void BuildSumMoney() { decimal sum = 0; decimal buyout = 0; decimal mjMoneyRemain = 0; List <RetailDetail> refundDetailListBuyout = refundCostume.RefundDetailList.FindAll(t => t.IsBuyout); List <RetailDetail> refundDetailListNotBuyout = refundCostume.RefundDetailList.FindAll(t => !t.IsBuyout); if (refundDetailListBuyout != null) { foreach (RetailDetail detail in refundDetailListBuyout) { buyout += detail.SumMoney; } } foreach (RetailDetail detail in refundCostume.RefundDetailList) { sum += detail.SumMoney; // detail.SinglePrice = detail.SumMoney / detail.BuyCount; } decimal totalMoneyReceivedWithoutBuyout = refundCostume.RefundOrder.TotalMoneyReceived - buyout; mjMoneyRemain = refundCostume.RefundOrder.TotalMoneyReceived - buyout; //按实收的摊 if (refundDetailListNotBuyout != null) { for (int i = 0; i < refundDetailListNotBuyout.Count; i++) { RetailDetail detail = (RetailDetail)refundDetailListNotBuyout[i]; //如果是最后一个就把剩余的给他 if (i + 1 == refundDetailListNotBuyout.Count) { detail.SumMoney = mjMoneyRemain; detail.SinglePrice = detail.SumMoney / detail.BuyCount; } else { decimal rate = detail.SumMoney / sum; decimal rateMoney = Math.Round(totalMoneyReceivedWithoutBuyout * rate, 2, MidpointRounding.AwayFromZero); mjMoneyRemain = Math.Round(mjMoneyRemain - rateMoney, 2, MidpointRounding.AwayFromZero); detail.SumMoney = rateMoney; detail.SinglePrice = detail.SumMoney / detail.BuyCount; } } } }
private List <RetailDetail> GetAllRetailDetails() { List <RetailDetail> allRetailDetailList = new List <RetailDetail>(); int j = 0; foreach (var item in retailDetailList) { //if (item.IsUseTickets) //{ item.AutoID = j++; item.SingleRetailDetails = new List <RetailDetail>(); if (item.BuyCount > 1) { //all for (int i = 0; i < item.BuyCount; i++) { RetailDetail detail = new RetailDetail(); CJBasic.Helpers.ReflectionHelper.CopyProperty(item, detail); detail.BuyCount = 1; //detail.GiftTickets = string.Empty; // detail.MatchGiftTickets = string.Empty; detail.SumMoney = item.SumMoney / item.BuyCount; // detail.SumMoneyActual = item.SumMoneyActual / item.BuyCount; item.SingleRetailDetails.Add(detail); allRetailDetailList.Add(detail); } } else { RetailDetail detail = new RetailDetail(); CJBasic.Helpers.ReflectionHelper.CopyProperty(item, detail); detail.SumMoney = item.SumMoney / item.BuyCount; // detail.SumMoneyActual = item.SumMoneyActual / item.BuyCount; detail.GiftTickets = string.Empty; //if (!item.IsUseTickets) //{ // detail.MatchGiftTickets = string.Empty; //} item.SingleRetailDetails.Add(detail); allRetailDetailList.Add(detail); } //} } return(allRetailDetailList); }
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } if (e.RowIndex > -1 && e.ColumnIndex > -1) { RetailDetail detail = this.currentRetailCostume.RetailDetailList[e.RowIndex]; if (e.ColumnIndex == GuideName.Index) { // detail.GuideID = this.retailDetailList[e.ColumnIndex]; detail.GuideID = this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); //detail.GuideName = CommonGlobalCache.GetUserName(detail.GuideID); } } }
private bool AddSelectedCostumeToList(RetailDetail detail) { foreach (RetailDetail retailDetail in this.retailDetailList) { if (retailDetail.CostumeID == detail.CostumeID && retailDetail.ColorName == detail.ColorName && retailDetail.SizeName == detail.SizeName) { GlobalMessageBox.Show("列表中已存在该款商品!"); int rowIndex = this.retailDetailList.IndexOf(retailDetail); this.dataGridView1.ClearSelection(); this.dataGridView1.Rows[rowIndex].Selected = true; return(false); } } this.retailDetailList.Add(detail); // this.isAddDetail = true; return(true); }
private void CalcDirectly() { if (refundCostume.RefundOrder.TotalMoneyReceived == refundCostume.RefundOrder.TotalMoneyReceivedActual) { //如果总计和所有款总额不一致则重新摊 decimal sum = 0; decimal buyout = 0; List <RetailDetail> refundDetailListBuyout = refundCostume.RefundDetailList.FindAll(t => t.IsBuyout); List <RetailDetail> refundDetailListNotBuyout = refundCostume.RefundDetailList.FindAll(t => !t.IsBuyout); if (refundDetailListBuyout != null) { foreach (RetailDetail detail in refundDetailListBuyout) { buyout += detail.SumMoney; } } foreach (RetailDetail detail in refundCostume.RefundDetailList) { sum += detail.SumMoney; detail.SinglePrice = detail.SumMoney / detail.BuyCount; } if (refundCostume.RefundOrder.TotalMoneyReceived == sum) { for (int i = 0; i < refundCostume.RefundDetailList.Count; i++) { RetailDetail detail = (RetailDetail)refundCostume.RefundDetailList[i]; detail.SumMoneyActual = detail.SumMoney; } } else { BuildSumMoney(); for (int i = 0; i < refundCostume.RefundDetailList.Count; i++) { RetailDetail detail = (RetailDetail)refundCostume.RefundDetailList[i]; detail.SumMoneyActual = detail.SumMoney; } } } else { BuildSumMoneyActual(); BuildSumMoney(); } }
private DataGridView deepCopyDataGridView() { DataGridView dgvTmp = new DataGridView(); dgvTmp.Name = "dgvTmp"; this.Controls.Add(dgvTmp); // dgvTmp.AllowUserToAddRows = false; //不允许用户生成行,否则导出后会多出最后一行 dgvTmp.AutoGenerateColumns = false; List <RetailDetail> listtb1 = DataGridViewUtil.BindingListToList <RetailDetail>(dataGridView_RetailDetail.DataSource); List <RetailDetail> tb2 = new List <RetailDetail>(); int autoID = 0; foreach (RetailDetail idetail in listtb1) { RetailDetail tDetail = new RetailDetail(); ReflectionHelper.CopyProperty(idetail, tDetail); autoID++; tDetail.PrintAutoID = autoID; tb2.Add(tDetail); } DataGridViewTextBoxColumn dgvColumnAuto = new DataGridViewTextBoxColumn(); dgvColumnAuto.Name = "序列号"; dgvColumnAuto.HeaderText = "序列号"; dgvColumnAuto.Visible = true; dgvColumnAuto.DataPropertyName = "PrintAutoID"; dgvTmp.Columns.Add(dgvColumnAuto); // List<DataGridViewTextBoxColumn> listColumns = new List<DataGridViewTextBoxColumn>(); for (int i = 0; i < dataGridView_RetailDetail.Columns.Count; i++) { dgvTmp.Columns.Add(dataGridView_RetailDetail.Columns[i].Name, dataGridView_RetailDetail.Columns[i].HeaderText); if (dataGridView_RetailDetail.Columns[i].DefaultCellStyle.Format.Contains("N")) //使导出Excel文档金额列可做SUM运算 { dgvTmp.Columns[i + 1].DefaultCellStyle.Format = dataGridView_RetailDetail.Columns[i].DefaultCellStyle.Format; } if (!dataGridView_RetailDetail.Columns[i].Visible) { dgvTmp.Columns[i + 1].Visible = false; } dgvTmp.Columns[i + 1].DataPropertyName = dataGridView_RetailDetail.Columns[i].DataPropertyName; if (dataGridView_RetailDetail.Columns[i].HeaderText == "单价") { dgvTmp.Columns[i + 1].HeaderText = "吊牌价"; } else if (dataGridView_RetailDetail.Columns[i].HeaderText == "销售额") { dgvTmp.Columns[i + 1].HeaderText = "金额"; } else { dgvTmp.Columns[i + 1].HeaderText = dataGridView_RetailDetail.Columns[i].HeaderText; } dgvTmp.Columns[i + 1].Tag = dataGridView_RetailDetail.Columns[i].Tag; dgvTmp.Columns[i + 1].Name = dataGridView_RetailDetail.Columns[i].Name; } dgvTmp.DataSource = tb2; return(dgvTmp); }
private DataGridView deepCopyDataGridView() { DataGridView dgvTmp = new DataGridView(); dgvTmp.Name = "dgvTmp"; this.Controls.Add(dgvTmp); // dgvTmp.AllowUserToAddRows = false; //不允许用户生成行,否则导出后会多出最后一行 dgvTmp.AutoGenerateColumns = false; List <RetailDetail> listtb1 = retailDetailList; List <RetailDetail> tb2 = new List <RetailDetail>(); int autoID = 0; foreach (RetailDetail idetail in listtb1) { RetailDetail tDetail = new RetailDetail(); ReflectionHelper.CopyProperty(idetail, tDetail); autoID++; tDetail.PrintAutoID = autoID; tb2.Add(tDetail); } DataGridViewTextBoxColumn dgvColumnAuto = new DataGridViewTextBoxColumn(); dgvColumnAuto.Name = "序列号"; dgvColumnAuto.HeaderText = "序列号"; dgvColumnAuto.Visible = true; dgvColumnAuto.DataPropertyName = "PrintAutoID"; dgvTmp.Columns.Add(dgvColumnAuto); List <DataGridViewTextBoxColumn> listColumns = new List <DataGridViewTextBoxColumn>(); //dgvTmp.Columns.Add("ColumnCoustomerId","款号"); //deepSourceDataGridView.Columns.RemoveAt(deepSourceDataGridView.Columns.Count - 1); // deepSourceDataGridView.Columns.RemoveAt(deepSourceDataGridView.Columns.Count -1); for (int i = 0; i < deepSourceDataGridView.Columns.Count; i++) { if (deepSourceDataGridView.Columns[i].Name != "Column3" && deepSourceDataGridView.Columns[i].Name != "Delete") { dgvTmp.Columns.Add(deepSourceDataGridView.Columns[i].Name, deepSourceDataGridView.Columns[i].HeaderText); if (deepSourceDataGridView.Columns[i].DefaultCellStyle.Format.Contains("N")) //使导出Excel文档金额列可做SUM运算 { dgvTmp.Columns[i + 1].DefaultCellStyle.Format = deepSourceDataGridView.Columns[i].DefaultCellStyle.Format; } if (!deepSourceDataGridView.Columns[i].Visible) { dgvTmp.Columns[i + 1].Visible = false; } dgvTmp.Columns[i + 1].DataPropertyName = deepSourceDataGridView.Columns[i].DataPropertyName; if (deepSourceDataGridView.Columns[i].HeaderText == "单价") { dgvTmp.Columns[i + 1].HeaderText = "吊牌价"; } else if (deepSourceDataGridView.Columns[i].HeaderText == "销售额") { dgvTmp.Columns[i + 1].HeaderText = "金额"; } else { dgvTmp.Columns[i + 1].HeaderText = deepSourceDataGridView.Columns[i].HeaderText; } dgvTmp.Columns[i + 1].Tag = deepSourceDataGridView.Columns[i].Tag; dgvTmp.Columns[i + 1].Name = deepSourceDataGridView.Columns[i].Name; } } //DataGridViewTextBoxColumn dgvColumnRemark = new DataGridViewTextBoxColumn(); //dgvColumnRemark.Name = "备注"; //dgvColumnRemark.HeaderText = "备注"; //dgvColumnRemark.Visible = true; //dgvColumnRemark.DataPropertyName = "Remarks"; //dgvTmp.Columns.Add(dgvColumnRemark); dgvTmp.DataSource = tb2; return(dgvTmp); }
public BalanceForm(Member _member, List <RetailDetail> list, string shopID, bool currentIsInSingleDiscount, decimal _mjMoney, SalesPromotion promotion, string guideID, string promotionText, DateTime createTime, DataGridView dgvRetail) { InitializeComponent(); this.shopID = shopID; LoadConfig(); sorceList = list; deepSourceDataGridView = dgvRetail; List <RetailDetail> tempList = new List <RetailDetail>(); if (list != null) { foreach (var item in list) { RetailDetail temp = new RetailDetail(); ReflectionHelper.CopyProperty(item, temp); tempList.Add(temp); } } if (!currentIsInSingleDiscount) { this.salesPromotion = promotion; this.promotionText = promotionText; this.mjMoney = _mjMoney; } else { foreach (var item in tempList) { item.InSalesPromotion = false; } } //if (this.retailDetailList != null) //{ // foreach (RetailDetail detail in this.retailDetailList) // { // this.totalMoneyReceived += detail.SumMoney; // } //} this.guideID = guideID; this.member = _member; this.createTime = createTime; // this.sizeGroup = sizeGroup; this.retailDetailList = tempList; //计算最优惠的折扣 textBox1.ValueChanged += TextBox1_ValueChanged; skinTextBox_MoneyCash.ValueChanged += TextBox1_ValueChanged; skinTextBox_MoneyBankCard.ValueChanged += TextBox1_ValueChanged; skinTextBox_MoneyStoredCard.ValueChanged += TextBox1_ValueChanged; skinTextBox_MoneyWeiXin.ValueChanged += TextBox1_ValueChanged; skinTextBox_MoneyAlipay.ValueChanged += TextBox1_ValueChanged; numericTextBoxElse.ValueChanged += TextBox1_ValueChanged; skinTextBox_MoneyIntegration.ValueChanged += TextBox1_ValueChanged; this.Initialize(); CalcGiftTickets(); MenuPermission = Common.Core.RolePermissionMenuEnum.收银; }
private void BaseButton_AddCostume_Click(object sender, EventArgs e) { try { int buyCount = int.Parse(this.skinTextBox_bugCount.SkinTxt.Text); if (buyCount <= 0) { GlobalMessageBox.Show("退货数量必须大于0!"); return; } string selectShopid = ValidateUtil.CheckEmptyValue(this.skinComboBoxShopID.SelectedValue); List <Guide> guideList = CommonGlobalCache.GuideList.FindAll(t => t.State == 0 && t.ShopID == selectShopid); this.GuideName.DataSource = guideList; this.GuideName.DisplayMember = "Name"; this.GuideName.ValueMember = "ID"; string defaultGuid = string.Empty; if (this.guideComboBox1.SelectedIndex > 0) { defaultGuid = ValidateUtil.CheckEmptyValue(this.guideComboBox1.SelectedValue); } RetailDetail detail = new RetailDetail() { Costume = this.currentSelectedItem.Costume, CostumeID = this.currentSelectedItem.Costume.ID, CostumeName = this.currentSelectedItem.Costume.Name, ColorName = this.skinComboBox_Color.Text, SizeName = ValidateUtil.CheckEmptyValue(this.skinComboBox_Size.SelectedValue), GuideID = defaultGuid, // 显示自己设置的尺码组和对应的尺码列表 SizeDisplayName = CostumeStoreHelper.GetCostumeSizeName(ValidateUtil.CheckEmptyValue(this.skinComboBox_Size.SelectedValue), CommonGlobalCache.GetSizeGroup(this.currentSelectedItem.Costume.SizeGroupName)), IsRefund = true, RefundCount = buyCount, BuyCount = buyCount, Price = this.currentSelectedItem.Costume.Price, SumMoney = this.currentSelectedItem.Costume.Price * buyCount, SumMoneyActual = this.currentSelectedItem.Costume.Price * buyCount, BrandName = ValidateUtil.CheckNotNullValue(currentSelectedItem.Costume.BrandName), // SinglePrice = this.currentSelectedItem.Costume.Price, IsUseTickets = false, ///288 收银时,商品的备注显示的是商品的备注 //Remarks = this.currentSelectedItem.Costume.Remarks, Discount = 100, DiscountOrigin = 100, AllowReviseDiscount = true,//this.currentSelectedStore.AllowReviseDiscount, CostPrice = this.currentSelectedItem.Costume.CostPrice, SumCost = this.currentSelectedItem.Costume.CostPrice * buyCount, }; if (!this.AddSelectedCostumeToList(detail)) { return; } dataGridViewPagingSumCtrl.BindingDataSource(DataGridViewUtil.ListToBindingList(this.retailDetailList)); this.skinTextBox_bugCount.SkinTxt.Text = "1"; } catch (Exception ee) { CommonGlobalUtil.WriteLog(ee); GlobalMessageBox.Show("添加失败!"); } }
private void CalcNormal() { decimal sum = 0; foreach (RetailDetail detail in refundCostume.RefundDetailList) { sum += detail.SumMoney; } decimal totalMoneyReceivedWithoutBuyout = refundCostume.RefundOrder.TotalMoneyReceived; decimal mjMoneyRemain = refundCostume.RefundOrder.TotalMoneyReceived; //按实收的摊 for (int i = 0; i < refundCostume.RefundDetailList.Count; i++) { RetailDetail detail = (RetailDetail)refundCostume.RefundDetailList[i]; //如果是最后一个就把剩余的给他 if (i + 1 == refundCostume.RefundDetailList.Count) { detail.SumMoney = mjMoneyRemain; detail.SinglePrice = detail.SumMoney / detail.BuyCount; } else { decimal rate = detail.SumMoney / sum; decimal rateMoney = Math.Round(totalMoneyReceivedWithoutBuyout * rate, 2, MidpointRounding.AwayFromZero); mjMoneyRemain = Math.Round(mjMoneyRemain - rateMoney, 2, MidpointRounding.AwayFromZero); detail.SumMoney = rateMoney; detail.SinglePrice = detail.SumMoney / detail.BuyCount; } } sum = 0; foreach (RetailDetail detail in refundCostume.RefundDetailList) { // CommonGlobalUtil.WriteLog("单款吊牌总额:" + detail.SumMoneyActual); //20181207 按summary来作为比例摊 sum += detail.SumMoney; } // CommonGlobalUtil.WriteLog("总吊牌价:" + sum); mjMoneyRemain = refundCostume.RefundOrder.TotalMoneyReceivedActual; //按实收的摊 for (int i = 0; i < refundCostume.RefundDetailList.Count; i++) { RetailDetail detail = (RetailDetail)refundCostume.RefundDetailList[i]; //如果是最后一个就把剩余的给他 if (i + 1 == refundCostume.RefundDetailList.Count) { detail.SumMoneyActual = mjMoneyRemain; // detail.SinglePrice = detail.SumMoneyActual / detail.BuyCount; } else { decimal rate = detail.SumMoney / sum; decimal rateMoney = MathHelper.Rounded(totalMoneyReceivedWithoutBuyout * rate, 2); mjMoneyRemain = MathHelper.Rounded(mjMoneyRemain - rateMoney, 2); detail.SumMoneyActual = rateMoney; // detail.SinglePrice = detail.SumMoneyActual / detail.BuyCount; } } if (refundCostume.RefundOrder.TotalMoneyReceived == refundCostume.RefundOrder.TotalMoneyReceivedActual) { for (int i = 0; i < refundCostume.RefundDetailList.Count; i++) { RetailDetail detail = (RetailDetail)refundCostume.RefundDetailList[i]; detail.SumMoneyActual = detail.SumMoney; //detail.SinglePrice = detail.SumMoneyActual / detail.BuyCount; } } }
//当单元格中的金额或折扣值发生变化时,对应修改另一项的值 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1 && e.ColumnIndex > -1) { try { RetailDetail detail = this.retailDetailList[e.RowIndex]; if (e.ColumnIndex == GuideName.Index) { detail.GuideID = this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); } switch (this.dataGridView1.Columns[e.ColumnIndex].HeaderText) { case "折扣": if (balanceRound) { detail.SumMoney = detail.RefundCount * Math.Round(detail.Price * detail.Discount * (decimal)0.01, MidpointRounding.AwayFromZero); detail.SumMoneyActual = detail.SumMoney; } else { detail.SumMoney = detail.Price * detail.Discount * detail.RefundCount * (decimal)0.01; detail.SumMoneyActual = detail.SumMoney; } break; case "金额": detail.Discount = (Math.Round((detail.SumMoney * 100) / (detail.Price * detail.RefundCount), 1, MidpointRounding.AwayFromZero)); break; case "数量": if (balanceRound) { detail.SumMoney = detail.RefundCount * Math.Round(detail.Price * detail.Discount * (decimal)0.01, MidpointRounding.AwayFromZero); detail.SumMoneyActual = detail.SumMoney; } else { detail.SumMoney = detail.Price * detail.Discount * detail.RefundCount * (decimal)0.01; detail.SumMoneyActual = detail.SumMoney; } //268 畅滞排行榜:商品退货后,零售金额变成0 detail.SumCost = detail.CostPrice * detail.RefundCount; break; case "使用优惠券": detail.IsUseTickets = (bool)this.dataGridView1[e.ColumnIndex, e.RowIndex].Value; break; } this.dataGridView1.Refresh(); } catch (Exception ex) { GlobalUtil.WriteLog(ex); GlobalMessageBox.Show("内部错误,金额与折扣转化出错!"); } } }