张洋 4 vuotta sitten
vanhempi
commit
7e30568ec1

+ 9 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/main.xml

@@ -38,6 +38,15 @@
 				<Option name="main_setting" group="main_tab" width="101" height="102" text="设置" textpadding="0,60,0,0" selectedtextcolor="#FFFFFFFF" normalimage="file='main_setting.png' source='0,0,50,50' dest='25,13,75,63'" selectedimage="file='main_setting_select.png' source='0,0,50,50' dest='25,13,75,63'"></Option>
 				
 				<Option name="main_gengduo" group="main_tab" width="101" height="102" text="更多" textpadding="0,60,0,0" selectedtextcolor="#FFFFFFFF" normalimage="file='main_gengduo.png' source='0,0,50,50' dest='25,13,75,63'" selectedimage="file='main_gengduo_select.png' source='0,0,50,50' dest='25,13,75,63'"></Option>
+				
+				<Control></Control>
+				
+				<Control height="1" bkcolor="#FFD1D1D1"></Control>
+				<HorizontalLayout height="100">
+					<Button name="main_web_login_btn" width="100" height="100" normalimage="" hotimage="" pushedimage="" bordersize="0"></Button>
+					<Control bkimage="web_login.png" width="50" height="50" float="true" pos="25,15,75,65" mouse="false"></Control>
+					<Label text="进入后台" float="true" pos="18,65,88,85" mouse="false"></Label>
+				</HorizontalLayout>
 			</VerticalLayout>
 			
 			<!-- 主要的布局内容,所有主页面的内容都放在这个容器的内部 -->

+ 34 - 23
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_page.xml

@@ -2,61 +2,72 @@
 <Window>
 	<SettingPage name="setting_page" bkcolor="#FFEFF6EE">
 		<HorizontalLayout>
-			<HorizontalLayout width="250" padding="20,20,20,0">
-				<VerticalLayout height="800" bkcolor="#FFFFFFFF" childpadding="15" inset="20,20,20,0">
-					<Option name="setting_waimai_order_switch" selected="true" text="外卖订单设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_diannei_order_switch" text="店内订单设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_printer_switch" text="小票打印设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_biaoqian_printer_switch" text="标签打印设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_chufang_printer_switch" text="厨房打印设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_dianzicheng_switch" text="电子秤设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_tiaomacheng_switch" text="条码秤设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_xianshi_switch" text="显示设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_system_switch" text="系统设置" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
-					<Option name="setting_system_about" text="关于" group="setting_switch" align="center" height="38" normalimage="file='Btn_White.png' corner='5,5,5,5'" selectedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" hottextcolor="#CC1010" selectedtextcolor="#FFFFFFFF" />
+			<HorizontalLayout width="350" bkcolor="#FFF6F6F6">
+				<VerticalLayout height="800" inset="0,0,0,0">
+					<Option name="setting_waimai_order_switch" selected="true" text="外卖订单设置" group="setting_switch" align="center" height="69"  padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_diannei_order_switch" text="店内订单设置" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_printer_switch" text="小票打印设置" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_biaoqian_printer_switch" text="标签打印设置" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_chufang_printer_switch" text="厨房打印设置" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_dianzicheng_switch" text="电子秤设置" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_tiaomacheng_switch" text="条码秤设置" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_xianshi_switch" text="显示设置" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_system_switch" text="系统设置" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
+					<Option name="setting_system_about" text="关于" group="setting_switch" align="center" height="69" padding="0,0,0,0" selectedimage="file='white_bkg.png'" textcolor="#FF666666" selectedtextcolor="#FF000000" />
+					<Control height="1" bkcolor="#FFD1D1D1"></Control>
 
