CSettingPageUI.cpp 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325
  1. #include "../pch/pch.h"
  2. #include "CSettingPageUI.h"
  3. #include "../wnd/CChufangSettingWnd.h"
  4. #include "../print/CPosPrinter.h"
  5. #include "../helper/CComHelper.h"
  6. #include "../worker/CChengzhongWorker.h"
  7. #include <boost/array.hpp>
  8. #include "../tool/CFoodHandle.h"
  9. CSettingPageUI::CSettingPageUI()
  10. {
  11. }
  12. CSettingPageUI::~CSettingPageUI()
  13. {
  14. }
  15. //初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
  16. void CSettingPageUI::InitShow()
  17. {
  18. CLabelUI* version = static_cast<CLabelUI*>(this->FindSubControl(_T("setting_version")));
  19. version->SetText((L"版本号:" + CLewaimaiString::UTF8ToUnicode(CSystem::GetVersion())).c_str());
  20. CCheckBoxUI* box = NULL;
  21. CComboUI* com = NULL;
  22. //外卖订单设置
  23. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_voice")));
  24. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_voice") == "1")
  25. {
  26. box->Selected(true, false);
  27. }
  28. else
  29. {
  30. box->Selected(false, false);
  31. }
  32. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_autoconfirm")));
  33. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_autoconfirm") == "1")
  34. {
  35. box->Selected(true, false);
  36. }
  37. else
  38. {
  39. box->Selected(false, false);
  40. }
  41. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_printer")));
  42. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_printer") == "1")
  43. {
  44. box->Selected(true, false);
  45. }
  46. else
  47. {
  48. box->Selected(false, false);
  49. }
  50. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_biaoqian_printer")));
  51. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_biaoqian_printer") == "1")
  52. {
  53. box->Selected(true, false);
  54. }
  55. else
  56. {
  57. box->Selected(false, false);
  58. }
  59. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_chufang_printer")));
  60. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_chufang_printer") == "1")
  61. {
  62. box->Selected(true, false);
  63. }
  64. else
  65. {
  66. box->Selected(false, false);
  67. }
  68. //店内订单设置
  69. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_voice")));
  70. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
  71. {
  72. box->Selected(true, false);
  73. }
  74. else
  75. {
  76. box->Selected(false, false);
  77. }
  78. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_printer")));
  79. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_printer") == "1")
  80. {
  81. box->Selected(true, false);
  82. }
  83. else
  84. {
  85. box->Selected(false, false);
  86. }
  87. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_biaoqian_printer")));
  88. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_biaoqian_printer") == "1")
  89. {
  90. box->Selected(true, false);
  91. }
  92. else
  93. {
  94. box->Selected(false, false);
  95. }
  96. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_chufang_printer")));
  97. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_chufang_printer") == "1")
  98. {
  99. box->Selected(true, false);
  100. }
  101. else
  102. {
  103. box->Selected(false, false);
  104. }
  105. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_saomadiancan_printer")));
  106. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_saomadiancan_printer") == "1")
  107. {
  108. box->Selected(true, false);
  109. }
  110. else
  111. {
  112. box->Selected(false, false);
  113. }
  114. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_diannei_xianjin_qianxiang")));
  115. if (CSetting::GetInstance()->GetParam("setting_is_diannei_xianjin_qianxiang") == "1")
  116. {
  117. box->Selected(true, false);
  118. }
  119. else
  120. {
  121. box->Selected(false, false);
  122. }
  123. //小票打印
  124. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_guige")));
  125. if (CSetting::GetInstance()->GetParam("setting_printer_guige") == "58")
  126. {
  127. com->SetInternVisible(true);
  128. com->SelectItem(0, false, false);
  129. }
  130. else
  131. {
  132. com->SetInternVisible(true);
  133. com->SelectItem(1, false, false);
  134. }
  135. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_lianshu")));
  136. std::string setting_printer_lianshu = CSetting::GetInstance()->GetParam("setting_printer_lianshu");
  137. if (setting_printer_lianshu == "1")
  138. {
  139. com->SetInternVisible(true);
  140. com->SelectItem(0, false, false);
  141. com->SetText(L"1联");
  142. }
  143. else if (setting_printer_lianshu == "2")
  144. {
  145. com->SetInternVisible(true);
  146. com->SelectItem(1, false, false);
  147. com->SetText(L"2联");
  148. }
  149. else if (setting_printer_lianshu == "3")
  150. {
  151. com->SetInternVisible(true);
  152. com->SelectItem(2, false, false);
  153. com->SetText(L"3联");
  154. }
  155. else if (setting_printer_lianshu == "4")
  156. {
  157. com->SetInternVisible(true);
  158. com->SelectItem(3, false, false);
  159. com->SetText(L"4联");
  160. }
  161. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_leixing")));
  162. std::string setting_printer_leixing = CSetting::GetInstance()->GetParam("setting_printer_leixing");
  163. CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_usb_layout")));
  164. CHorizontalLayoutUI* chuankou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_chuankou_layout")));
  165. CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_wangkou_layout")));
  166. if (setting_printer_leixing == "auto")
  167. {
  168. com->SetInternVisible(true);
  169. com->SelectItem(0, false, false);
  170. com->SetText(L"智能识别模式");
  171. //智能识别模式隐藏这3个
  172. usb_layout->SetVisible(false);
  173. chuankou_layout->SetVisible(false);
  174. wangkou_layout->SetVisible(false);
  175. }
  176. else if (setting_printer_leixing == "usb")
  177. {
  178. com->SetInternVisible(true);
  179. com->SelectItem(1, false, false);
  180. com->SetText(L"usb");
  181. //显示usb布局
  182. usb_layout->SetVisible(true);
  183. chuankou_layout->SetVisible(false);
  184. wangkou_layout->SetVisible(false);
  185. //usb下拉框默认选中
  186. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  187. com_usb->RemoveAll();
  188. //数据库中保存的之前的设置
  189. std::string setting_printer_usb = CSetting::GetInstance()->GetParam("setting_printer_usb");
  190. std::wstring ws_setting_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_printer_usb);
  191. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  192. int i = 0;
  193. int nSelect = -1;
  194. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  195. {
  196. CListLabelElementUI* elem = new CListLabelElementUI();
  197. elem->SetText((*it).c_str());
  198. com_usb->Add(elem);
  199. if (*it == ws_setting_printer_usb)
  200. {
  201. nSelect = i;
  202. }
  203. i++;
  204. }
  205. com_usb->SetInternVisible(true);
  206. com_usb->SelectItem(nSelect, false, false);
  207. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_usb).c_str());
  208. }
  209. else if (setting_printer_leixing == "bingkou")
  210. {
  211. com->SetInternVisible(true);
  212. com->SelectItem(2, false, false);
  213. com->SetText(L"并口");
  214. usb_layout->SetVisible(false);
  215. chuankou_layout->SetVisible(false);
  216. wangkou_layout->SetVisible(false);
  217. }
  218. else if (setting_printer_leixing == "chuankou")
  219. {
  220. com->SetInternVisible(true);
  221. com->SelectItem(3, false, false);
  222. com->SetText(L"串口");
  223. usb_layout->SetVisible(false);
  224. chuankou_layout->SetVisible(true);
  225. wangkou_layout->SetVisible(false);
  226. //串口下拉框默认选中
  227. CComboUI* com_chuankou = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  228. com_chuankou->RemoveAll();
  229. //数据库中保存的之前的设置
  230. std::string setting_printer_com = CSetting::GetInstance()->GetParam("setting_printer_com");
  231. std::wstring ws_setting_printer_com = CLewaimaiString::UTF8ToUnicode(setting_printer_com);
  232. CComHelper helper;
  233. std::vector<std::wstring> com_devices = helper.getComPort();
  234. int i = 0;
  235. int nSelect = -1;
  236. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  237. {
  238. CListLabelElementUI* elem = new CListLabelElementUI();
  239. elem->SetText((*it).c_str());
  240. com_chuankou->Add(elem);
  241. if (*it == ws_setting_printer_com)
  242. {
  243. nSelect = i;
  244. }
  245. i++;
  246. }
  247. com_chuankou->SetInternVisible(true);
  248. com_chuankou->SelectItem(nSelect, false, false);
  249. com_chuankou->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_com).c_str());
  250. }
  251. else if (setting_printer_leixing == "wangkou")
  252. {
  253. com->SetInternVisible(true);
  254. com->SelectItem(4, false, false);
  255. com->SetText(L"网口");
  256. usb_layout->SetVisible(false);
  257. chuankou_layout->SetVisible(false);
  258. wangkou_layout->SetVisible(true);
  259. std::string setting_printer_wangkou_ip = CSetting::GetInstance()->GetParam("setting_printer_wangkou_ip");
  260. CEditUI* ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  261. ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_wangkou_ip).c_str());
  262. }
  263. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_quhuo_big")));
  264. if (CSetting::GetInstance()->GetParam("setting_printer_quhuo_big") == "1")
  265. {
  266. box->Selected(true, false);
  267. }
  268. else
  269. {
  270. box->Selected(false, false);
  271. }
  272. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_dingdanhao_big")));
  273. if (CSetting::GetInstance()->GetParam("setting_printer_dingdanhao_big") == "1")
  274. {
  275. box->Selected(true, false);
  276. }
  277. else
  278. {
  279. box->Selected(false, false);
  280. }
  281. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_xiadanshijian_big")));
  282. if (CSetting::GetInstance()->GetParam("setting_printer_xiadanshijian_big") == "1")
  283. {
  284. box->Selected(true, false);
  285. }
  286. else
  287. {
  288. box->Selected(false, false);
  289. }
  290. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_peisongshijian_big")));
  291. if (CSetting::GetInstance()->GetParam("setting_printer_peisongshijian_big") == "1")
  292. {
  293. box->Selected(true, false);
  294. }
  295. else
  296. {
  297. box->Selected(false, false);
  298. }
  299. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_name_big")));
  300. if (CSetting::GetInstance()->GetParam("setting_printer_name_big") == "1")
  301. {
  302. box->Selected(true, false);
  303. }
  304. else
  305. {
  306. box->Selected(false, false);
  307. }
  308. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_phone_big")));
  309. if (CSetting::GetInstance()->GetParam("setting_printer_phone_big") == "1")
  310. {
  311. box->Selected(true, false);
  312. }
  313. else
  314. {
  315. box->Selected(false, false);
  316. }
  317. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_address_big")));
  318. if (CSetting::GetInstance()->GetParam("setting_printer_address_big") == "1")
  319. {
  320. box->Selected(true, false);
  321. }
  322. else
  323. {
  324. box->Selected(false, false);
  325. }
  326. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_shangpin_big")));
  327. if (CSetting::GetInstance()->GetParam("setting_printer_shangpin_big") == "1")
  328. {
  329. box->Selected(true, false);
  330. }
  331. else
  332. {
  333. box->Selected(false, false);
  334. }
  335. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_memo_big")));
  336. if (CSetting::GetInstance()->GetParam("setting_printer_memo_big") == "1")
  337. {
  338. box->Selected(true, false);
  339. }
  340. else
  341. {
  342. box->Selected(false, false);
  343. }
  344. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_price_big")));
  345. if (CSetting::GetInstance()->GetParam("setting_printer_price_big") == "1")
  346. {
  347. box->Selected(true, false);
  348. }
  349. else
  350. {
  351. box->Selected(false, false);
  352. }
  353. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_pay_big")));
  354. if (CSetting::GetInstance()->GetParam("setting_printer_pay_big") == "1")
  355. {
  356. box->Selected(true, false);
  357. }
  358. else
  359. {
  360. box->Selected(false, false);
  361. }
  362. //电子秤设置
  363. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_xinghao")));
  364. std::string setting_dianzicheng_xinghao = CSetting::GetInstance()->GetParam("setting_dianzicheng_xinghao");
  365. if (setting_dianzicheng_xinghao == "dahua_acs")
  366. {
  367. com->SetInternVisible(true);
  368. com->SelectItem(0, false, false);
  369. com->SetText(L"大华ACS系列");
  370. }
  371. else if (setting_dianzicheng_xinghao == "dingjian_os2x")
  372. {
  373. com->SetInternVisible(true);
  374. com->SelectItem(1, false, false);
  375. com->SetText(L"顶尖OS2X系列");
  376. }
  377. //串口下拉框默认选中
  378. CComboUI* com_dianzicheng = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_chuankou")));
  379. com_dianzicheng->RemoveAll();
  380. //数据库中保存的之前的设置
  381. std::string setting_dianzicheng_com = CSetting::GetInstance()->GetParam("setting_dianzicheng_com");
  382. std::wstring ws_setting_dianzicheng_com = CLewaimaiString::UTF8ToUnicode(setting_dianzicheng_com);
  383. CComHelper helper;
  384. std::vector<std::wstring> com_devices = helper.getComPort();
  385. int i = 0;
  386. int nSelect = -1;
  387. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  388. {
  389. CListLabelElementUI* elem = new CListLabelElementUI();
  390. elem->SetText((*it).c_str());
  391. com_dianzicheng->Add(elem);
  392. if (*it == ws_setting_dianzicheng_com)
  393. {
  394. nSelect = i;
  395. }
  396. i++;
  397. }
  398. com_dianzicheng->SetInternVisible(true);
  399. com_dianzicheng->SelectItem(nSelect, false, false);
  400. com_dianzicheng->SetText(CLewaimaiString::UTF8ToUnicode(setting_dianzicheng_com).c_str());
  401. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_botelv")));
  402. std::string setting_dianzicheng_botelv = CSetting::GetInstance()->GetParam("setting_dianzicheng_botelv");
  403. if (setting_dianzicheng_botelv == "600")
  404. {
  405. com->SetInternVisible(true);
  406. com->SelectItem(0, false, false);
  407. com->SetText(L"600");
  408. }
  409. else if (setting_dianzicheng_botelv == "1200")
  410. {
  411. com->SetInternVisible(true);
  412. com->SelectItem(1, false, false);
  413. com->SetText(L"1200");
  414. }
  415. else if (setting_dianzicheng_botelv == "2400")
  416. {
  417. com->SetInternVisible(true);
  418. com->SelectItem(2, false, false);
  419. com->SetText(L"2400");
  420. }
  421. else if (setting_dianzicheng_botelv == "4800")
  422. {
  423. com->SetInternVisible(true);
  424. com->SelectItem(3, false, false);
  425. com->SetText(L"4800");
  426. }
  427. else if (setting_dianzicheng_botelv == "9600")
  428. {
  429. com->SetInternVisible(true);
  430. com->SelectItem(4, false, false);
  431. com->SetText(L"9600");
  432. }
  433. else if (setting_dianzicheng_botelv == "19200")
  434. {
  435. com->SetInternVisible(true);
  436. com->SelectItem(5, false, false);
  437. com->SetText(L"19200");
  438. }
  439. else if (setting_dianzicheng_botelv == "38400")
  440. {
  441. com->SetInternVisible(true);
  442. com->SelectItem(6, false, false);
  443. com->SetText(L"38400");
  444. }
  445. //标签秤设置
  446. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_geshi")));
  447. std::string setting_tiaomacheng_geshi = CSetting::GetInstance()->GetParam("setting_tiaomacheng_geshi");
  448. if (setting_tiaomacheng_geshi == "1")
  449. {
  450. com->SetInternVisible(true);
  451. com->SelectItem(0, false, false);
  452. com->SetText(L"13位【FWWWWWWEEEEEC】");
  453. }
  454. else if (setting_tiaomacheng_geshi == "2")
  455. {
  456. com->SetInternVisible(true);
  457. com->SelectItem(1, false, false);
  458. com->SetText(L"13位【FWWWWWWNNNNNC】");
  459. }
  460. else if (setting_tiaomacheng_geshi == "3")
  461. {
  462. com->SetInternVisible(true);
  463. com->SelectItem(2, false, false);
  464. com->SetText(L"13位【FFWWWWWEEEEEC】");
  465. }
  466. else if (setting_tiaomacheng_geshi == "4")
  467. {
  468. com->SetInternVisible(true);
  469. com->SelectItem(3, false, false);
  470. com->SetText(L"13位【FFWWWWWNNNNNC】");
  471. }
  472. else if (setting_tiaomacheng_geshi == "5")
  473. {
  474. com->SetInternVisible(true);
  475. com->SelectItem(4, false, false);
  476. com->SetText(L"18位【FWWWWWWEEEEENNNNNC】");
  477. }
  478. else if (setting_tiaomacheng_geshi == "6")
  479. {
  480. com->SetInternVisible(true);
  481. com->SelectItem(5, false, false);
  482. com->SetText(L"18位【FWWWWWWNNNNNEEEEEC】");
  483. }
  484. else if (setting_tiaomacheng_geshi == "7")
  485. {
  486. com->SetInternVisible(true);
  487. com->SelectItem(6, false, false);
  488. com->SetText(L"18位【FFWWWWWEEEEENNNNNC】");
  489. }
  490. else if (setting_tiaomacheng_geshi == "8")
  491. {
  492. com->SetInternVisible(true);
  493. com->SelectItem(6, false, false);
  494. com->SetText(L"18位【FFWWWWWNNNNNEEEEEC】");
  495. }
  496. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_xinghao")));
  497. std::string setting_tiaomacheng_xinghao = CSetting::GetInstance()->GetParam("setting_tiaomacheng_xinghao");
  498. if (setting_tiaomacheng_xinghao == "dahua_tm")
  499. {
  500. com->SetInternVisible(true);
  501. com->SelectItem(0, false, false);
  502. com->SetText(L"大华TM系列");
  503. }
  504. std::string setting_tiaomacheng_ip = CSetting::GetInstance()->GetParam("setting_tiaomacheng_ip");
  505. CEditUI* tiaoma_ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_tiaomacheng_ip")));
  506. tiaoma_ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_tiaomacheng_ip).c_str());
  507. //系统设置
  508. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_start")));
  509. if (CSetting::GetInstance()->GetParam("setting_is_auto_start") == "1")
  510. {
  511. box->Selected(true, false);
  512. }
  513. else
  514. {
  515. box->Selected(false, false);
  516. }
  517. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_login")));
  518. if (CSetting::GetInstance()->GetParam("setting_is_auto_login") == "1")
  519. {
  520. box->Selected(true, false);
  521. }
  522. else
  523. {
  524. box->Selected(false, false);
  525. }
  526. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_close_min")));
  527. if (CSetting::GetInstance()->GetParam("setting_is_close_min") == "1")
  528. {
  529. box->Selected(true, false);
  530. }
  531. else
  532. {
  533. box->Selected(false, false);
  534. }
  535. //初始化标签打印机的设置
  536. //usb下拉框默认选中
  537. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb")));
  538. com_usb->RemoveAll();
  539. //数据库中保存的之前的设置
  540. std::string setting_biaoqian_printer_usb = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_usb");
  541. std::wstring ws_setting_biaoqian_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb);
  542. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  543. i = 0;
  544. nSelect = -1;
  545. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  546. {
  547. CListLabelElementUI* elem = new CListLabelElementUI();
  548. elem->SetText((*it).c_str());
  549. com_usb->Add(elem);
  550. if (*it == ws_setting_biaoqian_printer_usb)
  551. {
  552. nSelect = i;
  553. }
  554. i++;
  555. }
  556. com_usb->SetInternVisible(true);
  557. com_usb->SelectItem(nSelect, false, false);
  558. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb).c_str());
  559. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_guige")));
  560. std::string setting_biaoqian_printer_guige = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_guige");
  561. if (setting_biaoqian_printer_guige == "40*30mm")
  562. {
  563. com->SetInternVisible(true);
  564. com->SelectItem(0, false, false);
  565. com->SetText(L"40*30mm");
  566. }
  567. else if (setting_biaoqian_printer_guige == "35*25mm")
  568. {
  569. com->SetInternVisible(true);
  570. com->SelectItem(1, false, false);
  571. com->SetText(L"35*25mm");
  572. }
  573. else if (setting_biaoqian_printer_guige == "30*25mm")
  574. {
  575. com->SetInternVisible(true);
  576. com->SelectItem(2, false, false);
  577. com->SetText(L"30*25mm");
  578. }
  579. else if (setting_biaoqian_printer_guige == "30*20mm")
  580. {
  581. com->SetInternVisible(true);
  582. com->SelectItem(3, false, false);
  583. com->SetText(L"30*20mm");
  584. }
  585. else if (setting_biaoqian_printer_guige == "60*80mm")
  586. {
  587. com->SetInternVisible(true);
  588. com->SelectItem(4, false, false);
  589. com->SetText(L"60*80mm");
  590. }
  591. else if (setting_biaoqian_printer_guige == "80*60mm")
  592. {
  593. com->SetInternVisible(true);
  594. com->SelectItem(5, false, false);
  595. com->SetText(L"80*60mm");
  596. }
  597. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_fangxiang")));
  598. std::string setting_biaoqian_printer_fangxiang = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_fangxiang");
  599. if (setting_biaoqian_printer_fangxiang == "1")
  600. {
  601. com->SetInternVisible(true);
  602. com->SelectItem(0, false, false);
  603. com->SetText(L"正方向");
  604. }
  605. else if (setting_biaoqian_printer_fangxiang == "0")
  606. {
  607. com->SetInternVisible(true);
  608. com->SelectItem(1, false, false);
  609. com->SetText(L"反方向");
  610. }
  611. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_biaoqian_printer_is_type")));
  612. if (CSetting::GetInstance()->GetParam("setting_biaoqian_printer_is_type") == "1")
  613. {
  614. box->Selected(true, false);
  615. }
  616. else
  617. {
  618. box->Selected(false, false);
  619. }
  620. std::string type_ids = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_type_ids");
  621. std::vector<string> type_vector = CLewaimaiString::Split(type_ids, ",");
  622. //删除已经不存在的type_ids
  623. std::string new_foodtype_ids;
  624. CSqlite3 sqlite;
  625. for (std::vector<string>::iterator it = type_vector.begin(); it != type_vector.end(); it++)
  626. {
  627. CFoodType type;
  628. bool ret = sqlite.GetFoodtypeById((*it), type);
  629. if (!ret)
  630. {
  631. //分类被删掉了
  632. continue;
  633. }
  634. new_foodtype_ids += (*it) + ",";
  635. }
  636. //删掉不存在的type_id,更新内存和数据库
  637. new_foodtype_ids = new_foodtype_ids.substr(0, new_foodtype_ids.length() - 1);
  638. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_type_ids", new_foodtype_ids);
  639. //重新赋值
  640. type_ids = new_foodtype_ids;
  641. type_vector = CLewaimaiString::Split(type_ids, ",");
  642. std::map<string, int> type_map;
  643. for (std::vector<string>::iterator it = type_vector.begin(); it != type_vector.end(); it++)
  644. {
  645. type_map[*it] = 1;
  646. }
  647. //把所有分类显示出来
  648. CVerticalLayoutUI* pFenleiLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("setting_biaoqian_printer_type_layout")));
  649. pFenleiLayout->RemoveAll();
  650. CSqlite3 sqlite_2;
  651. std::vector<CFoodType> foodtypes = sqlite_2.GetFoodtypes();
  652. for (std::vector<CFoodType>::iterator it = foodtypes.begin(); it != foodtypes.end(); it++)
  653. {
  654. CDialogBuilder builder;
  655. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("biaoqian_printer_setting_fenlei_select.xml"), (UINT)0, NULL, m_pManager));
  656. CCheckBoxUI* pCheck = static_cast<CCheckBoxUI*>(pEle->FindSubControl(_T("biaoqian_setting_fenleli_xuanze_checkbox")));
  657. pCheck->AddCustomAttribute(L"type_id", CLewaimaiString::UTF8ToUnicode((*it).id).c_str());
  658. if (type_map.find((*it).id) != type_map.end())
  659. {
  660. pCheck->Selected(true, false);
  661. }
  662. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("biaoqian_setting_fenleli_xuanze_name")));
  663. pName->SetText(CLewaimaiString::UTF8ToUnicode((*it).name).c_str());
  664. pFenleiLayout->Add(pEle);
  665. }
  666. pFenleiLayout->SetFixedHeight(foodtypes.size() * 30);
  667. //这里开始,初始化厨房打印机的设置
  668. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  669. pPrinterList->RemoveAll();
  670. //获取厨房打印机的集合
  671. std::vector<ChufangPrinter> printers = CSetting::GetInstance()->getChufangPrints();
  672. for (std::vector<ChufangPrinter>::iterator it = printers.begin(); it != printers.end(); it++)
  673. {
  674. ChufangPrinter newPrinter = *it;
  675. CDialogBuilder builder;
  676. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, m_pManager));
  677. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  678. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  679. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  680. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  681. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  682. if (newPrinter.guige == "58")
  683. {
  684. pGuige->SetText(L"58mm");
  685. }
  686. else
  687. {
  688. pGuige->SetText(L"80mm");
  689. }
  690. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  691. if (newPrinter.fendan == "1")
  692. {
  693. pFendan->SetText(L"是");
  694. }
  695. else
  696. {
  697. pFendan->SetText(L"否");
  698. }
  699. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  700. if (newPrinter.fenlei == "1")
  701. {
  702. pFenlei->SetText(L"是");
  703. }
  704. else
  705. {
  706. pFenlei->SetText(L"否");
  707. }
  708. std::string foodtypeNames = "";
  709. std::string foodtype_ids = newPrinter.fenlei_ids;
  710. //这个是删除掉不存在的type_id之后的
  711. std::string new_foodtype_ids = "";
  712. std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  713. CSqlite3 sqlite;
  714. for (std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
  715. {
  716. CFoodType type;
  717. bool ret = sqlite.GetFoodtypeById((*it), type);
  718. if (!ret)
  719. {
  720. //分类被删掉了
  721. continue;
  722. }
  723. std::string name = type.name;
  724. foodtypeNames += name + CLewaimaiString::UnicodeToUTF8(L"、");
  725. new_foodtype_ids += (*it) + ",";
  726. }
  727. //删掉不存在的type_id,更新内存和数据库
  728. new_foodtype_ids = new_foodtype_ids.substr(0, new_foodtype_ids.length() - 1);
  729. if (new_foodtype_ids.compare(foodtype_ids) != 0)
  730. {
  731. CSetting::GetInstance()->UpdateChufangPrinter(newPrinter.date, newPrinter.name, newPrinter.ip, newPrinter.guige, newPrinter.fendan, newPrinter.fenlei, new_foodtype_ids, true);
  732. }
  733. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  734. ws_foodtypeNames = ws_foodtypeNames.substr(0, ws_foodtypeNames.size() - 1);
  735. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  736. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  737. //设置标记属性,用于修改时候匹配
  738. pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
  739. pPrinterList->Add(pEle);
  740. }
  741. //初始化展示设置
  742. CCheckBoxUI* box_youtu = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("xianshi_setting_youtu")));
  743. CCheckBoxUI* box_wutu = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("xianshi_setting_wutu")));
  744. if (CSetting::GetInstance()->GetParam("setting_xianshi_is_youtu") == "1")
  745. {
  746. box_youtu->Selected(true, false);
  747. box_wutu->Selected(false, false);
  748. }
  749. else
  750. {
  751. box_youtu->Selected(false, false);
  752. box_wutu->Selected(true, false);
  753. }
  754. }
  755. //处理按钮点击类事件
  756. void CSettingPageUI::HandleClickMsg(TNotifyUI& msg)
  757. {
  758. CDuiString name = msg.pSender->GetName();
  759. //开始处理设置页面的
  760. if (name == _T("setting_is_new_waimai_voice"))
  761. {
  762. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_voice")));
  763. //注意这里的IsSelected如果为true,表示的是点击前为true,而不是点击后为true,所以这里设置状态要反过来
  764. if (box->IsSelected())
  765. {
  766. CSetting::GetInstance()->SetParam("setting_is_new_waimai_voice", "0");
  767. }
  768. else
  769. {
  770. CSetting::GetInstance()->SetParam("setting_is_new_waimai_voice", "1");
  771. }
  772. }
  773. else if (name == _T("setting_is_new_waimai_autoconfirm"))
  774. {
  775. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_autoconfirm")));
  776. if (box->IsSelected())
  777. {
  778. CSetting::GetInstance()->SetParam("setting_is_new_waimai_autoconfirm", "0");
  779. }
  780. else
  781. {
  782. CSetting::GetInstance()->SetParam("setting_is_new_waimai_autoconfirm", "1");
  783. }
  784. }
  785. else if (name == _T("setting_is_new_waimai_printer"))
  786. {
  787. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_printer")));
  788. if (box->IsSelected())
  789. {
  790. CSetting::GetInstance()->SetParam("setting_is_new_waimai_printer", "0");
  791. }
  792. else
  793. {
  794. CSetting::GetInstance()->SetParam("setting_is_new_waimai_printer", "1");
  795. }
  796. }
  797. else if (name == _T("setting_is_new_waimai_biaoqian_printer"))
  798. {
  799. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_biaoqian_printer")));
  800. if (box->IsSelected())
  801. {
  802. CSetting::GetInstance()->SetParam("setting_is_new_waimai_biaoqian_printer", "0");
  803. }
  804. else
  805. {
  806. CSetting::GetInstance()->SetParam("setting_is_new_waimai_biaoqian_printer", "1");
  807. }
  808. }
  809. else if (name == _T("setting_is_new_waimai_chufang_printer"))
  810. {
  811. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_chufang_printer")));
  812. if (box->IsSelected())
  813. {
  814. CSetting::GetInstance()->SetParam("setting_is_new_waimai_chufang_printer", "0");
  815. }
  816. else
  817. {
  818. CSetting::GetInstance()->SetParam("setting_is_new_waimai_chufang_printer", "1");
  819. }
  820. }
  821. else if (name == _T("setting_is_new_diannei_voice"))
  822. {
  823. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_voice")));
  824. //注意这里的IsSelected如果为true,表示的是点击前为true,而不是点击后为true,所以这里设置状态要反过来
  825. if (box->IsSelected())
  826. {
  827. CSetting::GetInstance()->SetParam("setting_is_new_diannei_voice", "0");
  828. }
  829. else
  830. {
  831. CSetting::GetInstance()->SetParam("setting_is_new_diannei_voice", "1");
  832. }
  833. }
  834. else if (name == _T("setting_is_new_diannei_printer"))
  835. {
  836. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_printer")));
  837. if (box->IsSelected())
  838. {
  839. CSetting::GetInstance()->SetParam("setting_is_new_diannei_printer", "0");
  840. }
  841. else
  842. {
  843. CSetting::GetInstance()->SetParam("setting_is_new_diannei_printer", "1");
  844. }
  845. }
  846. else if (name == _T("setting_is_new_diannei_biaoqian_printer"))
  847. {
  848. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_biaoqian_printer")));
  849. if (box->IsSelected())
  850. {
  851. CSetting::GetInstance()->SetParam("setting_is_new_diannei_biaoqian_printer", "0");
  852. }
  853. else
  854. {
  855. CSetting::GetInstance()->SetParam("setting_is_new_diannei_biaoqian_printer", "1");
  856. }
  857. }
  858. else if (name == _T("setting_is_new_diannei_chufang_printer"))
  859. {
  860. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_chufang_printer")));
  861. if (box->IsSelected())
  862. {
  863. CSetting::GetInstance()->SetParam("setting_is_new_diannei_chufang_printer", "0");
  864. }
  865. else
  866. {
  867. CSetting::GetInstance()->SetParam("setting_is_new_diannei_chufang_printer", "1");
  868. }
  869. }
  870. else if (name == _T("setting_is_new_diannei_saomadiancan_printer"))
  871. {
  872. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_saomadiancan_printer")));
  873. if (box->IsSelected())
  874. {
  875. CSetting::GetInstance()->SetParam("setting_is_new_diannei_saomadiancan_printer", "0");
  876. }
  877. else
  878. {
  879. CSetting::GetInstance()->SetParam("setting_is_new_diannei_saomadiancan_printer", "1");
  880. }
  881. }
  882. else if (name == _T("setting_is_diannei_xianjin_qianxiang"))
  883. {
  884. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_diannei_xianjin_qianxiang")));
  885. if (box->IsSelected())
  886. {
  887. CSetting::GetInstance()->SetParam("setting_is_diannei_xianjin_qianxiang", "0");
  888. }
  889. else
  890. {
  891. CSetting::GetInstance()->SetParam("setting_is_diannei_xianjin_qianxiang", "1");
  892. }
  893. }
  894. else if (name == _T("setting_printer_wangkouk_save_btn"))
  895. {
  896. CEditUI* wangkou_ip = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  897. wstring ip = wangkou_ip->GetText();
  898. CSetting::GetInstance()->SetParam("setting_printer_wangkou_ip", CLewaimaiString::UnicodeToUTF8(ip));
  899. }
  900. else if (name == _T("setting_printer_quhuo_big"))
  901. {
  902. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_quhuo_big")));
  903. if (box->IsSelected())
  904. {
  905. CSetting::GetInstance()->SetParam("setting_printer_quhuo_big", "0");
  906. }
  907. else
  908. {
  909. CSetting::GetInstance()->SetParam("setting_printer_quhuo_big", "1");
  910. }
  911. }
  912. else if (name == _T("setting_printer_dingdanhao_big"))
  913. {
  914. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_dingdanhao_big")));
  915. if (box->IsSelected())
  916. {
  917. CSetting::GetInstance()->SetParam("setting_printer_dingdanhao_big", "0");
  918. }
  919. else
  920. {
  921. CSetting::GetInstance()->SetParam("setting_printer_dingdanhao_big", "1");
  922. }
  923. }
  924. else if (name == _T("setting_printer_xiadanshijian_big"))
  925. {
  926. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_xiadanshijian_big")));
  927. if (box->IsSelected())
  928. {
  929. CSetting::GetInstance()->SetParam("setting_printer_xiadanshijian_big", "0");
  930. }
  931. else
  932. {
  933. CSetting::GetInstance()->SetParam("setting_printer_xiadanshijian_big", "1");
  934. }
  935. }
  936. else if (name == _T("setting_printer_peisongshijian_big"))
  937. {
  938. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_peisongshijian_big")));
  939. if (box->IsSelected())
  940. {
  941. CSetting::GetInstance()->SetParam("setting_printer_peisongshijian_big", "0");
  942. }
  943. else
  944. {
  945. CSetting::GetInstance()->SetParam("setting_printer_peisongshijian_big", "1");
  946. }
  947. }
  948. else if (name == _T("setting_printer_name_big"))
  949. {
  950. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_name_big")));
  951. if (box->IsSelected())
  952. {
  953. CSetting::GetInstance()->SetParam("setting_printer_name_big", "0");
  954. }
  955. else
  956. {
  957. CSetting::GetInstance()->SetParam("setting_printer_name_big", "1");
  958. }
  959. }
  960. else if (name == _T("setting_printer_phone_big"))
  961. {
  962. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_phone_big")));
  963. if (box->IsSelected())
  964. {
  965. CSetting::GetInstance()->SetParam("setting_printer_phone_big", "0");
  966. }
  967. else
  968. {
  969. CSetting::GetInstance()->SetParam("setting_printer_phone_big", "1");
  970. }
  971. }
  972. else if (name == _T("setting_printer_address_big"))
  973. {
  974. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_address_big")));
  975. if (box->IsSelected())
  976. {
  977. CSetting::GetInstance()->SetParam("setting_printer_address_big", "0");
  978. }
  979. else
  980. {
  981. CSetting::GetInstance()->SetParam("setting_printer_address_big", "1");
  982. }
  983. }
  984. else if (name == _T("setting_printer_shangpin_big"))
  985. {
  986. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_shangpin_big")));
  987. if (box->IsSelected())
  988. {
  989. CSetting::GetInstance()->SetParam("setting_printer_shangpin_big", "0");
  990. }
  991. else
  992. {
  993. CSetting::GetInstance()->SetParam("setting_printer_shangpin_big", "1");
  994. }
  995. }
  996. else if (name == _T("setting_printer_memo_big"))
  997. {
  998. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_memo_big")));
  999. if (box->IsSelected())
  1000. {
  1001. CSetting::GetInstance()->SetParam("setting_printer_memo_big", "0");
  1002. }
  1003. else
  1004. {
  1005. CSetting::GetInstance()->SetParam("setting_printer_memo_big", "1");
  1006. }
  1007. }
  1008. else if (name == _T("setting_printer_price_big"))
  1009. {
  1010. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_price_big")));
  1011. if (box->IsSelected())
  1012. {
  1013. CSetting::GetInstance()->SetParam("setting_printer_price_big", "0");
  1014. }
  1015. else
  1016. {
  1017. CSetting::GetInstance()->SetParam("setting_printer_price_big", "1");
  1018. }
  1019. }
  1020. else if (name == _T("setting_printer_pay_big"))
  1021. {
  1022. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_pay_big")));
  1023. if (box->IsSelected())
  1024. {
  1025. CSetting::GetInstance()->SetParam("setting_printer_pay_big", "0");
  1026. }
  1027. else
  1028. {
  1029. CSetting::GetInstance()->SetParam("setting_printer_pay_big", "1");
  1030. }
  1031. }
  1032. else if (name == _T("setting_biaoqian_printer_is_type"))
  1033. {
  1034. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_biaoqian_printer_is_type")));
  1035. if (box->IsSelected())
  1036. {
  1037. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_is_type", "0");
  1038. }
  1039. else
  1040. {
  1041. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_is_type", "1");
  1042. }
  1043. }
  1044. else if (name == L"biaoqian_setting_fenleli_xuanze_checkbox")
  1045. {
  1046. std::wstring ws_type_id = msg.pSender->GetCustomAttribute(L"type_id");
  1047. std::string type_id = CLewaimaiString::UnicodeToUTF8(ws_type_id);
  1048. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(msg.pSender);
  1049. if (box->IsSelected())
  1050. {
  1051. //这里是从选中变为不选中,那么就删掉这个type_id
  1052. std::string type_ids = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_type_ids");
  1053. std::vector<string> type_vector = CLewaimaiString::Split(type_ids, ",");
  1054. int num = 0;
  1055. for (std::vector<string>::iterator it = type_vector.begin(); it != type_vector.end(); it++)
  1056. {
  1057. if (*it == type_id)
  1058. {
  1059. break;
  1060. }
  1061. num++;
  1062. }
  1063. type_vector.erase(type_vector.begin() + num);
  1064. std::string new_type_ids = CLewaimaiString::Merge(type_vector, ",");
  1065. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_type_ids", new_type_ids);
  1066. }
  1067. else
  1068. {
  1069. //这是从不选中变为选中
  1070. std::string type_ids = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_type_ids");
  1071. std::string new_type_ids;
  1072. if (type_ids == "")
  1073. {
  1074. new_type_ids = type_id;
  1075. }
  1076. else
  1077. {
  1078. new_type_ids = type_ids + "," + type_id;
  1079. }
  1080. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_type_ids", new_type_ids);
  1081. }
  1082. }
  1083. else if (name == _T("setting_new_chufang_printer_btn"))
  1084. {
  1085. CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(1);
  1086. if (pChufangFrame != NULL)
  1087. {
  1088. pChufangFrame->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
  1089. pChufangFrame->SetIcon(IDI_ICON_DUILIB);
  1090. pChufangFrame->CenterWindow();
  1091. UINT ret = pChufangFrame->ShowModal();
  1092. if (ret == IDOK)
  1093. {
  1094. //这个时候是点击保存返回了,厨房打印机的数据已经建立好了,这个时候刷新表格的显示
  1095. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1096. //把最后一个厨房打印机取出来
  1097. ChufangPrinter newPrinter = CSetting::GetInstance()->getLastChufangPrinter();
  1098. CDialogBuilder builder;
  1099. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, m_pManager));
  1100. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  1101. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  1102. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  1103. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  1104. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  1105. if (newPrinter.guige == "58")
  1106. {
  1107. pGuige->SetText(L"58mm");
  1108. }
  1109. else
  1110. {
  1111. pGuige->SetText(L"80mm");
  1112. }
  1113. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  1114. if (newPrinter.fendan == "1")
  1115. {
  1116. pFendan->SetText(L"是");
  1117. }
  1118. else
  1119. {
  1120. pFendan->SetText(L"否");
  1121. }
  1122. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  1123. if (newPrinter.fenlei == "1")
  1124. {
  1125. pFenlei->SetText(L"是");
  1126. }
  1127. else
  1128. {
  1129. pFenlei->SetText(L"否");
  1130. }
  1131. std::string foodtypeNames = "";
  1132. std::string foodtype_ids = newPrinter.fenlei_ids;
  1133. std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  1134. CSqlite3 sqlite;
  1135. for (std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
  1136. {
  1137. CFoodType foodtype;
  1138. bool ret = sqlite.GetFoodtypeById(*it, foodtype);
  1139. if (!ret)
  1140. {
  1141. continue;
  1142. }
  1143. std::string name = foodtype.name;
  1144. std::wstring ws_name = CLewaimaiString::UTF8ToUnicode(name);
  1145. foodtypeNames += name + " ";
  1146. }
  1147. foodtypeNames = foodtypeNames.substr(0, foodtypeNames.size() - 1);
  1148. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  1149. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  1150. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  1151. pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
  1152. pPrinterList->Add(pEle);
  1153. }
  1154. }
  1155. }
  1156. else if (name == _T("setting_is_auto_start"))
  1157. {
  1158. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_start")));
  1159. if (box->IsSelected())
  1160. {
  1161. CSetting::GetInstance()->SetParam("setting_is_auto_start", "0");
  1162. CSystem::cancelAutoStart();
  1163. }
  1164. else
  1165. {
  1166. CSetting::GetInstance()->SetParam("setting_is_auto_start", "1");
  1167. CSystem::autostart();
  1168. }
  1169. }
  1170. else if (name == _T("setting_is_auto_login"))
  1171. {
  1172. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_login")));
  1173. if (box->IsSelected())
  1174. {
  1175. CSetting::GetInstance()->SetParam("setting_is_auto_login", "0");
  1176. }
  1177. else
  1178. {
  1179. CSetting::GetInstance()->SetParam("setting_is_auto_login", "1");
  1180. }
  1181. }
  1182. else if (name == _T("setting_is_close_min"))
  1183. {
  1184. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_close_min")));
  1185. if (box->IsSelected())
  1186. {
  1187. CSetting::GetInstance()->SetParam("setting_is_close_min", "0");
  1188. }
  1189. else
  1190. {
  1191. CSetting::GetInstance()->SetParam("setting_is_close_min", "1");
  1192. }
  1193. }
  1194. else if (name == _T("setting_chufang_printer_item_update_btn"))
  1195. {
  1196. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1197. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
  1198. wstring date = pEle->GetCustomAttribute(L"date");
  1199. CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(2);
  1200. pChufangFrame->SetPrinterDate(CLewaimaiString::UnicodeToUTF8(date));
  1201. if (pChufangFrame != NULL)
  1202. {
  1203. pChufangFrame->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
  1204. pChufangFrame->SetIcon(IDI_ICON_DUILIB);
  1205. pChufangFrame->CenterWindow();
  1206. UINT ret = pChufangFrame->ShowModal();
  1207. if (ret == IDOK)
  1208. {
  1209. //这个时候是点击保存返回了,厨房打印机的数据已经建立好了,这个时候刷新表格的显示
  1210. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1211. ChufangPrinter newPrinter = CSetting::GetInstance()->GetChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
  1212. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  1213. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  1214. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  1215. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  1216. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  1217. if (newPrinter.guige == "58")
  1218. {
  1219. pGuige->SetText(L"58mm");
  1220. }
  1221. else
  1222. {
  1223. pGuige->SetText(L"80mm");
  1224. }
  1225. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  1226. if (newPrinter.fendan == "1")
  1227. {
  1228. pFendan->SetText(L"是");
  1229. }
  1230. else
  1231. {
  1232. pFendan->SetText(L"否");
  1233. }
  1234. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  1235. if (newPrinter.fenlei == "1")
  1236. {
  1237. pFenlei->SetText(L"是");
  1238. }
  1239. else
  1240. {
  1241. pFenlei->SetText(L"否");
  1242. }
  1243. std::string foodtypeNames = "";
  1244. std::string foodtype_ids = newPrinter.fenlei_ids;
  1245. std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  1246. CSqlite3 sqlite;
  1247. for (std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
  1248. {
  1249. CFoodType foodtype;
  1250. bool ret = sqlite.GetFoodtypeById(*it, foodtype);
  1251. if (!ret)
  1252. {
  1253. continue;
  1254. }
  1255. std::string name = foodtype.name;
  1256. std::wstring ws_name = CLewaimaiString::UTF8ToUnicode(name);
  1257. foodtypeNames += name + " ";
  1258. }
  1259. foodtypeNames = foodtypeNames.substr(0, foodtypeNames.size() - 1);
  1260. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  1261. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  1262. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  1263. }
  1264. }
  1265. }
  1266. else if (name == _T("setting_chufang_printer_item_delete_btn"))
  1267. {
  1268. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1269. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
  1270. wstring date = pEle->GetCustomAttribute(L"date");
  1271. //获得了ID,这个时候从内存和数据库中分别删除对应的记录
  1272. CSetting::GetInstance()->DelChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
  1273. pPrinterList->Remove(pEle);
  1274. }
  1275. else if (name == L"setting_tiaomacheng_saveip")
  1276. {
  1277. CEditUI* wangkou_ip = static_cast<CEditUI*>(this->FindSubControl(_T("setting_tiaomacheng_ip")));
  1278. wstring ip = wangkou_ip->GetText();
  1279. CSetting::GetInstance()->SetParam("setting_tiaomacheng_ip", CLewaimaiString::UnicodeToUTF8(ip));
  1280. }
  1281. else if (name == L"setting_tiaomacheng_tongbushangpin")
  1282. {
  1283. this->StartTongbuBiaoqiancheng();
  1284. }
  1285. else if (name == L"setting_tiaomacheng_tongburejian")
  1286. {
  1287. this->StartTongbuRejian();
  1288. }
  1289. else if (name == L"setting_tiaomacheng_qingkongplu")
  1290. {
  1291. this->StartQiongkongPLU();
  1292. }
  1293. else if (name == _T("setting_logout"))
  1294. {
  1295. //退出登录
  1296. m_pMainWnd->LoginOut(1);
  1297. }
  1298. else if (name == L"setting_tongbu_btn")
  1299. {
  1300. StartTongbu();
  1301. }
  1302. }
  1303. //处理option切换事件,radio事件
  1304. void CSettingPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
  1305. {
  1306. CDuiString name = msg.pSender->GetName();
  1307. //判断设置中心的tab
  1308. if (name == _T("setting_waimai_order_switch"))
  1309. {
  1310. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1311. pControl->SelectItem(0);
  1312. }
  1313. if (name == _T("setting_diannei_order_switch"))
  1314. {
  1315. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1316. pControl->SelectItem(1);
  1317. }
  1318. else if (name == _T("setting_printer_switch"))
  1319. {
  1320. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1321. pControl->SelectItem(2);
  1322. }
  1323. else if (name == _T("setting_biaoqian_printer_switch"))
  1324. {
  1325. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1326. pControl->SelectItem(3);
  1327. }
  1328. else if (name == _T("setting_chufang_printer_switch"))
  1329. {
  1330. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1331. pControl->SelectItem(4);
  1332. }
  1333. else if (name == _T("setting_dianzicheng_switch"))
  1334. {
  1335. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1336. pControl->SelectItem(5);
  1337. }
  1338. else if (name == _T("setting_tiaomacheng_switch"))
  1339. {
  1340. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1341. pControl->SelectItem(6);
  1342. }
  1343. else if (name == _T("setting_xianshi_switch"))
  1344. {
  1345. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1346. pControl->SelectItem(7);
  1347. }
  1348. else if (name == _T("setting_tongbu_switch"))
  1349. {
  1350. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1351. pControl->SelectItem(8);
  1352. CLabelUI* label = static_cast<CLabelUI*>(this->FindSubControl(L"setting_tongbu_result"));
  1353. label->SetVisible(false);
  1354. }
  1355. else if (name == _T("setting_system_switch"))
  1356. {
  1357. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1358. pControl->SelectItem(9);
  1359. }
  1360. else if (name == _T("setting_system_about"))
  1361. {
  1362. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1363. pControl->SelectItem(10);
  1364. }
  1365. else if (name == _T("xianshi_setting_youtu"))
  1366. {
  1367. CSetting::GetInstance()->SetParam("setting_xianshi_is_youtu", "1");
  1368. }
  1369. else if (name == _T("xianshi_setting_wutu"))
  1370. {
  1371. CSetting::GetInstance()->SetParam("setting_xianshi_is_youtu", "0");
  1372. }
  1373. }
  1374. //处理下拉框、radio的切换事件
  1375. void CSettingPageUI::HandleItemSelectMsg(TNotifyUI& msg)
  1376. {
  1377. CDuiString name = msg.pSender->GetName();
  1378. if (name == _T("setting_printer_guige"))
  1379. {
  1380. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_guige")));
  1381. if (com->GetCurSel() == 0)
  1382. {
  1383. CSetting::GetInstance()->SetParam("setting_printer_guige", "58");
  1384. }
  1385. else
  1386. {
  1387. CSetting::GetInstance()->SetParam("setting_printer_guige", "80");
  1388. }
  1389. }
  1390. else if (name == _T("setting_printer_lianshu"))
  1391. {
  1392. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_lianshu")));
  1393. if (com->GetCurSel() == 0)
  1394. {
  1395. CSetting::GetInstance()->SetParam("setting_printer_lianshu", "1");
  1396. }
  1397. else if (com->GetCurSel() == 1)
  1398. {
  1399. CSetting::GetInstance()->SetParam("setting_printer_lianshu", "2");
  1400. }
  1401. else if (com->GetCurSel() == 2)
  1402. {
  1403. CSetting::GetInstance()->SetParam("setting_printer_lianshu", "3");
  1404. }
  1405. else if (com->GetCurSel() == 3)
  1406. {
  1407. CSetting::GetInstance()->SetParam("setting_printer_lianshu", "4");
  1408. }
  1409. }
  1410. else if (name == _T("setting_printer_leixing"))
  1411. {
  1412. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_leixing")));
  1413. CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_usb_layout")));
  1414. CHorizontalLayoutUI* chuankou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_chuankou_layout")));
  1415. CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_wangkou_layout")));
  1416. if (com->GetCurSel() == 0)
  1417. {
  1418. CSetting::GetInstance()->SetParam("setting_printer_leixing", "auto");
  1419. usb_layout->SetVisible(false);
  1420. chuankou_layout->SetVisible(false);
  1421. wangkou_layout->SetVisible(false);
  1422. }
  1423. else if (com->GetCurSel() == 1)
  1424. {
  1425. CSetting::GetInstance()->SetParam("setting_printer_leixing", "usb");
  1426. //显示usb布局
  1427. usb_layout->SetVisible(true);
  1428. chuankou_layout->SetVisible(false);
  1429. wangkou_layout->SetVisible(false);
  1430. //usb下拉框默认选中
  1431. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  1432. com_usb->RemoveAll();
  1433. //数据库中保存的之前的设置
  1434. std::string setting_printer_usb = CSetting::GetInstance()->GetParam("setting_printer_usb");
  1435. std::wstring ws_setting_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_printer_usb);
  1436. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  1437. int i = 0;
  1438. int nSelect = -1;
  1439. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  1440. {
  1441. CListLabelElementUI* elem = new CListLabelElementUI();
  1442. elem->SetText((*it).c_str());
  1443. com_usb->Add(elem);
  1444. if (*it == ws_setting_printer_usb)
  1445. {
  1446. nSelect = i;
  1447. }
  1448. i++;
  1449. }
  1450. com_usb->SetInternVisible(true);
  1451. com_usb->SelectItem(nSelect, false, false);
  1452. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_usb).c_str());
  1453. }
  1454. else if (com->GetCurSel() == 2)
  1455. {
  1456. CSetting::GetInstance()->SetParam("setting_printer_leixing", "bingkou");
  1457. usb_layout->SetVisible(false);
  1458. chuankou_layout->SetVisible(false);
  1459. wangkou_layout->SetVisible(false);
  1460. }
  1461. else if (com->GetCurSel() == 3)
  1462. {
  1463. CSetting::GetInstance()->SetParam("setting_printer_leixing", "chuankou");
  1464. usb_layout->SetVisible(false);
  1465. chuankou_layout->SetVisible(true);
  1466. wangkou_layout->SetVisible(false);
  1467. //串口下拉框默认选中
  1468. CComboUI* com_chuankou = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  1469. com_chuankou->RemoveAll();
  1470. //数据库中保存的之前的设置
  1471. std::string setting_printer_com = CSetting::GetInstance()->GetParam("setting_printer_com");
  1472. std::wstring ws_setting_printer_com = CLewaimaiString::UTF8ToUnicode(setting_printer_com);
  1473. CComHelper helper;
  1474. std::vector<std::wstring> com_devices = helper.getComPort();
  1475. int i = 0;
  1476. int nSelect = -1;
  1477. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  1478. {
  1479. CListLabelElementUI* elem = new CListLabelElementUI();
  1480. elem->SetText((*it).c_str());
  1481. com_chuankou->Add(elem);
  1482. if (*it == ws_setting_printer_com)
  1483. {
  1484. nSelect = i;
  1485. }
  1486. i++;
  1487. }
  1488. com_chuankou->SetInternVisible(true);
  1489. com_chuankou->SelectItem(nSelect, false, false);
  1490. com_chuankou->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_com).c_str());
  1491. }
  1492. else if (com->GetCurSel() == 4)
  1493. {
  1494. CSetting::GetInstance()->SetParam("setting_printer_leixing", "wangkou");
  1495. usb_layout->SetVisible(false);
  1496. chuankou_layout->SetVisible(false);
  1497. wangkou_layout->SetVisible(true);
  1498. std::string setting_printer_wangkou_ip = CSetting::GetInstance()->GetParam("setting_printer_wangkou_ip");
  1499. CEditUI* ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  1500. ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_wangkou_ip).c_str());
  1501. }
  1502. }
  1503. else if (name == _T("setting_printer_usb"))
  1504. {
  1505. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  1506. wstring usb_device = com->GetText();
  1507. CSetting::GetInstance()->SetParam("setting_printer_usb", CLewaimaiString::UnicodeToUTF8(usb_device));
  1508. }
  1509. else if (name == _T("setting_printer_com"))
  1510. {
  1511. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  1512. wstring com_device = com->GetText();
  1513. CSetting::GetInstance()->SetParam("setting_printer_com", CLewaimaiString::UnicodeToUTF8(com_device));
  1514. }
  1515. else if (name == _T("setting_dianzicheng_xinghao"))
  1516. {
  1517. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_xinghao")));
  1518. if (com->GetCurSel() == 0)
  1519. {
  1520. CSetting::GetInstance()->SetParam("setting_dianzicheng_xinghao", "dahua_acs");
  1521. }
  1522. else if (com->GetCurSel() == 1)
  1523. {
  1524. CSetting::GetInstance()->SetParam("setting_dianzicheng_xinghao", "dingjian_os2x");
  1525. }
  1526. CChengzhongWorker::GetInstance()->RestartWork();
  1527. }
  1528. else if (name == _T("setting_dianzicheng_chuankou"))
  1529. {
  1530. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_chuankou")));
  1531. wstring com_device = com->GetText();
  1532. CSetting::GetInstance()->SetParam("setting_dianzicheng_com", CLewaimaiString::UnicodeToUTF8(com_device));
  1533. CChengzhongWorker::GetInstance()->RestartWork();
  1534. }
  1535. else if (name == _T("setting_dianzicheng_botelv"))
  1536. {
  1537. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_botelv")));
  1538. wstring com_device = com->GetText();
  1539. CSetting::GetInstance()->SetParam("setting_dianzicheng_botelv", CLewaimaiString::UnicodeToUTF8(com_device));
  1540. CChengzhongWorker::GetInstance()->RestartWork();
  1541. }
  1542. else if (name == _T("setting_tiaomacheng_geshi"))
  1543. {
  1544. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_geshi")));
  1545. int nSelect = com->GetCurSel();
  1546. CSetting::GetInstance()->SetParam("setting_tiaomacheng_geshi", to_string(nSelect + 1));
  1547. }
  1548. else if (name == _T("setting_tiaomacheng_xinghao"))
  1549. {
  1550. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_xinghao")));
  1551. if (com->GetCurSel() == 0)
  1552. {
  1553. CSetting::GetInstance()->SetParam("setting_tiaomacheng_xinghao", "dahua_tm");
  1554. }
  1555. }
  1556. else if (name == _T("setting_biaoqian_printer_usb"))
  1557. {
  1558. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb")));
  1559. wstring usb_device = com->GetText();;
  1560. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_usb", CLewaimaiString::UnicodeToUTF8(usb_device));
  1561. }
  1562. else if (name == _T("setting_biaoqian_printer_guige"))
  1563. {
  1564. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_guige")));
  1565. if (com->GetCurSel() == 0)
  1566. {
  1567. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "40*30mm");
  1568. }
  1569. else if (com->GetCurSel() == 1)
  1570. {
  1571. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "35*25mm");
  1572. }
  1573. else if (com->GetCurSel() == 2)
  1574. {
  1575. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "30*25mm");
  1576. }
  1577. else if (com->GetCurSel() == 3)
  1578. {
  1579. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "30*20mm");
  1580. }
  1581. else if (com->GetCurSel() == 4)
  1582. {
  1583. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "60*80mm");
  1584. }
  1585. else if (com->GetCurSel() == 5)
  1586. {
  1587. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "80*60mm");
  1588. }
  1589. }
  1590. else if (name == _T("setting_biaoqian_printer_fangxiang"))
  1591. {
  1592. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_fangxiang")));
  1593. if (com->GetCurSel() == 0)
  1594. {
  1595. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_fangxiang", "1");
  1596. }
  1597. else if (com->GetCurSel() == 1)
  1598. {
  1599. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_fangxiang", "0");
  1600. }
  1601. }
  1602. }
  1603. //处理编辑框输入内容改变事件
  1604. void CSettingPageUI::HandleTextChangedMsg(TNotifyUI& msg)
  1605. {
  1606. }
  1607. //处理扫码枪捕捉到的扫码信息
  1608. void CSettingPageUI::HandleTextCapture(std::string content)
  1609. {
  1610. }
  1611. bool CSettingPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
  1612. {
  1613. if (uMsg == WM_SETTING_TONGBU_SUCCESS)
  1614. {
  1615. CLabelUI* label = static_cast<CLabelUI*>(this->FindSubControl(L"setting_tongbu_result"));
  1616. label->SetText(L"同步成功!");
  1617. label->SetVisible(true);
  1618. }
  1619. else if (uMsg == WM_SETTING_TONGBU_FAIL)
  1620. {
  1621. CLabelUI* label = static_cast<CLabelUI*>(this->FindSubControl(L"setting_tongbu_result"));
  1622. label->SetText(m_tongbu_error.c_str());
  1623. label->SetVisible(true);
  1624. }
  1625. return false;
  1626. }
  1627. void CSettingPageUI::StartTongbuBiaoqiancheng()
  1628. {
  1629. std::thread(&CSettingPageUI::HandleTongbuBiaoqiancheng, this).detach();
  1630. }
  1631. void CSettingPageUI::HandleTongbuBiaoqiancheng()
  1632. {
  1633. boost::asio::io_service m_io;
  1634. boost::asio::ip::tcp::socket m_socket(m_io);
  1635. std::string ip = CSetting::GetInstance()->GetParam("setting_tiaomacheng_ip");
  1636. //初始化连接
  1637. try
  1638. {
  1639. boost::asio::ip::tcp::endpoint ep(boost::asio::ip::address::from_string(ip.c_str()), 4001);
  1640. m_socket.connect(ep);
  1641. }
  1642. catch (std::exception& e)
  1643. {
  1644. std::string err = e.what();
  1645. LOG_INFO("条码秤连接失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
  1646. m_errinfo = L"条码秤连接失败,请检查IP设置,IP地址:" + CLewaimaiString::UTF8ToUnicode(ip);
  1647. MessageBoxW(NULL, m_errinfo.c_str(), L"条码秤连接失败", MB_OK);
  1648. return;
  1649. }
  1650. //!0V + 4位PLU + A + 7位商品编码 + 6位数价格(单位分) + 模式(0:称重,1:计件,2:定重) + 000000 + 3位有效期 + 2位店号(01-99)+ 000000000000000 + 2位皮重(00-15)+
  1651. //+ 0000000000000000000000000000000B + 商品名称区位码 + CDE + 换行符
  1652. CSqlite3 sqlite;
  1653. std::vector<CFood> foods = sqlite.GetFoodForTiaomacheng();
  1654. //注意这里商品只能一条一条的同步,不能很多条的命令拼装在一起同步
  1655. for (std::vector<CFood>::iterator it = foods.begin(); it != foods.end(); it++)
  1656. {
  1657. std::string data = "";
  1658. data += "!0V";
  1659. //处理PLU;
  1660. int n_plu = atoi(it->weight_plu_code.c_str());
  1661. if (n_plu < 1)
  1662. {
  1663. //无效的plu
  1664. continue;
  1665. }
  1666. else if (n_plu > 4000)
  1667. {
  1668. //无效的plu
  1669. continue;
  1670. }
  1671. string plu = to_string(n_plu);
  1672. plu = CLewaimaiString::BuZifuLeft(plu, 4 - plu.length(), '0');
  1673. data += plu;
  1674. data += "A";
  1675. //处理商品编码
  1676. int n_bianma = atoi(it->weight_food_code.c_str());
  1677. if (n_bianma < 1)
  1678. {
  1679. //无效的编码
  1680. continue;
  1681. }
  1682. else if (n_bianma > 999999)
  1683. {
  1684. //无效的编码
  1685. continue;
  1686. }
  1687. string bianma = to_string(n_bianma);
  1688. bianma = CLewaimaiString::BuZifuLeft(bianma, 7 - bianma.length(), '0');
  1689. data += bianma;
  1690. //价格
  1691. std::string price = to_string((int)(atof(it->price.c_str()) * 100));
  1692. data += CLewaimaiString::BuZifuLeft(price, 6 - price.length(), '0');
  1693. //模式,称重
  1694. data += '0';
  1695. data += "000000";
  1696. //有效期
  1697. data += "000";
  1698. //店号
  1699. data += "01";
  1700. data += "000000000000000";
  1701. //皮重
  1702. data += "00";
  1703. data += "0000000000000000000000000000000B";
  1704. //商品区位码
  1705. std::string quweima = CLewaimaiString::GetQuweima(CLewaimaiString::UTF8ToUnicode(it->name));
  1706. data += quweima;
  1707. data += "CDE";
  1708. data += 0x0d;
  1709. data += 0x0a;
  1710. try
  1711. {
  1712. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  1713. }
  1714. catch (const std::exception& e)
  1715. {
  1716. LOG_INFO("条码秤发送PLU信息失败,错误信息:" << e.what());
  1717. MessageBoxW(NULL, L"条码秤发送PLU信息失败", L"条码秤发送PLU信息失败", MB_OK);
  1718. m_socket.close();
  1719. return;
  1720. }
  1721. char buf[128] = { 0 };
  1722. boost::system::error_code error;
  1723. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  1724. std::string result = buf;
  1725. LOG_INFO("发送PLU命令成功,返回信息:" << buf);
  1726. }
  1727. m_socket.close();
  1728. }
  1729. void CSettingPageUI::StartTongbuRejian()
  1730. {
  1731. std::thread(&CSettingPageUI::HandleTongbuRejian, this).detach();
  1732. }
  1733. void CSettingPageUI::HandleTongbuRejian()
  1734. {
  1735. boost::asio::io_service m_io;
  1736. boost::asio::ip::tcp::socket m_socket(m_io);
  1737. std::string ip = CSetting::GetInstance()->GetParam("setting_tiaomacheng_ip");
  1738. //初始化连接
  1739. try
  1740. {
  1741. boost::asio::ip::tcp::endpoint ep(boost::asio::ip::address::from_string(ip.c_str()), 4001);
  1742. m_socket.connect(ep);
  1743. }
  1744. catch (std::exception& e)
  1745. {
  1746. std::string err = e.what();
  1747. LOG_INFO("条码秤连接失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
  1748. m_errinfo = L"条码秤连接失败,请检查IP设置,IP地址:" + CLewaimaiString::UTF8ToUnicode(ip);
  1749. MessageBoxW(NULL, m_errinfo.c_str(), L"条码秤连接失败", MB_OK);
  1750. return;
  1751. }
  1752. std::string data = "";
  1753. std::map<int, std::string> pluMap;
  1754. CSqlite3 sqlite;
  1755. std::vector<CFood> foods = sqlite.GetFoodForTiaomacheng();
  1756. for (std::vector<CFood>::iterator it = foods.begin(); it != foods.end(); it++)
  1757. {
  1758. //处理PLU;
  1759. int n_plu = atoi(it->weight_plu_code.c_str());
  1760. if (n_plu < 1)
  1761. {
  1762. //无效的plu
  1763. continue;;
  1764. }
  1765. if (n_plu > 142)
  1766. {
  1767. //也不处理
  1768. continue;
  1769. }
  1770. string plu = to_string(n_plu);
  1771. plu = CLewaimaiString::BuZifuLeft(plu, 4 - plu.length(), '0');
  1772. pluMap[n_plu] = plu;
  1773. }
  1774. //前36个
  1775. data += "!0L00A";
  1776. for (int i = 1; i <= 36; i++)
  1777. {
  1778. std::string s_i = to_string(i);
  1779. std::string buqi_i = CLewaimaiString::BuZifuLeft(s_i, 4 - s_i.length(), '0');
  1780. if (pluMap.find(i) != pluMap.end())
  1781. {
  1782. //说明有这个plu的
  1783. data += pluMap[i];
  1784. }
  1785. else
  1786. {
  1787. //没找到这个plu
  1788. data += buqi_i;
  1789. }
  1790. }
  1791. data += "B";
  1792. data += 0x0d;
  1793. data += 0x0a;
  1794. //37到72
  1795. data += "!0L01A";
  1796. for (int i = 37; i <= 72; i++)
  1797. {
  1798. std::string s_i = to_string(i);
  1799. std::string buqi_i = CLewaimaiString::BuZifuLeft(s_i, 4 - s_i.length(), '0');
  1800. if (pluMap.find(i) != pluMap.end())
  1801. {
  1802. //说明有这个plu的
  1803. data += pluMap[i];
  1804. }
  1805. else
  1806. {
  1807. //没找到这个plu
  1808. data += buqi_i;
  1809. }
  1810. }
  1811. data += "B";
  1812. data += 0x0d;
  1813. data += 0x0a;
  1814. //73到108
  1815. data += "!0L02A";
  1816. for (int i = 73; i <= 108; i++)
  1817. {
  1818. std::string s_i = to_string(i);
  1819. std::string buqi_i = CLewaimaiString::BuZifuLeft(s_i, 4 - s_i.length(), '0');
  1820. if (pluMap.find(i) != pluMap.end())
  1821. {
  1822. //说明有这个plu的
  1823. data += pluMap[i];
  1824. }
  1825. else
  1826. {
  1827. //没找到这个plu
  1828. data += buqi_i;
  1829. }
  1830. }
  1831. data += "B";
  1832. data += 0x0d;
  1833. data += 0x0a;
  1834. //109到142(108+36=144,最后2个空着)
  1835. data += "!0L03A";
  1836. for (int i = 109; i <= 142; i++)
  1837. {
  1838. std::string s_i = to_string(i);
  1839. std::string buqi_i = CLewaimaiString::BuZifuLeft(s_i, 4 - s_i.length(), '0');
  1840. if (pluMap.find(i) != pluMap.end())
  1841. {
  1842. //说明有这个plu的
  1843. data += pluMap[i];
  1844. }
  1845. else
  1846. {
  1847. //没找到这个plu
  1848. data += buqi_i;
  1849. }
  1850. }
  1851. //完了这里要补最后的0
  1852. data += "00000000";
  1853. data += "B";
  1854. data += 0x0d;
  1855. data += 0x0a;
  1856. //网口走这里
  1857. try
  1858. {
  1859. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  1860. }
  1861. catch (const std::exception& e)
  1862. {
  1863. LOG_INFO("条码秤同步热键失败,错误信息:" << e.what());
  1864. MessageBoxW(NULL, L"条码秤同步热键失败", L"条码秤同步热键失败", MB_OK);
  1865. m_socket.close();
  1866. return;
  1867. }
  1868. char buf[128] = { 0 };
  1869. boost::system::error_code error;
  1870. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  1871. std::string result = buf;
  1872. LOG_INFO("条码秤同步热键成功,返回信息:" << buf);
  1873. m_socket.close();
  1874. }
  1875. void CSettingPageUI::StartQiongkongPLU()
  1876. {
  1877. std::thread(&CSettingPageUI::HandleQiongkongPLU, this).detach();
  1878. }
  1879. void CSettingPageUI::HandleQiongkongPLU()
  1880. {
  1881. boost::asio::io_service m_io;
  1882. boost::asio::ip::tcp::socket m_socket(m_io);
  1883. std::string ip = CSetting::GetInstance()->GetParam("setting_tiaomacheng_ip");
  1884. //初始化连接
  1885. try
  1886. {
  1887. boost::asio::ip::tcp::endpoint ep(boost::asio::ip::address::from_string(ip.c_str()), 4001);
  1888. m_socket.connect(ep);
  1889. }
  1890. catch (std::exception& e)
  1891. {
  1892. std::string err = e.what();
  1893. LOG_INFO("条码秤连接失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
  1894. m_errinfo = L"条码秤连接失败,请检查IP设置,IP地址:" + CLewaimaiString::UTF8ToUnicode(ip);
  1895. MessageBoxW(NULL, m_errinfo.c_str(), L"条码秤连接失败", MB_OK);
  1896. return;
  1897. }
  1898. if (1)
  1899. {
  1900. std::string data = "";
  1901. //先发送清空命令
  1902. data += "!0IA";
  1903. data += 0x0d;
  1904. data += 0x0a;
  1905. try
  1906. {
  1907. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  1908. }
  1909. catch (const std::exception& e)
  1910. {
  1911. LOG_INFO("条码秤发送清空PLU失败,错误信息:" << e.what());
  1912. MessageBoxW(NULL, L"条码秤发送清空PLU失败", L"条码秤发送清空PLU失败", MB_OK);
  1913. m_socket.close();
  1914. return;
  1915. }
  1916. char buf[128] = { 0 };
  1917. boost::system::error_code error;
  1918. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  1919. std::string result = buf;
  1920. LOG_INFO("发送清空PLU命令成功,返回信息:" << buf);
  1921. }
  1922. if (1)
  1923. {
  1924. std::string data = "";
  1925. ///再清除记录
  1926. data += "!0HA";
  1927. data += 0x0d;
  1928. data += 0x0a;
  1929. try
  1930. {
  1931. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  1932. }
  1933. catch (const std::exception& e)
  1934. {
  1935. LOG_INFO("条码秤发送清空历史记录失败,错误信息:" << e.what());
  1936. MessageBoxW(NULL, L"条码秤发送清空历史记录失败", L"条码秤发送清空历史记录失败", MB_OK);
  1937. m_socket.close();
  1938. return;
  1939. }
  1940. char buf[128] = { 0 };
  1941. boost::system::error_code error;
  1942. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  1943. std::string result = buf;
  1944. LOG_INFO("发送清空历史记录命令成功,返回信息:" << buf);
  1945. }
  1946. }
  1947. void CSettingPageUI::StartTongbu()
  1948. {
  1949. std::thread(&CSettingPageUI::HandleTongbu, this).detach();
  1950. }
  1951. void CSettingPageUI::HandleTongbu()
  1952. {
  1953. bool ret = CFoodHandle::GetInstance()->InitAllFood();
  1954. if (!ret)
  1955. {
  1956. m_tongbu_error = L"同步商品失败!";
  1957. ::PostMessage(m_pManager->GetPaintWindow(), WM_SETTING_TONGBU_FAIL, 0, 0);
  1958. return;
  1959. }
  1960. //获取店铺信息
  1961. std::wstring errmsg;
  1962. ret = CShopinfo::GetInstance()->UpdateOneShopinfo(errmsg);
  1963. if (!ret)
  1964. {
  1965. m_tongbu_error = errmsg;
  1966. ::PostMessage(m_pManager->GetPaintWindow(), WM_SETTING_TONGBU_FAIL, 0, 0);
  1967. return;
  1968. }
  1969. ::PostMessage(m_pManager->GetPaintWindow(), WM_SETTING_TONGBU_SUCCESS, 0, 0);
  1970. }