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); } }
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("签单结帐顺利完成!"); }