-					<Button name="setting_logout" padding="0,30,0,0" width="300" height="38" text="退出登陆" textcolor="#FFFFFFFF" normalimage="file='Btn_Red.png' corner='5,5,5,5'" hotimage="file='Btn_Red_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_Green_Click.png' corner='5,5,5,5'" />
+					<Control></Control>
+					<Button name="setting_logout" padding="20,30,20,0" height="69" text="退出登陆" textcolor="#FFFFFFFF" normalimage="file='Btn_Red.png' corner='5,5,5,5'" hotimage="file='Btn_Red_Hover.png' corner='5,5,5,5'" pushedimage="file='white_bkg.png'" />
 				</VerticalLayout>
 			</HorizontalLayout>
 
 			<TabLayout name="setting_switch">
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15">
 					<Include source="setting_waimai_tixing.xml" />
 				</VerticalLayout>
 				
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15">
 					<Include source="setting_diannei_tixing.xml" />
 				</VerticalLayout>
 
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15" vscrollbar="true">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15" vscrollbar="true">
 					<Include source="setting_print.xml" />
 				</VerticalLayout>
 				
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15" vscrollbar="true">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15" vscrollbar="true">
 					<Include source="setting_biaoqian_print.xml" />
 				</VerticalLayout>
 
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15">
 					<Include source="setting_chufang_print.xml" />
 				</VerticalLayout>
 				
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15">
 					<Include source="setting_dianzicheng.xml" />
 				</VerticalLayout>
 				
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15">
 					<Include source="setting_tiaomacheng.xml" />
 				</VerticalLayout>
 				
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15">
 					<Include source="setting_xianshi.xml" />
 				</VerticalLayout>
 
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15">
 					<Include source="setting_system.xml" />
 				</VerticalLayout>
 
-				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15">
+				<VerticalLayout bkcolor="#FFFFFFFF" inset="15,15,15,15">
 					<Control height="300" />
 					<Label text="智铺子接单软件" align="center">
 					</Label>

+ 5 - 5
bin/Win32/Debug/zhipuzi_pos_windows/skin/waimai_order_item.xml

@@ -2,21 +2,21 @@
 <Window>
 	<WaimaiOrderItem height="200" bkcolor="#FFFFFFFF" padding="0,20,20,0" borderround="10,10">
 		<HorizontalLayout>
-			<Label float="true" name="waimai_order_list_order_num" text="订单号:" pos="10,6,320,36" />
-			<Label float="true" name="waimai_order_list_from" text="订单来源:" pos="350,6,582,36" />
+			<Label float="true" name="waimai_order_list_order_num" text="订单号:" pos="10,6,380,36" />
+			<Label float="true" name="waimai_order_list_from" text="订单来源:" pos="400,6,682,36" />
 			
 			<Label float="true" name="waimai_order_list_name" text="姓名:" pos="10,36,182,66" />
-			<Label float="true" name="waimai_order_list_phone" text="电话:" pos="350,36,600,66" />
+			<Label float="true" name="waimai_order_list_phone" text="电话:" pos="400,36,700,66" />
 			<Label float="true" name="waimai_order_list_address" text="地址:" pos="10,66,700,96" />
 			
 			<Label float="true" name="waimai_order_list_init_date" text="下单时间:" pos="10,96,220,126" />
-			<Label float="true" name="waimai_order_list_price" text="价格:" pos="350,96,500,126" />
+			<Label float="true" name="waimai_order_list_price" text="价格:" pos="400,96,600,126" />
 			
 			<Label float="true" name="waimai_order_list_type" text="配送方式:" pos="10,126,400,156" />
 			
 			<Label float="true" name="waimai_order_list_delivery_date" text="配送时间:" pos="10,156,282,186" />
 			
-			<Label float="true" name="waimai_order_list_refund_status" text="退款状态:" pos="350,156,800,186" />
+			<Label float="true" name="waimai_order_list_refund_status" text="退款状态:" pos="400,156,800,186" />
 			
 			<Control name="waimai_order_list_yuyue" bkimage="yuyue.png" float="true" pos="250,120,362,190" />
 			<Control name="waimai_order_list_ziqu" bkimage="ziti.png" float="true" pos="400,120,512,190" />

BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/web_login.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/white_bkg.png


+ 94 - 43
zhipuzi_pos_windows/page/CDiandanPageUI.cpp

