Sale.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use think\App;
  5. use think\facade\Db;
  6. class Sale extends BaseController
  7. {
  8. public $post="";
  9. public function __construct(App $app)
  10. {
  11. parent::__construct($app);
  12. $this->post=$this->request->post();
  13. }
  14. // $str=Db::name('sale_info')->alias('a')->join("order_addr b","b.orderCode=a.orderCode","left")
  15. // ->join("good_stock c","c.wsm_code=a.wsm_code","left")
  16. // ->where(['b.is_del'=>0])->field('b.contactor,b.mobile,b.addr,b.arrive_time,c.good_type_code,c.usable_stock')->insertAll();
  17. //$temp =[];
  18. //$temp['good_type_code']="";
  19. //$temp['usable_stock']=$str['num'];
  20. public function create(){
  21. $token = isset($this->post['token']) && $this->post['token'] !=="" ?trim($this->post['token']):"";
  22. $orderCode=makeNo("CX");
  23. $good_code = $this->post['good_code'] && $this->post['good_code'] !=="" ? trim($this->post['good_code']) :"";
  24. if($good_code==""){
  25. return error_show(1002,"商品code不能为空");
  26. }
  27. $customer_code= $this->post['customer_code'] && $this->post['customer_code'] !=="" ? trim($this->post['customer_code']) :"";
  28. if($customer_code==""){
  29. return error_show(1002,"客户code不能为空");
  30. }
  31. $apply_id =GetUserInfo($token);
  32. if(empty($apply_id)||$apply_id['code']!=0){
  33. return error_show(1002,"申请人数据不存在");
  34. }
  35. $rm= isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : "";
  36. $ri= isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : "";
  37. $good_name=isset($this->post['good_name']) && $this->post['good_name'] !=="" ? trim($this->post['good_name']) :"";
  38. $good_num=isset($this->post['good_num']) && $this->post['good_num'] !=="" ? intval($this->post['good_num']) :"";
  39. $origin_price = isset($this->post['origin_price']) && $this->post['origin_price'] !=="" ? intval($this->post['origin_price']) :"";
  40. $sale_price=isset($this->post['sale_price']) && $this->post['sale_price'] !=="" ? trim($this->post['sale_price']) :"";
  41. $total_price=isset($this->post['total_price']) && $this->post['total_price'] !=="" ? trim($this->post['total_price']) :"";
  42. $post_fee=isset($this->post['post_fee']) && $this->post['post_fee'] !=="" ? trim($this->post['post_fee']) :"";
  43. $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :"";
  44. // $contactor=isset($this->post['contactor']) && $this->post['contactor'] !=="" ?trim($this->post['contactor']) :"";
  45. // if($contactor==""){
  46. // return error_show(1002,"联系人不能为空");
  47. // }
  48. // $mobile = isset($this->post['mobile']) && $this->post['mobile'] !=="" ? intval($this->post['mobile']) :"";
  49. // if($mobile==""){
  50. // return error_show(1002,"联系电话不能为空");
  51. // }
  52. // $customer_code = isset($this->post['customer_code']) && $this->post['customer_code'] !=="" ? intval($this->post['customer_code']) :"";
  53. // $arrive_time=isset($this->post['arrive_time']) && $this->post['arrive_time'] ? $this->post['arrive_time']:date("Y-m-d H:i:s");
  54. // if($arrive_time==""){
  55. // return error_show(1002,"到货日期不能为空");
  56. // }
  57. $va= isset($this->post['order_addr']) && $this->post['order_addr'] !=="" ? $this->post['order_addr']:"";
  58. if($va==""){
  59. return error_show(1002,"参数order_addr不能为空");
  60. }
  61. Db::startTrans();
  62. try {
  63. $data=[
  64. "orderCode"=>$orderCode,
  65. "good_code"=>$good_code,
  66. "customer_code"=>$customer_code,
  67. "good_name"=>$good_name,
  68. "good_num"=>$good_num,
  69. "apply_id"=>$rm,
  70. "apply_name"=>$ri,
  71. "origin_price"=>$origin_price,
  72. "sale_price"=>$sale_price,
  73. "total_price"=>$total_price,
  74. "post_fee"=>$post_fee,
  75. "status"=>$status,
  76. "is_del"=>0,
  77. "addtime"=>date("Y-m-d H:i:s"),
  78. "updatetime"=>date("Y-m-d H:i:s")
  79. ];
  80. $datainfo = Db::name('sale')->insert($data,true);
  81. $vat=[];
  82. if($datainfo>0){
  83. foreach ($va as $value){
  84. $temp=[];
  85. $temp['orderCode']=$orderCode;
  86. $temp['contactor']=$value['contactor'];
  87. $temp['mobile'] = $value['mobile'];
  88. $temp['addr'] = $value['addr'];
  89. $temp['addr_code'] =$value['addr_code'];
  90. $temp['customer_code'] =$customer_code;
  91. $temp['receipt_quantity']=$value['receipt_quantity'];
  92. $temp['post_fee'] =0;
  93. $temp['is_del'] =0;
  94. $temp['addtime'] =date("Y-m-d H:i:s");
  95. $temp['updatetime'] =date("Y-m-d H:i:s");
  96. $temp['arrive_time']=date("Y-m-d H:i:s");
  97. $vat[]=$temp;
  98. }
  99. $vmp = Db::name('order_addr')->insertAll($vat);
  100. if($vmp){
  101. Db::commit();
  102. return error_show(0,"销售订单创建成功");
  103. }
  104. }
  105. Db::rollback();
  106. return error_show(1002,"销售订单创建失败");
  107. }catch(\Exception $e){
  108. Db::rollback();
  109. return error_show(1005,$e->getMessage());
  110. }
  111. }
  112. public function list(){
  113. $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']):"1";
  114. $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']) :"10";
  115. $where[] = ['is_del',"=",0];
  116. $orderCode=isset($this->post['orderCode']) && $this->post['orderCode'] !=="" ? intval($this->post['orderCode']):"";
  117. if($orderCode !==""){
  118. $where[]=['orderCode',"=",$orderCode];
  119. }
  120. $status=isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']):"";
  121. if($status !==""){
  122. $where[]=['orderCode',"=",$status];
  123. }
  124. $count = Db::name('sale')->where($where)->count();
  125. $total = ceil($count/$size);
  126. $page = $page >= $total ? $total : $page;
  127. $list= Db::name('sale')->where($where)->order("addtime desc")->page($page,$size)->select();
  128. return app_show(0,"获取成功",['list'=>$list,'count'=>$count]);
  129. }
  130. public function edit(){
  131. $token = isset($this->post['token']) && $this->post['token'] !=="" ? trim($this->post['token']) :"";
  132. $id = isset($this->post['id']) && $this->post['id'] !=="" ? trim($this->post['id']) :"";
  133. if($id==""){
  134. return error_show(1002,"参数id不能为空");
  135. }
  136. $etid = Db::name("sale")->where(["id"=>$id,"is_del"=>0])->find();
  137. if(empty($etid)){
  138. return error_show(1002,"未找到数据");
  139. }
  140. // $orderCode=isset($this->post['orderCode']) && $this->post['orderCode'] !=="" ? trim($this->post['orderCode']) :"";
  141. // if($orderCode==""){
  142. // return error_show(1002,"销售单code不能为空");
  143. // }
  144. $good_code = isset($this->post['good_code']) && $this->post['good_code'] !=="" ? trim($this->post['good_code']) :"";
  145. if($good_code==""){
  146. return error_show(1002,"商品code不能为空");
  147. }
  148. $customer_code=isset($this->post['customer_code']) && $this->post['customer_code'] !=="" ? intval($this->post['customer_code']):"";
  149. if($customer_code==""){
  150. return error_show(1002,"客户code不能为空");
  151. }
  152. $apply_id =GetUserInfo($token);
  153. if(empty($apply_id)||$apply_id['code']!=0){
  154. return error_show(1002,"申请人数据不存在");
  155. }
  156. $rm= isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : "";
  157. $ri= isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : "";
  158. $good_name=isset($this->post['good_name']) && $this->post['good_name'] !=="" ? trim($this->post['good_name']) :"";
  159. $good_num=isset($this->post['good_num']) && $this->post['good_num'] !=="" ? intval($this->post['good_num']) :"";
  160. $origin_price = isset($this->post['origin_price']) && $this->post['origin_price'] !=="" ? intval($this->post['origin_price']) :"";
  161. $sale_price=isset($this->post['sale_price']) && $this->post['sale_price'] !=="" ? trim($this->post['sale_price']) :"";
  162. $total_price=isset($this->post['total_price']) && $this->post['total_price'] !=="" ? trim($this->post['total_price']) :"";
  163. $post_fee=isset($this->post['post_fee']) && $this->post['post_fee'] !=="" ? trim($this->post['post_fee']) :"";
  164. $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :"";
  165. $vr= isset($this->post['order_addr']) && $this->post['order_addr'] !=="" ? $this->post['order_addr']:"";
  166. if($vr==""){
  167. return error_show(1002,"参数order_addr不能为空");
  168. }
  169. Db::startTrans();
  170. try {
  171. $datn=[
  172. "id"=>$id,
  173. "good_code"=>$good_code,
  174. "customer_code"=>$customer_code,
  175. "good_name"=>$good_name,
  176. "good_num"=>$good_num,
  177. "apply_id"=>$rm,
  178. "apply_name"=>$ri,
  179. "origin_price"=>$origin_price,
  180. "sale_price"=>$sale_price,
  181. "total_price"=>$total_price,
  182. "post_fee"=>$post_fee,
  183. "status"=>$status,
  184. "is_del"=>0,
  185. "updatetime"=>date("Y-m-d H:i:s")
  186. ];
  187. $datninfo = Db::name('sale')->where(['id'=>$id,'is_del'=>0])->save($datn);
  188. //$vat=[];
  189. if($datninfo>0){
  190. foreach ($vr as $value){
  191. $temp=[];
  192. isset($value['id'])&&$value['id']!=="" ? $temp['id'] = $value['id']:'';
  193. $temp['orderCode']=$etid['orderCode'];
  194. $temp['contactor']=$value['contactor'];
  195. $temp['mobile'] = $value['mobile'];
  196. $temp['addr'] = $value['addr'];
  197. $temp['addr_code'] =$value['addr_code'];
  198. $temp['customer_code'] =$customer_code;
  199. $temp['receipt_quantity']=$value['receipt_quantity'];
  200. $temp['post_fee'] =0;
  201. $temp['is_del'] =$value['is_del'];
  202. isset($value['id'])&&$value['id']!=="" ? '' : $temp['addtime'] =date("Y-m-d H:i:s");
  203. $temp['updatetime'] =date("Y-m-d H:i:s");
  204. $temp['arrive_time']=date("Y-m-d H:i:s");
  205. $dat = Db::name('order_addr')->save($temp);
  206. if($dat==false){
  207. Db::rollback();
  208. return error_show(1002,"更新失败");
  209. }
  210. Db::commit();
  211. return error_show(0,"更新成功");
  212. }
  213. }
  214. Db::rollback();
  215. return error_show(1002,"更新失败");
  216. }catch(\Exception $e){
  217. Db::rollback();
  218. return error_show(1005,$e->getMessage());
  219. }
  220. }
  221. public function info(){
  222. $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']):"";
  223. if($id==""){
  224. return error_show(1002,"参数id不能为空");
  225. }
  226. $einfo = Db::name('sale')->alias('a')->join("order_addr b","b.orderCode=a.orderCode","left")
  227. ->where(['a.id'=>$id,'a.is_del'=>0])->field('b.addr,b.contactor,b.mobile,b.arrive_time,a.*')->find();
  228. if(empty($einfo)){
  229. return error_show(1002,"未找到销售订单数据");
  230. }
  231. $fo = Db::name('order_addr')->where(['orderCode'=>$einfo['orderCode']])->select();
  232. $einfo['item'][]=$fo;
  233. if(empty($einfo)){
  234. return error_show(1002,"未找到销售订单数据");
  235. }else{
  236. return app_show(0,"获取成功",$einfo);
  237. }
  238. }
  239. public function del(){
  240. $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
  241. if($id===""){
  242. return error_show(1002,"参数id不能为空");
  243. }
  244. $ed = Db::name('sale')->where(['id'=>$id,'is_del'=>0])->find();
  245. if(empty($ed)){
  246. return error_show(1002,"未找到销售订单数据");
  247. }
  248. $str =Db::name('sale')->update(['id'=>$id,'is_del'=>1,'updatetime'=>date("Y-m-d H:i:s")]);
  249. if($str){
  250. return error_show(0,"删除成功");
  251. }else{
  252. return error_show(1002,"删除失败");
  253. }
  254. }
  255. public function status(){
  256. $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
  257. if($id==""){
  258. return error_show(1002,"参数id不能为空");
  259. }
  260. $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :"";
  261. if($status==""){
  262. return error_show(1002,"订单状态不能为空");
  263. }
  264. $dio = Db::name('sale')->where(['id'=>$id,'is_del'=>0])->find();
  265. if(empty($dio)){
  266. return error_show(1002,"销售单信息未找到");
  267. }
  268. $dio['status']=$status;
  269. $dio['updatetime']=date("Y-m-d H:i:s");
  270. $st = Db::name('sale')->save($dio);
  271. return error_show(0,"订单状态更新成功");
  272. }
  273. }