Prechádzať zdrojové kódy

删除厨房打印机也做好了

zhangyang 6 rokov pred
rodič
commit
aebb13ccd0

BIN
bin/Win32/Debug/zhipuzi_pos_windows/db/pos.db


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


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


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


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


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


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


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


+ 6 - 6
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting.xml

@@ -58,16 +58,16 @@
 						<Label text="新订单自动厨房打印" width="260" />
 						<CheckBox name="setting_is_new_waimai_chufang_printer" width="72" height="45" normalimage="file='switchbutton.png' source='0,0,143,91'" selectedimage="file='switchbutton.png' source='0,182,143,273'"/>
 					</HorizontalLayout>
-					<HorizontalLayout height="44" padding="0,30,0,0">
+					<HorizontalLayout height="44" padding="0,30,0,20">
 						<Button name="setting_new_chufang_printer_btn" align="center" width="200" height="38" padding="0,3,0,3" 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>
-					<List name="setting_chufang_printer_list">
+					<List name="setting_chufang_printer_list" bordersize="1" bordercolor="#FF000000" itemlinecolor="#FF000000" vscroll="true">
 						<ListHeader />
-						<ListHeaderItem text="打印机名称" width="200" align="left" />
-						<ListHeaderItem text="IP地址" width="200" align="left" />
+						<ListHeaderItem text="打印机名称" width="200" align="center" />
+						<ListHeaderItem text="IP地址" width="200" align="center" />
 						<ListHeaderItem text="打印机规格" width="100" align="center" />
-						<ListHeaderItem text="是否分单" width="100" align="center" />
-						<ListHeaderItem text="是否按商品分类打印" width="200" align="center" />
+						<ListHeaderItem text="商品分单打印" width="100" align="center" />
+						<ListHeaderItem text="按商品分类打印" width="200" align="center" />
 						<ListHeaderItem text="关联商品分类" width="200" align="center" />
 						<ListHeaderItem text="操作" align="center" />
 					</List> 

+ 5 - 2
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_chufang_printer_item.xml

@@ -3,13 +3,16 @@
 <Window> 
 	<ListContainerElement name="setting_chufang_printer_item" height="30" minheight="30"> 
 		<HorizontalLayout height="38"> 
-			<Label name="setting_chufang_printer_item_name" width="200" /> 
+			<Label name="setting_chufang_printer_item_name" width="200" align="center"/> 
 			<Label name="setting_chufang_printer_item_ip" width="200" align="center"/> 
 			<Label name="setting_chufang_printer_guige" width="100" align="center"/>
 			<Label name="setting_chufang_printer_fendan" width="100" align="center"/> 
 			<Label name="setting_chufang_printer_item_fenlei" width="200" align="center"/> 
 			<Label name="setting_chufang_printer_item_fenlei_ids" width="200" align="center"/> 
-			<Label name="setting_chufang_printer_caozuo" align="center"/> 
+			<HorizontalLayout name="setting_chufang_printer_caozuo" align="center">
+				<Button name="setting_chufang_printer_item_update_btn" align="center" width="26" height="27" normalimage="file='Setting_Btn.png'" hotimage="file='Setting_Btn_Hover.png'" pushedimage="file='Setting_Btn_Active.png'" />
+				<Button name="setting_chufang_printer_item_delete_btn" align="center" width="18" height="18" padding="20,4,0,0" normalimage="file='Delete_Members_Icon.png'" hotimage="file='Delete_Members_Icon_Hover.png'" pushedimage="file='Delete_Members_Icon_Click.png'" />
+			</HorizontalLayout>
 		</HorizontalLayout> 
 	</ListContainerElement> 
 </Window>

BIN
bin/Win32/Debug/zhipuzi_pos_windows/zhipuzi_pos_windows.exe


BIN
bin/Win32/Debug/zhipuzi_pos_windows_server/zhipuzi_pos_windows_server.exe


+ 20 - 1
lewaimai_dispatch/tool/CSetting.cpp

@@ -41,10 +41,11 @@ std::string CSetting::GetParam(std::string name)
 	return value;
 }
 
-void CSetting::AddChufangPrinter(std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave)
+void CSetting::AddChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave)
 {
 	ChufangPrinter newPrinter;
 
+	newPrinter.date = date;
 	newPrinter.name = name;
 	newPrinter.ip = ip;
 	newPrinter.guige = guige;
@@ -60,6 +61,24 @@ void CSetting::AddChufangPrinter(std::string name, std::string ip, std::string g
 	}
 }
 
