Explorar o código

完成店内订单,开始做会员

张洋 %!s(int64=4) %!d(string=hai) anos
pai
achega
c11ff21e3a
Modificáronse 44 ficheiros con 1478 adicións e 59 borrados
  1. 11 0
      bin/Win32/Debug/zhipuzi_pos_windows/skin/diannei_order_info_page_listitem.xml
  2. 24 0
      bin/Win32/Debug/zhipuzi_pos_windows/skin/diannei_order_item.xml
  3. 61 0
      bin/Win32/Debug/zhipuzi_pos_windows/skin/dianneiorder_info_page.xml
  4. 46 0
      bin/Win32/Debug/zhipuzi_pos_windows/skin/dianneiorder_list_page.xml
  5. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/green_dianji.png
  6. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/green_xuanfu.png
  7. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/green_zhengchang.png
  8. 1 1
      bin/Win32/Debug/zhipuzi_pos_windows/skin/main.xml
  9. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/red_dianji.png
  10. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/red_xuanfu.png
  11. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/red_zhengchang.png
  12. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/tab_n.png
  13. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/tab_s.png
  14. 3 3
      bin/Win32/Debug/zhipuzi_pos_windows/skin/waimai_order_item.xml
  15. 11 11
      bin/Win32/Debug/zhipuzi_pos_windows/skin/waimaiorder_info_page.xml
  16. 13 11
      bin/Win32/Debug/zhipuzi_pos_windows/skin/waimaiorder_list_page.xml
  17. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/white_dianji.png
  18. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/white_xuanfu.png
  19. BIN=BIN
      bin/Win32/Debug/zhipuzi_pos_windows/skin/white_zhengchang.png
  20. 49 0
      zhipuzi_pos_windows/control/CDianneiOrderItemUI.cpp
  21. 38 0
      zhipuzi_pos_windows/control/CDianneiOrderItemUI.h
  22. 16 1
      zhipuzi_pos_windows/control/ControlEx.h
  23. 5 0
      zhipuzi_pos_windows/page/CBasePageUI.h
  24. 12 2
      zhipuzi_pos_windows/page/CDiandanPageUI.cpp
  25. 12 0
      zhipuzi_pos_windows/page/CDiandanPageUI.h
  26. 380 0
      zhipuzi_pos_windows/page/CDianneiOrderInfoPageUI.cpp
  27. 49 0
      zhipuzi_pos_windows/page/CDianneiOrderInfoPageUI.h
  28. 300 0
      zhipuzi_pos_windows/page/CDianneiOrderListPageUI.cpp
  29. 60 0
      zhipuzi_pos_windows/page/CDianneiOrderListPageUI.h
  30. 53 0
      zhipuzi_pos_windows/page/CHuiyuanPage.cpp
  31. 39 0
      zhipuzi_pos_windows/page/CHuiyuanPage.h
  32. 6 0
      zhipuzi_pos_windows/page/CSettingPageUI.h
  33. 6 0
      zhipuzi_pos_windows/page/CWaimaiOrderInfoPageUI.h
  34. 24 7
      zhipuzi_pos_windows/page/CWaimaiOrderListPageUI.cpp
  35. 3 2
      zhipuzi_pos_windows/page/CWaimaiOrderListPageUI.h
  36. 9 0
      zhipuzi_pos_windows/print/CPosPrinter.cpp
  37. 3 0
      zhipuzi_pos_windows/print/CPosPrinter.h
  38. 29 14
      zhipuzi_pos_windows/wnd/CMainWnd.cpp
  39. 12 4
      zhipuzi_pos_windows/wnd/CMainWnd.h
  40. 1 2
      zhipuzi_pos_windows/wnd/CXianjinShoukuanWnd.h
  41. 143 0
      zhipuzi_pos_windows/zhipuzi/CDiandanOrder.cpp
  42. 27 1
      zhipuzi_pos_windows/zhipuzi/CDiandanOrder.h
  43. 8 0
      zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj
  44. 24 0
      zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj.filters

+ 11 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/diannei_order_info_page_listitem.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Window> 
+	<ListContainerElement name="diannei_order_info_page_listitem" height="30" minheight="30"> 
+		<HorizontalLayout height="38"> 
+			<Label name="diannei_order_info_page_listitem_foodname" /> 
+			<Label name="diannei_order_info_page_listitem_quantity" width="200" align="center"/> 
+			<Label name="diannei_order_info_page_listitem_price" width="200" align="center"/> 
+		</HorizontalLayout> 
+	</ListContainerElement> 
+</Window>

+ 24 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/diannei_order_item.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window>
+	<DianneiOrderItem height="170" bkcolor="#FFFFFFFF" padding="15,15,15,0" borderround="10,10">
+		<HorizontalLayout>
+			<Label float="true" name="diannei_order_list_order_num" text="订单号:" pos="10,6,320,36" />
+			<Label float="true" name="diannei_order_list_qucanhao" text="取餐码:" pos="350,6,582,36" />			
+			
+			<Label float="true" name="diannei_order_list_zhuowei" text="桌位:" pos="10,36,182,66" />
+			<Label float="true" name="diannei_order_list_renshu" text="人数:" pos="350,36,600,66" />			
+			
+			<Label float="true" name="diannei_order_list_init_date" text="下单时间:" pos="10,66,300,96" />
+			
+			<Label float="true" name="diannei_order_list_zhifu_type" text="支付方式:" pos="10,96,400,126" />
+			<Label float="true" name="diannei_order_list_price" text="价格:" pos="350,96,500,126" />
+			
+			<Label float="true" name="diannei_order_list_from" text="订单来源:" pos="10,126,282,156" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout width="200">
+			<Button name="diannei_order_list_info" float="true" pos="100,6,180,44" text="详情" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'"/>
+			<Button name="diannei_order_list_print" float="true" pos="100,54,180,92" text="打印" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'"/>
+		</HorizontalLayout>
+	</DianneiOrderItem>
+</Window>

+ 61 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/dianneiorder_info_page.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window>
+	<DianneiOrderInfoPage>
+		<VerticalLayout>
+			<HorizontalLayout height="44" bkcolor="#FFFFFFFF" padding="0,0,0,0">
+				<Button name="diannei_order_info_page_return" float="true" pos="20,3,120,41" text="返回" textcolor="#FFFFFFFF"/>
+			</HorizontalLayout>
+
+			<HorizontalLayout>
+				<VerticalLayout name="diannei_order_info_page_orderlayout" padding="20,20,20,20" vscrollbar="true">
+					<VerticalLayout name="diannei_order_info_page_layout_1" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="20,20,20,20" borderround="10,10" >
+						<HorizontalLayout height="30">
+							<Label float="true" name="diannei_order_info_page_order_num" text="订单号:" pos="0,0,500,20" />
+						</HorizontalLayout>
+
+						<Control height="1" bkcolor="#FFEAEAEA" />
+
+						<List name="diannei_order_info_page_foodlist">
+							<ListHeader />
+							<ListHeaderItem text="商品" align="left" />
+							<ListHeaderItem text="数量" width="200" align="center" />
+							<ListHeaderItem text="单价" width="200" align="center" />
+						</List>  
+
+						<Control height="10" />
+
+						<Label name="dianneiorder_info_page_memo" minheight="30" multiline="true" text="备注:" />
+
+						<Control height="1" bkcolor="#FFEAEAEA" />
+
+						<VerticalLayout name="diannei_order_info_page_fees">				
+
+						</VerticalLayout>
+						
+						<Control name="diannei_order_info_page_fees_line" height="1" bkcolor="#FFEAEAEA" />
+						
+						<Label name="diannei_order_info_page_totalprice" height="40" padding="0,0,30,0" align="right" text="总计:" />
+					</VerticalLayout>
+
+					<VerticalLayout name="diannei_order_info_page_layout_2" height="105" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="20,20,20,20" borderround="10,10">
+						<Label name="diannei_order_info_page_zhuohao" text="桌号:" height="30" />
+						<Label name="diannei_order_info_page_renshu" text="人数:" height="30" />
+					</VerticalLayout>			
+					
+					<VerticalLayout name="diannei_order_info_page_layout_3" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="20,20,20,20" borderround="10,10">
+						<Label name="diannei_order_info_page_qucanma" text="取餐码:" height="30" />
+						<Label name="diannei_order_info_page_init_date" text="下单时间:" height="30" />
+						<Label name="diannei_order_info_page_type" height="30" text="订单来源:" />
+						<Label name="diannei_order_info_page_pay_type" height="30" text="付款方式:" />
+						<Label name="diannei_order_info_page_refund_status" height="30" text="退款状态:" />						
+					</VerticalLayout>
+				</VerticalLayout>
+
+				<HorizontalLayout width="250" height="200" bkcolor="#FFFFFFFF" padding="0,20,20,0" borderround="10,10">
+					<Button name="diannei_order_info_page_print" float="true" pos="50,60,200,98" text="打印" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'" />
+					<Button name="diannei_order_info_page_refund" float="true" pos="50,108,200,146" 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_Red_Click.png' corner='5,5,5,5'" />
+				</HorizontalLayout>
+			</HorizontalLayout>
+		</VerticalLayout>
+	</DianneiOrderInfoPage>
+</Window>

