ソースを参照

开始处理新建商品

zhangyang 4 年 前
コミット
0197688e8d

ファイルの差分が大きいため隠しています
+ 186 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/shangpin_create_page.xml


+ 5 - 0
zhipuzi_pos_windows/control/ControlEx.h

@@ -17,6 +17,7 @@
 #include "../page/CSaomashouyinPageUI.h"
 #include "../page/CSaomashouyinPageUI.h"
 #include "../page/CKucunPageUI.h"
 #include "../page/CKucunPageUI.h"
 #include "../page/CCaigouPageUI.h"
 #include "../page/CCaigouPageUI.h"
+#include "../page/CShangpinCreatePageUI.h"
 
 
 #include "CWaimaiOrderItemUI.h"
 #include "CWaimaiOrderItemUI.h"
 #include "CDianneiOrderItemUI.h"
 #include "CDianneiOrderItemUI.h"
@@ -91,6 +92,10 @@ public:
 		{
 		{
 			return new CCaigouPageUI;
 			return new CCaigouPageUI;
 		}
 		}
+		else if (_tcscmp(pstrClass, _T("ShangpinCreatePage")) == 0)
+		{
+			return new CShangpinCreatePageUI;
+		}
 
 
 		//控件相关的
 		//控件相关的
 		else if (_tcscmp(pstrClass, _T("WaimaiOrderItem")) == 0)
 		else if (_tcscmp(pstrClass, _T("WaimaiOrderItem")) == 0)

+ 313 - 0
zhipuzi_pos_windows/page/CShangpinCreatePageUI.cpp