+/*
+ *删除厨房打印机,默认会同步到数据库
+ **/
+void CSetting:: DelChufangPrinter(std::string date)
+{
+	for (std::vector<ChufangPrinter>::iterator it = m_chufang_printers.begin(); it != m_chufang_printers.end(); it++)
+	{
+		if ((*it).date == date)
+		{
+			m_chufang_printers.erase(it);
+
+			break;
+		}
+	}
+
+	SaveChufangPrinter();
+}
+
 void CSetting::Init()
 {
 	m_mutex.lock();

+ 9 - 1
lewaimai_dispatch/tool/CSetting.h

@@ -5,6 +5,7 @@
 class ChufangPrinter
 {
 public:
+	std::string date;
 	std::string name;
 	std::string ip;
 	std::string guige;
@@ -24,7 +25,9 @@ public:
 	static std::string GetParam(std::string name);
 
 	//厨房打印机相关的参数配置
-	static void AddChufangPrinter(std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave = true);
+	static void AddChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave = true);
+
+	static void DelChufangPrinter(std::string date);
 
 	//刚打开程序的时候,根据数据库初始化内存,并且添加默认参数
 	static void Init();
@@ -39,6 +42,11 @@ public:
 		return m_chufang_printers.back();
 	}
 
+	static std::vector<ChufangPrinter>& getChufangPrints()
+	{
+		return m_chufang_printers;
+	}
+
 	/*
 	 *把内存中的参数,写到数据库中
 	 **/

+ 11 - 8
lewaimai_dispatch/tool/CSqlite3.cpp

@@ -141,6 +141,7 @@ bool CSqlite3::InitConfig()
 
                 sql = "CREATE TABLE pos_chufang_printer("  \
 					  "id         INTEGER          PRIMARY KEY AUTOINCREMENT,"\
+					  "date       CHAR(100)        NOT NULL," \
                       "name       CHAR(100)        NOT NULL," \
                       "ip         CHAR(100)        NOT NULL," \
                       "guige      CHAR(100)        NOT NULL," \
@@ -187,15 +188,16 @@ bool CSqlite3::InitConfig()
             {
                 while(sqlite3_step(stmt) == SQLITE_ROW)
                 {
-                    std::string name = (char*)sqlite3_column_text(stmt, 0);
-                    std::string ip = (char*)sqlite3_column_text(stmt, 1);
-                    std::string guige = (char*)sqlite3_column_text(stmt, 2);
-                    std::string fendan = (char*)sqlite3_column_text(stmt, 3);
-                    std::string fenlei = (char*)sqlite3_column_text(stmt, 4);
-                    std::string fenlei_ids = (char*)sqlite3_column_text(stmt, 5);
+					std::string date = (char*)sqlite3_column_text(stmt, 1);
+                    std::string name = (char*)sqlite3_column_text(stmt, 2);
+                    std::string ip = (char*)sqlite3_column_text(stmt, 3);
+                    std::string guige = (char*)sqlite3_column_text(stmt, 4);
+                    std::string fendan = (char*)sqlite3_column_text(stmt, 5);
+                    std::string fenlei = (char*)sqlite3_column_text(stmt, 6);
+                    std::string fenlei_ids = (char*)sqlite3_column_text(stmt, 7);
 
 					//这里仅仅是把数据库内容读到内存,所以之类用false
-                    CSetting::AddChufangPrinter(name, ip, guige, fendan, fenlei, fenlei_ids, false);
+                    CSetting::AddChufangPrinter(date, name, ip, guige, fendan, fenlei, fenlei_ids, false);
                 }
 
                 sqlite3_finalize(stmt);
@@ -250,6 +252,7 @@ bool CSqlite3::SaveChufangPrinter(std::vector<ChufangPrinter>& printers)
 
 	for (std::vector<ChufangPrinter>::iterator it = printers.begin(); it != printers.end(); it++)
 	{
+		std::string date = (*it).date;
 		std::string name = (*it).name;
 		std::string ip = (*it).ip;
 		std::string guige = (*it).guige;
@@ -257,7 +260,7 @@ bool CSqlite3::SaveChufangPrinter(std::vector<ChufangPrinter>& printers)
 		std::string fenlei = (*it).fenlei;
 		std::string fenlei_ids = (*it).fenlei_ids;
 
-		sql = "INSERT INTO pos_chufang_printer (name, ip, guige, fendan, fenlei, fenlei_ids) VALUES ('" + name + "','" + ip + "','" + guige + "','" + fendan + "','" + fenlei + "','" + fenlei_ids + "')";
+		sql = "INSERT INTO pos_chufang_printer (date, name, ip, guige, fendan, fenlei, fenlei_ids) VALUES ('" + date + "' ,'" + name + "','" + ip + "','" + guige + "','" + fendan + "','" + fenlei + "','" + fenlei_ids + "')";
 		result = sqlite3_exec(m_db, sql.c_str(), 0, 0, 0);
 	}
 

+ 2 - 1
lewaimai_dispatch/wnd/CChufangSettingWnd.h

@@ -87,6 +87,7 @@ public:
 				}
 
 				//±£´æÊý¾Ýµ½Êý¾Ý¿â
