CSettingPageUI.cpp 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773
  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 "../tool/CChengzhongWorker.h"
  7. #include <boost/array.hpp>
  8. CSettingPageUI::CSettingPageUI()
  9. {
  10. }
  11. CSettingPageUI::~CSettingPageUI()
  12. {
  13. }
  14. //初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
  15. void CSettingPageUI::InitShow()
  16. {
  17. CLabelUI* version = static_cast<CLabelUI*>(this->FindSubControl(_T("setting_version")));
  18. version->SetText((L"版本号:" + CLewaimaiString::UTF8ToUnicode(CSystem::GetVersion())).c_str());
  19. CCheckBoxUI* box = NULL;
  20. CComboUI* com = NULL;
  21. //外卖订单设置
  22. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_voice")));
  23. if (CSetting::GetParam("setting_is_new_waimai_voice") == "1")
  24. {
  25. box->Selected(true, false);
  26. }
  27. else
  28. {
  29. box->Selected(false, false);
  30. }
  31. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_autoconfirm")));
  32. if (CSetting::GetParam("setting_is_new_waimai_autoconfirm") == "1")
  33. {
  34. box->Selected(true, false);
  35. }
  36. else
  37. {
  38. box->Selected(false, false);
  39. }
  40. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_printer")));
  41. if (CSetting::GetParam("setting_is_new_waimai_printer") == "1")
  42. {
  43. box->Selected(true, false);
  44. }
  45. else
  46. {
  47. box->Selected(false, false);
  48. }
  49. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_biaoqian_printer")));
  50. if (CSetting::GetParam("setting_is_new_waimai_biaoqian_printer") == "1")
  51. {
  52. box->Selected(true, false);
  53. }
  54. else
  55. {
  56. box->Selected(false, false);
  57. }
  58. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_chufang_printer")));
  59. if (CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
  60. {
  61. box->Selected(true, false);
  62. }
  63. else
  64. {
  65. box->Selected(false, false);
  66. }
  67. //店内订单设置
  68. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_voice")));
  69. if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
  70. {
  71. box->Selected(true, false);
  72. }
  73. else
  74. {
  75. box->Selected(false, false);
  76. }
  77. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_printer")));
  78. if (CSetting::GetParam("setting_is_new_diannei_printer") == "1")
  79. {
  80. box->Selected(true, false);
  81. }
  82. else
  83. {
  84. box->Selected(false, false);
  85. }
  86. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_biaoqian_printer")));
  87. if (CSetting::GetParam("setting_is_new_diannei_biaoqian_printer") == "1")
  88. {
  89. box->Selected(true, false);
  90. }
  91. else
  92. {
  93. box->Selected(false, false);
  94. }
  95. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_chufang_printer")));
  96. if (CSetting::GetParam("setting_is_new_diannei_chufang_printer") == "1")
  97. {
  98. box->Selected(true, false);
  99. }
  100. else
  101. {
  102. box->Selected(false, false);
  103. }
  104. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_diannei_xianjin_qianxiang")));
  105. if (CSetting::GetParam("setting_is_diannei_xianjin_qianxiang") == "1")
  106. {
  107. box->Selected(true, false);
  108. }
  109. else
  110. {
  111. box->Selected(false, false);
  112. }
  113. //小票打印
  114. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_guige")));
  115. if (CSetting::GetParam("setting_printer_guige") == "58")
  116. {
  117. com->SetInternVisible(true);
  118. com->SelectItem(0, false, false);
  119. }
  120. else
  121. {
  122. com->SetInternVisible(true);
  123. com->SelectItem(1, false, false);
  124. }
  125. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_lianshu")));
  126. std::string setting_printer_lianshu = CSetting::GetParam("setting_printer_lianshu");
  127. if (setting_printer_lianshu == "1")
  128. {
  129. com->SetInternVisible(true);
  130. com->SelectItem(0, false, false);
  131. com->SetText(L"1联");
  132. }
  133. else if (setting_printer_lianshu == "2")
  134. {
  135. com->SetInternVisible(true);
  136. com->SelectItem(1, false, false);
  137. com->SetText(L"2联");
  138. }
  139. else if (setting_printer_lianshu == "3")
  140. {
  141. com->SetInternVisible(true);
  142. com->SelectItem(2, false, false);
  143. com->SetText(L"3联");
  144. }
  145. else if (setting_printer_lianshu == "4")
  146. {
  147. com->SetInternVisible(true);
  148. com->SelectItem(3, false, false);
  149. com->SetText(L"4联");
  150. }
  151. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_leixing")));
  152. std::string setting_printer_leixing = CSetting::GetParam("setting_printer_leixing");
  153. CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_usb_layout")));
  154. CHorizontalLayoutUI* chuankou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_chuankou_layout")));
  155. CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_wangkou_layout")));
  156. if (setting_printer_leixing == "auto")
  157. {
  158. com->SetInternVisible(true);
  159. com->SelectItem(0, false, false);
  160. com->SetText(L"智能识别模式");
  161. //智能识别模式隐藏这3个
  162. usb_layout->SetVisible(false);
  163. chuankou_layout->SetVisible(false);
  164. wangkou_layout->SetVisible(false);
  165. }
  166. else if (setting_printer_leixing == "usb")
  167. {
  168. com->SetInternVisible(true);
  169. com->SelectItem(1, false, false);
  170. com->SetText(L"usb");
  171. //显示usb布局
  172. usb_layout->SetVisible(true);
  173. chuankou_layout->SetVisible(false);
  174. wangkou_layout->SetVisible(false);
  175. //usb下拉框默认选中
  176. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  177. com_usb->RemoveAll();
  178. //数据库中保存的之前的设置
  179. std::string setting_printer_usb = CSetting::GetParam("setting_printer_usb");
  180. std::wstring ws_setting_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_printer_usb);
  181. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  182. int i = 0;
  183. int nSelect = -1;
  184. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  185. {
  186. CListLabelElementUI* elem = new CListLabelElementUI();
  187. elem->SetText((*it).c_str());
  188. com_usb->Add(elem);
  189. if (*it == ws_setting_printer_usb)
  190. {
  191. nSelect = i;
  192. }
  193. i++;
  194. }
  195. com_usb->SetInternVisible(true);
  196. com_usb->SelectItem(nSelect, false, false);
  197. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_usb).c_str());
  198. }
  199. else if (setting_printer_leixing == "bingkou")
  200. {
  201. com->SetInternVisible(true);
  202. com->SelectItem(2, false, false);
  203. com->SetText(L"并口");
  204. usb_layout->SetVisible(false);
  205. chuankou_layout->SetVisible(false);
  206. wangkou_layout->SetVisible(false);
  207. }
  208. else if (setting_printer_leixing == "chuankou")
  209. {
  210. com->SetInternVisible(true);
  211. com->SelectItem(3, false, false);
  212. com->SetText(L"串口");
  213. usb_layout->SetVisible(false);
  214. chuankou_layout->SetVisible(true);
  215. wangkou_layout->SetVisible(false);
  216. //串口下拉框默认选中
  217. CComboUI* com_chuankou = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  218. com_chuankou->RemoveAll();
  219. //数据库中保存的之前的设置
  220. std::string setting_printer_com = CSetting::GetParam("setting_printer_com");
  221. std::wstring ws_setting_printer_com = CLewaimaiString::UTF8ToUnicode(setting_printer_com);
  222. CComHelper helper;
  223. std::vector<std::wstring> com_devices = helper.getComPort();
  224. int i = 0;
  225. int nSelect = -1;
  226. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  227. {
  228. CListLabelElementUI* elem = new CListLabelElementUI();
  229. elem->SetText((*it).c_str());
  230. com_chuankou->Add(elem);
  231. if (*it == ws_setting_printer_com)
  232. {
  233. nSelect = i;
  234. }
  235. i++;
  236. }
  237. com_chuankou->SetInternVisible(true);
  238. com_chuankou->SelectItem(nSelect, false, false);
  239. com_chuankou->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_com).c_str());
  240. }
  241. else if (setting_printer_leixing == "wangkou")
  242. {
  243. com->SetInternVisible(true);
  244. com->SelectItem(4, false, false);
  245. com->SetText(L"网口");
  246. usb_layout->SetVisible(false);
  247. chuankou_layout->SetVisible(false);
  248. wangkou_layout->SetVisible(true);
  249. std::string setting_printer_wangkou_ip = CSetting::GetParam("setting_printer_wangkou_ip");
  250. CEditUI* ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  251. ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_wangkou_ip).c_str());
  252. }
  253. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_quhuo_big")));
  254. if (CSetting::GetParam("setting_printer_quhuo_big") == "1")
  255. {
  256. box->Selected(true, false);
  257. }
  258. else
  259. {
  260. box->Selected(false, false);
  261. }
  262. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_dingdanhao_big")));
  263. if (CSetting::GetParam("setting_printer_dingdanhao_big") == "1")
  264. {
  265. box->Selected(true, false);
  266. }
  267. else
  268. {
  269. box->Selected(false, false);
  270. }
  271. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_xiadanshijian_big")));
  272. if (CSetting::GetParam("setting_printer_xiadanshijian_big") == "1")
  273. {
  274. box->Selected(true, false);
  275. }
  276. else
  277. {
  278. box->Selected(false, false);
  279. }
  280. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_peisongshijian_big")));
  281. if (CSetting::GetParam("setting_printer_peisongshijian_big") == "1")
  282. {
  283. box->Selected(true, false);
  284. }
  285. else
  286. {
  287. box->Selected(false, false);
  288. }
  289. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_name_big")));
  290. if (CSetting::GetParam("setting_printer_name_big") == "1")
  291. {
  292. box->Selected(true, false);
  293. }
  294. else
  295. {
  296. box->Selected(false, false);
  297. }
  298. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_phone_big")));
  299. if (CSetting::GetParam("setting_printer_phone_big") == "1")
  300. {
  301. box->Selected(true, false);
  302. }
  303. else
  304. {
  305. box->Selected(false, false);
  306. }
  307. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_address_big")));
  308. if (CSetting::GetParam("setting_printer_address_big") == "1")
  309. {
  310. box->Selected(true, false);
  311. }
  312. else
  313. {
  314. box->Selected(false, false);
  315. }
  316. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_shangpin_big")));
  317. if (CSetting::GetParam("setting_printer_shangpin_big") == "1")
  318. {
  319. box->Selected(true, false);
  320. }
  321. else
  322. {
  323. box->Selected(false, false);
  324. }
  325. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_memo_big")));
  326. if (CSetting::GetParam("setting_printer_memo_big") == "1")
  327. {
  328. box->Selected(true, false);
  329. }
  330. else
  331. {
  332. box->Selected(false, false);
  333. }
  334. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_price_big")));
  335. if (CSetting::GetParam("setting_printer_price_big") == "1")
  336. {
  337. box->Selected(true, false);
  338. }
  339. else
  340. {
  341. box->Selected(false, false);
  342. }
  343. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_pay_big")));
  344. if (CSetting::GetParam("setting_printer_pay_big") == "1")
  345. {
  346. box->Selected(true, false);
  347. }
  348. else
  349. {
  350. box->Selected(false, false);
  351. }
  352. //电子秤设置
  353. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_xinghao")));
  354. std::string setting_dianzicheng_xinghao = CSetting::GetParam("setting_dianzicheng_xinghao");
  355. if (setting_dianzicheng_xinghao == "dahua_acs")
  356. {
  357. com->SetInternVisible(true);
  358. com->SelectItem(0, false, false);
  359. com->SetText(L"大华ACS系列");
  360. }
  361. //串口下拉框默认选中
  362. CComboUI* com_dianzicheng = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_chuankou")));
  363. com_dianzicheng->RemoveAll();
  364. //数据库中保存的之前的设置
  365. std::string setting_dianzicheng_com = CSetting::GetParam("setting_dianzicheng_com");
  366. std::wstring ws_setting_dianzicheng_com = CLewaimaiString::UTF8ToUnicode(setting_dianzicheng_com);
  367. CComHelper helper;
  368. std::vector<std::wstring> com_devices = helper.getComPort();
  369. int i = 0;
  370. int nSelect = -1;
  371. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  372. {
  373. CListLabelElementUI* elem = new CListLabelElementUI();
  374. elem->SetText((*it).c_str());
  375. com_dianzicheng->Add(elem);
  376. if (*it == ws_setting_dianzicheng_com)
  377. {
  378. nSelect = i;
  379. }
  380. i++;
  381. }
  382. com_dianzicheng->SetInternVisible(true);
  383. com_dianzicheng->SelectItem(nSelect, false, false);
  384. com_dianzicheng->SetText(CLewaimaiString::UTF8ToUnicode(setting_dianzicheng_com).c_str());
  385. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_botelv")));
  386. std::string setting_dianzicheng_botelv = CSetting::GetParam("setting_dianzicheng_botelv");
  387. if (setting_dianzicheng_botelv == "600")
  388. {
  389. com->SetInternVisible(true);
  390. com->SelectItem(0, false, false);
  391. com->SetText(L"600");
  392. }
  393. else if (setting_dianzicheng_botelv == "1200")
  394. {
  395. com->SetInternVisible(true);
  396. com->SelectItem(1, false, false);
  397. com->SetText(L"1200");
  398. }
  399. else if (setting_dianzicheng_botelv == "2400")
  400. {
  401. com->SetInternVisible(true);
  402. com->SelectItem(2, false, false);
  403. com->SetText(L"2400");
  404. }
  405. else if (setting_dianzicheng_botelv == "4800")
  406. {
  407. com->SetInternVisible(true);
  408. com->SelectItem(3, false, false);
  409. com->SetText(L"4800");
  410. }
  411. else if (setting_dianzicheng_botelv == "9600")
  412. {
  413. com->SetInternVisible(true);
  414. com->SelectItem(4, false, false);
  415. com->SetText(L"9600");
  416. }
  417. else if (setting_dianzicheng_botelv == "19200")
  418. {
  419. com->SetInternVisible(true);
  420. com->SelectItem(5, false, false);
  421. com->SetText(L"19200");
  422. }
  423. else if (setting_dianzicheng_botelv == "38400")
  424. {
  425. com->SetInternVisible(true);
  426. com->SelectItem(6, false, false);
  427. com->SetText(L"38400");
  428. }
  429. //标签秤设置
  430. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_geshi")));
  431. std::string setting_tiaomacheng_geshi = CSetting::GetParam("setting_tiaomacheng_geshi");
  432. if (setting_tiaomacheng_geshi == "1")
  433. {
  434. com->SetInternVisible(true);
  435. com->SelectItem(0, false, false);
  436. com->SetText(L"13位【FWWWWWWEEEEEC】");
  437. }
  438. else if (setting_tiaomacheng_geshi == "2")
  439. {
  440. com->SetInternVisible(true);
  441. com->SelectItem(1, false, false);
  442. com->SetText(L"13位【FWWWWWWNNNNNC】");
  443. }
  444. else if (setting_tiaomacheng_geshi == "3")
  445. {
  446. com->SetInternVisible(true);
  447. com->SelectItem(2, false, false);
  448. com->SetText(L"13位【FFWWWWWEEEEEC】");
  449. }
  450. else if (setting_tiaomacheng_geshi == "4")
  451. {
  452. com->SetInternVisible(true);
  453. com->SelectItem(3, false, false);
  454. com->SetText(L"13位【FFWWWWWNNNNNC】");
  455. }
  456. else if (setting_tiaomacheng_geshi == "5")
  457. {
  458. com->SetInternVisible(true);
  459. com->SelectItem(4, false, false);
  460. com->SetText(L"18位【FWWWWWWEEEEENNNNNC】");
  461. }
  462. else if (setting_tiaomacheng_geshi == "6")
  463. {
  464. com->SetInternVisible(true);
  465. com->SelectItem(5, false, false);
  466. com->SetText(L"18位【FWWWWWWNNNNNEEEEEC】");
  467. }
  468. else if (setting_tiaomacheng_geshi == "7")
  469. {
  470. com->SetInternVisible(true);
  471. com->SelectItem(6, false, false);
  472. com->SetText(L"18位【FFWWWWWEEEEENNNNNC】");
  473. }
  474. else if (setting_tiaomacheng_geshi == "8")
  475. {
  476. com->SetInternVisible(true);
  477. com->SelectItem(6, false, false);
  478. com->SetText(L"18位【FFWWWWWNNNNNEEEEEC】");
  479. }
  480. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_xinghao")));
  481. std::string setting_tiaomacheng_xinghao = CSetting::GetParam("setting_tiaomacheng_xinghao");
  482. if (setting_tiaomacheng_xinghao == "dahua_tm")
  483. {
  484. com->SetInternVisible(true);
  485. com->SelectItem(0, false, false);
  486. com->SetText(L"大华TM系列");
  487. }
  488. std::string setting_tiaomacheng_ip = CSetting::GetParam("setting_tiaomacheng_ip");
  489. CEditUI* tiaoma_ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_tiaomacheng_ip")));
  490. tiaoma_ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_tiaomacheng_ip).c_str());
  491. //系统设置
  492. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_start")));
  493. if (CSetting::GetParam("setting_is_auto_start") == "1")
  494. {
  495. box->Selected(true, false);
  496. }
  497. else
  498. {
  499. box->Selected(false, false);
  500. }
  501. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_login")));
  502. if (CSetting::GetParam("setting_is_auto_login") == "1")
  503. {
  504. box->Selected(true, false);
  505. }
  506. else
  507. {
  508. box->Selected(false, false);
  509. }
  510. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_close_min")));
  511. if (CSetting::GetParam("setting_is_close_min") == "1")
  512. {
  513. box->Selected(true, false);
  514. }
  515. else
  516. {
  517. box->Selected(false, false);
  518. }
  519. //初始化标签打印机的设置
  520. //usb下拉框默认选中
  521. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb")));
  522. com_usb->RemoveAll();
  523. //数据库中保存的之前的设置
  524. std::string setting_biaoqian_printer_usb = CSetting::GetParam("setting_biaoqian_printer_usb");
  525. std::wstring ws_setting_biaoqian_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb);
  526. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  527. i = 0;
  528. nSelect = -1;
  529. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  530. {
  531. CListLabelElementUI* elem = new CListLabelElementUI();
  532. elem->SetText((*it).c_str());
  533. com_usb->Add(elem);
  534. if (*it == ws_setting_biaoqian_printer_usb)
  535. {
  536. nSelect = i;
  537. }
  538. i++;
  539. }
  540. com_usb->SetInternVisible(true);
  541. com_usb->SelectItem(nSelect, false, false);
  542. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb).c_str());
  543. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_guige")));
  544. std::string setting_biaoqian_printer_guige = CSetting::GetParam("setting_biaoqian_printer_guige");
  545. if (setting_biaoqian_printer_guige == "40*30mm")
  546. {
  547. com->SetInternVisible(true);
  548. com->SelectItem(0, false, false);
  549. com->SetText(L"40*30mm");
  550. }
  551. else if (setting_biaoqian_printer_guige == "35*25mm")
  552. {
  553. com->SetInternVisible(true);
  554. com->SelectItem(1, false, false);
  555. com->SetText(L"35*25mm");
  556. }
  557. else if (setting_biaoqian_printer_guige == "30*25mm")
  558. {
  559. com->SetInternVisible(true);
  560. com->SelectItem(2, false, false);
  561. com->SetText(L"30*25mm");
  562. }
  563. else if (setting_biaoqian_printer_guige == "30*20mm")
  564. {
  565. com->SetInternVisible(true);
  566. com->SelectItem(3, false, false);
  567. com->SetText(L"30*20mm");
  568. }
  569. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_fangxiang")));
  570. std::string setting_biaoqian_printer_fangxiang = CSetting::GetParam("setting_biaoqian_printer_fangxiang");
  571. if (setting_biaoqian_printer_fangxiang == "1")
  572. {
  573. com->SetInternVisible(true);
  574. com->SelectItem(0, false, false);
  575. com->SetText(L"正方向");
  576. }
  577. else if (setting_biaoqian_printer_fangxiang == "0")
  578. {
  579. com->SetInternVisible(true);
  580. com->SelectItem(1, false, false);
  581. com->SetText(L"反方向");
  582. }
  583. //这里开始,初始化厨房打印机的设置
  584. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  585. //获取厨房打印机的集合
  586. std::vector<ChufangPrinter> printers = CSetting::getChufangPrints();
  587. for (std::vector<ChufangPrinter>::iterator it = printers.begin(); it != printers.end(); it++)
  588. {
  589. ChufangPrinter newPrinter = *it;
  590. CDialogBuilder builder;
  591. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, m_pManager));
  592. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  593. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  594. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  595. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  596. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  597. if (newPrinter.guige == "58")
  598. {
  599. pGuige->SetText(L"58mm");
  600. }
  601. else
  602. {
  603. pGuige->SetText(L"80mm");
  604. }
  605. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  606. if (newPrinter.fendan == "1")
  607. {
  608. pFendan->SetText(L"是");
  609. }
  610. else
  611. {
  612. pFendan->SetText(L"否");
  613. }
  614. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  615. if (newPrinter.fenlei == "1")
  616. {
  617. pFenlei->SetText(L"是");
  618. }
  619. else
  620. {
  621. pFenlei->SetText(L"否");
  622. }
  623. std::string foodtypeNames = "";
  624. std::string foodtype_ids = newPrinter.fenlei_ids;
  625. //这个是删除掉不存在的type_id之后的
  626. std::string new_foodtype_ids = "";
  627. std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  628. CSqlite3 sqlite;
  629. for (std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
  630. {
  631. CFoodType type;
  632. bool ret = sqlite.GetFoodtypeById((*it), type);
  633. if (!ret)
  634. {
  635. //分类被删掉了
  636. continue;
  637. }
  638. std::string name = type.name;
  639. foodtypeNames += name + CLewaimaiString::UnicodeToUTF8(L"、");
  640. new_foodtype_ids += (*it) + ",";
  641. }
  642. //删掉不存在的type_id,更新内存和数据库
  643. new_foodtype_ids = new_foodtype_ids.substr(0, new_foodtype_ids.length() - 1);
  644. if (new_foodtype_ids.compare(foodtype_ids) != 0)
  645. {
  646. CSetting::UpdateChufangPrinter(newPrinter.date, newPrinter.name, newPrinter.ip, newPrinter.guige, newPrinter.fendan, newPrinter.fenlei, new_foodtype_ids, true);
  647. }
  648. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  649. ws_foodtypeNames = ws_foodtypeNames.substr(0, ws_foodtypeNames.size() - 1);
  650. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  651. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  652. //设置标记属性,用于修改时候匹配
  653. pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
  654. pPrinterList->Add(pEle);
  655. }
  656. //初始化展示设置
  657. CCheckBoxUI* box_youtu = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("xianshi_setting_youtu")));
  658. CCheckBoxUI* box_wutu = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("xianshi_setting_wutu")));
  659. if (CSetting::GetParam("setting_xianshi_is_youtu") == "1")
  660. {
  661. box_youtu->Selected(true, false);
  662. box_wutu->Selected(false, false);
  663. }
  664. else
  665. {
  666. box_youtu->Selected(false, false);
  667. box_wutu->Selected(true, false);
  668. }
  669. }
  670. //处理按钮点击类事件
  671. void CSettingPageUI::HandleClickMsg(TNotifyUI& msg)
  672. {
  673. CDuiString name = msg.pSender->GetName();
  674. //开始处理设置页面的
  675. if (name == _T("setting_is_new_waimai_voice"))
  676. {
  677. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_voice")));
  678. //注意这里的IsSelected如果为true,表示的是点击前为true,而不是点击后为true,所以这里设置状态要反过来
  679. if (box->IsSelected())
  680. {
  681. CSetting::SetParam("setting_is_new_waimai_voice", "0");
  682. }
  683. else
  684. {
  685. CSetting::SetParam("setting_is_new_waimai_voice", "1");
  686. }
  687. }
  688. else if (name == _T("setting_is_new_waimai_autoconfirm"))
  689. {
  690. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_autoconfirm")));
  691. if (box->IsSelected())
  692. {
  693. CSetting::SetParam("setting_is_new_waimai_autoconfirm", "0");
  694. }
  695. else
  696. {
  697. CSetting::SetParam("setting_is_new_waimai_autoconfirm", "1");
  698. }
  699. }
  700. else if (name == _T("setting_is_new_waimai_printer"))
  701. {
  702. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_printer")));
  703. if (box->IsSelected())
  704. {
  705. CSetting::SetParam("setting_is_new_waimai_printer", "0");
  706. }
  707. else
  708. {
  709. CSetting::SetParam("setting_is_new_waimai_printer", "1");
  710. }
  711. }
  712. else if (name == _T("setting_is_new_waimai_biaoqian_printer"))
  713. {
  714. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_biaoqian_printer")));
  715. if (box->IsSelected())
  716. {
  717. CSetting::SetParam("setting_is_new_waimai_biaoqian_printer", "0");
  718. }
  719. else
  720. {
  721. CSetting::SetParam("setting_is_new_waimai_biaoqian_printer", "1");
  722. }
  723. }
  724. else if (name == _T("setting_is_new_waimai_chufang_printer"))
  725. {
  726. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_chufang_printer")));
  727. if (box->IsSelected())
  728. {
  729. CSetting::SetParam("setting_is_new_waimai_chufang_printer", "0");
  730. }
  731. else
  732. {
  733. CSetting::SetParam("setting_is_new_waimai_chufang_printer", "1");
  734. }
  735. }
  736. else if (name == _T("setting_is_new_diannei_voice"))
  737. {
  738. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_voice")));
  739. //注意这里的IsSelected如果为true,表示的是点击前为true,而不是点击后为true,所以这里设置状态要反过来
  740. if (box->IsSelected())
  741. {
  742. CSetting::SetParam("setting_is_new_diannei_voice", "0");
  743. }
  744. else
  745. {
  746. CSetting::SetParam("setting_is_new_diannei_voice", "1");
  747. }
  748. }
  749. else if (name == _T("setting_is_new_diannei_printer"))
  750. {
  751. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_printer")));
  752. if (box->IsSelected())
  753. {
  754. CSetting::SetParam("setting_is_new_diannei_printer", "0");
  755. }
  756. else
  757. {
  758. CSetting::SetParam("setting_is_new_diannei_printer", "1");
  759. }
  760. }
  761. else if (name == _T("setting_is_new_diannei_biaoqian_printer"))
  762. {
  763. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_biaoqian_printer")));
  764. if (box->IsSelected())
  765. {
  766. CSetting::SetParam("setting_is_new_diannei_biaoqian_printer", "0");
  767. }
  768. else
  769. {
  770. CSetting::SetParam("setting_is_new_diannei_biaoqian_printer", "1");
  771. }
  772. }
  773. else if (name == _T("setting_is_new_diannei_chufang_printer"))
  774. {
  775. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_chufang_printer")));
  776. if (box->IsSelected())
  777. {
  778. CSetting::SetParam("setting_is_new_diannei_chufang_printer", "0");
  779. }
  780. else
  781. {
  782. CSetting::SetParam("setting_is_new_diannei_chufang_printer", "1");
  783. }
  784. }
  785. else if (name == _T("setting_is_diannei_xianjin_qianxiang"))
  786. {
  787. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_diannei_xianjin_qianxiang")));
  788. if (box->IsSelected())
  789. {
  790. CSetting::SetParam("setting_is_diannei_xianjin_qianxiang", "0");
  791. }
  792. else
  793. {
  794. CSetting::SetParam("setting_is_diannei_xianjin_qianxiang", "1");
  795. }
  796. }
  797. else if (name == _T("setting_printer_wangkouk_save_btn"))
  798. {
  799. CEditUI* wangkou_ip = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  800. wstring ip = wangkou_ip->GetText();
  801. CSetting::SetParam("setting_printer_wangkou_ip", CLewaimaiString::UnicodeToUTF8(ip));
  802. }
  803. else if (name == _T("setting_printer_quhuo_big"))
  804. {
  805. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_quhuo_big")));
  806. if (box->IsSelected())
  807. {
  808. CSetting::SetParam("setting_printer_quhuo_big", "0");
  809. }
  810. else
  811. {
  812. CSetting::SetParam("setting_printer_quhuo_big", "1");
  813. }
  814. }
  815. else if (name == _T("setting_printer_dingdanhao_big"))
  816. {
  817. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_dingdanhao_big")));
  818. if (box->IsSelected())
  819. {
  820. CSetting::SetParam("setting_printer_dingdanhao_big", "0");
  821. }
  822. else
  823. {
  824. CSetting::SetParam("setting_printer_dingdanhao_big", "1");
  825. }
  826. }
  827. else if (name == _T("setting_printer_xiadanshijian_big"))
  828. {
  829. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_xiadanshijian_big")));
  830. if (box->IsSelected())
  831. {
  832. CSetting::SetParam("setting_printer_xiadanshijian_big", "0");
  833. }
  834. else
  835. {
  836. CSetting::SetParam("setting_printer_xiadanshijian_big", "1");
  837. }
  838. }
  839. else if (name == _T("setting_printer_peisongshijian_big"))
  840. {
  841. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_peisongshijian_big")));
  842. if (box->IsSelected())
  843. {
  844. CSetting::SetParam("setting_printer_peisongshijian_big", "0");
  845. }
  846. else
  847. {
  848. CSetting::SetParam("setting_printer_peisongshijian_big", "1");
  849. }
  850. }
  851. else if (name == _T("setting_printer_name_big"))
  852. {
  853. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_name_big")));
  854. if (box->IsSelected())
  855. {
  856. CSetting::SetParam("setting_printer_name_big", "0");
  857. }
  858. else
  859. {
  860. CSetting::SetParam("setting_printer_name_big", "1");
  861. }
  862. }
  863. else if (name == _T("setting_printer_phone_big"))
  864. {
  865. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_phone_big")));
  866. if (box->IsSelected())
  867. {
  868. CSetting::SetParam("setting_printer_phone_big", "0");
  869. }
  870. else
  871. {
  872. CSetting::SetParam("setting_printer_phone_big", "1");
  873. }
  874. }
  875. else if (name == _T("setting_printer_address_big"))
  876. {
  877. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_address_big")));
  878. if (box->IsSelected())
  879. {
  880. CSetting::SetParam("setting_printer_address_big", "0");
  881. }
  882. else
  883. {
  884. CSetting::SetParam("setting_printer_address_big", "1");
  885. }
  886. }
  887. else if (name == _T("setting_printer_shangpin_big"))
  888. {
  889. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_shangpin_big")));
  890. if (box->IsSelected())
  891. {
  892. CSetting::SetParam("setting_printer_shangpin_big", "0");
  893. }
  894. else
  895. {
  896. CSetting::SetParam("setting_printer_shangpin_big", "1");
  897. }
  898. }
  899. else if (name == _T("setting_printer_memo_big"))
  900. {
  901. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_memo_big")));
  902. if (box->IsSelected())
  903. {
  904. CSetting::SetParam("setting_printer_memo_big", "0");
  905. }
  906. else
  907. {
  908. CSetting::SetParam("setting_printer_memo_big", "1");
  909. }
  910. }
  911. else if (name == _T("setting_printer_price_big"))
  912. {
  913. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_price_big")));
  914. if (box->IsSelected())
  915. {
  916. CSetting::SetParam("setting_printer_price_big", "0");
  917. }
  918. else
  919. {
  920. CSetting::SetParam("setting_printer_price_big", "1");
  921. }
  922. }
  923. else if (name == _T("setting_printer_pay_big"))
  924. {
  925. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_pay_big")));
  926. if (box->IsSelected())
  927. {
  928. CSetting::SetParam("setting_printer_pay_big", "0");
  929. }
  930. else
  931. {
  932. CSetting::SetParam("setting_printer_pay_big", "1");
  933. }
  934. }
  935. else if (name == _T("setting_new_chufang_printer_btn"))
  936. {
  937. CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(1);
  938. if (pChufangFrame != NULL)
  939. {
  940. pChufangFrame->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
  941. pChufangFrame->SetIcon(IDI_ICON_DUILIB);
  942. pChufangFrame->CenterWindow();
  943. UINT ret = pChufangFrame->ShowModal();
  944. if (ret == IDOK)
  945. {
  946. //这个时候是点击保存返回了,厨房打印机的数据已经建立好了,这个时候刷新表格的显示
  947. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  948. //把最后一个厨房打印机取出来
  949. ChufangPrinter newPrinter = CSetting::getLastChufangPrinter();
  950. CDialogBuilder builder;
  951. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, m_pManager));
  952. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  953. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  954. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  955. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  956. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  957. if (newPrinter.guige == "58")
  958. {
  959. pGuige->SetText(L"58mm");
  960. }
  961. else
  962. {
  963. pGuige->SetText(L"80mm");
  964. }
  965. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  966. if (newPrinter.fendan == "1")
  967. {
  968. pFendan->SetText(L"是");
  969. }
  970. else
  971. {
  972. pFendan->SetText(L"否");
  973. }
  974. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  975. if (newPrinter.fenlei == "1")
  976. {
  977. pFenlei->SetText(L"是");
  978. }
  979. else
  980. {
  981. pFenlei->SetText(L"否");
  982. }
  983. std::string foodtypeNames = "";
  984. std::string foodtype_ids = newPrinter.fenlei_ids;
  985. std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  986. CSqlite3 sqlite;
  987. for (std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
  988. {
  989. CFoodType foodtype;
  990. bool ret = sqlite.GetFoodtypeById(*it, foodtype);
  991. if (!ret)
  992. {
  993. continue;
  994. }
  995. std::string name = foodtype.name;
  996. std::wstring ws_name = CLewaimaiString::UTF8ToUnicode(name);
  997. foodtypeNames += name + " ";
  998. }
  999. foodtypeNames = foodtypeNames.substr(0, foodtypeNames.size() - 1);
  1000. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  1001. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  1002. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  1003. pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
  1004. pPrinterList->Add(pEle);
  1005. }
  1006. }
  1007. }
  1008. else if (name == _T("setting_is_auto_start"))
  1009. {
  1010. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_start")));
  1011. if (box->IsSelected())
  1012. {
  1013. CSetting::SetParam("setting_is_auto_start", "0");
  1014. CSystem::cancelAutoStart();
  1015. }
  1016. else
  1017. {
  1018. CSetting::SetParam("setting_is_auto_start", "1");
  1019. CSystem::autostart();
  1020. }
  1021. }
  1022. else if (name == _T("setting_is_auto_login"))
  1023. {
  1024. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_login")));
  1025. if (box->IsSelected())
  1026. {
  1027. CSetting::SetParam("setting_is_auto_login", "0");
  1028. }
  1029. else
  1030. {
  1031. CSetting::SetParam("setting_is_auto_login", "1");
  1032. }
  1033. }
  1034. else if (name == _T("setting_is_close_min"))
  1035. {
  1036. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_close_min")));
  1037. if (box->IsSelected())
  1038. {
  1039. CSetting::SetParam("setting_is_close_min", "0");
  1040. }
  1041. else
  1042. {
  1043. CSetting::SetParam("setting_is_close_min", "1");
  1044. }
  1045. }
  1046. else if (name == _T("setting_chufang_printer_item_update_btn"))
  1047. {
  1048. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1049. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
  1050. wstring date = pEle->GetCustomAttribute(L"date");
  1051. CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(2);
  1052. pChufangFrame->SetPrinterDate(CLewaimaiString::UnicodeToUTF8(date));
  1053. if (pChufangFrame != NULL)
  1054. {
  1055. pChufangFrame->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
  1056. pChufangFrame->SetIcon(IDI_ICON_DUILIB);
  1057. pChufangFrame->CenterWindow();
  1058. UINT ret = pChufangFrame->ShowModal();
  1059. if (ret == IDOK)
  1060. {
  1061. //这个时候是点击保存返回了,厨房打印机的数据已经建立好了,这个时候刷新表格的显示
  1062. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1063. ChufangPrinter newPrinter = CSetting::GetChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
  1064. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  1065. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  1066. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  1067. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  1068. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  1069. if (newPrinter.guige == "58")
  1070. {
  1071. pGuige->SetText(L"58mm");
  1072. }
  1073. else
  1074. {
  1075. pGuige->SetText(L"80mm");
  1076. }
  1077. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  1078. if (newPrinter.fendan == "1")
  1079. {
  1080. pFendan->SetText(L"是");
  1081. }
  1082. else
  1083. {
  1084. pFendan->SetText(L"否");
  1085. }
  1086. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  1087. if (newPrinter.fenlei == "1")
  1088. {
  1089. pFenlei->SetText(L"是");
  1090. }
  1091. else
  1092. {
  1093. pFenlei->SetText(L"否");
  1094. }
  1095. std::string foodtypeNames = "";
  1096. std::string foodtype_ids = newPrinter.fenlei_ids;
  1097. std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  1098. CSqlite3 sqlite;
  1099. for (std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
  1100. {
  1101. CFoodType foodtype;
  1102. bool ret = sqlite.GetFoodtypeById(*it, foodtype);
  1103. if (!ret)
  1104. {
  1105. continue;
  1106. }
  1107. std::string name = foodtype.name;
  1108. std::wstring ws_name = CLewaimaiString::UTF8ToUnicode(name);
  1109. foodtypeNames += name + " ";
  1110. }
  1111. foodtypeNames = foodtypeNames.substr(0, foodtypeNames.size() - 1);
  1112. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  1113. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  1114. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  1115. }
  1116. }
  1117. }
  1118. else if (name == _T("setting_chufang_printer_item_delete_btn"))
  1119. {
  1120. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1121. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
  1122. wstring date = pEle->GetCustomAttribute(L"date");
  1123. //获得了ID,这个时候从内存和数据库中分别删除对应的记录
  1124. CSetting::DelChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
  1125. pPrinterList->Remove(pEle);
  1126. }
  1127. else if (name == L"setting_tiaomacheng_saveip")
  1128. {
  1129. CEditUI* wangkou_ip = static_cast<CEditUI*>(this->FindSubControl(_T("setting_tiaomacheng_ip")));
  1130. wstring ip = wangkou_ip->GetText();
  1131. CSetting::SetParam("setting_tiaomacheng_ip", CLewaimaiString::UnicodeToUTF8(ip));
  1132. }
  1133. else if (name == L"setting_tiaomacheng_tongbushangpin")
  1134. {
  1135. this->StartTongbuBiaoqiancheng();
  1136. }
  1137. else if (name == _T("setting_logout"))
  1138. {
  1139. //退出登录
  1140. m_pMainWnd->LoginOut(1);
  1141. }
  1142. }
  1143. //处理option切换事件,radio事件
  1144. void CSettingPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
  1145. {
  1146. CDuiString name = msg.pSender->GetName();
  1147. //判断设置中心的tab
  1148. if (name == _T("setting_waimai_order_switch"))
  1149. {
  1150. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1151. pControl->SelectItem(0);
  1152. }
  1153. if (name == _T("setting_diannei_order_switch"))
  1154. {
  1155. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1156. pControl->SelectItem(1);
  1157. }
  1158. else if (name == _T("setting_printer_switch"))
  1159. {
  1160. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1161. pControl->SelectItem(2);
  1162. }
  1163. else if (name == _T("setting_biaoqian_printer_switch"))
  1164. {
  1165. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1166. pControl->SelectItem(3);
  1167. }
  1168. else if (name == _T("setting_chufang_printer_switch"))
  1169. {
  1170. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1171. pControl->SelectItem(4);
  1172. }
  1173. else if (name == _T("setting_dianzicheng_switch"))
  1174. {
  1175. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1176. pControl->SelectItem(5);
  1177. }
  1178. else if (name == _T("setting_tiaomacheng_switch"))
  1179. {
  1180. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1181. pControl->SelectItem(6);
  1182. }
  1183. else if (name == _T("setting_xianshi_switch"))
  1184. {
  1185. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1186. pControl->SelectItem(7);
  1187. }
  1188. else if (name == _T("setting_system_switch"))
  1189. {
  1190. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1191. pControl->SelectItem(8);
  1192. }
  1193. else if (name == _T("setting_system_about"))
  1194. {
  1195. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1196. pControl->SelectItem(9);
  1197. }
  1198. else if (name == _T("xianshi_setting_youtu"))
  1199. {
  1200. CSetting::SetParam("setting_xianshi_is_youtu", "1");
  1201. }
  1202. else if (name == _T("xianshi_setting_wutu"))
  1203. {
  1204. CSetting::SetParam("setting_xianshi_is_youtu", "0");
  1205. }
  1206. }
  1207. //处理下拉框、radio的切换事件
  1208. void CSettingPageUI::HandleItemSelectMsg(TNotifyUI& msg)
  1209. {
  1210. CDuiString name = msg.pSender->GetName();
  1211. if (name == _T("setting_printer_guige"))
  1212. {
  1213. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_guige")));
  1214. if (com->GetCurSel() == 0)
  1215. {
  1216. CSetting::SetParam("setting_printer_guige", "58");
  1217. }
  1218. else
  1219. {
  1220. CSetting::SetParam("setting_printer_guige", "80");
  1221. }
  1222. }
  1223. else if (name == _T("setting_printer_lianshu"))
  1224. {
  1225. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_lianshu")));
  1226. if (com->GetCurSel() == 0)
  1227. {
  1228. CSetting::SetParam("setting_printer_lianshu", "1");
  1229. }
  1230. else if (com->GetCurSel() == 1)
  1231. {
  1232. CSetting::SetParam("setting_printer_lianshu", "2");
  1233. }
  1234. else if (com->GetCurSel() == 2)
  1235. {
  1236. CSetting::SetParam("setting_printer_lianshu", "3");
  1237. }
  1238. else if (com->GetCurSel() == 3)
  1239. {
  1240. CSetting::SetParam("setting_printer_lianshu", "4");
  1241. }
  1242. }
  1243. else if (name == _T("setting_printer_leixing"))
  1244. {
  1245. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_leixing")));
  1246. CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_usb_layout")));
  1247. CHorizontalLayoutUI* chuankou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_chuankou_layout")));
  1248. CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_wangkou_layout")));
  1249. if (com->GetCurSel() == 0)
  1250. {
  1251. CSetting::SetParam("setting_printer_leixing", "auto");
  1252. usb_layout->SetVisible(false);
  1253. chuankou_layout->SetVisible(false);
  1254. wangkou_layout->SetVisible(false);
  1255. }
  1256. else if (com->GetCurSel() == 1)
  1257. {
  1258. CSetting::SetParam("setting_printer_leixing", "usb");
  1259. //显示usb布局
  1260. usb_layout->SetVisible(true);
  1261. chuankou_layout->SetVisible(false);
  1262. wangkou_layout->SetVisible(false);
  1263. //usb下拉框默认选中
  1264. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  1265. com_usb->RemoveAll();
  1266. //数据库中保存的之前的设置
  1267. std::string setting_printer_usb = CSetting::GetParam("setting_printer_usb");
  1268. std::wstring ws_setting_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_printer_usb);
  1269. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  1270. int i = 0;
  1271. int nSelect = -1;
  1272. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  1273. {
  1274. CListLabelElementUI* elem = new CListLabelElementUI();
  1275. elem->SetText((*it).c_str());
  1276. com_usb->Add(elem);
  1277. if (*it == ws_setting_printer_usb)
  1278. {
  1279. nSelect = i;
  1280. }
  1281. i++;
  1282. }
  1283. com_usb->SetInternVisible(true);
  1284. com_usb->SelectItem(nSelect, false, false);
  1285. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_usb).c_str());
  1286. }
  1287. else if (com->GetCurSel() == 2)
  1288. {
  1289. CSetting::SetParam("setting_printer_leixing", "bingkou");
  1290. usb_layout->SetVisible(false);
  1291. chuankou_layout->SetVisible(false);
  1292. wangkou_layout->SetVisible(false);
  1293. }
  1294. else if (com->GetCurSel() == 3)
  1295. {
  1296. CSetting::SetParam("setting_printer_leixing", "chuankou");
  1297. usb_layout->SetVisible(false);
  1298. chuankou_layout->SetVisible(true);
  1299. wangkou_layout->SetVisible(false);
  1300. //串口下拉框默认选中
  1301. CComboUI* com_chuankou = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  1302. com_chuankou->RemoveAll();
  1303. //数据库中保存的之前的设置
  1304. std::string setting_printer_com = CSetting::GetParam("setting_printer_com");
  1305. std::wstring ws_setting_printer_com = CLewaimaiString::UTF8ToUnicode(setting_printer_com);
  1306. CComHelper helper;
  1307. std::vector<std::wstring> com_devices = helper.getComPort();
  1308. int i = 0;
  1309. int nSelect = -1;
  1310. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  1311. {
  1312. CListLabelElementUI* elem = new CListLabelElementUI();
  1313. elem->SetText((*it).c_str());
  1314. com_chuankou->Add(elem);
  1315. if (*it == ws_setting_printer_com)
  1316. {
  1317. nSelect = i;
  1318. }
  1319. i++;
  1320. }
  1321. com_chuankou->SetInternVisible(true);
  1322. com_chuankou->SelectItem(nSelect, false, false);
  1323. com_chuankou->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_com).c_str());
  1324. }
  1325. else if (com->GetCurSel() == 4)
  1326. {
  1327. CSetting::SetParam("setting_printer_leixing", "wangkou");
  1328. usb_layout->SetVisible(false);
  1329. chuankou_layout->SetVisible(false);
  1330. wangkou_layout->SetVisible(true);
  1331. std::string setting_printer_wangkou_ip = CSetting::GetParam("setting_printer_wangkou_ip");
  1332. CEditUI* ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  1333. ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_wangkou_ip).c_str());
  1334. }
  1335. }
  1336. else if (name == _T("setting_printer_usb"))
  1337. {
  1338. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  1339. wstring usb_device = com->GetText();
  1340. CSetting::SetParam("setting_printer_usb", CLewaimaiString::UnicodeToUTF8(usb_device));
  1341. }
  1342. else if (name == _T("setting_printer_com"))
  1343. {
  1344. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  1345. wstring com_device = com->GetText();
  1346. CSetting::SetParam("setting_printer_com", CLewaimaiString::UnicodeToUTF8(com_device));
  1347. }
  1348. else if (name == _T("setting_dianzicheng_xinghao"))
  1349. {
  1350. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_xinghao")));
  1351. if (com->GetCurSel() == 0)
  1352. {
  1353. CSetting::SetParam("setting_dianzicheng_xinghao", "dahua_acs");
  1354. }
  1355. CChengzhongWorker::GetInstance()->RestartWork();
  1356. }
  1357. else if (name == _T("setting_dianzicheng_chuankou"))
  1358. {
  1359. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_chuankou")));
  1360. wstring com_device = com->GetText();
  1361. CSetting::SetParam("setting_dianzicheng_com", CLewaimaiString::UnicodeToUTF8(com_device));
  1362. CChengzhongWorker::GetInstance()->RestartWork();
  1363. }
  1364. else if (name == _T("setting_dianzicheng_botelv"))
  1365. {
  1366. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_botelv")));
  1367. wstring com_device = com->GetText();
  1368. CSetting::SetParam("setting_dianzicheng_botelv", CLewaimaiString::UnicodeToUTF8(com_device));
  1369. CChengzhongWorker::GetInstance()->RestartWork();
  1370. }
  1371. else if (name == _T("setting_tiaomacheng_geshi"))
  1372. {
  1373. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_geshi")));
  1374. int nSelect = com->GetCurSel();
  1375. CSetting::SetParam("setting_tiaomacheng_geshi", to_string(nSelect + 1));
  1376. }
  1377. else if (name == _T("setting_tiaomacheng_xinghao"))
  1378. {
  1379. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_xinghao")));
  1380. if (com->GetCurSel() == 0)
  1381. {
  1382. CSetting::SetParam("setting_tiaomacheng_xinghao", "dahua_tm");
  1383. }
  1384. }
  1385. else if (name == _T("setting_biaoqian_printer_usb"))
  1386. {
  1387. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb")));
  1388. wstring usb_device = com->GetText();;
  1389. CSetting::SetParam("setting_biaoqian_printer_usb", CLewaimaiString::UnicodeToUTF8(usb_device));
  1390. }
  1391. else if (name == _T("setting_biaoqian_printer_guige"))
  1392. {
  1393. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_guige")));
  1394. if (com->GetCurSel() == 0)
  1395. {
  1396. CSetting::SetParam("setting_biaoqian_printer_guige", "40*30mm");
  1397. }
  1398. else if (com->GetCurSel() == 1)
  1399. {
  1400. CSetting::SetParam("setting_biaoqian_printer_guige", "35*25mm");
  1401. }
  1402. else if (com->GetCurSel() == 2)
  1403. {
  1404. CSetting::SetParam("setting_biaoqian_printer_guige", "30*25mm");
  1405. }
  1406. else if (com->GetCurSel() == 3)
  1407. {
  1408. CSetting::SetParam("setting_biaoqian_printer_guige", "30*20mm");
  1409. }
  1410. }
  1411. else if (name == _T("setting_biaoqian_printer_fangxiang"))
  1412. {
  1413. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_fangxiang")));
  1414. if (com->GetCurSel() == 0)
  1415. {
  1416. CSetting::SetParam("setting_biaoqian_printer_fangxiang", "1");
  1417. }
  1418. else if (com->GetCurSel() == 1)
  1419. {
  1420. CSetting::SetParam("setting_biaoqian_printer_fangxiang", "0");
  1421. }
  1422. }
  1423. }
  1424. //处理编辑框输入内容改变事件
  1425. void CSettingPageUI::HandleTextChangedMsg(TNotifyUI& msg)
  1426. {
  1427. }
  1428. //处理扫码枪捕捉到的扫码信息
  1429. void CSettingPageUI::HandleTextCapture(std::string content)
  1430. {
  1431. }
  1432. void CSettingPageUI::StartTongbuBiaoqiancheng()
  1433. {
  1434. boost::asio::io_service m_io;
  1435. boost::asio::ip::tcp::socket m_socket(m_io);
  1436. //读取厨房打印机信息
  1437. std::string ip = CSetting::GetParam("setting_tiaomacheng_ip");
  1438. //初始化连接
  1439. try
  1440. {
  1441. boost::asio::ip::tcp::endpoint ep(boost::asio::ip::address::from_string(ip.c_str()), 4001);
  1442. m_socket.connect(ep);
  1443. }
  1444. catch (std::exception& e)
  1445. {
  1446. std::string err = e.what();
  1447. LOG_INFO("厨房网口打印机连接失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
  1448. MessageBoxW(NULL, (L"厨房网口打印机连接失败,IP地址:" + CLewaimaiString::UTF8ToUnicode(ip)).c_str(), L"打印机连接失败", MB_OK);
  1449. //连接失败了,处理下一个厨房打印机
  1450. return;
  1451. }
  1452. //!0V + 4位PLU + A + 7位商品编码 + 6位数价格(单位分) + 模式(0:称重,1:计件,2:定重) + 000000 + 3位有效期 + 2位店号(01-99)+ 000000000000000 + 2位皮重(00-15)+
  1453. //+ 0000000000000000000000000000000B + 商品名称区位码 + CDE + 换行符
  1454. //这个是要发送的数据
  1455. std::string data = "";
  1456. CSqlite3 sqlite;
  1457. /*
  1458. //先发送清空命令
  1459. data += "!0IA";
  1460. data += 0x0d;
  1461. data += 0x0a;
  1462. //data += 0x03;
  1463. data += "!0HA";
  1464. data += 0x0d;
  1465. data += 0x0a;
  1466. //data += 0x03;
  1467. //*/
  1468. for (int i = 1; i <= 1; i++)
  1469. {
  1470. data += "!0V";
  1471. data += "1001";
  1472. data += "A";
  1473. std::string shangpin_bianma = to_string(50000 + i);
  1474. data += CLewaimaiString::BuZifuLeft(shangpin_bianma, 2, '0');
  1475. std::string price = to_string((int)(5.50 * 100));
  1476. data += CLewaimaiString::BuZifuLeft(price, 6 - price.length(), '0');
  1477. data += '0';
  1478. data += "000000";
  1479. //有效期
  1480. data += "000";
  1481. //店号
  1482. data += "01";
  1483. data += "000000000000000";
  1484. data += "00";
  1485. data += "0000000000000000000000000000000B";
  1486. std::string quweima = CLewaimaiString::GetQuweima(L"刘刘1刘abc");
  1487. data += quweima;
  1488. data += "CDE";
  1489. data += 0x0d;
  1490. data += 0x0a;
  1491. //data += 0x03;
  1492. }
  1493. //网口走这里
  1494. try
  1495. {
  1496. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  1497. }
  1498. catch (const std::exception& e)
  1499. {
  1500. LOG_INFO("网口打印机发送消息失败,错误信息:" << e.what());
  1501. }
  1502. boost::array<char, 128> buf;
  1503. boost::system::error_code error;
  1504. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  1505. m_socket.close();
  1506. }