@@ -0,0 +1,313 @@
+#include "../pch/pch.h"
+#include "CShangpinCreatePageUI.h"
+
+#include "../control/ControlEx.h"
+
+#include "../tool/CSqlite3.h"
+
+CShangpinCreatePageUI::CShangpinCreatePageUI()
+{
+}
+
+
+CShangpinCreatePageUI::~CShangpinCreatePageUI()
+{
+}
+
+//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+void CShangpinCreatePageUI::InitShow()
+{
+	//一个个初始化新建商品的默认值
+	
+	//初始化商品分类
+	CComboUI* com_fenlei = static_cast<CComboUI*>(this->FindSubControl(_T("shangpin_create_page_foodtype")));
+	com_fenlei->RemoveAll();
+
+	CSqlite3 sqlite;
+	std::vector<CFoodType> foodtypes = sqlite.GetFoodtypes();
+
+	std::string first_food_name = "";
+	int nTypeNum = 0;
+	for (std::vector<CFoodType>::iterator it = foodtypes.begin(); it != foodtypes.end(); it++)
+	{
+		CListLabelElementUI* elem = new CListLabelElementUI();
+
+		elem->SetText(CLewaimaiString::UTF8ToUnicode(it->name).c_str());
+		com_fenlei->Add(elem);
+
+		if (it == foodtypes.begin())
+		{
+			first_food_name = it->name;
+		}
+
+		nTypeNum++;
+	}
+
+	com_fenlei->SetInternVisible(true);
+
+	if (nTypeNum > 0)
+	{
+		com_fenlei->SelectItem(0, false, false);
+	}
+
+	com_fenlei->SetText(CLewaimaiString::UTF8ToUnicode(first_food_name).c_str());
+}
+
+//处理按钮点击类事件
+void CShangpinCreatePageUI::HandleClickMsg(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	if (name == L"shangpin_create_page_save_btn")
+	{
+		StartSave();
+	}
+}
+
+//处理option切换事件
+void CShangpinCreatePageUI::HandleSelectChangeMsg(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	COptionUI* curOption = static_cast<COptionUI*>(msg.pSender);
+	std::wstring groupname = curOption->GetGroup();
+
+	if (groupname == L"shangpin_foodtype")
+	{
+		
+	}
+}
+
+//处理下拉框、radio的切换事件
+void CShangpinCreatePageUI::HandleItemSelectMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理编辑框输入内容改变事件
+void CShangpinCreatePageUI::HandleTextChangedMsg(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	if (name == L"shangpin_create_page_xuhao_edit")
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pManager->FindControl(_T("shangpin_create_page_xuhao_edit")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if ((tmp > 57 || tmp < 48))
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+	else if (name == L"shangpin_create_page_barcode_edit")
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pManager->FindControl(_T("shangpin_create_page_barcode_edit")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if ((tmp > 57 || tmp < 48))
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+	else if (name == L"shangpin_create_page_price_edit")
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pManager->FindControl(_T("shangpin_create_page_price_edit")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if ((tmp > 57 || tmp < 48) && tmp != 46)
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+	else if (name == L"shangpin_create_page_buyingprice_edit")
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pManager->FindControl(_T("shangpin_create_page_buyingprice_edit")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if ((tmp > 57 || tmp < 48) && tmp != 46)
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+	else if (name == L"shangpin_create_page_plu")
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pManager->FindControl(_T("shangpin_create_page_plu")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if ((tmp > 57 || tmp < 48))
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+	else if (name == L"shangpin_create_page_shangpinbianma")
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pManager->FindControl(_T("shangpin_create_page_shangpinbianma")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if ((tmp > 57 || tmp < 48))
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+	else if (name == L"shangpin_create_page_dabao_money")
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pManager->FindControl(_T("shangpin_create_page_dabao_money")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if ((tmp > 57 || tmp < 48) && tmp != 46)
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+	else if (name == L"shangpin_create_page_kucun_now")
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pManager->FindControl(_T("shangpin_create_page_kucun_now")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if ((tmp > 57 || tmp < 48))
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+}
+
+//处理扫码枪捕捉到的扫码信息
+void CShangpinCreatePageUI::HandleTextCapture(std::string content)
+{
+
+}
+
+void CShangpinCreatePageUI::SetPos(RECT rc, bool bNeedInvalidate)
+{
+	m_nPageWidth = rc.right - rc.left;
+
+	CContainerUI::SetPos(rc, bNeedInvalidate);
+}
+
+void CShangpinCreatePageUI::StartSave()
+{
+	//把参数一个个读出来
+	CEditUI* pName = static_cast<CEditUI*>(this->FindSubControl(L"shangpin_create_page_name_edit"));
+	std::wstring ws_name = pName->GetText();
+	std::string name = CLewaimaiString::UnicodeToUTF8(ws_name);
+}

+ 57 - 0
zhipuzi_pos_windows/page/CShangpinCreatePageUI.h

@@ -0,0 +1,57 @@
+#pragma once
+
+#include "../pch/pch.h"
+#include "CBasePageUI.h"
+
+#include "../zhipuzi/CFood.h"
+#include "../zhipuzi/CFoodtype.h"
+#include "../zhipuzi/CFoodpackage.h"
+
+#include "../control/CShangpinFoodItemUI.h"
+#include "../zhipuzi/CDiandanOrder.h"
+
+#include "../wnd/CModalWnd.h"
+
+class CShangpinCreatePageUI : public CBasePageUI
+{
+public:
+	CShangpinCreatePageUI();
+	~CShangpinCreatePageUI();
+
+	//初始化当前页面的展示,处理默认展示效果,在页面每次被选中加载(注意不是页面创建构造)的时候调用,如果多次选中会多次调用,这里要避免数据重复处理
+	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 SetPos(RECT rc, bool bNeedInvalidate = true);
+
+	//开始处理保存商品的逻辑
+	void StartSave();
+
+private:
+	//模态对话框有关的
+	bool m_is_show_modal_wnd = false;
+	CModalWnd* m_curModalWnd;
+
+	//当前控件的实际宽度
+	int m_nPageWidth;
+};

+ 3 - 5
zhipuzi_pos_windows/page/CShangpinPageUI.cpp

@@ -5,6 +5,8 @@
 
 
 #include "../tool/CSqlite3.h"
 #include "../tool/CSqlite3.h"
 
 
+#include "../wnd/CMainWnd.h"
+
 CShangpinPageUI::CShangpinPageUI()
 CShangpinPageUI::CShangpinPageUI()
 {
 {
 }
 }
@@ -234,11 +236,7 @@ void CShangpinPageUI::HandleClickMsg(TNotifyUI& msg)
 	}
 	}
 	else if (name == L"shangpin_page_add_btn")
 	else if (name == L"shangpin_page_add_btn")
 	{
 	{
-
-	}
-	else if (name == L"shangpin_page_tongbu_btn")
-	{
-
+		m_pMainWnd->SwitchPage(CMainWnd::SHANGPIN_CREATE);
 	}
 	}
 }
 }
 
 

+ 7 - 0
zhipuzi_pos_windows/wnd/CMainWnd.cpp

@@ -1364,6 +1364,13 @@ void CMainWnd::CreatePages()
 	{
 	{
 		CDialogBuilder builder;
 		CDialogBuilder builder;
 		CDialogBuilderCallbackEx cb;
 		CDialogBuilderCallbackEx cb;
+		pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("shangpin_create_page.xml"), (UINT)0, &cb, &m_pm));
+		m_pages[SHANGPIN_CREATE] = pChildContainer;
+	}
+
+	{
+		CDialogBuilder builder;
+		CDialogBuilderCallbackEx cb;
 		pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("zhengcan_page.xml"), (UINT)0, &cb, &m_pm));
 		pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("zhengcan_page.xml"), (UINT)0, &cb, &m_pm));
 		m_pages[ZHENGCAN] = pChildContainer;
 		m_pages[ZHENGCAN] = pChildContainer;
 	}
 	}

