Kaynağa Gözat

继续做正餐

张洋 3 yıl önce
ebeveyn
işleme
7ab20a7e9d

+ 9 - 2
zhipuzi_pos_windows/page/CZhengcanDiandanPageUI.cpp

@@ -41,6 +41,9 @@ CZhengcanDiandanPageUI::~CZhengcanDiandanPageUI()
 //初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
 void CZhengcanDiandanPageUI::InitShow()
 {
+	//先清空旧的订单信息,如果该桌子有订单关联后面会重新获取
+	m_cur_diandan_order.RefreshDiandanInfo();
+
 	//先检查桌子状态,获取桌子信息
 	GetTableInfo();
 }
@@ -171,13 +174,17 @@ void CZhengcanDiandanPageUI::DoGetTableInfo()
 
 		if (order_id == "" || order_id == "0")
 		{
+			m_order_id = "0";
+
 			//这个说明是只开台了,还没下单那么直接显示点餐页面就行
 			this->InitTableShow();
 		}
 		else
 		{
-			//这个说明是开过台,也下过单了,那么要先获取当前的订单信息
-			
+			m_order_id = order_id;
+
+			//这个说明是开过台,也下过单了,那么要先获取当前的订单信息,刷新已点菜的显示,再显示点餐页面的其他信息
+			m_cur_diandan_order.InitData(order_id);
 
 			this->InitTableShow();
 		}

+ 4 - 0
zhipuzi_pos_windows/page/CZhengcanDiandanPageUI.h

@@ -190,6 +190,7 @@ public:
 
 	void SetPos(RECT rc, bool bNeedInvalidate = true);
 
+	//刚进入桌子的时候,设置桌子ID
 	void SetTableId(std::string table_id);
 
 private:
@@ -325,4 +326,7 @@ private:
 
 	//当前点餐对应的桌子id
 	std::string m_table_id;
+
+	//当前桌子关联的订单ID
+	std::string m_order_id;
 };

+ 107 - 105
zhipuzi_pos_windows/zhipuzi/CZhengcanOrder.cpp

