张洋 4 лет назад
Родитель
Сommit
0eea25d641

Разница между файлами не показана из-за своего большого размера
+ 0 - 5
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_biaoqian_print.xml


Разница между файлами не показана из-за своего большого размера
+ 0 - 4
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_chufang_print.xml


Разница между файлами не показана из-за своего большого размера
+ 26 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_diannei_tixing.xml


+ 6 - 1
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_page.xml

@@ -4,7 +4,8 @@
 		<HorizontalLayout>
 			<HorizontalLayout width="250" padding="20,20,20,0">
 				<VerticalLayout height="540" 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_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" />
@@ -20,6 +21,10 @@
 				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" 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">
+					<Include source="setting_diannei_tixing.xml" />
+				</VerticalLayout>
 
 				<VerticalLayout bkcolor="#FFFFFFFF" padding="0,20,20,20" inset="15,15,15,15" vscrollbar="true">
 					<Include source="setting_print.xml" />

Разница между файлами не показана из-за своего большого размера
+ 0 - 4
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_print.xml


Разница между файлами не показана из-за своего большого размера
+ 22 - 2
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_waimai_tixing.xml


+ 36 - 47
zhipuzi_pos_windows/page/CSettingPageUI.cpp

@@ -23,8 +23,9 @@ void CSettingPageUI::InitShow()
 
 	CCheckBoxUI* box = NULL;
 	CComboUI* com = NULL;
-	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_voice")));
 