+ 1 - 0
zhipuzi_pos_windows/wnd/CMainWnd.h

@@ -26,6 +26,7 @@ public:
 		DIANNEIDINGDAN, //店内订单列表
 		DIANNEIDINGDAN, //店内订单列表
 		DIANNEIINFO, //店内订单详情
 		DIANNEIINFO, //店内订单详情
 		SHANGPIN, //商品管理
 		SHANGPIN, //商品管理
+		SHANGPIN_CREATE, //新建商品
 		ZHENGCAN, //正餐收银
 		ZHENGCAN, //正餐收银
 		SAOMASHOUYIN, //扫码收银
 		SAOMASHOUYIN, //扫码收银
 		CAIGOU, //采购
 		CAIGOU, //采购

+ 2 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj

@@ -227,6 +227,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     </PostBuildEvent>
     </PostBuildEvent>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemGroup>
   <ItemGroup>
+    <ClInclude Include="page\CShangpinCreatePageUI.h" />
     <ClInclude Include="page\CSaomashouyinPageUI.h" />
     <ClInclude Include="page\CSaomashouyinPageUI.h" />
     <ClInclude Include="page\CCaigouPageUI.h" />
     <ClInclude Include="page\CCaigouPageUI.h" />
     <ClInclude Include="page\CKucunPageUI.h" />
     <ClInclude Include="page\CKucunPageUI.h" />
@@ -319,6 +320,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     <ClInclude Include="helper\CSystem.h" />
     <ClInclude Include="helper\CSystem.h" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
+    <ClCompile Include="page\CShangpinCreatePageUI.cpp" />
     <ClCompile Include="page\CSaomashouyinPageUI.cpp" />
     <ClCompile Include="page\CSaomashouyinPageUI.cpp" />
     <ClCompile Include="page\CCaigouPageUI.cpp" />
     <ClCompile Include="page\CCaigouPageUI.cpp" />
     <ClCompile Include="page\CKucunPageUI.cpp" />
     <ClCompile Include="page\CKucunPageUI.cpp" />

+ 6 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj.filters

@@ -285,6 +285,9 @@
     <ClInclude Include="zhipuzi\CHuiyuanchognzhiOrder.h">
     <ClInclude Include="zhipuzi\CHuiyuanchognzhiOrder.h">
       <Filter>头文件</Filter>
       <Filter>头文件</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="page\CShangpinCreatePageUI.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="pch\pch.cpp">
     <ClCompile Include="pch\pch.cpp">
@@ -530,6 +533,9 @@
     <ClCompile Include="page\CSaomashouyinPageUI.cpp">
     <ClCompile Include="page\CSaomashouyinPageUI.cpp">
       <Filter>源文件</Filter>
       <Filter>源文件</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="page\CShangpinCreatePageUI.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <Image Include="resource\zhipuzi.ico">
     <Image Include="resource\zhipuzi.ico">