CPosPrinter.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. #include "../pch/pch.h"
  2. #include "CPosPrinter.h"
  3. CPosPrinter::CPosPrinter()
  4. {
  5. }
  6. CPosPrinter::~CPosPrinter()
  7. {
  8. }
  9. //完成所有打印一个外卖订单的操作
  10. void CPosPrinter::PrintWaimaiOrder(CWaimaiOrder& order)
  11. {
  12. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_printer") == "1")
  13. {
  14. //执行收银小票打印操作
  15. CPosPrinterData printData;
  16. std::string data = printData.PrintWaimaiOrderShouyin(order);
  17. if (data.length() > 0)
  18. {
  19. CPosPrinterQueue::GetInstance()->AddShouyinPrinter(data);
  20. }
  21. }
  22. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_biaoqian_printer") == "1")
  23. {
  24. //执行标签小票打印操作
  25. CPosPrinterData printData;
  26. std::string data = printData.PrintWaimaiOrderBiaoqian(order);
  27. if (data.length() > 0)
  28. {
  29. CPosPrinterQueue::GetInstance()->AddBiaoqianPrinter(data);
  30. }
  31. }
  32. //判断是否进行自动的厨房打印
  33. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_chufang_printer") == "1")
  34. {
  35. //进行厨房打印
  36. CPosPrinterData printData;
  37. std::vector<ChufangPrinterContent> datas = printData.PrintWaimaiOrderChufang(order);
  38. if (datas.size() > 0)
  39. {
  40. for (std::vector<ChufangPrinterContent>::iterator it = datas.begin(); it != datas.end(); it++)
  41. {
  42. ChufangPrinterContent content = *it;
  43. if (content.data.length() > 0)
  44. {
  45. CPosPrinterQueue::GetInstance()->AddChufangPrinter(content);
  46. }
  47. }
  48. }
  49. }
  50. }
  51. void CPosPrinter::PrintWaimaiOrder(std::string order_id, std::string order_no)
  52. {
  53. CWaimaiOrder order;
  54. bool ret = order.InitData(order_id, order_no);
  55. PrintWaimaiOrder(order);
  56. }
  57. //完成所有打印一个点单订单的操作
  58. void CPosPrinter::PrintDiandanOrder(CDiandanOrder& order)
  59. {
  60. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_printer") == "1")
  61. {
  62. //执行收银小票打印操作
  63. CPosPrinterData printData;
  64. std::string data = printData.PrintDiandanOrderShouyin(order);
  65. if (data.length() > 0)
  66. {
  67. CPosPrinterQueue::GetInstance()->AddShouyinPrinter(data);
  68. }
  69. }
  70. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_biaoqian_printer") == "1")
  71. {
  72. //执行标签小票打印操作
  73. CPosPrinterData printData;
  74. std::string data = printData.PrintDiandanOrderBiaoqian(order);
  75. if (data.length() > 0)
  76. {
  77. CPosPrinterQueue::GetInstance()->AddBiaoqianPrinter(data);
  78. }
  79. }
  80. //判断是否进行自动的厨房打印
  81. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_chufang_printer") == "1")
  82. {
  83. //进行厨房打印
  84. CPosPrinterData printData;
  85. std::vector<ChufangPrinterContent> datas = printData.PrintDiandanOrderChufang(order);
  86. if (datas.size() > 0)
  87. {
  88. for (std::vector<ChufangPrinterContent>::iterator it = datas.begin(); it != datas.end(); it++)
  89. {
  90. ChufangPrinterContent content = *it;
  91. if (content.data.length() > 0)
  92. {
  93. CPosPrinterQueue::GetInstance()->AddChufangPrinter(content);
  94. }
  95. }
  96. }
  97. }
  98. }
  99. void CPosPrinter::PrintDiandanOrder(std::string order_id)
  100. {
  101. CDiandanOrder order;
  102. bool ret = order.InitData(order_id);
  103. PrintDiandanOrder(order);
  104. }
  105. void CPosPrinter::PirntJiaobanOrder(CJiaobaoOrder& order)
  106. {
  107. CPosPrinterData printData;
  108. std::string data = printData.PrintJiaobanOrder(order);
  109. CPosPrinterQueue::GetInstance()->AddShouyinPrinter(data);
  110. }
  111. void CPosPrinter::PrintHuiyuanchongzhiOrder(CHuiyuanchongzhiOrder& order)
  112. {
  113. CPosPrinterData printData;
  114. std::string data = printData.PrintHuiyuanchongzhiOrder(order);
  115. CPosPrinterQueue::GetInstance()->AddShouyinPrinter(data);
  116. }
  117. //打开钱箱
  118. void CPosPrinter::OpenQianxiang()
  119. {
  120. CPosPrinterData printData;
  121. std::string data = printData.GetQianxiangCommand();
  122. CPosPrinterQueue::GetInstance()->AddShouyinPrinter(data);
  123. }
  124. //获取当前电脑上所有的打印usb设备
  125. std::vector<std::wstring> CPosPrinter::getUsbDevices()
  126. {
  127. return CPosPrinterQueue::GetInstance()->getUsbDevices();
  128. }