+ 46 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/dianneiorder_list_page.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window>
+	<DianneiOrderListPage>
+		<VerticalLayout>
+			<HorizontalLayout height="53" padding="0,0,0,0" bkcolor="#FFFFFFFF">
+				<VerticalLayout width="300" height="53">
+					<Button name="orderlist_diannei" text="店内订单" textcolor="#FF43A947" font="2" height="50" width="200" padding="50,0,10,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
+					<Control name="orderlist_diannei_line" height="3" bkcolor="#FF43A947" padding="70,0,70,0"></Control>
+				</VerticalLayout>
+				
+				<VerticalLayout width="300" height="53">
+					<Button name="orderlist_waimai" text="外卖订单" font="2" height="50" width="200" padding="50,0,10,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
+					<Control name="orderlist_waimai_line" visible="false" height="3" bkcolor="#FF43A947" padding="70,0,70,0"></Control>
+				</VerticalLayout>
+			</HorizontalLayout>
+
+			<HorizontalLayout>										
+				<VerticalLayout name="orderlist" vscrollbar="true">
+				
+				</VerticalLayout>
+				
+				<HorizontalLayout name="main_orderlist_loading">
+					<Control></Control>
+					<VerticalLayout width="24">
+						<Control></Control>
+						<HorizontalLayout height="24">
+							<GifAnim bkimage="loading.gif" autosize="true"></GifAnim>
+						</HorizontalLayout>
+						<Control></Control>
+					</VerticalLayout>
+					<Control></Control>
+				</HorizontalLayout>
+			</HorizontalLayout>
+			
+			<Control height="1" bkcolor="#FFEAEAEA"></Control>
+
+			<HorizontalLayout height="52" bkcolor="#FFFFFFFF" >
+				<Control />
+				<Button name="diannei_order_list_refresh" width="70" height="44" padding="20,4,0,0" text="刷新" textcolor="#FFFFFFFF" />
+				<Button name="diannei_order_list_last" width="70" height="44" padding="20,4,0,0" text="上一页" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'" />
+				<Button name="diannei_order_list_next" width="70" height="44" padding="20,4,0,0" text="下一页" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'" />
+				<Label name="diannei_order_list_page" width="150" height="44" padding="20,4,0,0" />
+			</HorizontalLayout>
+		</VerticalLayout>
+	</DianneiOrderListPage>
+</Window>

BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/green_dianji.png


BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/green_xuanfu.png


BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/green_zhengchang.png


+ 1 - 1
bin/Win32/Debug/zhipuzi_pos_windows/skin/main.xml

@@ -28,7 +28,7 @@
 				<Control height="15"></Control>
 				<Option name="main_diandan" group="main_tab" selected="true" width="101" height="102" text="点单" bkcolor="#FF3CB371" textpadding="0,60,0,0" selectedtextcolor="#FFFFFFFF" normalimage="file='main_diandan.png' source='0,0,50,50' dest='25,13,75,63'" selectedimage="file='main_diandan_select.png' source='0,0,50,50' dest='25,13,75,63'"></Option>
 				
-				<Option name="main_waimai" group="main_tab" width="101" height="102" text="订单" textpadding="0,60,0,0" selectedtextcolor="#FFFFFFFF" normalimage="file='main_waimai.png' source='0,0,50,50' dest='25,13,75,63'" selectedimage="file='main_waimai_select.png' source='0,0,50,50' dest='25,13,75,63'"></Option>
+				<Option name="main_dingdan" group="main_tab" width="101" height="102" text="订单" textpadding="0,60,0,0" selectedtextcolor="#FFFFFFFF" normalimage="file='main_waimai.png' source='0,0,50,50' dest='25,13,75,63'" selectedimage="file='main_waimai_select.png' source='0,0,50,50' dest='25,13,75,63'"></Option>
 				
 				<Option name="main_huiyuan" group="main_tab" width="101" height="102" text="会员" textpadding="0,60,0,0" selectedtextcolor="#FFFFFFFF" normalimage="file='main_huiyuan.png' source='0,0,50,50' dest='25,13,75,63'" selectedimage="file='main_huiyuan_select.png' source='0,0,50,50' dest='25,13,75,63'"></Option>
 				

BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/red_dianji.png


BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/red_xuanfu.png


BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/red_zhengchang.png


BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/tab_n.png


BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/tab_s.png


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

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Window>
-	<WaimaiOrderItem height="200" bkcolor="#FFFFFFFF" padding="0,20,20,0">
+	<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" />
@@ -27,10 +27,10 @@
 			<Button name="waimai_order_list_print" float="true" pos="100,54,180,92" text="打印" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'"/>
 			
 			<Button name="waimai_order_list_confirme" float="true" pos="100,112,180,150" text="确认" textcolor="#FFFFFFFF"/>
-			<Button name="waimai_order_list_success" float="true" pos="100,112,180,150" text="设为成功" textcolor="#FFFFFFFF"/>
+			<Button name="waimai_order_list_success" float="true" pos="100,112,180,150" text="设为成功" textcolor="#FFFFFFFF" normalimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"/>
 			<Button name="waimai_order_list_fail" float="true" pos="100,160,180,198" 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_Red_Click.png' corner='5,5,5,5'"/>
 			
-			<Button name="waimai_order_list_agree" float="true" pos="100,112,180,150" text="同意退款" textcolor="#FFFFFFFF"/>
+			<Button name="waimai_order_list_agree" float="true" pos="100,112,180,150" text="同意退款" textcolor="#FFFFFFFF" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'" />
 			<Button name="waimai_order_list_disagree" float="true" pos="100,160,180,198" 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_Red_Click.png' corner='5,5,5,5'"/>
 		</HorizontalLayout>
 	</WaimaiOrderItem>

+ 11 - 11
bin/Win32/Debug/zhipuzi_pos_windows/skin/waimaiorder_info_page.xml

@@ -8,13 +8,13 @@
 
 			<HorizontalLayout>
 				<VerticalLayout name="waimai_order_info_page_orderlayout" padding="20,20,20,20" vscrollbar="true">
-					<VerticalLayout name="waimai_order_info_page_layout_1" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="10,0,10,0">
+					<VerticalLayout name="waimai_order_info_page_layout_1" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="10,0,10,0" borderround="10,10" >
 						<HorizontalLayout height="50">
 							<Label float="true" name="waimai_order_info_page_liushuihao" text="#1" pos="10, 10, 60, 40" />
 							<Label float="true" name="waimai_order_info_page_order_num" text="订单号:" pos="80, 10, 500, 40" />
 						</HorizontalLayout>
 
-						<Control height="1" bkcolor="#FF708090" />
+						<Control height="1" bkcolor="#FFEAEAEA" />
 
 						<List name="waimai_order_info_page_foodlist">
 							<ListHeader />
@@ -27,37 +27,37 @@
 
 						<Label name="waimaorder_info_page_memo" minheight="30" multiline="true" text="备注:" />
 
-						<Control height="1" bkcolor="#FF708090" />
+						<Control height="1" bkcolor="#FFEAEAEA" />
 
 						<VerticalLayout name="waimai_order_info_page_fees">				
 
 						</VerticalLayout>
 						
-						<Control name="waimai_order_info_page_fees_line" height="1" bkcolor="#FF708090" />
+						<Control name="waimai_order_info_page_fees_line" height="1" bkcolor="#FFEAEAEA" />
 						
 						<Label name="waimai_order_info_page_totalprice" height="40" padding="0,0,30,0" align="right" text="总计:" />
 					</VerticalLayout>
 
-					<VerticalLayout name="waimai_order_info_page_layout_2" height="150" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="10,0,10,0">
+					<VerticalLayout name="waimai_order_info_page_layout_2" height="150" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="10,0,10,0" borderround="10,10">
 						<Label text="顾客信息" height="30" />
-						<Control height="1" bkcolor="#FF708090" />
+						<Control height="1" bkcolor="#FFEAEAEA" />
 						<Label name="waimai_order_info_page_name" text="姓名:" height="30" />
 						<Label name="waimai_order_info_page_phone" text="电话:" height="30" />
 						<Label name="waimai_order_info_page_address" text="地址:" height="30" />
 						<Label name="waimai_order_info_page_init_date" text="下单时间:" height="30" />
 					</VerticalLayout>
 						
-					<VerticalLayout name="waimai_order_info_page_qishouinfo" height="120" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="10,0,10,0">
+					<VerticalLayout name="waimai_order_info_page_qishouinfo" height="120" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="10,0,10,0" borderround="10,10">
 						<Label text="骑手信息" height="30" />
-						<Control height="1" bkcolor="#FF708090" />
+						<Control height="1" bkcolor="#FFEAEAEA" />
 						<Label name="waimai_order_info_page_qishou_name" text="骑手姓名:" height="30" />
 						<Label name="waimai_order_info_page_qishou_phone" text="骑手电话:" height="30" />
 						<Label name="waimai_order_info_page_qishou_type" text="骑手类型:" height="30" />
 					</VerticalLayout>				
 					
-					<VerticalLayout name="waimai_order_info_page_layout_3" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="10,0,10,0">
+					<VerticalLayout name="waimai_order_info_page_layout_3" bkcolor="#FFFFFFFF" padding="0,0,0,20" inset="10,0,10,0" borderround="10,10">
 						<Label text="订单信息" height="30" />
-						<Control height="1" bkcolor="#FF708090" />
+						<Control height="1" bkcolor="#FFEAEAEA" />
 						<Label name="waimai_order_info_page_shopname" height="30" text="店铺名字:" />
 						<Label name="waimai_order_info_page_status" height="30" text="订单状态:" />
 						<Label name="waimai_order_info_page_type" height="30" text="订单来源:" />