+				std::string date = to_string(time(NULL));
 				std::string name = CLewaimaiString::UnicodeToUTF8(wsName);
 				std::string ip = CLewaimaiString::UnicodeToUTF8(wsIP);
 				std::string guige = CLewaimaiString::UnicodeToUTF8(wsGuige);
@@ -94,7 +95,7 @@ public:
 				std::string fenlei = CLewaimaiString::UnicodeToUTF8(wsFenlei);
 				std::string fenlei_ids = "";
 
-				CSetting::AddChufangPrinter(name, ip, guige, fendan, fenlei, fenlei_ids, true);
+				CSetting::AddChufangPrinter(date, name, ip, guige, fendan, fenlei, fenlei_ids, true);
 
 				Close(IDOK);
 				return;

+ 107 - 11
lewaimai_dispatch/wnd/CMainWnd.cpp

@@ -500,22 +500,48 @@ void CMainWnd::HandleClickMsg(TNotifyUI& msg)
                 ChufangPrinter newPrinter = CSetting::getLastChufangPrinter();
 
                 CDialogBuilder builder;
-                CListContainerElementUI* pEle = static_cast<CListContainerElementUI *>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, &m_pm));
+                CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, &m_pm));
 
-                CLabelUI *pName = static_cast<CLabelUI *>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
+                CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
                 pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
 
-                CLabelUI *pIP = static_cast<CLabelUI *>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
+                CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
                 pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
 
-                /*CLabelUI *pName = static_cast<CLabelUI *>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
-                pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
-
-                CLabelUI *pName = static_cast<CLabelUI *>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
-                pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
-
-                CLabelUI *pName = static_cast<CLabelUI *>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
-                pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());*/
+                CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
+
+                if(newPrinter.guige == "58")
+                {
+                    pGuige->SetText(L"58mm");
+                }
+                else
+                {
+                    pGuige->SetText(L"80mm");
+                }
+
+                CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
+
+                if(newPrinter.fendan == "1")
+                {
+                    pFendan->SetText(L"是");
+                }
+                else
+                {
+                    pFendan->SetText(L"否");
+                }
+
+                CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
+
+                if(newPrinter.fenlei == "1")
+                {
+                    pFenlei->SetText(L"是");
+                }
+                else
+                {
+                    pFenlei->SetText(L"否");
+                }
+
+				pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
 
                 pPrinterList->Add(pEle);
             }
@@ -566,6 +592,18 @@ void CMainWnd::HandleClickMsg(TNotifyUI& msg)
             CSetting::SetParam("setting_is_close_min", "1");
         }
     }
+	else if (name == _T("setting_chufang_printer_item_delete_btn"))
+	{
+		CListUI* pPrinterList = static_cast<CListUI*>(m_pm.FindControl(_T("setting_chufang_printer_list")));
+
+		CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
+		wstring date = pEle->GetCustomAttribute(L"date");
+
+		//获得了ID,这个时候从内存和数据库中分别删除对应的记录
+		CSetting::DelChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
+
+		pPrinterList->Remove(pEle);
+	}
 }
 
 void CMainWnd::HandleSelectChangeMsg(TNotifyUI& msg)
@@ -1110,5 +1148,63 @@ void CMainWnd::InitSettingStatus()
     {
         box->Selected(false, false);
     }
+
+    //这里开始,初始化厨房打印机的设置
+    CListUI* pPrinterList = static_cast<CListUI*>(m_pm.FindControl(_T("setting_chufang_printer_list")));
+
+    //获取厨房打印机的集合
+    std::vector<ChufangPrinter> printers = CSetting::getChufangPrints();
+
+    for(std::vector<ChufangPrinter>::iterator it = printers.begin(); it != printers.end(); it++)
+    {
+        ChufangPrinter newPrinter = *it;
+
+        CDialogBuilder builder;
+        CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, &m_pm));
+
+        CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
+        pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
+
+        CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
+        pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
+
+        CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
+
+        if(newPrinter.guige == "58")
+        {
+            pGuige->SetText(L"58mm");
+        }
+        else
+        {
+            pGuige->SetText(L"80mm");
+        }
+
+        CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
+
+        if(newPrinter.fendan == "1")
+        {
+            pFendan->SetText(L"是");
+        }
+        else
+        {
+            pFendan->SetText(L"否");
+        }
+
+        CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
+
+        if(newPrinter.fenlei == "1")
+        {
+            pFenlei->SetText(L"是");
+        }
+        else
+        {
+            pFenlei->SetText(L"否");
+        }
+
+		pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
+
+        pPrinterList->Add(pEle);
+    }
+
 }