Out.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <?php
  2. namespace Mshop\Src;
  3. use Dever;
  4. use Mshop\Lib\Core;
  5. class Out extends Core
  6. {
  7. # 获取所有商品列表
  8. public function getGoods()
  9. {
  10. $this->data['data'] = Dever::load('shop/lib/info')->getGoods($this->shop_id, false, '1,2,3');
  11. return $this->data;
  12. }
  13. # 采购订单列表
  14. public function getList()
  15. {
  16. return Dever::load('mshop/lib/out')->set(1,1)->getList($this->shop_id);
  17. }
  18. # 查看订单详情
  19. public function view()
  20. {
  21. $order_id = Dever::input('order_id');
  22. return Dever::load('mshop/lib/out')->set(1,2)->getView($this->shop_id, $order_id);
  23. }
  24. # 下单填写用途信息
  25. public function info()
  26. {
  27. $this->data['user'] = $this->user;
  28. $this->data['type'] = Dever::db('shop/out_order')->config['config_type'];
  29. return $this->data;
  30. }
  31. # 确认订单页面
  32. public function confirm()
  33. {
  34. $this->goods();
  35. return $this->data;
  36. }
  37. # 得到商品和总价
  38. private function goods()
  39. {
  40. $goods_id = Dever::input('goods_id');
  41. if (!$goods_id) {
  42. Dever::alert('请传入商品');
  43. }
  44. $goods_id = explode(',', $goods_id);
  45. $sku_id = Dever::input('price_id');
  46. if ($sku_id) {
  47. $sku_id = explode(',', $sku_id);
  48. }
  49. $num = Dever::input('num');
  50. if (!$num) {
  51. Dever::alert('请传入商品数量');
  52. }
  53. $num = explode(',', $num);
  54. $this->data['price'] = 0;
  55. $this->data['num'] = 0;
  56. $this->data['name'] = array();
  57. # 计算总价格
  58. foreach ($goods_id as $k => $v) {
  59. $s = isset($sku_id[$k]) ? $sku_id[$k] : -1;
  60. $n = isset($num[$k]) ? $num[$k] : 1;
  61. $this->data['list'][$k] = Dever::load('goods/lib/info')->getPayInfo($v, $s);
  62. $this->data['list'][$k]['num'] = $n;
  63. # 2是库存不足
  64. $this->data['list'][$k]['ku_state'] = 1;
  65. # 验证是否有货
  66. $total = Dever::load('shop/lib/info')->checkTotal($n, $v, $this->shop_id, $s);
  67. if ($total <= 0) {
  68. $this->data['list'][$k]['ku_state'] = 2;
  69. $this->data['list'][$k]['buy_num'] = 0;
  70. }
  71. if ($this->data['list'][$k]['ku_state'] == 1) {
  72. $this->data['list'][$k]['buy_num'] = $n;
  73. $this->data['num'] += $n;
  74. $this->data['price'] += $this->data['list'][$k]['price'] * $n;
  75. $this->data['name'][] = $this->data['list'][$k]['name'];
  76. }
  77. }
  78. $this->data['name'] = implode(',', $this->data['name']);
  79. }
  80. # 出库下单
  81. public function action_commit()
  82. {
  83. $info = Dever::input('info');
  84. $type = Dever::input('type', 1);
  85. $this->goods();
  86. return Dever::load('mshop/lib/out')->set(1,1)->action($this->shop_id, $this->data['name'], $this->data['num'], $this->data['list'], $this->data['price'], $this->uid, $type, $info);
  87. }
  88. # 打印
  89. public function printer()
  90. {
  91. $id = Dever::input('printer_id');
  92. if (!$id) {
  93. Dever::alert('请选择打印机');
  94. }
  95. $where['id'] = $id;
  96. $where['shop_id'] = $this->shop_id;
  97. $info = Dever::db('shop/print')->find($where);
  98. if (!$info) {
  99. Dever::alert('请选择打印机');
  100. }
  101. $manage_config = Dever::db('main/manage_config')->find();
  102. $sell_config = Dever::db('main/sell_config')->find();
  103. $main_config = Dever::db('main/config')->find();
  104. $data = $this->view();
  105. $print = Dever::load('mshop/lib/feieyun');
  106. $cdate = date('Y-m-d H:i', $data['cdate']);
  107. $config = Dever::db('shop/out_order')->config;
  108. $status = $config['config_status'][$data['status']];
  109. $out_type = $config['config_type'][$data['out_type']];
  110. $print->hr('-', $main_config['name'])->br();
  111. $print->text('单号:' . $data['order_num'], 'CB')->br();
  112. $print->text('门店名称:' . $this->shop['name']);
  113. $print->text('制 单 人:'.$this->user['name']);
  114. $print->text('制单时间:'.date('Y-m-d H:i:s'));
  115. $print->text('出库时间:'.$cdate);
  116. if ($data && $data['goods']) {
  117. $left = 70;
  118. $right = 30;
  119. $head = array('名称', '数量', $left, $right);
  120. $body = array();
  121. $body_total = array();
  122. $body_total['num'] = 0;
  123. foreach ($data['goods'] as $k => $v) {
  124. $sku = isset($v['info']['sku_name']) ? '-' . str_replace(',', '', $v['info']['sku_name']) : '';
  125. $d = array
  126. (
  127. $v['info']['name'] . $sku,
  128. $v['num'],
  129. $left,
  130. $right
  131. );
  132. $body[] = $d;
  133. $body_total['num'] += $v['num'];
  134. }
  135. $print->table($head, $body, '', 'lr');
  136. $print->right('共'.$body_total['num'].'件商品');
  137. }
  138. $pdf->hr();
  139. $pdf->text('出库类别:' . $out_type);
  140. $pdf->text('原因备注:' . $data['info']);
  141. $pdf->hr();
  142. $print->center('如遇任何问题请致电客服');
  143. $print->center('电话:'.$manage_config['phone']);
  144. $print->center($main_config['worktime']);
  145. $content = $print->getText();
  146. $print->printOrder($info['number'], $content, 1);
  147. return 'ok';
  148. }
  149. }