@@ -74,7 +74,7 @@
 					</VerticalLayout>
 				</VerticalLayout>
 
-				<HorizontalLayout width="250" height="400" bkcolor="#FFFFFFFF" padding="0,20,20,0">
+				<HorizontalLayout width="250" height="400" bkcolor="#FFFFFFFF" padding="0,20,20,0" borderround="10,10">
 					<Button name="waimai_order_info_page_print" float="true" pos="50,60,200,98" text="打印" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'" />
 					
 					<Button name="waimai_order_info_page_confirme" float="true" pos="50,108,200,146" text="确认" textcolor="#FFFF0FFFF" />

+ 13 - 11
bin/Win32/Debug/zhipuzi_pos_windows/skin/waimaiorder_list_page.xml

@@ -4,26 +4,26 @@
 		<VerticalLayout>
 			<HorizontalLayout height="53" padding="0,0,0,0" bkcolor="#FFFFFFFF">
 				<VerticalLayout width="300" height="53">
-					<Button name="shoukuan_btn_saomazhifu" text="店内订单" textcolor="#FF43A947" font="2" height="50" width="200" padding="50,0,10,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
-					<Control name="shoukuan_btn_saomazhifu_line" height="3" bkcolor="#FF43A947" padding="70,0,70,0"></Control>
+					<Button name="orderlist_diannei" text="店内订单" font="2" height="50" width="200" padding="50,0,10,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
+					<Control name="orderlist_diannei_line" visible="false" height="3" bkcolor="#FF43A947" padding="70,0,70,0"></Control>
 				</VerticalLayout>
 				
 				<VerticalLayout width="300" height="53">
-					<Button name="shoukuan_btn_shoujihao" text="外卖订单" font="2" height="50" width="200" padding="50,0,10,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
-					<Control name="shoukuan_btn_shoujihao_line" visible="false" height="3" bkcolor="#FF43A947" padding="70,0,70,0"></Control>
+					<Button name="orderlist_waimai" text="外卖订单" textcolor="#FF43A947" font="2" height="50" width="200" padding="50,0,10,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
+					<Control name="orderlist_waimai_line" height="3" bkcolor="#FF43A947" padding="70,0,70,0"></Control>
 				</VerticalLayout>
 			</HorizontalLayout>
 
 			<HorizontalLayout>
 				<HorizontalLayout width="250" padding="20,20,20,0">
 					<VerticalLayout height="500" inset="20,20,20,0" bkcolor="#FFFFFFFF">
-						<Option name="waimai_open_switch" text="未处理" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
-						<Option name="waimai_confirmed_switch" text="已确认" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
-						<Option name="waimai_delivery_switch" text="配送中" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
-						<Option name="waimai_success_switch" text="成功" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
-						<Option name="waimai_fail_switch" text="失败"  group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
-						<Option name="waimai_cancel_switch" text="已取消"  group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
-						<Option name="waimai_refund_switch" text="退款中" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
+						<Option name="waimai_open_switch" text="未处理" textcolor="#FF666666" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='tab_n.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
+						<Option name="waimai_confirmed_switch" text="已确认" textcolor="#FF666666" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='tab_n.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
+						<Option name="waimai_delivery_switch" text="配送中" textcolor="#FF666666" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='tab_n.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
+						<Option name="waimai_success_switch" text="成功" textcolor="#FF666666" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='tab_n.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
+						<Option name="waimai_fail_switch" text="失败"  textcolor="#FF666666" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='tab_n.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
+						<Option name="waimai_cancel_switch" text="已取消"  textcolor="#FF666666" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='tab_n.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
+						<Option name="waimai_refund_switch" text="退款中" textcolor="#FF666666" group="waimai_status_switch" padding="0,10,0,0" align="center" height="44" normalimage="file='tab_n.png' corner='5,5,5,5'" selectedimage="file='shuzi_btn_push.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" hottextcolor="#FFFFFF" selectedtextcolor="#FFFFFFFF" />
 					</VerticalLayout>
 				</HorizontalLayout>
 										
@@ -44,6 +44,8 @@
 				</HorizontalLayout>
 			</HorizontalLayout>
 			
+			<Control height="1" bkcolor="#FFEAEAEA"></Control>
+			
 			<HorizontalLayout height="52" bkcolor="#FFFFFFFF" >
 				<Control />
 				<Button name="waimai_order_list_refresh" width="70" height="44" padding="20,4,0,0" text="刷新" textcolor="#FFFFFFFF" />

BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/white_dianji.png


BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/white_xuanfu.png


BIN=BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/white_zhengchang.png


+ 49 - 0
zhipuzi_pos_windows/control/CDianneiOrderItemUI.cpp

@@ -0,0 +1,49 @@
+#include "../pch/pch.h"
+#include "CDianneiOrderItemUI.h"
+
+
+CDianneiOrderItemUI::CDianneiOrderItemUI()
+{
+}
+
+
+CDianneiOrderItemUI::~CDianneiOrderItemUI()
+{
+}
+
+void CDianneiOrderItemUI::SetData(rapidjson::Value& orderinfo)
+{
+	m_orderid = orderinfo["id"].GetString();
+	m_take_food_code = orderinfo["take_food_code"].GetString();
+	m_show_trade_no = orderinfo["show_trade_no"].GetString();
+	m_is_refund = orderinfo["is_refund"].GetString();
+	m_init_time = orderinfo["init_time"].GetString();
+	m_table_name = orderinfo["table_name"].GetString();
+	m_person_num = orderinfo["person_num"].GetString();
+	m_total_price = orderinfo["total_price"].GetString();
+	m_zhifu_type = orderinfo["zhifu_type"].GetString();
+	m_yingshou_price = orderinfo["yingshou_price"].GetString();
+
+	std::wstring qucanhao_show = L"取餐码:" + CLewaimaiString::UTF8ToUnicode(m_take_food_code);
+	this->FindSubControl(L"diannei_order_list_qucanhao")->SetText(qucanhao_show.c_str());
+
+	std::wstring dingdanhao_show = L"订单号:" + CLewaimaiString::UTF8ToUnicode(m_show_trade_no);
+	this->FindSubControl(L"diannei_order_list_order_num")->SetText(dingdanhao_show.c_str());
+
+	std::wstring init_date_show = L"下单时间:" + CLewaimaiString::UTF8ToUnicode(m_init_time);
+	this->FindSubControl(L"diannei_order_list_init_date")->SetText(init_date_show.c_str());
+
+	std::wstring table_name_show = L"桌位:" + CLewaimaiString::UTF8ToUnicode(m_table_name);
+	this->FindSubControl(L"diannei_order_list_zhuowei")->SetText(table_name_show.c_str());
+
+	std::wstring person_num_show = L"人数:" + CLewaimaiString::UTF8ToUnicode(m_person_num);
+	this->FindSubControl(L"diannei_order_list_renshu")->SetText(person_num_show.c_str());
+
+	std::wstring price_show = L"价格:" + CLewaimaiString::UTF8ToUnicode(m_total_price);
+	this->FindSubControl(L"diannei_order_list_price")->SetText(price_show.c_str());	
+
+	std::wstring zhifufangshi_show = L"支付方式:" + CLewaimaiString::UTF8ToUnicode(m_zhifu_type);
+	this->FindSubControl(L"diannei_order_list_zhifu_type")->SetText(zhifufangshi_show.c_str());
+
+
+}

+ 38 - 0
zhipuzi_pos_windows/control/CDianneiOrderItemUI.h

@@ -0,0 +1,38 @@
+#pragma once
+
+#include "../pch/pch.h"
+
+class CDianneiOrderItemUI : public CHorizontalLayoutUI
+{
+public:
+	CDianneiOrderItemUI();
+	~CDianneiOrderItemUI();
+
+	void SetData(rapidjson::Value& orderinfo);
+
+	std::string getOrderID()
+	{
+		return m_orderid;
+	}
+
+	void DoEvent(TEventUI& event)
+	{
+		if (event.Type == UIEVENT_BUTTONDOWN)
+		{
+			int a = 1;
+		}
+		CHorizontalLayoutUI::DoEvent(event);
+	}
+
+private:
+	std::string m_orderid;
+	std::string m_take_food_code;
+	std::string m_show_trade_no;
+	std::string m_is_refund;
+	std::string m_init_time;
+	std::string m_table_name;
+	std::string m_person_num;
+	std::string m_total_price;
+	std::string m_zhifu_type;
+	std::string m_yingshou_price;
+};

+ 16 - 1
zhipuzi_pos_windows/control/ControlEx.h

@@ -5,9 +5,12 @@
 #include "../page/CDiandanPageUI.h"
 #include "../page/CWaimaiOrderListPageUI.h"
 #include "../page/CWaimaiOrderInfoPageUI.h"
+#include "../page/CDianneiOrderListPageUI.h"
+#include "../page/CDianneiOrderInfoPageUI.h"
 #include "../page/CSettingPageUI.h"
 
 #include "CWaimaiOrderItemUI.h"
+#include "CDianneiOrderItemUI.h"
 #include "CDiandanFoodItemUI.h"
 #include "CFoodtypeOptionUI.h"
 #include "CDiandanNatureItemUI.h"
@@ -30,6 +33,14 @@ public:
 		{
 			return new CWaimaiOrderInfoPageUI;
 		}
