Example #1
0
 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);
     }
 }
Example #2
0
 //将绑定的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,
     });
 }
Example #3
0
        // 随机的个体
        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);



                //是否考虑到,优惠券被占用的条件,被占用的话,这个是无效的适应度
            }
        }
Example #4
0
        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);
                }
            }
        }
Example #5
0
 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);
             }
         }
     }
 }
Example #6
0
        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;
                    }
                }
            }
        }
Example #7
0
        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;
                    }
                }
            }
        }
Example #8
0
        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);
        }
Example #9
0
 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);
         }
     }
 }
Example #10
0
 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);
 }
Example #11
0
 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();
     }
 }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #14
0
        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.收银;
        }
Example #15
0
        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("添加失败!");
            }
        }
Example #16
0
        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;
                }
            }
        }
Example #17
0
        //当单元格中的金额或折扣值发生变化时,对应修改另一项的值
        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("内部错误,金额与折扣转化出错!");
                }
            }
        }