@@ -389,10 +389,10 @@ std::string CZhengcanOrder::getDiandanTaocanParam()
 bool CZhengcanOrder::InitData(std::string order_id)
 {
 	std::map<string, string> params;
-	params["id"] = order_id;
+	params["order_id"] = order_id;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::GetInstance()->Request("/diancan/getorderdetail", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request("/dinnercash/getorderdetail", params, response);
 	if (!ret)
 	{
 		LOG_INFO("网络请求出错");
@@ -407,134 +407,136 @@ bool CZhengcanOrder::InitData(std::string order_id)
 		LOG_INFO("parse response error!");
 		return false;
 	}
-	else
+
+	if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
 	{
-		if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
-		{
-			LOG_INFO("json error!");
-			return false;
-		}
+		LOG_INFO("json error!");
+		return false;
+	}
 
-		rapidjson::Value& v_errcode = document["errcode"];
-		int errcode = v_errcode.GetInt();
-		if (errcode != 0)
-		{
-			LOG_INFO("response failed! message:" << document["errmsg"].GetString());
-			return false;
-		}
+	rapidjson::Value& v_errcode = document["errcode"];
+	int errcode = v_errcode.GetInt();
+	if (errcode != 0)
+	{
+		LOG_INFO("response failed! message:" << document["errmsg"].GetString());
+		return false;
+	}
 
-		//获得数据成功
-		rapidjson::Value& data = document["data"];
-
-		m_order_id = data["id"].GetString();
-		take_food_code = data["take_food_code"].GetString();
-		show_trade_no = data["show_trade_no"].GetString();
-		m_jiajia = data["price_plus"].GetString();
-		m_shishou_value = data["shishou_value"].GetString();
-		m_zhaoling_value = data["zhaoling_value"].GetString();
-		m_moling_youhui = data["price_moling"].GetString();
-		m_rengong_youhui = data["coupon"].GetString();
-		m_zhekou_value = data["discount"].GetString();
-		m_renshu = data["person_num"].GetString();
-		m_total_price = data["yingshou_price"].GetString();
-		init_time = data["init_time"].GetString();
-		m_canpai = data["table_name"].GetString();
-		shoukuan_type = data["zhifu_type"].GetString();
-		m_dabao_money = data["dabao_price"].GetString();
-		shopname = data["shop_name"].GetString();
-		m_memo = data["note"].GetString();
-		is_refund = data["is_refund"].GetString();
-		refund_time = data["refund_time"].GetString();
-		is_guazhang = data["is_guazhang"].GetString();
-		guazhang = data["guazhang"].GetString();
-		m_youhuiquan_youhui = data["coupon_value"].GetString();
-		m_total_member_youhui = data["member_delete"].GetString();
-		m_manjian_youhui = data["promotion_value"].GetString();
-		m_member_zhekou_youhui = data["member_discount_money"].GetString();
-		m_zhekou_youhui = data["shop_discount_money"].GetString();
-		m_cika_youhui = data["timescoupon_discount_money"].GetString();
-		m_quanyika_youhui = data["eq_card_discount_money"].GetString();
-
-		std::string fromtype = data["from_type"].GetString();
-		if (fromtype == "1")
-		{
-			order_from = 1;
-		}
-		else if (fromtype == "4")
-		{
-			order_from = 2;
-		}
-		else if (fromtype == "2" || fromtype == "3")
-		{
-			order_from = 3;
-		}
+	//获得数据成功
+	rapidjson::Value& data = document["data"];
+
+	m_order_id = data["id"].GetString();
+	show_trade_no = data["show_trade_no"].GetString();
+	m_person_num = CLewaimaiJson::ToString(data["person_num"]);
+	m_table_id = CLewaimaiJson::ToString(data["table_id"]);
+	m_table_name = CLewaimaiJson::ToString(data["table_name"]);
+	m_memo = CLewaimaiJson::ToString(data["note"]);
+
+	m_jiajia = data["price_plus"].GetString();
+	m_shishou_value = data["shishou_value"].GetString();
+	m_zhaoling_value = data["zhaoling_value"].GetString();
+	m_moling_youhui = data["price_moling"].GetString();
+	m_rengong_youhui = data["coupon"].GetString();
+	m_zhekou_value = data["discount"].GetString();
+	m_renshu = data["person_num"].GetString();
+	m_total_price = data["yingshou_price"].GetString();
+	init_time = data["init_time"].GetString();
+	m_canpai = data["table_name"].GetString();
+	shoukuan_type = data["zhifu_type"].GetString();
+	m_dabao_money = data["dabao_price"].GetString();
+	shopname = data["shop_name"].GetString();
+	m_memo = data["note"].GetString();
+	is_refund = data["is_refund"].GetString();
+	refund_time = data["refund_time"].GetString();
+	is_guazhang = data["is_guazhang"].GetString();
+	guazhang = data["guazhang"].GetString();
+	m_youhuiquan_youhui = data["coupon_value"].GetString();
+	m_total_member_youhui = data["member_delete"].GetString();
+	m_manjian_youhui = data["promotion_value"].GetString();
+	m_member_zhekou_youhui = data["member_discount_money"].GetString();
+	m_zhekou_youhui = data["shop_discount_money"].GetString();
+	m_cika_youhui = data["timescoupon_discount_money"].GetString();
+	m_quanyika_youhui = data["eq_card_discount_money"].GetString();
+
+	std::string fromtype = data["from_type"].GetString();
+	if (fromtype == "1")
+	{
+		order_from = 1;
+	}
+	else if (fromtype == "4")
+	{
+		order_from = 2;
+	}
+	else if (fromtype == "2" || fromtype == "3")
+	{
+		order_from = 3;
+	}
 
-		//开始保存订单详情
-		rapidjson::Value& v_rows = data["order_item"];
+	//开始保存订单详情
+	rapidjson::Value& v_rows = data["order_item"];
 
-		for (rapidjson::SizeType i = 0; i < v_rows.Size(); ++i)
-		{
+	for (rapidjson::SizeType i = 0; i < v_rows.Size(); ++i)
+	{
 
-			rapidjson::Value& v_row_i = v_rows[i];
+		rapidjson::Value& v_row_i = v_rows[i];
 
-			CZhengcanOrderItemPrint itemPrint;
-			itemPrint.m_food_name = v_row_i["food_name"].GetString();
-			itemPrint.m_quantity = v_row_i["quantity"].GetString();
-			itemPrint.m_item_price = v_row_i["single_price"].GetString();
-			itemPrint.m_type_id = v_row_i["type_id"].GetString();
+		CZhengcanOrderItemPrint itemPrint;
+		itemPrint.m_food_name = v_row_i["food_name"].GetString();
+		itemPrint.m_quantity = v_row_i["quantity"].GetString();
+		itemPrint.m_item_price = v_row_i["single_price"].GetString();
+		itemPrint.m_type_id = v_row_i["type_id"].GetString();
 
-			m_items_print.push_back(itemPrint);
-		}
+		m_items_print.push_back(itemPrint);
+	}
 
-		//保存套餐的
-		rapidjson::Value& foodpackage_array = data["foodpackage_array"];
+	//保存套餐的
+	rapidjson::Value& foodpackage_array = data["foodpackage_array"];
 
-		for (rapidjson::SizeType i = 0; i < foodpackage_array.Size(); ++i)
-		{
+	for (rapidjson::SizeType i = 0; i < foodpackage_array.Size(); ++i)
+	{
 
-			rapidjson::Value& cur_foodpackage = foodpackage_array[i];
+		rapidjson::Value& cur_foodpackage = foodpackage_array[i];
 
-			CZhengcanOrderItemPrint itemPrint;
+		CZhengcanOrderItemPrint itemPrint;
 
-			std::string taocan_name = cur_foodpackage["food_name"].GetString();
+		std::string taocan_name = cur_foodpackage["food_name"].GetString();
 
-			itemPrint.m_quantity = cur_foodpackage["quantity"].GetString();
-			itemPrint.m_item_price = cur_foodpackage["single_price"].GetString();
-			itemPrint.m_type_id = cur_foodpackage["type_id"].GetString();
+		itemPrint.m_quantity = cur_foodpackage["quantity"].GetString();
+		itemPrint.m_item_price = cur_foodpackage["single_price"].GetString();
+		itemPrint.m_type_id = cur_foodpackage["type_id"].GetString();
 
-			itemPrint.is_taocan = true;
+		itemPrint.is_taocan = true;
 
-			taocan_name += CLewaimaiString::UnicodeToUTF8(L"【");
+		taocan_name += CLewaimaiString::UnicodeToUTF8(L"【");
 
-			//接着保存套餐的item
-			rapidjson::Value& food_item = cur_foodpackage["food_item"];
-			for (rapidjson::SizeType j = 0; j < food_item.Size(); ++j)
-			{
-				CZhengcanOrderItemPrint foodpackageitemPrint;
-				foodpackageitemPrint.m_food_name = food_item[j]["food_name"].GetString();
-				foodpackageitemPrint.m_quantity = food_item[j]["quantity"].GetString();
-				foodpackageitemPrint.m_item_price = food_item[j]["single_price"].GetString();
-				foodpackageitemPrint.m_type_id = food_item[j]["type_id"].GetString();
+		//接着保存套餐的item
+		rapidjson::Value& food_item = cur_foodpackage["food_item"];
+		for (rapidjson::SizeType j = 0; j < food_item.Size(); ++j)
+		{
+			CZhengcanOrderItemPrint foodpackageitemPrint;
+			foodpackageitemPrint.m_food_name = food_item[j]["food_name"].GetString();
+			foodpackageitemPrint.m_quantity = food_item[j]["quantity"].GetString();
+			foodpackageitemPrint.m_item_price = food_item[j]["single_price"].GetString();
+			foodpackageitemPrint.m_type_id = food_item[j]["type_id"].GetString();
 
-				foodpackageitemPrint.is_taocan = false;
-				foodpackageitemPrint.is_taocan_item = true;
+			foodpackageitemPrint.is_taocan = false;
+			foodpackageitemPrint.is_taocan_item = true;
 
-				m_items_print.push_back(foodpackageitemPrint);
+			m_items_print.push_back(foodpackageitemPrint);
 
-				taocan_name += foodpackageitemPrint.m_food_name;
+			taocan_name += foodpackageitemPrint.m_food_name;
 
-				if (j < food_item.Size() - 1)
-				{
-					taocan_name += CLewaimaiString::UnicodeToUTF8(L"、");
-				}
+			if (j < food_item.Size() - 1)
+			{
+				taocan_name += CLewaimaiString::UnicodeToUTF8(L"、");
 			}
+		}
 
-			taocan_name += CLewaimaiString::UnicodeToUTF8(L"】");
+		taocan_name += CLewaimaiString::UnicodeToUTF8(L"】");
 
-			itemPrint.m_food_name = taocan_name;
+		itemPrint.m_food_name = taocan_name;
 
-			m_items_print.push_back(itemPrint);
-		}
+		m_items_print.push_back(itemPrint);
 	}
 
 	return true;

+ 5 - 1
zhipuzi_pos_windows/zhipuzi/CZhengcanOrder.h

@@ -42,9 +42,13 @@ public:
 	//订单的整单备注
 	std::string m_memo;
 
+	//人数
+	std::string m_person_num;
+	std::string m_table_id;
+	std::string m_table_name;
+
 	/******  下面这些是专门用于打印的参数,不作为其他用途,点单逻辑中用不到,点单成功后赋值用于打印而已  ***********/
 	std::string shopname;
-	std::string take_food_code;
 	std::string show_trade_no;
 
 	//会员余额和会员卡号,仅会员支付时有用