+		else if (_tcscmp(pstrClass, _T("DianneiOrderListPage")) == 0)
+		{
+			return new CDianneiOrderListPageUI;
+		}
+		else if (_tcscmp(pstrClass, _T("DianneiOrderInfoPage")) == 0)
+		{
+			return new CDianneiOrderInfoPageUI;
+		}
 		else if (_tcscmp(pstrClass, _T("SettingPage")) == 0)
 		{
 			return new CSettingPageUI;
@@ -39,7 +50,11 @@ public:
 		else if (_tcscmp(pstrClass, _T("WaimaiOrderItem")) == 0)
 		{
 			return new CWaimaiOrderItemUI;
-		}		
+		}
+		else if (_tcscmp(pstrClass, _T("DianneiOrderItem")) == 0)
+		{
+			return new CDianneiOrderItemUI;
+		}
 		else if (_tcscmp(pstrClass, _T("FoodtypeOption")) == 0)
 		{
 			return new CFoodtypeOptionUI;

+ 5 - 0
zhipuzi_pos_windows/page/CBasePageUI.h

@@ -29,9 +29,14 @@ public:
 	//处理编辑框输入内容改变事件
 	virtual void HandleTextChangedMsg(TNotifyUI& msg) = 0;
 
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	virtual bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) = 0;
+
 	//处理扫码枪捕捉到的扫码信息
 	virtual void HandleTextCapture(std::string content) = 0;
 
+
+
 	void SetMainWnd(CMainWnd* wnd)
 	{
 		m_pMainWnd = wnd;

+ 12 - 2
zhipuzi_pos_windows/page/CDiandanPageUI.cpp

@@ -1010,8 +1010,6 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 	}
 
 	//判断会员商品优惠
-	
-	//先按假数据
 	m_total_member_youhui = 0;
 	
 	if (m_is_member)
@@ -1031,6 +1029,8 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 
 	cur_price = (double)(cur_price * zhekouValue) / 100.00;
 
+	m_zhekou_value = zhekouValue;
+
 	//保留2位小数
 	cur_price = (int)(cur_price * 100) / 100.00;
 
@@ -2833,6 +2833,9 @@ void CDiandanPageUI::StartXianjinShoukuan()
 		UINT ret = pShoukuanWnd->ShowModal();
 		if (ret == IDOK)
 		{
+			m_shishou_value = pShoukuanWnd->m_shishou;
+			m_zhaoling_value = pShoukuanWnd->m_zhaoling;
+
 			//说明收款成功了,需要进行一些后续的处理
 			this->StartWorkAfterShoukuan(pShoukuanWnd->m_kucun_string, pShoukuanWnd->m_take_food_code, pShoukuanWnd->m_show_trade_no, "xianjinzhifu");
 		}
