Example #1
0
        private void Button6_Click(System.Object sender, System.EventArgs e)
        {
            Label23.Visible = false;
            frmSelPayType frmspt = new frmSelPayType();
            decimal balancedcost = 0; //支付金额

            if (tblPayFor.Rows.Count > 0)
            {
                for (int i = 0; i <= tblPayFor.Rows.Count - 1; i++)
                {
                    balancedcost = balancedcost + Convert.ToDecimal(tblPayFor.Rows[i]["Price"]);
                }
                //有无减免金额
                if (rms_var.ExistsMngr(TextBox2.Text))
                {
                    if (TextBox1.Text != "")
                    {
                        //减去减免金额
                        frmspt.NumericUpDown1.Value =decimal.Parse(lblNeedCost.Text)- balancedcost - numDerateCost.Value;
                    }
                    else
                    {
                        frmspt.NumericUpDown1.Value = decimal.Parse(lblNeedCost.Text) - balancedcost;
                    }

                }
                else
                {
                    frmspt.NumericUpDown1.Value = decimal.Parse(lblNeedCost.Text) - balancedcost;
                }
            }
            else
            {
                //有无减免金额
                if (rms_var.ExistsMngr(TextBox2.Text))
                {
                    if (TextBox1.Text != "")
                    {
                        //减去减免金额
                        frmspt.NumericUpDown1.Value =decimal.Parse(lblNeedCost.Text) - balancedcost - numDerateCost.Value;
                    }
                    else
                    {
                        frmspt.NumericUpDown1.Value =decimal.Parse(lblNeedCost.Text) - balancedcost;
                    }

                }
                else
                {
                    frmspt.NumericUpDown1.Value = decimal.Parse(lblNeedCost.Text) - balancedcost;
                }
            }

            frmspt.ShowDialog();
            if (frmspt.DialogResult == DialogResult.OK)
            {
                //检测有无已经存在该结账方式了
                for (int i = 0; i <= dgPayForType.VisibleRowCount - 1; i++)
                {
                    if (dgPayForType[i, 1] == frmspt.ComboBox1.Text) //已经存在
                    {
                        MessageBox.Show("已经存在该结账方式了");
                        return;
                    }
                }
                lblCustomerName.Text = rms_var.PayCustomerName;
                lblCustomerSignedCount.Text = rms_var.PayCustomerSignedCount;

                lblClubCardno.Text = rms_var.PayClubCardNo;
                lblClubDisc.Text = rms_var.PayClubCardDiscountRate;
                AddNewPayFor(rms_var.GetPayTypeCode(frmspt.ComboBox1.Text), frmspt.ComboBox1.Text, (double) frmspt.NumericUpDown1.Value);
            }
        }
Example #2
0
        private void Button1_Click(System.Object sender, System.EventArgs e)
        {
            if (dgSignPay.CurrentRowIndex == -1)
            {
                return;
            }
            //1、返回当前选中记录的 serialno,计算serialno的所有桌台应付金额
            string SelectedPaySerialno;

            SelectedPaySerialno = dgSignPay[dgSignPay.CurrentRowIndex, 0].ToString();

            //2、允许自由打折
            int DiscountRate = 100; //默认打折率

            if (rms_var.TheAppExt.Chk_op_dz)
            {
                frmFreeDiscount frmfd = new frmFreeDiscount();
                frmfd.ShowDialog();
                if (frmfd.DialogResult == DialogResult.OK) //存在,并设置了自由打折
                {
                    DiscountRate = System.Convert.ToInt32(frmfd.NumericUpDown1.Value);
                }
                else
                {
                    return;
                }
            }

            //3、选择签单结帐的支付类型,并且更新 balancetype 表的相同 serialno 的支付类型 paytypecode
            string PayTypecode;
            double BalanceCost = 0;
            double AfterDiscountCost = 0;
            double AfterOddCost = 0;

            frmSelPayType frmspt = new frmSelPayType();

            BalanceCost = System.Convert.ToDouble(dgSignPay[dgSignPay.CurrentRowIndex, 4]);
            AfterDiscountCost = BalanceCost * DiscountRate / 100;

            if (rms_var.FixCost()!="0") //允许自动抹零
            {
                AfterOddCost =Math.Floor(AfterDiscountCost);
            }
            else
            {
                AfterOddCost = AfterDiscountCost;
            }

            frmspt.NumericUpDown1.ReadOnly = true;
            frmspt.NumericUpDown1.Value = (decimal) AfterOddCost;

            frmspt.ShowDialog();
            if (frmspt.DialogResult == DialogResult.OK)
            {
                PayTypecode = rms_var.GetPayTypeCode(frmspt.ComboBox1.Text);
                if (PayTypecode != "4") //结帐时不能再是签单,必须选择除签单外的结账方式
                {
                    UpdateBalanceType(SelectedPaySerialno, rms_var.GetPayTypeCode(frmspt.ComboBox1.Text));
                }
                else
                {
                    MessageBox.Show("签单结帐的方式不能再选择签单!");
                    return;
                }
            }
            else
            {
                return;
            }

            //4、更新customer表 payingcost
            UpdateCustomerCost(dgSignPay[dgSignPay.CurrentRowIndex, 5].ToString(), AfterOddCost.ToString());

            //5、向SignPayFor表添加签单结账记录
            AddSignPayFor(SelectedPaySerialno,dgSignPay[dgSignPay.CurrentRowIndex, 5].ToString(), PayTypecode, AfterOddCost.ToString());

            //6、更新balance表
            UpdateBalance(SelectedPaySerialno, (BalanceCost - AfterDiscountCost).ToString(), (AfterDiscountCost - AfterOddCost).ToString(), AfterOddCost.ToString());

            MessageBox.Show("签单结帐顺利完成!");
        }