@@ -1018,25 +1018,26 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 	}
 	totol_youhui += m_total_member_youhui;
 
-	//再判断整单折扣
 	cur_price = jichu_price - totol_youhui;
 
-	double old_cur_price = cur_price;
-
+	//再判断整单折扣
 	CEditUI* pZhekouEdit = static_cast<CEditUI*>(this->FindSubControl(_T("diandan_jiesuan_zhekou_value")));
 	wstring ws_zhekou = pZhekouEdit->GetText();
 	int zhekouValue = atoi(CLewaimaiString::UnicodeToUTF8(ws_zhekou).c_str());
 
-	cur_price = (double)(cur_price * zhekouValue) / 100.00;
-
 	m_zhekou_value = zhekouValue;
 
-	//保留2位小数
-	cur_price = (int)(cur_price * 100) / 100.00;
-
-	m_zhekou_youhui = old_cur_price - cur_price;
+	if (zhekouValue == 100)
+	{
+		m_zhekou_youhui = 0;
+	}
+	else
+	{
+		m_zhekou_youhui = (100 - zhekouValue) * cur_price / 100.00;
+		totol_youhui += m_zhekou_youhui;
 
-	totol_youhui += m_zhekou_youhui;
+		cur_price = cur_price - m_zhekou_youhui;
+	}
 
 	//再判断分等级会员折扣
 	m_member_zhekou_youhui = 0;
@@ -1054,18 +1055,17 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 				m_member_zhekou_value = info.discount_value;
 
 				double member_discount = atof(info.discount_value.c_str());
+				if (abs(member_discount - 10) < 0.0001)
+				{
+					m_member_zhekou_youhui = 0;
+				}
+				else
+				{
+					m_member_zhekou_youhui = (10 - member_discount) * cur_price / 10.00;
+					totol_youhui += m_member_zhekou_youhui;
 
-				//这里最多是10折
-				double old_cur_price_member_discount = cur_price;
-
-				cur_price = (double)(cur_price * member_discount) / 10.00;
-
-				//保留2位小数
-				cur_price = (int)(cur_price * 100) / 100.00;
-
-				m_member_zhekou_youhui = old_cur_price_member_discount - cur_price;
-
-				totol_youhui += m_member_zhekou_youhui;
+					cur_price -= m_member_zhekou_youhui;
+				}				
 
 				break;
 			}
@@ -1078,18 +1078,17 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 	if (m_is_quanyika == true)
 	{
 		double quanyika_zhekou = atof(m_quanyika_discount.c_str());
+		if (abs(quanyika_zhekou - 10) < 0.0001)
+		{
+			m_quanyika_youhui = 0;
+		}
+		else
+		{
+			m_quanyika_youhui = (10 - quanyika_zhekou) * cur_price / 10.00;
+			totol_youhui += m_quanyika_youhui;
 
-		//这里最多是10折
-		double old_cur_price_quanyika_discount = cur_price;
-
-		cur_price = (double)(cur_price * quanyika_zhekou) / 10.00;
-
-		//保留2位小数
-		cur_price = (int)(cur_price * 100) / 100.00;
-
-		m_quanyika_youhui = old_cur_price_quanyika_discount - cur_price;
-
-		totol_youhui += m_quanyika_youhui;
+			cur_price -= m_quanyika_youhui;
+		}
 	}
 
 	//次卡折扣
@@ -1099,18 +1098,17 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 		if (m_cika_deduct_type == "0")
 		{
 			double cika_zhekou = atof(m_cika_discount_value.c_str());
+			if (abs(cika_zhekou - 10) < 0.0001)
+			{
+				m_cika_youhui = 0;
+			}
+			else
+			{
+				m_cika_youhui = (10 - cika_zhekou) * cur_price / 10.00;
+				totol_youhui += m_cika_youhui;
 
-			//这里最多是10折
-			double old_cur_price_cika_discount = cur_price;
-
-			cur_price = (double)(cur_price * cika_zhekou) / 10.00;
-
-			//保留2位小数
-			cur_price = (int)(cur_price * 100) / 100.00;
-
-			m_cika_youhui = old_cur_price_cika_discount - cur_price;
-
-			totol_youhui += m_cika_youhui;
+				cur_price -= m_cika_youhui;
+			}
 		}
 	}
 