@@ -3443,6 +3446,13 @@ CDiandanOrder CDiandanPageUI::GetPrintOrderinfo(std::string take_food_code, std:
 	m_cur_diandan_order.m_youhuiquan_youhui = CLewaimaiString::DoubleToString(m_youhuiquan_youhui, 2);
 	m_cur_diandan_order.m_rengong_youhui = CLewaimaiString::DoubleToString(m_rengong_youhui, 2);
 	m_cur_diandan_order.m_moling_youhui = CLewaimaiString::DoubleToString(m_moling_youhui, 2);
+
+	m_cur_diandan_order.m_jiajia = CLewaimaiString::DoubleToString(m_jiajia, 2);
+
+	m_cur_diandan_order.m_shishou_value = m_shishou_value;
+	m_cur_diandan_order.m_zhaoling_value = m_zhaoling_value;
+
+	m_cur_diandan_order.m_zhekou_value = m_zhekou_value;
 	
 	m_cur_diandan_order.m_dabao_money = CLewaimaiString::DoubleToString(m_cur_diandan_order.getDabaoMoney(), 2);
 	m_cur_diandan_order.m_total_price = CLewaimaiString::DoubleToString(m_cur_total_price, 2);

+ 12 - 0
zhipuzi_pos_windows/page/CDiandanPageUI.h

@@ -63,6 +63,12 @@ public:
 	//处理扫码枪捕捉到的扫码信息
 	void HandleTextCapture(std::string content);
 
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+	{
+		return false;
+	}
+
 	//添加一个新的商品到购物车展示
 	void AddDiandanOrderItemShow(int index);
 
@@ -218,6 +224,8 @@ private:
 	//总的优惠
 	double m_total_youhui;
 
+	//折扣
+	int m_zhekou_value;
 	double m_zhekou_youhui;
 
 	//人工加价
@@ -290,6 +298,10 @@ private:
 	//当前应收总价
 	double m_cur_total_price;
 
+	//仅用于现金收银成功后,对于实收和找零的临时记录
+	std::string m_shishou_value;
+	std::string m_zhaoling_value;
+
 	//餐牌
 	std::string m_canpai;
 

+ 380 - 0
zhipuzi_pos_windows/page/CDianneiOrderInfoPageUI.cpp

@@ -0,0 +1,380 @@
+#include "../pch/pch.h"
+#include "CDianneiOrderInfoPageUI.h"
+
+#include "../control/ControlEx.h"
+
+#include "../wnd/CMainWnd.h"
+
+#include "../network/CMessagePush.h"
+
+#include "../print/CPosPrinter.h"
+
+CDianneiOrderInfoPageUI::CDianneiOrderInfoPageUI()
+{
+
+}
+
+CDianneiOrderInfoPageUI::~CDianneiOrderInfoPageUI()
+{
+
+}
+
+//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+void CDianneiOrderInfoPageUI::InitShow()
+{
+	//请求服务器,获取订单数据
+	CDiandanOrder order;
+	order.InitData(m_order_id);
+
+	//刷新订单详情页数据
+	this->SetDate(order);
+	this->Refresh(order);
+}
+
+//处理按钮点击类事件
+void CDianneiOrderInfoPageUI::HandleClickMsg(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	if (name == _T("diannei_order_info_page_return"))
+	{
+		m_pMainWnd->SwitchPage(CMainWnd::DIANNEIDINGDAN);
+	}
+	else if (name == _T("diannei_order_info_page_print"))
+	{
+		CPosPrinter printer;
+		printer.PrintDiandanOrder(this->m_order.m_order_id);
+	}
+	else if (name == _T("diannei_order_info_page_refund"))
+	{
+		std::string diannei_order_id = this->m_order.m_order_id;
+
+		CDiandanOrder order;
+		bool ret = order.Refund(diannei_order_id);
+
+		if (ret)
+		{
+			//订单设为成功,这里怎么处理
+			//请求服务器,获取订单数据
+			CDiandanOrder new_order;
+			new_order.InitData(diannei_order_id);
+
+			//刷新订单详情页数据
+			this->SetDate(new_order);
+			this->Refresh(new_order);
+		}
+	}
+}
+
+//处理option切换事件
+void CDianneiOrderInfoPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理下拉框、radio的切换事件
+void CDianneiOrderInfoPageUI::HandleItemSelectMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理编辑框输入内容改变事件
+void CDianneiOrderInfoPageUI::HandleTextChangedMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理扫码枪捕捉到的扫码信息
+void CDianneiOrderInfoPageUI::HandleTextCapture(std::string content)
+{
+
+}
+
+//刷新当前页面的内容,注意这个函数不会改变当前的订单状态以及“页数”
+void CDianneiOrderInfoPageUI::SetDate(CDiandanOrder& order)
+{
+	m_order = order;
+}
+
+void CDianneiOrderInfoPageUI::Refresh(CDiandanOrder& order)
+{
+	std::wstring order_no_show = L"订单号:" + CLewaimaiString::UTF8ToUnicode(order.show_trade_no);
+	this->FindSubControl(_T("diannei_order_info_page_order_num"))->SetText(order_no_show.c_str());
+
+	//商品详情的渲染
+	CListUI* pFoodList = static_cast<CListUI*>(this->FindSubControl(_T("diannei_order_info_page_foodlist")));
+	pFoodList->RemoveAll();
+
+	for (std::vector<CDiandanOrderItemPrint>::iterator it = order.m_items_print.begin(); it != order.m_items_print.end(); it++)
+	{
+		std::string food_name = (*it).m_food_name;
+		std::string food_price = (*it).m_item_price;
+		std::string quantity = (*it).m_quantity;
+
+		CDialogBuilder builder;
+		CListContainerElementUI* pEle = static_cast<CListContainerElementUI *>(builder.Create(_T("diannei_order_info_page_listitem.xml"), (UINT)0, NULL, m_pManager));
+
+		CLabelUI *pName = static_cast<CLabelUI *>(pEle->FindSubControl(_T("diannei_order_info_page_listitem_foodname")));
+		pName->SetText(CLewaimaiString::UTF8ToUnicode(food_name).c_str());
+
+		CLabelUI *pQuantity = static_cast<CLabelUI *>(pEle->FindSubControl(_T("diannei_order_info_page_listitem_quantity")));
+		pQuantity->SetText(CLewaimaiString::UTF8ToUnicode(quantity).c_str());
+
+		CLabelUI *pPrice = static_cast<CLabelUI *>(pEle->FindSubControl(_T("diannei_order_info_page_listitem_price")));
+		pPrice->SetText(CLewaimaiString::UTF8ToUnicode(food_price).c_str());
+
+		pFoodList->Add(pEle);
+	}
+
+	//重设商品列表的高度
+	int order_item_height = (order.m_items_print.size() + 1) * 30;
+	pFoodList->SetFixedHeight(order_item_height);
+
+	CLabelUI *pMemo = static_cast<CLabelUI *>(this->FindSubControl(_T("dianneiorder_info_page_memo")));
+	wstring memo = _T("备注:") + CLewaimaiString::UTF8ToUnicode(order.m_memo);
+	pMemo->SetText(memo.c_str());
+
+	//开始展示各种费用
+	CVerticalLayoutUI* pFeesLayout = static_cast<CVerticalLayoutUI *>(this->FindSubControl(_T("diannei_order_info_page_fees")));
+	pFeesLayout->RemoveAll();
+
+	int fees_num = 0;
+
+	if (atof(order.m_shangpinquan_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"商品券优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_shangpinquan_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_cika_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"次卡优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_cika_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_total_member_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"商品会员价优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_total_member_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_zhekou_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"整单折扣优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_zhekou_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_member_zhekou_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"会员折扣优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_member_zhekou_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_quanyika_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"权益卡优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_quanyika_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_manjian_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"满减优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_manjian_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_youhuiquan_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"优惠券优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_youhuiquan_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_rengong_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"人工优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_rengong_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_dabao_money.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"打包费金额:" + CLewaimaiString::UTF8ToUnicode(order.m_dabao_money);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_jiajia.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"加价金额:" + CLewaimaiString::UTF8ToUnicode(order.m_jiajia);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	if (atof(order.m_moling_youhui.c_str()) > 0)
+	{
+		CLabelUI *pFee = new CLabelUI;
+		pFee->SetFixedHeight(38);
+
+		wstring delivery_fee = L"抹零优惠金额:" + CLewaimaiString::UTF8ToUnicode(order.m_moling_youhui);
+		pFee->SetText(delivery_fee.c_str());
+
+		pFeesLayout->Add(pFee);
+
+		fees_num++;
+	}
+
+	int fees_height;
+	if (fees_num == 0)
+	{
+		pFeesLayout->SetVisible(false);
+		this->FindSubControl(_T("diannei_order_info_page_fees_line"))->SetVisible(false);
+
+		fees_height = 0;
+	}
+	else
+	{
+		pFeesLayout->SetVisible(true);
+		this->FindSubControl(_T("diannei_order_info_page_fees_line"))->SetVisible(true);
+		pFeesLayout->SetFixedHeight(fees_num * 38);
+
+		fees_height = fees_num * 38;
+	}
+
+	CLabelUI *pTotalPrice = static_cast<CLabelUI *>(this->FindSubControl(_T("diannei_order_info_page_totalprice")));
+	wstring price = L"总计:¥" + CLewaimaiString::UTF8ToUnicode(order.m_total_price);
+	pTotalPrice->SetText(price.c_str());
+
+	int nTotalHeight = order_item_height + fees_height + 173;
+	this->FindSubControl(_T("diannei_order_info_page_layout_1"))->SetFixedHeight(nTotalHeight);
+
+	//开始显示顾客信息
+	std::wstring qucanma_show = L"取餐码:" + CLewaimaiString::UTF8ToUnicode(order.take_food_code);
+	this->FindSubControl(_T("diannei_order_info_page_qucanma"))->SetText(qucanma_show.c_str());
+
+	std::wstring canpai_show = L"桌号:" + CLewaimaiString::UTF8ToUnicode(order.m_canpai);
+	this->FindSubControl(_T("diannei_order_info_page_zhuohao"))->SetText(canpai_show.c_str());
+
+	std::wstring renshu_show = L"人数:" + CLewaimaiString::UTF8ToUnicode(order.m_renshu);
+	this->FindSubControl(_T("diannei_order_info_page_renshu"))->SetText(renshu_show.c_str());
+
+	std::wstring order_date_show = L"下单时间:" + CLewaimaiString::UTF8ToUnicode(order.init_time);
+	this->FindSubControl(_T("diannei_order_info_page_init_date"))->SetText(order_date_show.c_str());
+
+	//开始处理订单信息
+	std::wstring laiyuan;
+	if (order.order_from == 1)
+	{
+		laiyuan = L"收银机下单";
+	}
+	else if (order.order_from == 2)
+	{
+		laiyuan = L"商家app下单";
+	}
+	else if (order.order_from == 3)
+	{
+		laiyuan = L"扫码下单";
+	}
+
+	CLabelUI *pType = static_cast<CLabelUI *>(this->FindSubControl(_T("diannei_order_info_page_type")));
+	wstring wsType = _T("订单来源:") + laiyuan;
+	pType->SetText(wsType.c_str());
+
+	CLabelUI *pPayType = static_cast<CLabelUI *>(this->FindSubControl(_T("diannei_order_info_page_pay_type")));
+	wstring wsPayType = _T("付款方式:") + CLewaimaiString::UTF8ToUnicode(order.shoukuan_type);
+	pPayType->SetText(wsPayType.c_str());
+
+	CLabelUI *pRefund = static_cast<CLabelUI *>(this->FindSubControl(_T("diannei_order_info_page_refund_status")));
+	if (order.is_refund == "1")
+	{
+		wstring wsPayType = _T("退款状态:已退款");
+		pRefund->SetText(wsPayType.c_str());
+	}
+	else
+	{
+		wstring wsPayType = _T("退款状态:未退款");
+		pRefund->SetText(wsPayType.c_str());
+	}
+
+	this->FindSubControl(_T("diannei_order_info_page_layout_3"))->SetFixedHeight(211);
+
+	//退款按钮
+	CButtonUI* refund_button = static_cast<CButtonUI *>(m_pManager->FindControl(_T("diannei_order_info_page_refund")));
+
+	if (order.is_refund == "1")
+	{
+		refund_button->SetVisible(false);
+	}
+}

+ 49 - 0
zhipuzi_pos_windows/page/CDianneiOrderInfoPageUI.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#include "../pch/pch.h"
+#include "CBasePageUI.h"
+
+#include "../zhipuzi/CDiandanOrder.h"
+
+class CDianneiOrderInfoPageUI : public CBasePageUI
+{
+public:
+	CDianneiOrderInfoPageUI();
+
+	~CDianneiOrderInfoPageUI();
+
+	//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+	void InitShow();
+
+	//处理按钮点击类事件
+	void HandleClickMsg(TNotifyUI& msg);
+
+	//处理option切换事件
+	void HandleSelectChangeMsg(TNotifyUI& msg);
+
+	//处理下拉框、radio的切换事件
+	void HandleItemSelectMsg(TNotifyUI& msg);
+
+	//处理编辑框输入内容改变事件
+	void HandleTextChangedMsg(TNotifyUI& msg);
+
+	//处理扫码枪捕捉到的扫码信息
+	void HandleTextCapture(std::string content);
+
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+	{
+		return false;
+	}
+
+	//刷新当前页面的内容,注意这个函数不会改变当前的订单状态以及“页数”
+	void SetDate(CDiandanOrder& order);
+
+	//根据外卖订单数据,刷新订单详情页的显示
+	void Refresh(CDiandanOrder& order);
+
+public:
+	CDiandanOrder m_order;
+
+	std::string m_order_id;
+};

+ 300 - 0
zhipuzi_pos_windows/page/CDianneiOrderListPageUI.cpp

@@ -0,0 +1,300 @@
+#include "../pch/pch.h"
+#include "CDianneiOrderListPageUI.h"
+
+#include "../control/CDianneiOrderItemUI.h"
+
+#include "../control/ControlEx.h"
+
+#include "../network/CMessagePush.h"
+#include "../wnd/CWaimaiOrderFailReasonWnd.h"
+
+#include "../print/CPosPrinter.h"
+
+#include "../wnd/CMainWnd.h"
+
+CDianneiOrderListPageUI::CDianneiOrderListPageUI()
+{
+
+}
+
+
+CDianneiOrderListPageUI::~CDianneiOrderListPageUI()
+{
+}
+
+//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+void CDianneiOrderListPageUI::InitShow()
+{
+	SetPage(1);
+	Refresh();
+}
+
+//处理按钮点击类事件
+void CDianneiOrderListPageUI::HandleClickMsg(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	if (name == _T("diannei_order_list_print"))
+	{
+		CDianneiOrderItemUI* item = static_cast<CDianneiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
+		std::string diannei_order_id = item->getOrderID();
+
+		CPosPrinter printer;
+		printer.PrintDiandanOrder(diannei_order_id);
+	}
+	else if (name == _T("diannei_order_list_info"))
+	{
+		CDianneiOrderItemUI* item = static_cast<CDianneiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
+		std::string diannei_order_id = item->getOrderID();
+
+		m_pMainWnd->SetInfopageDianneiorderParam(diannei_order_id);
+
+		m_pMainWnd->SwitchPage(CMainWnd::DIANNEIINFO);
+	}
+	else if (name == _T("diannei_order_list_last"))
+	{
+		this->LastPage();
+	}
+	else if (name == _T("diannei_order_list_next"))
+	{
+		this->NextPage();
+	}
+	else if (name == _T("diannei_order_list_refresh"))
+	{
+		this->Refresh();
+	}
+	else if (name == L"orderlist_waimai")
+	{
+		m_pMainWnd->SwitchPage(CMainWnd::DINGDAN);
+	}
+}
+
+//处理option切换事件
+void CDianneiOrderListPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	
+}
+
+//处理下拉框、radio的切换事件
+void CDianneiOrderListPageUI::HandleItemSelectMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理编辑框输入内容改变事件
+void CDianneiOrderListPageUI::HandleTextChangedMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理扫码枪捕捉到的扫码信息
+void CDianneiOrderListPageUI::HandleTextCapture(std::string content)
+{
+
+}
+
+bool CDianneiOrderListPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+	if (uMsg == WM_ORDERLIST_REFRESH)
+	{
+		DoRefresh();
+
+		return true;
+	}
+
+	return false;
+}
+
+void CDianneiOrderListPageUI::Refresh()
+{
+	//开始转菊花
+	CContainerUI* pOrderListLayout = static_cast<CContainerUI*>(this->FindSubControl(_T("orderlist")));
+	pOrderListLayout->SetVisible(false);
+
+	this->FindSubControl(_T("main_orderlist_loading"))->SetVisible(true);
+
+	//启动一个线程,进行网络请求操作
+	DianneiOrderListStatus* status = new DianneiOrderListStatus;
+	status->m_page = m_page;
+
+	std::thread t(&CDianneiOrderListPageUI::HandleRefresh, this, status);
+	t.detach();
+}
+
+void CDianneiOrderListPageUI::HandleRefresh(DianneiOrderListStatus* status)
+{
+	std::string url= "/diancan/getoldorderlist";
+
+	//请求外卖的未处理订单,直接用当前的page值去请求
+	std::map<string, string> params;
+	params["page"] = to_string(status->m_page);
+	params["content"] = "";
+	params["ordercode"] = "";
+	std::string response;
+
+	CZhipuziHttpClient::Request(url.c_str(), params, response);
+
+	//走到这里,网络请求结束了,对比状态是否发生了改变
+	if (status->m_page != m_page)
+	{
+		//用户已经点击了其他状态,这个状态结果无效了,直接返回
+		delete status;
+		return;
+	}
+
+	//将网络返回结果保存起来,等待消息处理重新渲染页面
+	m_response = response;
+
+	::PostMessage(m_pManager->GetPaintWindow(), WM_ORDERLIST_REFRESH, 0, 0);
+
+	delete status;
+}
+
+void CDianneiOrderListPageUI::DoRefresh()
+{
+	//请求成功之后,清空之前的数据
+	CContainerUI* pOrderListLayout = static_cast<CContainerUI*>(this->FindSubControl(_T("orderlist")));
+	pOrderListLayout->RemoveAll();
+
+	rapidjson::Document document;
+	document.Parse(m_response.c_str());
+
+	if (document.HasParseError())
+	{
+		LOG_INFO("parse response error!");
+		return;
+	}
+
+	if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
+	{
+		LOG_INFO("json error!");
+		return;
+	}
+
+	rapidjson::Value& v_errcode = document["errcode"];
+	int errcode = v_errcode.GetInt();
+	if (errcode != 0)
+	{
+		LOG_INFO("response failed! message:" << document["errmsg"].GetString());
+		return;
+	}
+
+	//获得数据成功
+	rapidjson::Value& data = document["data"];
+
+	rapidjson::Value& v_count = data["count"];
+	string count = v_count.GetString();
+
+	//处理页数
+	int nCount = atoi(count.c_str());
+	m_total_page = (int)ceil(nCount / 20.0);
+	if (m_total_page < 1)
+	{
+		m_total_page = 1;
+	}
+
+	if (m_page <= 1)
+	{
+		m_page = 1;
+		CButtonUI* pControl = static_cast<CButtonUI*>(this->FindSubControl(_T("diannei_order_list_last")));
+		pControl->SetEnabled(false);
+	}
+	if (m_page >= m_total_page)
+	{
+		m_page = m_total_page;
+		CButtonUI* pControl = static_cast<CButtonUI*>(this->FindSubControl(_T("diannei_order_list_next")));
+		pControl->SetEnabled(false);
+	}
+
+	if (m_page > 1)
+	{
+		CButtonUI* pControl = static_cast<CButtonUI*>(this->FindSubControl(_T("diannei_order_list_last")));
+		pControl->SetEnabled(true);
+	}
+	if (m_page < m_total_page)
+	{
+		CButtonUI* pControl = static_cast<CButtonUI*>(this->FindSubControl(_T("diannei_order_list_next")));
+		pControl->SetEnabled(true);
+	}
+
+	CLabelUI* pControl = static_cast<CLabelUI*>(this->FindSubControl(_T("diannei_order_list_page")));
+	wstring pageinfo = _T("第 ") + CLewaimaiString::ANSIToUnicode(to_string(m_page)) + _T("页/共 ") + CLewaimaiString::ANSIToUnicode(to_string(m_total_page)) + _T("页");
+	pControl->SetText(pageinfo.c_str());
+
+	rapidjson::Value& v_rows = data["rows"];
+
+	for (rapidjson::SizeType i = 0; i < v_rows.Size(); ++i)
+	{
+		rapidjson::Value& v_row_i = v_rows[i];
+
+		//创建一个对象
+		CDialogBuilder builder;
+		CDialogBuilderCallbackEx cb;
+
+		CDianneiOrderItemUI* pItem = static_cast<CDianneiOrderItemUI*>(builder.Create(_T("diannei_order_item.xml"), (UINT)0, &cb, m_pManager));
+		if (pItem != NULL)
+		{
+			//初始化该对应的数据
+			pItem->SetData(v_row_i);
+
+			pOrderListLayout->Add(pItem);
+
+			pItem = NULL;
+		}
+		else
+		{
+			LOG_INFO("create diannei_order_item fail!");
+		}
+	}
+
+	//重置滚动条的位置
+	tagSIZE size;
+	size.cx = 0;
+	size.cy = 0;
+	pOrderListLayout->SetScrollPos(size);
+
+	pOrderListLayout->SetVisible(true);
+
+	this->FindSubControl(_T("main_orderlist_loading"))->SetVisible(false);
+}
+
+void CDianneiOrderListPageUI::LastPage()
+{
+	m_page--;
+	if (m_page < 1)
+	{
+		m_page = 1;
+	}
+
+	if (m_page == 1)
+	{
+		CButtonUI* pControl = static_cast<CButtonUI*>(this->FindSubControl(_T("diannei_order_list_last")));
+		pControl->SetEnabled(false);
+	}
+
+	Refresh();
+}
+
+void CDianneiOrderListPageUI::NextPage()
+{
+	m_page++;
+	if (m_page > m_total_page)
+	{
+		m_page = m_total_page;
+	}
+
+	if (m_page == m_total_page)
+	{
+		CButtonUI* pControl = static_cast<CButtonUI*>(this->FindSubControl(_T("diannei_order_list_next")));
+		pControl->SetEnabled(false);
+	}
+
+	Refresh();
+}
+
+void CDianneiOrderListPageUI::SetPage(int n)
+{
+	m_page = n;
+}

+ 60 - 0
zhipuzi_pos_windows/page/CDianneiOrderListPageUI.h

@@ -0,0 +1,60 @@
+#pragma once
+
+#include "../pch/pch.h"
+
+#include "CBasePageUI.h"
+
+class DianneiOrderListStatus
+{
+public:
+	int m_page;
+};
+
+class CDianneiOrderListPageUI : public CBasePageUI
+{
+public:
+	CDianneiOrderListPageUI();
+	~CDianneiOrderListPageUI();
+
+	//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+	void InitShow();
+
+	//处理按钮点击类事件
+	void HandleClickMsg(TNotifyUI& msg);
+
+	//处理option切换事件
+	void HandleSelectChangeMsg(TNotifyUI& msg);
+
+	//处理下拉框、radio的切换事件
+	void HandleItemSelectMsg(TNotifyUI& msg);
+
+	//处理编辑框输入内容改变事件
+	void HandleTextChangedMsg(TNotifyUI& msg);
+
+	//处理扫码枪捕捉到的扫码信息
+	void HandleTextCapture(std::string content);
+
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+	//刷新当前页面的内容,注意这个函数不会改变当前的订单状态以及“页数”
+	void Refresh();
+
+	void LastPage();
+
+	void NextPage();
+
+	void SetPage(int n);
+
+	void HandleRefresh(DianneiOrderListStatus* status);
+
+	void DoRefresh();
+
+private:
+	int m_page = 1;
+
+	int m_total_page; //总页数
+
+	std::string m_response;
+};
+

+ 53 - 0
zhipuzi_pos_windows/page/CHuiyuanPage.cpp

@@ -0,0 +1,53 @@
+#include "../pch/pch.h"
+#include "CHuiyuanPageUI.h"
+
+CHuiyuanPageUI::CHuiyuanPageUI()
+{
+
+}
+
+CHuiyuanPageUI::~CHuiyuanPageUI()
+{
+
+}
+
+//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+void CHuiyuanPageUI::InitShow()
+{
+	
+}
+
+//处理按钮点击类事件
+void CHuiyuanPageUI::HandleClickMsg(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	if (name == _T(""))
+	{
+		
+	}
+}
+
+//处理option切换事件
+void CHuiyuanPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理下拉框、radio的切换事件
+void CHuiyuanPageUI::HandleItemSelectMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理编辑框输入内容改变事件
+void CHuiyuanPageUI::HandleTextChangedMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理扫码枪捕捉到的扫码信息
+void CHuiyuanPageUI::HandleTextCapture(std::string content)
+{
+
+}

+ 39 - 0
zhipuzi_pos_windows/page/CHuiyuanPage.h

@@ -0,0 +1,39 @@
+#pragma once
+
+#include "../pch/pch.h"
+#include "CBasePageUI.h"
+
+class CHuiyuanPageUI : public CBasePageUI
+{
+public:
+	CHuiyuanPageUI();
+
+	~CHuiyuanPageUI();
+
+	//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+	void InitShow();
+
+	//处理按钮点击类事件
+	void HandleClickMsg(TNotifyUI& msg);
+
+	//处理option切换事件
+	void HandleSelectChangeMsg(TNotifyUI& msg);
+
+	//处理下拉框、radio的切换事件
+	void HandleItemSelectMsg(TNotifyUI& msg);
+
+	//处理编辑框输入内容改变事件
+	void HandleTextChangedMsg(TNotifyUI& msg);
+
+	//处理扫码枪捕捉到的扫码信息
+	void HandleTextCapture(std::string content);
+
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+	{
+		return false;
+	}
+
+public:
+
+};

+ 6 - 0
zhipuzi_pos_windows/page/CSettingPageUI.h

@@ -27,6 +27,12 @@ public:
 	//处理扫码枪捕捉到的扫码信息
 	void HandleTextCapture(std::string content);
 
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+	{
+		return false;
+	}
+
 	//开始同步商品到标签秤
 	void StartTongbuBiaoqiancheng();
 

+ 6 - 0
zhipuzi_pos_windows/page/CWaimaiOrderInfoPageUI.h

@@ -30,6 +30,12 @@ public:
 	//处理扫码枪捕捉到的扫码信息
 	void HandleTextCapture(std::string content);
 
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+	{
+		return false;
+	}
+
 	//刷新当前页面的内容,注意这个函数不会改变当前的订单状态以及“页数”
 	void SetDate(CWaimaiOrder& order);
 

+ 24 - 7
zhipuzi_pos_windows/page/CWaimaiOrderListPageUI.cpp

@@ -10,6 +10,7 @@
 
 #include "../print/CPosPrinter.h"
 
+#include "../wnd/CMainWnd.h"
 
 CWaimaiOrderListPageUI::CWaimaiOrderListPageUI()
 {
@@ -24,8 +25,6 @@ CWaimaiOrderListPageUI::~CWaimaiOrderListPageUI()
 //初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
 void CWaimaiOrderListPageUI::InitShow()
 {
-	m_pOrderListLayout = static_cast<CContainerUI*>(this->FindSubControl(_T("orderlist")));
-
 	//默认显示未处理的
 	COptionUI* option = static_cast<COptionUI*>(this->FindSubControl(_T("waimai_open_switch")));
 	option->Selected(true, false);
@@ -160,6 +159,10 @@ void CWaimaiOrderListPageUI::HandleClickMsg(TNotifyUI& msg)
 	{
 		this->Refresh();
 	}
+	else if (name == L"orderlist_diannei")
+	{
+		m_pMainWnd->SwitchPage(CMainWnd::DIANNEIDINGDAN);
+	}
 }
 
 //处理option切换事件
@@ -224,10 +227,23 @@ void CWaimaiOrderListPageUI::HandleTextCapture(std::string content)
 
 }
 
+bool CWaimaiOrderListPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+	if (uMsg == WM_ORDERLIST_REFRESH)
+	{
+		DoRefresh();
+
+		return true;
+	}
+
+	return false;
+}
+
 void CWaimaiOrderListPageUI::Refresh()
 {
 	//开始转菊花
-	m_pOrderListLayout->SetVisible(false);
+	CContainerUI* pOrderListLayout = static_cast<CContainerUI*>(this->FindSubControl(_T("orderlist")));
+	pOrderListLayout->SetVisible(false);
 
 	this->FindSubControl(_T("main_orderlist_loading"))->SetVisible(true);
 
@@ -298,7 +314,8 @@ void CWaimaiOrderListPageUI::HandleRefresh(OrderListStatus* status)
 void CWaimaiOrderListPageUI::DoRefresh()
 {
 	//请求成功之后,清空之前的数据
-	m_pOrderListLayout->RemoveAll();
+	CContainerUI* pOrderListLayout = static_cast<CContainerUI*>(this->FindSubControl(_T("orderlist")));
+	pOrderListLayout->RemoveAll();
 
 	rapidjson::Document document;
 	document.Parse(m_response.c_str());
@@ -383,7 +400,7 @@ void CWaimaiOrderListPageUI::DoRefresh()
 
 			pItem->SetData(v_row_i);
 
-			m_pOrderListLayout->Add(pItem);
+			pOrderListLayout->Add(pItem);
 
 			pItem = NULL;
 		}
@@ -397,9 +414,9 @@ void CWaimaiOrderListPageUI::DoRefresh()
 	tagSIZE size;
 	size.cx = 0;
 	size.cy = 0;
-	m_pOrderListLayout->SetScrollPos(size);
+	pOrderListLayout->SetScrollPos(size);
 
-	m_pOrderListLayout->SetVisible(true);
+	pOrderListLayout->SetVisible(true);
 
 	this->FindSubControl(_T("main_orderlist_loading"))->SetVisible(false);
 }

