• 餐饮管理之结账


    结账模块的设计

    结账设计的是从开台模块中选择餐桌,连接数据库,选择餐桌的具体点菜信息,算出总价并显示,然后在数据库中添加实付列,找零列。

    首先选择餐桌编号,然后点击结账按钮。

    代码如下:

    pay_name = comboBox1.Text;//选择餐桌编号
                if(pay_name!="")//选择时候的情况
                {
                    string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
                    SqlConnection conn = new SqlConnection(strConn);
                    conn.Open();//连接数据库
    
                    string sqlcommond = string.Format(@"select * from 具体点菜信息 where 桌台位置 = '" + pay_name + "'and 状态 = '未结账' ");
                    SqlCommand cmd = new SqlCommand(sqlcommond, conn);
    
                    //对SQL或存储过程执行后返回的“结果”进行操作
                    SqlDataAdapter da = new SqlDataAdapter();
                    da.SelectCommand = cmd;
    
                    SqlDataReader dr = cmd.ExecuteReader();
    
                    while (dr.Read())
                    {
                        
                        float price = float.Parse(dr["单价"].ToString());
                        int num = Convert.ToInt32(dr["份数"].ToString());
                        int discount = Convert.ToInt32(dr["折扣"].ToString());  //提取出总金额的因数,求积得出总结。
                        sum += price * num * discount;
                    }
    
    
    
    
                    conn.Close();            //关闭数据库
                    Payment payment = new Payment();  //创建一个新的窗口,
                    payment.ShowDialog();
                }
                else
                {
                    MessageBox.Show("请选择结账桌台编号!!");
                }

    新设计一个新的子窗体,通过在主函数中编写如下代码,获取在结账窗体中得到的总金额。

    textBox1.Text = Convert.ToString(Opentable.sum);

    结账设计窗口如下,已显示消费的总金额。其中两个textbox控件因为不能去修改,故设计成只读模式。

    找零事件中要大量的修改数据库中的餐桌的状态信息。代码如下:

    private void button1_Click(object sender, EventArgs e)
            {
                // 实付金额
                float s1 = float.Parse(textBox2.Text);
                // 总金额
                float s2 = float.Parse(textBox1.Text);
    
                if (s1 < s2)// 防止服务员误操作收取的钱少于总金额
                {
                    MessageBox.Show("钱数不够,请确认付款!!");
                
                }
                else
                { 
    
                    string renturn = Convert.ToString(s1 - s2);// 应找零的金额
                    textBox3.Text = renturn;
    
    
                    // 再一次连接数据库
                    string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
                    SqlConnection conn = new SqlConnection(strConn);
                    conn.Open();   
    
                    //获取开台窗体中的餐桌号,并修改其状态为‘空闲’ ,可再次使用
                    int desk = Convert.ToInt32(Opentable.pay_name);
                    String sqlcommond1 = string.Format(@"update 桌台信息 set 状态='空闲' where 编号= '" + desk + "' ");
                    
                    // 操作获取的数据库内容
                    SqlCommand cmd1 = new SqlCommand(sqlcommond1, conn);
                    SqlDataReader sr1 = cmd1.ExecuteReader();
                    sr1.Close();
    
    
                    //添加找零列,之前写的是 insert into,后来发现添加列也是用update
                    string sqlcommond2 = string.Format(@"update 点菜信息 set 找零='" + renturn + "',总价格 ='" + s2 + "',实收 ='" + s1 + "'  where 桌台位置= '" + desk + "' ");
                    //String sqlcommond2 = string.Format(@"insert into 点菜信息 set 找零='"+renturn +"' where 编号= '" + desk + "' ");
                    SqlCommand cmd2 = new SqlCommand(sqlcommond2, conn);
                    SqlDataReader sr2 = cmd2.ExecuteReader();
                    sr2.Close();
    
    
                    //和上面的一样
                    string sqlcommond3 = string.Format(@"update 具体点菜信息 set 状态='已结账' where 桌台位置= '" + desk + "' ");
                    //String sqlcommond2 = string.Format(@"insert into 点菜信息 set 找零='"+renturn +"' where 编号= '" + desk + "' ");
                    SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn);
                    SqlDataReader sr3 = cmd3.ExecuteReader();
                    sr3.Close();
    
                    string sqlcommondkaitai = string.Format(@"delete from 开台表 where 编号 = '" + desk + "'");
                    SqlCommand cmd = new SqlCommand(sqlcommondkaitai, conn);
                    SqlDataReader sr = cmd.ExecuteReader();
                    sr.Close();
    
                    //注意要将sum 清零!!!!
                    Opentable.sum = 0;
                }
    
            }

    最后在完成按钮中关闭窗体,完成结账操作。

    this.Close();

     

  • 相关阅读:
    python:HTML转义
    Python 安装 MySQLdb
    C# 获取当前路径方法
    配置 vim Python IDE 开发环境
    python:HTML转义
    Python list去重
    源码探秘
    加号的作用
    多态练习
    在web service用Cache要导入System.Web.HttpRuntime
  • 原文地址:https://www.cnblogs.com/team-h2s2z/p/5534923.html
Copyright © 2020-2023  润新知