Purch.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. <?php
  2. namespace app\admin\controller;
  3. use think\App;
  4. use think\facade\Db;
  5. class Purch extends \app\BaseController
  6. {
  7. public $post="";
  8. public function __construct(App $app)
  9. {
  10. parent::__construct($app);
  11. $this->post=$this->request->post();
  12. }
  13. public function list(){
  14. $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']):"1";
  15. $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']):"10";
  16. $where =[['is_del',"=",0]];
  17. $bkcode = isset($this->post['bk_code']) && $this->post['bk_code']!="" ? trim($this->post['bk_code']):"";
  18. if($bkcode!=""){
  19. $where[]=['bkcode',"like", "%{$bkcode}%"];
  20. }
  21. $status = isset($this->post['status']) && $this->post['status']!=="" ? intval($this->post['status']):"";
  22. if($status!==""){
  23. // $where['status'] = $status;
  24. $where[]=['status',"=", $status];
  25. }
  26. $cgdNo = isset($this->post['cgdNo']) && $this->post['cgdNo']!="" ? trim($this->post['cgdNo'])
  27. :"";
  28. if($cgdNo!=""){
  29. //$where['cgdNo'] = Db::Raw("like '%{$cgdNo}%'");
  30. $where[]=['cgdNo',"like", "%{$cgdNo}%"];
  31. }
  32. $apply_name = isset($this->post['apply_name']) && $this->post['apply_name']!="" ? trim($this->post['apply_name']):"";
  33. if($apply_name!=""){
  34. // $where['cgder'] =Db::Raw("like '%{$apply_name}%'");
  35. $where[]=['cgder',"like", "%{$apply_name}%"];
  36. }
  37. $wsm_code = isset($this->post['wsm_code']) && $this->post['wsm_code']!="" ? trim($this->post['wsm_code']):"";
  38. if($wsm_code!=""){
  39. // $where['wsm_code'] = $wsm_code;
  40. $where[]=['wsm_code',"=", $wsm_code];
  41. }
  42. $good_name = isset($this->post['good_name']) && $this->post['good_name']!="" ? trim($this->post['good_name']):"";
  43. if($good_name!=""){
  44. //$where['good_name'] = Db::raw(" like %{$good_name}%");
  45. $where[]=['good_name',"like", "%{$good_name}%"];
  46. }
  47. $good_code = isset($this->post['good_code']) && $this->post['good_code']!="" ? trim($this->post['good_code'])
  48. :"";
  49. if($good_code!=""){
  50. // $where['good_code'] = Db::raw(" like %{$good_code}%");
  51. $where[]=['good_code',"like", "%{$good_code}%"];
  52. }
  53. $supplierNo = isset($this->post['supplierNo']) && $this->post['supplierNo']!="" ? trim($this->post['supplierNo'])
  54. :"";
  55. if($supplierNo!=""){
  56. // $where['good_code'] = Db::raw(" like %{$good_code}%");
  57. $where[]=['supplierNo',"=", $supplierNo];
  58. }
  59. $wsm_supplierNo = isset($this->post['wsm_supplierNo']) && $this->post['wsm_supplierNo']!="" ? trim($this->post['wsm_supplierNo'])
  60. :"";
  61. if($wsm_supplierNo!=""){
  62. $supplier = Db::name("supplier")->where(["code"=>$wsm_supplierNo])->find();
  63. if(empty($supplier)){
  64. return error_show(1004,"未找到供应商信息");
  65. }
  66. $wsmcode = Db::name("warehouse_info")->where([
  67. "is_del"=>0,"supplierNo"=>$supplierNo])->column("wsm_code");
  68. $where[]=['wsm_code',"in", $wsmcode];
  69. }
  70. $start = isset($this->post['start']) && $this->post['start']!="" ?$this->post['start']:"";
  71. if($start!=""){
  72. // $where['addtime'] = Db::raw(" >= '{$start}'");
  73. $where[]=['addtime',">=", $start];
  74. }
  75. $end = isset($this->post['end']) && $this->post['end']!="" ?$this->post['end']:"";
  76. if($end!=""){
  77. $where[]=['addtime',"<=", $end];
  78. }
  79. $last_start = isset($this->post['last_start']) && $this->post['last_start']!="" ?$this->post['last_start']:"";
  80. if($last_start!=""){
  81. //$where['lasttime'] = Db::raw(" >= '{$last_start}'");
  82. $where[]=['lasttime',">=", $last_start];
  83. }
  84. $last_end = isset($this->post['last_end']) && $this->post['last_end']!="" ?$this->post['last_end']:"";
  85. if($last_end!=""){
  86. //$where['lasttime'] = Db::raw(" <= '{$last_end}'");
  87. $where[]=['lasttime',"<=", $last_end];
  88. }
  89. $count=Db::name("purchease_order")->where($where)->count();
  90. $total = ceil($count/$size);
  91. $page = $page >= $total ? $total : $page;
  92. $list = Db::name("purchease_order")->where($where)->page($page,$size)->order("addtime desc")->select();
  93. $data=[];
  94. foreach ($list as $value){
  95. $value['wsm_name']="";
  96. if($value['wsm_code']!=""){
  97. $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
  98. ->where(["a.wsm_code"=>$value['wsm_code']])->field("a.name as wsm_name,b.name,b.code")->find();
  99. $value['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
  100. $value['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
  101. $value['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
  102. }
  103. $inorder= Db::name("purchease_in")->where(['cgdNo'=>$value['cgdNo'],"is_del"=>0])->select();
  104. $value['child']=empty($inorder)? [] : $inorder;
  105. $data[]=$value;
  106. }
  107. return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
  108. }
  109. public function info(){
  110. $cgdNo = isset($this->post['cgdNo']) && $this->post['cgdNo']!="" ?trim($this->post['cgdNo']):"";
  111. if($cgdNo==""){
  112. return error_show(1004,"参数cgdNo 不能为空");
  113. }
  114. $data = Db::name("purchease_order")->where(["cgdNo"=>$cgdNo,"is_del"=>0])->find();
  115. if(empty($data)){
  116. return error_show(1004,"未找到数据");
  117. }
  118. $data['wsm_name']="";
  119. if($data['wsm_code']!=""){
  120. $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
  121. ->where(["a.wsm_code"=>$data['wsm_code']])->field("a.name as wsm_name,b.name,b.code")->find();
  122. $data['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
  123. $data['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
  124. $data['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
  125. $inorder= Db::name("purchease_in")->where(['cgdNo'=>$data['cgdNo'],"is_del"=>0])->select();
  126. $data['child']=empty($inorder)? [] : $inorder;
  127. }
  128. $feed = Db::name("purchease_feedback")->where(['bkcode'=>$data['bkcode'],'is_del'=>0])->find();
  129. $data['feedback'] = [];
  130. if(!empty($feed)){
  131. $feed['wsm_name']="";
  132. if($feed['warehouse']!=""){
  133. $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
  134. ->where(["a.wsm_code"=>$feed['warehouse']])->field("a.name as wsm_name,b.name,b.code")->find();
  135. $feed['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
  136. $feed['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
  137. $feed['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
  138. }
  139. if($feed['supplier']!=""){
  140. $supplie = Db::name("supplier")->where(['code'=>$feed['supplier'],"is_del"=>0])->find();
  141. $feed['supplier_name'] =isset($supplie['name']) ? $supplie['name']:"";
  142. }
  143. $data['feedback'] = $feed;
  144. }
  145. return app_show(0,"获取成功",$data);
  146. }
  147. public function edit(){
  148. $cgdNo = isset($this->post['cgdNo']) && $this->post['cgdNo']!="" ?trim($this->post['cgdNo']):"";
  149. if($cgdNo==""){
  150. return error_show(1004,"参数cgdNo 不能为空");
  151. }
  152. $data = Db::name("purchease_order")->where(["cgdNo"=>$cgdNo,"is_del"=>0])->find();
  153. if(empty($data)){
  154. return error_show(1004,"未找到数据");
  155. }
  156. $wsm_code = isset($this->post['wsm_code'])&&$this->post['wsm_code']!=""? trim($this->post['wsm_code']):"";
  157. if($wsm_code!=""){
  158. $ware = Db::name("warehouse_info")->where(["wsm_code"=>$wsm_code,"is_del"=>0])->find();
  159. if(empty($ware)){
  160. return error_show(1004,"未找到仓库信息");
  161. }
  162. $good = Db::name("good_stock")->where(["wsm_code"=>$wsm_code,"good_type_code"=>$data['good_type_code'],"is_del"=>0])->find();
  163. if(empty($good)){
  164. return error_show(1004,"未找到仓库下商品信息");
  165. }
  166. $data['wsm_code'] = $wsm_code;
  167. }
  168. $cgdid = isset($this->post['cgder_id'])&&$this->post['cgder_id']!=""?intval($this->post['cgder_id']):"";
  169. if($cgdid!=''){
  170. $cgduser = GetInfoById($this->post['token'],["id"=>$cgdid]);
  171. if((!empty($cgduser) && $cgduser['code']!=0) ||empty($cgduser) ){
  172. return error_show($cgduser['code'],$cgduser['message']);
  173. }
  174. $userinfo = $cgduser['data'];
  175. $data['cgder_id'] = $cgdid;
  176. $data['cgder'] = $userinfo['nickname'];
  177. }
  178. $good_num = isset($this->post['good_num'])&&$this->post['good_num']!=""?intval($this->post['good_num']):"";
  179. if($good_num!=""){
  180. $data['good_num'] = $good_num;
  181. }
  182. // $good_price = isset($this->post['good_price'])&&$this->post['good_price']!=""?$this->post['good_price']:"";
  183. // if($good_price!=""){
  184. // $data['good_price'] = $good_price;
  185. // }
  186. // $total_fee = isset($this->post['total_fee'])&&$this->post['total_fee']!=""?$this->post['total_fee']:"";
  187. // if($total_fee!=""){
  188. // $data['total_fee'] = $total_fee;
  189. // }
  190. $pakge_fee = isset($this->post['pakge_fee'])&&$this->post['pakge_fee']!=""?$this->post['pakge_fee']:"";
  191. if($pakge_fee!=""){
  192. $data['pakge_fee'] = $pakge_fee;
  193. }
  194. $cert_fee = isset($this->post['cert_fee'])&&$this->post['cert_fee']!=""?$this->post['cert_fee']:"";
  195. if($cert_fee!=""){
  196. $data['cert_fee'] = $cert_fee;
  197. }
  198. $open_fee = isset($this->post['open_fee'])&&$this->post['open_fee']!=""?$this->post['open_fee']:"";
  199. if($open_fee!=""){
  200. $data['open_fee'] = $open_fee;
  201. }
  202. $delivery_fee = isset($this->post['delivery_fee'])&&$this->post['delivery_fee']!=""?$this->post['delivery_fee']:"";
  203. if($delivery_fee!=""){
  204. $data['delivery_fee'] = $delivery_fee;
  205. }
  206. $mark_fee = isset($this->post['mark_fee'])&&$this->post['mark_fee']!=""?$this->post['mark_fee']:"";
  207. if($mark_fee!=""){
  208. $data['mark_fee'] = $mark_fee;
  209. }
  210. $teach_fee = isset($this->post['teach_fee'])&&$this->post['teach_fee']!=""?$this->post['teach_fee']:"";
  211. if($teach_fee!=""){
  212. $data['teach_fee'] = $teach_fee;
  213. }
  214. $nake_fee = isset($this->post['nake_fee'])&&$this->post['nake_fee']!=""?$this->post['nake_fee']:"";
  215. if($nake_fee!=""){
  216. $data['nake_fee'] = $nake_fee;
  217. }
  218. $weight = isset($this->post['weight'])&&$this->post['weight']!=""?$this->post['weight']:"";
  219. if($weight!=""){
  220. $data['weight'] = $weight;
  221. }
  222. $diff_weight = isset($this->post['diff_weight'])&&$this->post['diff_weight']!=""?$this->post['diff_weight']:"";
  223. if($diff_weight!=""){
  224. $data['diff_weight'] = $diff_weight;
  225. }
  226. $diff_fee = isset($this->post['diff_fee'])&&$this->post['diff_fee']!=""?$this->post['diff_fee']:"";
  227. if($diff_fee!=""){
  228. $data['diff_fee'] = $diff_fee;
  229. }
  230. $supplierNo = isset($this->post['supplierNo'])&&$this->post['supplierNo']!=""?trim($this->post['supplierNo'])
  231. :"";
  232. if($supplierNo!=""){
  233. $supplier =Db::name("supplier")->where(['code'=>$supplierNo])->find();
  234. if(empty($supplier)){
  235. return error_show(1004,"未找到供应商信息");
  236. }
  237. $data['supplierNo'] = $supplierNo;
  238. $data['supplier_name'] = $supplier['name'];
  239. }
  240. $data['good_price'] = round(($data['pakge_fee']+$data['weight']*$data['gold_price']+$data['nake_fee']+$data['mark_fee']+$data['cert_fee']+$data['open_fee']/$data['good_num']
  241. +$data['teach_fee']*$data['weight']+$data['delivery_fee']),2);
  242. $data['total_fee'] = round($data['good_price']*$data['good_num'],2);
  243. $data['updatetime'] =date("Y-m-d H:i:s");
  244. $upd=Db::name("purchease_order")->save($data);
  245. return $upd?app_show(0,"更新成功"):error_show(1004,'更新失败');
  246. }
  247. public function status(){
  248. $cgdNo = isset($this->post['cgdNo']) && $this->post['cgdNo']!="" ?trim($this->post['cgdNo']):"";
  249. if($cgdNo==""){
  250. return error_show(1004,"参数cgdNo 不能为空");
  251. }
  252. $data = Db::name("purchease_order")->where(["cgdNo"=>$cgdNo,"is_del"=>0])->find();
  253. if(empty($data)){
  254. return error_show(1004,"未找到数据");
  255. }
  256. $remark= isset($this->post['remark']) && $this->post['remark']!="" ?trim($this->post['remark']):"";
  257. $status = isset($this->post['status'])&&$this->post['status']!==""? intval($this->post['status']):"";
  258. if($status===""){
  259. return error_show(1004,"参数status 不能为空");
  260. }
  261. if($data['send_status']>1 && $status==0){
  262. return error_show(1004,"采购单发货中无法取消");
  263. }
  264. $data['status'] = $status;
  265. $data['remark'] = $remark;
  266. $data['updatetime'] =date("Y-m-d H:i:s");
  267. $upd=Db::name("purchease_order")->save($data);
  268. return $upd?app_show(0,"更新成功"):error_show(1004,'更新失败');
  269. }
  270. }