+ 3 - 2
zhipuzi_pos_windows/page/CWaimaiOrderListPageUI.h

@@ -35,6 +35,9 @@ public:
 	//处理扫码枪捕捉到的扫码信息
 	void HandleTextCapture(std::string content);
 
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
+
 	//刷新当前页面的内容,注意这个函数不会改变当前的订单状态以及“页数”
 	void Refresh();
 
@@ -57,7 +60,5 @@ private:
 	int m_total_page; //总页数
 
 	std::string m_response;
-
-	CContainerUI* m_pOrderListLayout;
 };
 

+ 9 - 0
zhipuzi_pos_windows/print/CPosPrinter.cpp

@@ -123,6 +123,15 @@ void CPosPrinter::PrintDiandanOrder(CDiandanOrder& order)
 	}
 }
 
+void CPosPrinter::PrintDiandanOrder(std::string order_id)
+{
+	CDiandanOrder order;
+
+	bool ret = order.InitData(order_id);
+
+	PrintDiandanOrder(order);
+}
+
 //´ò¿ªÇ®Ïä
 void CPosPrinter::OpenQianxiang()
 {

+ 3 - 0
zhipuzi_pos_windows/print/CPosPrinter.h

@@ -19,6 +19,9 @@ public:
 	//完成所有打印一个点单订单的操作(不等待,立即返回)
 	void PrintDiandanOrder(CDiandanOrder& order);
 
+	//通过订单号打印订单,后面要改成异步才行
+	void PrintDiandanOrder(std::string order_id);
+
 	//打开钱箱
 	void OpenQianxiang();
 

+ 29 - 14
zhipuzi_pos_windows/wnd/CMainWnd.cpp

@@ -4,6 +4,7 @@
 
 #include "../control/ControlEx.h"
 #include "../page/CWaimaiOrderInfoPageUI.h"
+#include "../page/CDianneiOrderInfoPageUI.h"
 
 #include "../network/CMessagePush.h"
 #include "../print/CPosPrinter.h"
@@ -163,6 +164,17 @@ void CMainWnd::SwitchPage(MainPageName name)
 		pInfoPage->m_order_id = m_infopage_waimaiorder_id;
 		pInfoPage->m_order_no = m_infopage_waimaiorder_no;
 	}