+	//外卖订单设置
+	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_voice")));
 	if (CSetting::GetParam("setting_is_new_waimai_voice") == "1")
 	{
 		box->Selected(true, false);
@@ -35,7 +36,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_autoconfirm")));
-
 	if (CSetting::GetParam("setting_is_new_waimai_autoconfirm") == "1")
 	{
 		box->Selected(true, false);
@@ -46,7 +46,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_printer")));
-
 	if (CSetting::GetParam("setting_is_new_waimai_printer") == "1")
 	{
 		box->Selected(true, false);
@@ -56,8 +55,27 @@ void CSettingPageUI::InitShow()
 		box->Selected(false, false);
 	}
 
-	com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_guige")));
+	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_biaoqian_printer")));
+	if (CSetting::GetParam("setting_is_new_waimai_biaoqian_printer") == "1")
+	{
+		box->Selected(true, false);
+	}
+	else
+	{
+		box->Selected(false, false);
+	}
 
+	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_chufang_printer")));
+	if (CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
+	{
+		box->Selected(true, false);
+	}
+	else
+	{
+		box->Selected(false, false);
+	}
+
+	com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_guige")));
 	if (CSetting::GetParam("setting_printer_guige") == "58")
 	{
 		com->SetInternVisible(true);
@@ -188,7 +206,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_quhuo_big")));
-
 	if (CSetting::GetParam("setting_printer_quhuo_big") == "1")
 	{
 		box->Selected(true, false);
@@ -199,7 +216,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_dingdanhao_big")));
-
 	if (CSetting::GetParam("setting_printer_dingdanhao_big") == "1")
 	{
 		box->Selected(true, false);
@@ -210,7 +226,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_xiadanshijian_big")));
-
 	if (CSetting::GetParam("setting_printer_xiadanshijian_big") == "1")
 	{
 		box->Selected(true, false);
@@ -221,7 +236,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_peisongshijian_big")));
-
 	if (CSetting::GetParam("setting_printer_peisongshijian_big") == "1")
 	{
 		box->Selected(true, false);
@@ -232,7 +246,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_name_big")));
-
 	if (CSetting::GetParam("setting_printer_name_big") == "1")
 	{
 		box->Selected(true, false);
@@ -243,7 +256,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_phone_big")));
-
 	if (CSetting::GetParam("setting_printer_phone_big") == "1")
 	{
 		box->Selected(true, false);
@@ -254,7 +266,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_address_big")));
-
 	if (CSetting::GetParam("setting_printer_address_big") == "1")
 	{
 		box->Selected(true, false);
@@ -265,7 +276,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_shangpin_big")));
-
 	if (CSetting::GetParam("setting_printer_shangpin_big") == "1")
 	{
 		box->Selected(true, false);
@@ -276,7 +286,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_memo_big")));
-
 	if (CSetting::GetParam("setting_printer_memo_big") == "1")
 	{
 		box->Selected(true, false);
@@ -287,7 +296,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_price_big")));
-
 	if (CSetting::GetParam("setting_printer_price_big") == "1")
 	{
 		box->Selected(true, false);
@@ -298,7 +306,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_pay_big")));
-
 	if (CSetting::GetParam("setting_printer_pay_big") == "1")
 	{
 		box->Selected(true, false);
@@ -308,20 +315,8 @@ void CSettingPageUI::InitShow()
 		box->Selected(false, false);
 	}
 
-	//厨房打印机设置
-	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_chufang_printer")));
-
-	if (CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
-	{
-		box->Selected(true, false);
-	}
-	else
-	{
-		box->Selected(false, false);
-	}
-
+	//系统设置
 	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_start")));
-
 	if (CSetting::GetParam("setting_is_auto_start") == "1")
 	{
 		box->Selected(true, false);
@@ -354,16 +349,6 @@ void CSettingPageUI::InitShow()
 	}
 
 	//初始化标签打印机的设置
-	box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_biaoqian_printer")));
-
-	if (CSetting::GetParam("setting_is_new_waimai_biaoqian_printer") == "1")
-	{
-		box->Selected(true, false);
-	}
-	else
-	{
-		box->Selected(false, false);
-	}
 
 	//usb下拉框默认选中
 	CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb")));
@@ -444,7 +429,6 @@ void CSettingPageUI::InitShow()
 	CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
 
 	//获取当前店铺的商品分类信息,用于设置厨房打印机的分类打印
-
 	while (1)
 	{
 		//先清空一次分类(主要考虑退出登陆重新登录的情况)
@@ -1088,41 +1072,46 @@ void CSettingPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
 		CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
 		pControl->SelectItem(0);
 	}
-	else if (name == _T("setting_printer_switch"))
+	if (name == _T("setting_diannei_order_switch"))
 	{
 		CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
 		pControl->SelectItem(1);
 	}
-	else if (name == _T("setting_biaoqian_printer_switch"))
+	else if (name == _T("setting_printer_switch"))
 	{
 		CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
 		pControl->SelectItem(2);
 	}
-	else if (name == _T("setting_chufang_printer_switch"))
+	else if (name == _T("setting_biaoqian_printer_switch"))
 	{
 		CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
 		pControl->SelectItem(3);
 	}
-	else if (name == _T("setting_xianshi_switch"))
+	else if (name == _T("setting_chufang_printer_switch"))
 	{
 		CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
 		pControl->SelectItem(4);
 	}
-	else if (name == _T("setting_system_switch"))
+	else if (name == _T("setting_xianshi_switch"))
 	{
 		CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
 		pControl->SelectItem(5);
 	}
-	else if (name == _T("setting_system_about"))
+	else if (name == _T("setting_system_switch"))
 	{
 		CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
 		pControl->SelectItem(6);
 	}
-	if (name == _T("xianshi_setting_youtu"))
+	else if (name == _T("setting_system_about"))
+	{
+		CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
+		pControl->SelectItem(7);
+	}
+	else if (name == _T("xianshi_setting_youtu"))
 	{
 		CSetting::SetParam("setting_xianshi_is_youtu", "1");
 	}
-	if (name == _T("xianshi_setting_wutu"))
+	else if (name == _T("xianshi_setting_wutu"))
 	{
 		CSetting::SetParam("setting_xianshi_is_youtu", "0");
 	}

+ 13 - 10
zhipuzi_pos_windows/print/CPosPrinterQueue.cpp

@@ -359,17 +359,15 @@ void CPosPrinterQueue::SendDataToChufangPirnter(ChufangPrinterContent chufang_da
 	m_socket.close();
 }
 
-/*
- *usbType是1表示只查找收银小票打印机,会排除已知的标签打印机
- *usbType为2表示所有usb打印机都查找,包含标签与非标签
- **/
+//自动识别用于收银小票的USB打印机列表
 void CPosPrinterQueue::InitUsb()
 {
 	//设置中文字符
 	setlocale(LC_CTYPE, "chs");
 
 	//取设备路径
-	int nDevice = GetDevicePath((LPGUID)&USB_GUID);
+	m_usb_devices.clear();
+	int nDevice = GetDevicePath((LPGUID)&USB_GUID, m_usb_devices);
 	LOG_INFO("可用的USB打印机数量:" << nDevice);
 
 	//添加usb端口
@@ -382,7 +380,7 @@ void CPosPrinterQueue::InitUsb()
 
 		if (CSetting::GetParam("setting_is_new_waimai_biaoqian_printer") == "1" && ws_setting_biaoqian_printer_usb == m_usb_devices[i])
 		{
-			//碰到了一个标签打印机
+			//碰到了一个在设置中心明确设置的标签打印机,过滤掉
 			i++;
 			continue;
 		}
@@ -417,6 +415,9 @@ void CPosPrinterQueue::InitUsb()
 
 		i++;
 	}
+
+	//清空usb集合,下一次调用这个函数的时候会重新设置
+	m_usb_devices.clear();
 }
 
 bool CPosPrinterQueue::InitOneUsb(wstring usb_path, int nType)
@@ -565,7 +566,7 @@ void CPosPrinterQueue::InitCom()
 /*
  *获取CreateFile的USB端口号
  **/
-int CPosPrinterQueue::GetDevicePath(LPGUID lpGuid)
+int CPosPrinterQueue::GetDevicePath(LPGUID lpGuid, std::vector<std::wstring>& usb_devices)
 {
 	HDEVINFO hDevInfoSet;
 	SP_DEVINFO_DATA spDevInfoData;
@@ -674,7 +675,7 @@ int CPosPrinterQueue::GetDevicePath(LPGUID lpGuid)
 					LOG_INFO("Vid:" << vid.c_str() << ", Pid:" << pid.c_str());
 
 					// 复制设备路径到输出缓冲区
-					m_usb_devices.push_back(DevicePath);
+					usb_devices.push_back(DevicePath);
 
 					// 调整计数值
 					nCount++;
@@ -699,7 +700,9 @@ int CPosPrinterQueue::GetDevicePath(LPGUID lpGuid)
 
 std::vector<std::wstring> CPosPrinterQueue::getUsbDevices()
 {
-	InitUsb();
+	std::vector<std::wstring> usb_devices;
+
+	int nDevice = GetDevicePath((LPGUID)&USB_GUID, usb_devices);
 
-	return m_usb_devices;
+	return usb_devices;
 }

+ 4 - 4
zhipuzi_pos_windows/print/CPosPrinterQueue.h

@@ -51,7 +51,7 @@ public:
 private:
 	CPosPrinterQueue();
 
-	//usb打印机的类型 1:收银小票打印机 2:标签打印机
+	//自动识别用于收银小票的USB打印机列表
 	void InitUsb();
 
 	//打开某一个指定的usb端口
@@ -61,8 +61,8 @@ private:
 	bool InitBingkou();
 	void InitCom();
 
-	//获取USB打印机的路径
-	int GetDevicePath(LPGUID lpGuid);
+	//获取USB打印机的路径,用于收银小票打印机的智能识别,也用于设置中心获取所有打印机
+	int GetDevicePath(LPGUID lpGuid, std::vector<std::wstring>& usb_devices);
 
 	void AddStopNum();
 
@@ -86,6 +86,6 @@ private:
 	//标签小票打印的句柄组合
 	std::vector<HANDLE> m_hBiaoqianPorts;
 
-	//usb打印机的描述集合,用于设置中心展示所有可选的打印机
+	//usb打印机的描述集合,用于收银小票打印机的智能识别模式
 	std::vector<std::wstring> m_usb_devices;
 };

+ 13 - 20
zhipuzi_pos_windows/tool/CSetting.cpp

@@ -170,19 +170,25 @@ void CSetting::Init()
 		m_paramsMap[setting_is_new_waimai_autoconfirm] = "1";
 	}
 
-	std::string setting_is_new_waimai_dialog = "setting_is_new_waimai_dialog";
-	if (m_paramsMap.find(setting_is_new_waimai_dialog) == m_paramsMap.end())
-	{
-		m_paramsMap[setting_is_new_waimai_dialog] = "1";
-	}
-
-	//新订单打印设置参数
 	std::string setting_is_new_waimai_printer = "setting_is_new_waimai_printer";
 	if (m_paramsMap.find(setting_is_new_waimai_printer) == m_paramsMap.end())
 	{
 		m_paramsMap[setting_is_new_waimai_printer] = "1";
 	}
 
+	std::string setting_is_new_waimai_biaoqian_printer = "setting_is_new_waimai_biaoqian_printer";
+	if (m_paramsMap.find(setting_is_new_waimai_biaoqian_printer) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_is_new_waimai_biaoqian_printer] = "0";
+	}
+
+	std::string setting_is_new_waimai_chufang_printer = "setting_is_new_waimai_chufang_printer";
+	if (m_paramsMap.find(setting_is_new_waimai_chufang_printer) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_is_new_waimai_chufang_printer] = "1";
+	}
+
+	//小票打印设置参数
 	std::string setting_printer_guige = "setting_printer_guige";
 	if (m_paramsMap.find(setting_printer_guige) == m_paramsMap.end())
 	{
@@ -280,12 +286,6 @@ void CSetting::Init()
 	}
 
 	//标签打印参数设置
-	std::string setting_is_new_waimai_biaoqian_printer = "setting_is_new_waimai_biaoqian_printer";
-	if (m_paramsMap.find(setting_is_new_waimai_biaoqian_printer) == m_paramsMap.end())
-	{
-		m_paramsMap[setting_is_new_waimai_biaoqian_printer] = "0";
-	}
-
 	std::string setting_biaoqian_printer_usb = "setting_biaoqian_printer_usb";
 	if (m_paramsMap.find(setting_biaoqian_printer_usb) == m_paramsMap.end())
 	{
@@ -305,13 +305,6 @@ void CSetting::Init()
 		m_paramsMap[setting_biaoqian_printer_fangxiang] = "1";
 	}
 
-	//厨房打印的默认参数
-	std::string setting_is_new_waimai_chufang_printer = "setting_is_new_waimai_chufang_printer";
-	if (m_paramsMap.find(setting_is_new_waimai_chufang_printer) == m_paramsMap.end())
-	{
-		m_paramsMap[setting_is_new_waimai_chufang_printer] = "1";
-	}
-
 	//系统设置的参数
 	std::string setting_is_auto_start = "setting_is_auto_start";
 	if (CSystem::IsAutoStart() == true)