@@ -3462,12 +3460,65 @@ CDiandanOrder CDiandanPageUI::GetPrintOrderinfo(std::string take_food_code, std:
 	for (std::vector<CDiandanOrderItem>::iterator it = m_cur_diandan_order.m_items.begin(); it != m_cur_diandan_order.m_items.end(); it++)
 	{
 		CDiandanOrderItemPrint itemPrint;
+
 		itemPrint.m_food_name = it->getNameWanzhengShow();
 		itemPrint.m_quantity = it->num;
 		itemPrint.m_item_price = it->getSinglePrice();
 		itemPrint.m_type_id = it->type_id;
 
+		if (it->m_is_taocan == true)
+		{
+			itemPrint.is_taocan = true;
+		}
+
 		m_cur_diandan_order.m_items_print.push_back(itemPrint);
+
+		if (it->m_is_taocan == true)
+		{
+			//开始保存套餐里面的商品详情,主要用于厨房打印
+			CFoodpackage foodpackageinfo;
+			foodpackageinfo = it->GetFoodpackageInfo();
+
+			std::string nature = foodpackageinfo.nature;
+
+			rapidjson::Document document;
+			document.Parse(nature.c_str());
+
+			if (document.HasParseError())
+			{
+				//属性json报错,直接不处理了
+				continue;
+			}
+
+			rapidjson::Value& data = document;
+
+			//接下来要把这个套餐的详情也保存下来
+			for (std::vector<FoodNatureSelectValue>::iterator it_2 = it->natureSelectedArray.begin(); it_2 != it->natureSelectedArray.end(); it_2++)
+			{
+				std::string food_id = data[it_2->nNameIndex]["value"][it_2->nature_select_index].GetString();
+
+				//要根据商品ID找出商品的名字
+				CFood foodinfo;
+				CSqlite3 sqlite;
+				bool is_found = sqlite.GetFoodById(food_id, foodinfo);
+				if (!is_found)
+				{
+					continue;
+				}
+
+				CDiandanOrderItemPrint foodpackageitemPrint;
+
+				foodpackageitemPrint.m_food_name = foodinfo.name;
+				foodpackageitemPrint.m_quantity = it->num;
+				foodpackageitemPrint.m_item_price = foodinfo.price;
+				foodpackageitemPrint.m_type_id = foodinfo.type_id;
+
+				foodpackageitemPrint.is_taocan = false;
+				foodpackageitemPrint.is_taocan_item = true;
+
+				m_cur_diandan_order.m_items_print.push_back(foodpackageitemPrint);
+			}
+		}
 	}
 
 	return m_cur_diandan_order;

+ 11 - 1
zhipuzi_pos_windows/page/CDianneiOrderInfoPageUI.cpp

@@ -105,8 +105,16 @@ void CDianneiOrderInfoPageUI::Refresh(CDiandanOrder& order)
 	CListUI* pFoodList = static_cast<CListUI*>(this->FindSubControl(_T("diannei_order_info_page_foodlist")));
 	pFoodList->RemoveAll();
 
+	int show_num = 0;
+
 	for (std::vector<CDiandanOrderItemPrint>::iterator it = order.m_items_print.begin(); it != order.m_items_print.end(); it++)
 	{
+		if (it->is_taocan_item == true)
+		{
+			//套餐的详情不展示
+			continue;
+		}
+
 		std::string food_name = (*it).m_food_name;
 		std::string food_price = (*it).m_item_price;
 		std::string quantity = (*it).m_quantity;
@@ -124,10 +132,12 @@ void CDianneiOrderInfoPageUI::Refresh(CDiandanOrder& order)
 		pPrice->SetText(CLewaimaiString::UTF8ToUnicode(food_price).c_str());
 
 		pFoodList->Add(pEle);
+
+		show_num++;
 	}
 
 	//重设商品列表的高度
-	int order_item_height = (order.m_items_print.size() + 1) * 30;
+	int order_item_height = (show_num + 1) * 30;
 	pFoodList->SetFixedHeight(order_item_height);
 
 	CLabelUI *pMemo = static_cast<CLabelUI *>(this->FindSubControl(_T("dianneiorder_info_page_memo")));

+ 11 - 1
zhipuzi_pos_windows/page/CWaimaiOrderInfoPageUI.cpp

@@ -210,8 +210,16 @@ void CWaimaiOrderInfoPageUI::Refresh(CWaimaiOrder& order)
 	CListUI* pFoodList = static_cast<CListUI*>(this->FindSubControl(_T("waimai_order_info_page_foodlist")));
 	pFoodList->RemoveAll();
 
+	int show_num = 0;
+
 	for (std::vector<CWaimaiOrderItem>::iterator it = order.m_order_items.begin(); it != order.m_order_items.end(); it++)
 	{
+		if (it->is_taocan_item == true)
+		{
+			//套餐的详情不展示
+			continue;
+		}
+
 		std::string food_name = (*it).m_food_name;
 		std::string food_price = (*it).m_item_price;
 		std::string quantity = (*it).m_quantity;
@@ -229,10 +237,12 @@ void CWaimaiOrderInfoPageUI::Refresh(CWaimaiOrder& order)
 		pPrice->SetText(CLewaimaiString::UTF8ToUnicode(food_price).c_str());
 
 		pFoodList->Add(pEle);
+
+		show_num++;
 	}
 
 	//重设商品列表的高度
-	int order_item_height = (order.m_order_items.size() + 1) * 30;
+	int order_item_height = (show_num + 1) * 30;
 	pFoodList->SetFixedHeight(order_item_height);
 
 	CLabelUI *pMemo = static_cast<CLabelUI *>(this->FindSubControl(_T("waimaorder_info_page_memo")));

+ 50 - 0
zhipuzi_pos_windows/print/CPosPrinterData.cpp

@@ -235,6 +235,12 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         //商品内容
         for(std::vector<CWaimaiOrderItem>::iterator it = order.m_order_items.begin(); it != order.m_order_items.end(); it++)
         {
+			if (it->is_taocan_item == true)
+			{
+				//套餐的item,收银小票不打印
+				continue;
+			}
+
             std::string food_name = (*it).m_food_name;
             std::string food_price = (*it).m_item_price;
             std::string quantity = (*it).m_quantity;
@@ -500,6 +506,12 @@ std::string CPosPrinterData::PrintWaimaiOrderBiaoqian(CWaimaiOrder& order)
 
     for(std::vector<CWaimaiOrderItem>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
     {
+		if (it->is_taocan_item == true)
+		{
+			//套餐的item,标签小票不打印
+			continue;
+		}
+
         std::string food_name = (*it).m_food_name;
         std::string food_price = (*it).m_item_price;
         std::string quantity = (*it).m_quantity;
@@ -709,9 +721,16 @@ std::vector<ChufangPrinterContent> CPosPrinterData::PrintWaimaiOrderChufang(CWai
             //商品内容
             for(std::vector<CWaimaiOrderItem>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
             {
+				if (it->is_taocan == true)
+				{
+					//套餐的名字,厨房打印不打印
+					continue;
+				}
+
                 std::string food_name = (*it).m_food_name;
                 std::string food_price = (*it).m_item_price;
                 std::string quantity = (*it).m_quantity;
+
                 //计算总价
                 double item_price = atof(food_price.c_str()) * atof(quantity.c_str());
                 std::string food_total_price = CLewaimaiString::DoubleToString(item_price, 2);
@@ -785,6 +804,12 @@ std::vector<ChufangPrinterContent> CPosPrinterData::PrintWaimaiOrderChufang(CWai
             //分单模式下,每个商品打印一张单
             for(std::vector<CWaimaiOrderItem>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
             {
+				if (it->is_taocan == true)
+				{
+					//套餐的名字,厨房打印不打印
+					continue;
+				}
+
                 POS_TextOut("派工单", true, true, 1);
                 POS_FeedLine();
 
@@ -1049,6 +1074,12 @@ std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 		//商品内容
 		for (std::vector<CDiandanOrderItemPrint>::iterator it = order.m_items_print.begin(); it != order.m_items_print.end(); it++)
 		{
+			if (it->is_taocan_item == true)
+			{
+				//套餐的item,收银小票不打印
+				continue;
+			}
+
 			std::string food_name = (*it).m_food_name;
 			std::string food_price = (*it).m_item_price;
 			std::string quantity = (*it).m_quantity;
@@ -1343,6 +1374,12 @@ std::string CPosPrinterData::PrintDiandanOrderBiaoqian(CDiandanOrder& order)
 
 	for (std::vector<CDiandanOrderItemPrint>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
 	{
+		if (it->is_taocan_item == true)
+		{
+			//套餐的item,标签小票不打印
+			continue;
+		}
+
 		std::string food_name = (*it).m_food_name;
 		std::string food_price = (*it).m_item_price;
 		std::string quantity = (*it).m_quantity;
@@ -1543,9 +1580,16 @@ std::vector<ChufangPrinterContent> CPosPrinterData::PrintDiandanOrderChufang(CDi
 			//商品内容
 			for (std::vector<CDiandanOrderItemPrint>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
 			{
+				if (it->is_taocan == true)
+				{
+					//套餐的名字,厨房打印不打印
+					continue;
+				}
+
 				std::string food_name = (*it).m_food_name;
 				std::string food_price = (*it).m_item_price;
 				std::string quantity = (*it).m_quantity;
+
 				//计算总价
 				double item_price = atof(food_price.c_str()) * atof(quantity.c_str());
 				std::string food_total_price = CLewaimaiString::DoubleToString(item_price, 2);
@@ -1619,6 +1663,12 @@ std::vector<ChufangPrinterContent> CPosPrinterData::PrintDiandanOrderChufang(CDi
 			//分单模式下,每个商品打印一张单
 			for (std::vector<CDiandanOrderItemPrint>::iterator it = cur_printer_use.begin(); it != cur_printer_use.end(); it++)
 			{
+				if (it->is_taocan == true)
+				{
+					//套餐的名字,厨房打印不打印
+					continue;
+				}
+
 				POS_TextOut("派工单", true, true, 1);
 				POS_FeedLine();
 

+ 4 - 0
zhipuzi_pos_windows/wnd/CMainWnd.cpp

@@ -268,6 +268,10 @@ void CMainWnd::HandleClickMsg(TNotifyUI& msg)
         SendMessage(WM_SYSCOMMAND, SC_RESTORE, 0);
         return;
     }
+	else if (msg.pSender->GetName() == L"main_web_login_btn")
+	{
+		ShellExecute(NULL, _T("open"), _T("explorer.exe"), _T("https://www.zhipuzi.com/login.html"), NULL, SW_SHOW);
+	}
 
     CDuiString name = msg.pSender->GetName();
 

+ 48 - 0
zhipuzi_pos_windows/zhipuzi/CDiandanOrder.cpp

@@ -441,6 +441,54 @@ bool CDiandanOrder::InitData(std::string order_id)
 		}
 
 		//保存套餐的
+		rapidjson::Value& foodpackage_array = data["foodpackage_array"];
+
+		for (rapidjson::SizeType i = 0; i < foodpackage_array.Size(); ++i)
+		{
+
+			rapidjson::Value& cur_foodpackage = foodpackage_array[i];
+
+			CDiandanOrderItemPrint itemPrint;
+
+			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.is_taocan = true;
+
+			taocan_name += CLewaimaiString::UnicodeToUTF8(L"【");
+
+			//接着保存套餐的item
+			rapidjson::Value& food_item = cur_foodpackage["food_item"];
+			for (rapidjson::SizeType j = 0; j < food_item.Size(); ++j)
+			{
+				CDiandanOrderItemPrint 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;
+
+				m_items_print.push_back(foodpackageitemPrint);
+
+				taocan_name += foodpackageitemPrint.m_food_name;
+				
+				if (j < food_item.Size() - 1)
+				{
+					taocan_name += CLewaimaiString::UnicodeToUTF8(L"、");
+				}
+			}
+
+			taocan_name += CLewaimaiString::UnicodeToUTF8(L"】");
+
+			itemPrint.m_food_name = taocan_name;
+
+			m_items_print.push_back(itemPrint);
+		}
 	}
 
 	return true;

+ 8 - 2
zhipuzi_pos_windows/zhipuzi/CDiandanOrder.h

@@ -13,10 +13,16 @@
 class CDiandanOrderItemPrint
 {
 public:
-	std::string m_food_name;
+	std::string m_food_name; //这个是完整展示的名字
 	std::string m_quantity;
 	std::string m_item_price; //注意这个是单价,不是总价
 	std::string m_type_id;
+
+	//表示这个Item是否是套餐的名字
+	bool is_taocan = false;
+
+	//表示这个是否是套餐下面的商品详情,主要用于厨房打印的时候,一个套餐下面的每个商品都会生成一个CDiandanOrderItemPrint对象
+	bool is_taocan_item = false;
 };
 
 /**
@@ -148,4 +154,4 @@ public:
 
 	//根据订单ID,进行退款操作
 	bool Refund(std::string order_id);
-};
+};

+ 50 - 0
zhipuzi_pos_windows/zhipuzi/CWaimaiOrder.cpp

@@ -148,6 +148,56 @@ bool CWaimaiOrder::InitData(std::string order_id, std::string order_no)
                 m_order_items.push_back(newItem);
             }
 
+			//保存套餐的
+			rapidjson::Value& foodpackage_array = data["foodpackage_array"];
+
+			for (rapidjson::SizeType i = 0; i < foodpackage_array.Size(); ++i)
+			{
+
+				rapidjson::Value& cur_foodpackage = foodpackage_array[i];
+
+				CWaimaiOrderItem itemPrint;
+
+				std::string taocan_name = cur_foodpackage["food_name"].GetString();
+
+				itemPrint.m_quantity = cur_foodpackage["quantity"].GetString();
+				itemPrint.m_item_price = cur_foodpackage["item_price"].GetString();
+				itemPrint.m_type_id = cur_foodpackage["type_id"].GetString();
+
+				itemPrint.is_taocan = true;
+
+				taocan_name += CLewaimaiString::UnicodeToUTF8(L"【");
+
+				//接着保存套餐的item
+				rapidjson::Value& food_item = cur_foodpackage["food_item"];
+				for (rapidjson::SizeType j = 0; j < food_item.Size(); ++j)
+				{
+					CWaimaiOrderItem 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]["item_price"].GetString();
+					foodpackageitemPrint.m_type_id = food_item[j]["type_id"].GetString();
+
+					foodpackageitemPrint.is_taocan = false;
+					foodpackageitemPrint.is_taocan_item = true;
+
+					m_order_items.push_back(foodpackageitemPrint);
+
+					taocan_name += foodpackageitemPrint.m_food_name;
+
+					if (j < food_item.Size() - 1)
+					{
+						taocan_name += CLewaimaiString::UnicodeToUTF8(L"、");
+					}
+				}
+
+				taocan_name += CLewaimaiString::UnicodeToUTF8(L"】");
+
+				itemPrint.m_food_name = taocan_name;
+
+				m_order_items.push_back(itemPrint);
+			}
+
             //开始保存预设选项
             v_rows = data["order_field"];
 

+ 3 - 0
zhipuzi_pos_windows/zhipuzi/CWaimaiOrder.h

@@ -17,6 +17,9 @@ public:
     std::string m_order_item_id;
     std::string m_food_id;
     std::string m_barcode;
+
+	bool is_taocan = false;
+	bool is_taocan_item = false;
 };
 
 class CWaimaiOrderField