+	else if (name == DIANNEIDINGDAN)
+	{
+		pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("dianneiorder_list_page.xml"), (UINT)0, &cb, &m_pm));
+	}
+	else if (name == DIANNEIINFO)
+	{
+		pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("dianneiorder_info_page.xml"), (UINT)0, &cb, &m_pm));
+
+		CDianneiOrderInfoPageUI* pInfoPage = static_cast<CDianneiOrderInfoPageUI*>(pChildContainer);
+		pInfoPage->m_order_id = m_infopage_dianneiorder_id;
+	}
 
 	pChildContainer->SetMainWnd(this);
 	pMainContentLayout->Add(pChildContainer);
@@ -272,7 +284,7 @@ void CMainWnd::HandleSelectChangeMsg(TNotifyUI& msg)
     CDuiString name = msg.pSender->GetName();
 	std::wstring ws_name = name;
 
-	if (ws_name == _T("main_diandan") || ws_name == _T("main_waimai") || ws_name == _T("main_huiyuan") || ws_name == _T("main_baobiao") || ws_name == _T("main_jiaoban") || ws_name == _T("main_setting") || ws_name == _T("main_gengduo"))
+	if (ws_name == _T("main_diandan") || ws_name == _T("main_dingdan") || ws_name == _T("main_huiyuan") || ws_name == _T("main_baobiao") || ws_name == _T("main_jiaoban") || ws_name == _T("main_setting") || ws_name == _T("main_gengduo"))
 	{
 		if (m_curOptionName != ws_name)
 		{
@@ -291,9 +303,9 @@ void CMainWnd::HandleSelectChangeMsg(TNotifyUI& msg)
 	{
 		this->SwitchPage(DIANDAN);
 	}
-    else if(name == _T("main_waimai"))
+    else if(name == _T("main_dingdan"))
     {
-		this->SwitchPage(DINGDAN);
+		this->SwitchPage(DIANNEIDINGDAN);
     }
 	else if (name == L"main_huiyuan")
 	{
@@ -403,7 +415,6 @@ LRESULT CMainWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
         return lRes;
     }
 
-	//走到这里,说明消息还没有处理,应该是自定义的消息
 	bool ret = this->HandleCustomMessage(uMsg, wParam, lParam);
 	if (ret)
 	{
@@ -421,22 +432,21 @@ LRESULT CMainWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
 
 bool CMainWnd::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
-	if (uMsg == WM_ORDERLIST_REFRESH)
+	if (uMsg == WM_LOGIN_AGAIN_OUT)
 	{
-		if (m_curPageName != DINGDAN)
-		{
-			return true;
-		}
-
-		static_cast<CWaimaiOrderListPageUI*>(this->m_curPageUI)->DoRefresh();
+		LoginOut(2);
 
 		return true;
 	}
-	else if (uMsg == WM_LOGIN_AGAIN_OUT)
+	else
 	{
-		LoginOut(2);
+		//走到这里,说明消息还没有被处理,那就不是MainWnd自己要处理的消息,应该是自定义的消息,交给各个子页面自己处理去
+		if (m_curPageUI != NULL)
+		{
+			bool ret = this->m_curPageUI->HandleCustomMessage(uMsg, wParam, lParam);
 
-		return true;
+			return ret;
+		}
 	}
 
 	return false;
@@ -953,6 +963,11 @@ void CMainWnd::SetInfopageWaimaiorderParam(std::string order_id, std::string ord
 	m_infopage_waimaiorder_no = order_no;
 }
 
+void CMainWnd::SetInfopageDianneiorderParam(std::string order_id)
+{
+	m_infopage_dianneiorder_id = order_id;
+}
+
 void CMainWnd::ShowToast(std::wstring toast_value)
 {
 	CToastWnd* pYouhuiDlg = new CToastWnd();

+ 12 - 4
zhipuzi_pos_windows/wnd/CMainWnd.h

@@ -15,14 +15,16 @@ public:
 	enum MainPageName
 	{
 		NOPAGE, //默认空页面
-		DIANDAN,
+		DIANDAN, //点单
 		DINGDAN,
-		HUIYUAN,
+		HUIYUAN, 
 		BAOBIAO,
 		JIAOBAN,
 		SHEZHI,
 		GENGDUO,
-		WAIMAIINFO,
+		WAIMAIINFO, //外卖订单详情
+		DIANNEIDINGDAN, //店内订单列表
+		DIANNEIINFO, //店内订单详情
 	};
 
     CMainWnd() { };
@@ -102,6 +104,8 @@ public:
 
 	void SetInfopageWaimaiorderParam(std::string order_id, std::string order_no);
 
+	void SetInfopageDianneiorderParam(std::string order_id);
+
 	//展示toast
 	void ShowToast(std::wstring toast_value);
 
@@ -128,10 +132,14 @@ private:
 	//当前页面指针
 	CBasePageUI* m_curPageUI = NULL;
 
-	//这2个保存在这里,用于进去订单详情之前设置,进入订单详情之后获取订单信息
+	//这2个保存在这里,用于进去外卖订单详情之前设置,进入订单详情之后获取订单信息
 	std::string m_infopage_waimaiorder_id;
 	std::string m_infopage_waimaiorder_no;
 
+	//这2个保存在这里,用于进去店内订单详情之前设置,进入订单详情之后获取订单信息
+	std::string m_infopage_dianneiorder_id;
+	std::string m_infopage_dianneiorder_no;
+
 	//处理左侧tab高亮相关的
 	std::wstring m_curOptionName;
 	CControlUI* m_curOption;

+ 1 - 2
zhipuzi_pos_windows/wnd/CXianjinShoukuanWnd.h

@@ -99,6 +99,7 @@ public:
 	std::wstring m_money;
 
 	std::string m_shishou;
+	std::string m_zhaoling;
 
 	//收款状态 0:未开始 1:请求发给服务器了,但是暂时还没得到反馈 2:查询密码中 3:成功 4:失败 5:正在取消支付
 	int m_shoukuan_status = 0;
@@ -110,8 +111,6 @@ public:
 
 	std::map<string, string> m_commonParams;
 
-	std::string m_zhaoling;
-
 	//支付成功返回的字段
 	std::string m_kucun_string;
 	std::string m_out_trade_no;

+ 143 - 0
zhipuzi_pos_windows/zhipuzi/CDiandanOrder.cpp

@@ -338,4 +338,147 @@ std::string CDiandanOrder::getDiandanTaocanParam()
 	std::string paramString = CLewaimaiJson::JsonToString(doc);
 
 	return paramString;
+}
+
+bool CDiandanOrder::InitData(std::string order_id)
+{
+	std::map<string, string> params;
+	params["id"] = order_id;
+
+	std::string response;
+	bool ret = CZhipuziHttpClient::Request("/diancan/getorderdetail", params, response);
+	if (!ret)
+	{
+		LOG_INFO("网络请求出错");
+		return false;
+	}
+
+	rapidjson::Document document;
+	document.Parse(response.c_str());
+
+	if (document.HasParseError())
+	{
+		LOG_INFO("parse response error!");
+		return false;
+	}
+	else
+	{
+		if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
+		{
+			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& 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& v_rows = data["order_item"];
+
+		for (rapidjson::SizeType i = 0; i < v_rows.Size(); ++i)
+		{
+
+			rapidjson::Value& v_row_i = v_rows[i];
+
+			CDiandanOrderItemPrint 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);
+		}
+
+		//保存套餐的
+	}
+
+	return true;
+}
+
+bool CDiandanOrder::Refund(std::string order_id)
+{
+	std::string url = "/diancan/refund";
+
+	//请求外卖的未处理订单
+	std::map<string, string> params;
+	params["id"] = order_id;
+	std::string response;
+
+	CZhipuziHttpClient::Request(url.c_str(), params, response);
+
+	rapidjson::Document document;
+	document.Parse(response.c_str());
+
+	if (document.HasParseError())
+	{
+		LOG_INFO("parse response error!");
+		return false;
+	}
+
+	if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
+	{
+		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;
+	}
+
+	return true;
 }

+ 27 - 1
zhipuzi_pos_windows/zhipuzi/CDiandanOrder.h

@@ -41,6 +41,9 @@ public:
 	std::string take_food_code;
 	std::string show_trade_no;
 
+	std::string m_renshu;
+
+	//微信支付 会员支付 现金支付 福利卡支付 自定义支付
 	std::string shoukuan_type;
 
 	int order_from; //1 收银机下单 2 商家app下单 3 扫码下单
@@ -58,6 +61,15 @@ public:
 	std::string m_rengong_youhui;
 	std::string m_moling_youhui;
 
+	//加价金额
+	std::string m_jiajia;
+
+	std::string m_shishou_value;
+	std::string m_zhaoling_value;
+
+	//折扣值(1-100)
+	std::string m_zhekou_value;
+
 	//实际最终总价
 	std::string m_dabao_money;
 	std::string m_total_price;
@@ -66,8 +78,14 @@ public:
 
 	std::vector<CDiandanOrderItemPrint> m_items_print;
 
-public:
+	//下面是从服务端获取的参数,暂时存在这里
+	std::string m_order_id;
+	std::string is_refund;
+	std::string refund_time;
+	std::string is_guazhang;
+	std::string guazhang;
 
+public:
 	int getItemNum();
 
 	std::string getTotalPriceShow();
@@ -122,4 +140,12 @@ public:
 
 	//获取点单相关的套餐参数(仅用于套餐)
 	std::string getDiandanTaocanParam();
+
+	/****************************下面这里开始,用于与服务器交互的函数*/
+
+	//根据订单ID,从服务器获取订单的数据,主要用于打印和展示订单详情
+	bool InitData(std::string order_id);
+
+	//根据订单ID,进行退款操作
+	bool Refund(std::string order_id);
 };

+ 8 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj

@@ -227,6 +227,10 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClInclude Include="page\CHuiyuanPage.h" />
+    <ClInclude Include="control\CDianneiOrderItemUI.h" />
+    <ClInclude Include="page\CDianneiOrderInfoPageUI.h" />
+    <ClInclude Include="page\CDianneiOrderListPageUI.h" />
     <ClInclude Include="tool\CChengzhongWorker.h" />
     <ClInclude Include="print\CPosPrinter.h" />
     <ClInclude Include="print\CPosPrinterQueue.h" />
@@ -299,6 +303,10 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     <ClInclude Include="helper\CSystem.h" />
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="page\CHuiyuanPage.cpp" />
+    <ClCompile Include="control\CDianneiOrderItemUI.cpp" />
+    <ClCompile Include="page\CDianneiOrderInfoPageUI.cpp" />
+    <ClCompile Include="page\CDianneiOrderListPageUI.cpp" />
     <ClCompile Include="tool\CChengzhongWorker.cpp" />
     <ClCompile Include="print\CPosPrinter.cpp" />
     <ClCompile Include="print\CPosPrinterQueue.cpp" />

+ 24 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj.filters

@@ -225,6 +225,18 @@
     <ClInclude Include="tool\CChengzhongWorker.h">
       <Filter>头文件</Filter>
     </ClInclude>
+    <ClInclude Include="page\CDianneiOrderInfoPageUI.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="page\CDianneiOrderListPageUI.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="control\CDianneiOrderItemUI.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="page\CHuiyuanPage.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="pch\pch.cpp">
@@ -413,6 +425,18 @@
     <ClCompile Include="tool\CChengzhongWorker.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
+    <ClCompile Include="page\CDianneiOrderInfoPageUI.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="page\CDianneiOrderListPageUI.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="control\CDianneiOrderItemUI.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="page\CHuiyuanPage.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <Image Include="resource\zhipuzi.ico">