Resign.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630
  1. <?php
  2. /**
  3. * 备库申请
  4. */
  5. namespace app\admin\controller;
  6. use app\admin\model\ProcessOrder;
  7. use app\BaseController;
  8. use think\facade\Db;
  9. use think\App;
  10. class Resign extends BaseController
  11. {
  12. public $post="";
  13. public function __construct(App $app)
  14. {
  15. parent::__construct($app);
  16. $this->post = $this->request->post();
  17. $token = isset($this->post['token']) ? trim($this->post['token']) : "";
  18. if($token==""){
  19. return error_show(101,'token不能为空');
  20. }
  21. $effetc = VerifyTokens($token);
  22. if(!empty($effetc) && $effetc['code']!=0) {
  23. return error_show($effetc['code'], $effetc['message']);
  24. }
  25. }
  26. public function list(){
  27. $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']):"1";
  28. $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']):"10";
  29. $where =[['is_del',"=",0]];
  30. $bkcode = isset($this->post['bk_code']) && $this->post['bk_code']!="" ? trim($this->post['bk_code']):"";
  31. if($bkcode!=""){
  32. //$where['bk_code'] = $bk_code;
  33. $where[]=['bk_code',"like","%{$bkcode}%"];
  34. }
  35. $good_code = isset($this->post['good_code']) && $this->post['good_code']!="" ? trim($this->post['good_code']):"";
  36. if($good_code!=""){
  37. // $where['good_code'] = $good_code;
  38. $where[]=['good_code',"like","%{$good_code}%"];
  39. }
  40. $good_type_code = isset($this->post['good_type_code']) && $this->post['good_type_code']!="" ? trim($this->post['good_type_code']):"";
  41. if($good_type_code!=""){
  42. // $where['good_type_code'] = $good_type_code;
  43. $where[]=['good_type_code',"like","%{$good_type_code}%"];
  44. }
  45. $wsm_code = isset($this->post['wsm_code']) && $this->post['wsm_code']!="" ? trim($this->post['wsm_code']):"";
  46. if($wsm_code!=""){
  47. //$where['wsm_code'] = $wsm_code;
  48. $where[]=['wsm_code',"=",$wsm_code];
  49. }
  50. $good_name = isset($this->post['good_name']) && $this->post['good_name']!="" ? trim($this->post['good_name']):"";
  51. if($good_name!=""){
  52. // $where['good_name'] = Db::raw(" like '%{$good_name}%'");
  53. $where[]=['good_name',"like","%{$good_name}%"];
  54. }
  55. $apply_name = isset($this->post['apply_name']) && $this->post['apply_name']!="" ? trim($this->post['apply_name']):"";
  56. if($apply_name!=""){
  57. // $where['apply_name'] =Db::Raw("like '%{$apply_name}%'");
  58. $where[]=['apply_name',"like","%{$apply_name}%"];
  59. }
  60. $status = isset($this->post['status']) && $this->post['status']!=="" ? intval($this->post['status']):"";
  61. if($status!==""){
  62. // $where['status'] = $status;
  63. $where[]=['status',"=",$status];
  64. }
  65. $start = isset($this->post['start']) && $this->post['start']!=="" ? $this->post['start']:"";
  66. if($start!==""){
  67. //$where['addtime'] = Db::Raw(">= '{$start}'");
  68. $where[]=['addtime',">=",$start];
  69. }
  70. $end = isset($this->post['end']) && $this->post['end']!=="" ? $this->post['end']:"";
  71. if($end!==""){
  72. // $where['addtime'] = Db::Raw("<= '{$end}'");
  73. $where[]=['addtime',"<=",$end];
  74. }
  75. $count=Db::name("purchease")->where($where)->count();
  76. $total = ceil($count/$size);
  77. $page = $page >= $total ? $total : $page;
  78. $list = Db::name("purchease")->where($where)->page($page,$size)->order("addtime desc")->select();
  79. $data=[];
  80. foreach ($list as $value){
  81. $value['wsm_name']="";
  82. $value['wsm_supplier']="";
  83. $value['wsm_supplierNo']="";
  84. if($value['wsm_code']!=""){
  85. $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
  86. ->where(["a.wsm_code"=>$value['wsm_code']])->field("a.name as wsm_name,b.name,b.code")->find();
  87. $value['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
  88. $value['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
  89. $value['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
  90. }
  91. $data[]=$value;
  92. }
  93. return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
  94. }
  95. public function add(){
  96. $token = isset($this->post['token']) ? trim($this->post['token']) : "";
  97. if($token==""){
  98. return error_show(101,'token不能为空');
  99. }
  100. $good_code = isset($this->post['good_code'])&&$this->post['good_code']!="" ? trim($this->post['good_code']):"";
  101. if($good_code==""){
  102. return error_show(1002,'参数good_code 不能为空');
  103. }
  104. $good = Db::name("good")->where(['good_code'=>$good_code,'is_del'=>0])->find();
  105. if(empty($good)){
  106. return error_show(1002,'未找到商品数据');
  107. }
  108. $good_type_code = isset($this->post['good_type_code'])&&$this->post['good_type_code']!="" ? trim($this->post['good_type_code'])
  109. :"";
  110. if($good_type_code!==""){
  111. $good_type= Db::name("good_type")->where(['good_code'=>$good_code,'is_del'=>0,'type_code'=>$good_type_code])
  112. ->find();
  113. if(empty($good_type)){
  114. return error_show(1002,'未找到商品属性数据');
  115. }
  116. }
  117. $good_num = isset($this->post['good_num'])&&$this->post['good_num']!=="" ? intval($this->post['good_num']) :"";
  118. if($good_num==''){
  119. return error_show(1002,'参数good_num 不能为空或零');
  120. }
  121. $wsm_code = isset($this->post['wsm_code'])&&$this->post['wsm_code']!="" ? trim($this->post['wsm_code']):"";
  122. if($wsm_code==""){
  123. return error_show(1002,'参数wsm_code 不能为空');
  124. }
  125. $wsminfo = Db::name("warehouse_info")->where(['wsm_code'=>$wsm_code,"is_del"=>0])->find();
  126. if(empty($wsminfo)){
  127. return error_show(1002,'未找到仓库数据');
  128. }
  129. $lastime = isset($this->post['lastime'])&&$this->post['lastime']!="" ? $this->post['lastime']:"";
  130. if($lastime==""){
  131. return error_show(1002,'参数lastime 不能为空');
  132. }
  133. $data = GetUserInfo($token);
  134. if((!empty($data) && $data['code']!=0) ||empty($data) ){
  135. return error_show($data['code'],$data['message']);
  136. }
  137. $userinfo = $data['data'];
  138. $bk_code=makeNo("BK");
  139. $info = [
  140. "good_code"=>$good_code,
  141. "good_name"=>$good['good_name'],
  142. "good_num"=>$good_num,
  143. "good_type_code"=>$good_type_code,
  144. "wsm_code"=>$wsm_code,
  145. "lasttime"=>$lastime,
  146. "addtime"=>date("Y-m-d H:i:s"),
  147. "updatetime"=>date("Y-m-d H:i:s"),
  148. "apply_id"=>$userinfo['id'],
  149. "apply_name"=>$userinfo['nickname'],
  150. "bk_code"=>$bk_code
  151. ];
  152. $in = Db::name("purchease")->insert($info);
  153. if($in){
  154. $order=["order_type"=>'BHD',"order_code"=>$bk_code,"order_status"=>0];
  155. ProcessOrder::AddProcess($token,$order);
  156. return app_show(0,"新建成功",['bk_code'=>$bk_code]);
  157. }else{
  158. return error_show(1005,"新建失败");
  159. }
  160. }
  161. /**
  162. * @return \think\response\Json|void
  163. * @throws \think\db\exception\DataNotFoundException
  164. * @throws \think\db\exception\DbException
  165. * @throws \think\db\exception\ModelNotFoundException
  166. */
  167. public function copy(){
  168. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  169. if($id==""){
  170. return error_show(1001,'id不能为空');
  171. }
  172. $info = Db::name("purchease")->where(["id"=>$id,"is_del"=>0])->find();
  173. if(empty($info)){
  174. return error_show(1002,'未找到数据');
  175. }
  176. $data = GetUserInfo($this->post['token']);
  177. if((!empty($data) && $data['code']!=0) ||empty($data) ){
  178. return error_show($data['code'],$data['message']);
  179. }
  180. $userinfo = $data['data'];
  181. $bk_code=makeNo("BK");
  182. $info['bk_code']=$bk_code;
  183. $info['status']=0;
  184. $info['addtime']=date("Y-m-d H:i:s");
  185. $info['updatetime']=date("Y-m-d H:i:s");
  186. $info['apply_id']=$userinfo['id'];
  187. $info['apply_name']=$userinfo['nickname'];
  188. unset($info['id']);
  189. $in = Db::name("purchease")->insert($info);
  190. if($in){
  191. $order=["order_type"=>'BHD',"order_code"=>$bk_code,"order_status"=>0];
  192. ProcessOrder::AddProcess($this->post['token'] ,$order);
  193. return app_show(0,"新建成功",['bk_code'=>$bk_code]);
  194. }else{
  195. return error_show(1005,"新建失败");
  196. }
  197. }
  198. /**
  199. * @return \think\response\Json|void
  200. * @throws \think\db\exception\DataNotFoundException
  201. * @throws \think\db\exception\DbException
  202. * @throws \think\db\exception\ModelNotFoundException
  203. */
  204. public function info(){
  205. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  206. if($id==""){
  207. return error_show(1001,'id不能为空');
  208. }
  209. $info = Db::name("purchease")->where(["id"=>$id,"is_del"=>0])->find();
  210. if(empty($info)){
  211. return error_show(1002,'未找到数据');
  212. }
  213. $goon = Db::name('good')->where(['good_code'=>$info['good_code']])->field("cat_id")->find();
  214. if(empty($goon)){
  215. return error_show(1002,"未找到商品数据");
  216. }
  217. $int= isset($goon['cat_id']) && $goon['cat_id'] !=0 ? made($goon['cat_id']):[];
  218. $info['wsm_name']="";
  219. if($info['wsm_code']!=""){
  220. $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
  221. ->where(["a.wsm_code"=>$info['wsm_code']])->field("a.name as wsm_name,b.name,b.code")->find();
  222. $info['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
  223. $info['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
  224. $info['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
  225. }
  226. $feed = Db::name("purchease_feedback")->where(['bkcode'=>$info['bk_code'],'is_del'=>0])->find();
  227. $info['feedback'] = [];
  228. if(!empty($feed)){
  229. $feed['wsm_name']="";
  230. if($feed['warehouse']!=""){
  231. $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
  232. ->where(["a.wsm_code"=>$feed['warehouse']])->field("a.name as wsm_name,b.name,b.code")->find();
  233. $feed['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
  234. $feed['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
  235. $feed['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
  236. }
  237. if($feed['supplier']!=""){
  238. $supplie = Db::name("supplier")->where(['code'=>$feed['supplier'],"is_del"=>0])->find();
  239. $feed['supplier_name'] =isset($supplie['name']) ? $supplie['name']:"";
  240. }
  241. $info['feedback'] = $feed;
  242. }
  243. $info['can']=$int;
  244. return app_show(0,"获取成功",$info);
  245. }
  246. public function edit(){
  247. $token = isset($this->post['token']) ? trim($this->post['token']) : "";
  248. if($token==""){
  249. return error_show(101,'token不能为空');
  250. }
  251. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  252. if($id==""){
  253. return error_show(1001,'id不能为空');
  254. }
  255. $info = Db::name("purchease")->where(["id"=>$id,"is_del"=>0])->find();
  256. if(empty($info)){
  257. return error_show(1002,'未找到数据');
  258. }
  259. $good_code = isset($this->post['good_code'])&&$this->post['good_code']!="" ? trim($this->post['good_code']):"";
  260. if($good_code==""){
  261. return error_show(1002,'参数good_code 不能为空');
  262. }
  263. $good = Db::name("good")->where(['good_code'=>$good_code,'is_del'=>0])->find();
  264. if(empty($good)){
  265. return error_show(1002,'未找到商品数据');
  266. }
  267. $good_type_code = isset($this->post['good_type_code'])&&$this->post['good_type_code']!="" ? trim($this->post['good_type_code'])
  268. :"";
  269. if($good_type_code!=''){
  270. $good_type= Db::name("good_type")->where(['good_code'=>$good_code,'is_del'=>0,'type_code'=>$good_type_code])
  271. ->find();
  272. if(empty($good_type)){
  273. return error_show(1002,'未找到商品属性数据');
  274. }
  275. }
  276. $good_num = isset($this->post['good_num'])&&$this->post['good_num']!=="" ? intval($this->post['good_num']) :"";
  277. if($good_num==''){
  278. return error_show(1002,'参数good_num 不能为空或零');
  279. }
  280. $wsm_code = isset($this->post['wsm_code'])&&$this->post['wsm_code']!="" ? trim($this->post['wsm_code']):"";
  281. if($wsm_code==""){
  282. return error_show(1002,'参数wsm_code 不能为空');
  283. }
  284. $wsminfo = Db::name("warehouse_info")->where(['wsm_code'=>$wsm_code,"is_del"=>0])->find();
  285. if(empty($wsminfo)){
  286. return error_show(1002,'未找到仓库数据');
  287. }
  288. $lastime = isset($this->post['lastime'])&&$this->post['lastime']!="" ? $this->post['lastime']:"";
  289. if($lastime==""){
  290. return error_show(1002,'参数lastime 不能为空');
  291. }
  292. $data = GetUserInfo($token);
  293. if((!empty($data) && $data['code']!=0) ||empty($data) ){
  294. return error_show($data['code'],$data['message']);
  295. }
  296. $userinfo = $data['data'];
  297. $up = [
  298. "good_code"=>$good_code,
  299. "good_name"=>$good['good_name'],
  300. "good_num"=>$good_num,
  301. "good_type_code"=>$good_type_code,
  302. "wsm_code"=>$wsm_code,
  303. "lasttime"=>$lastime,
  304. "updatetime"=>date("Y-m-d H:i:s"),
  305. "apply_id"=>$userinfo['id'],
  306. "apply_name"=>$userinfo['nickname']
  307. ];
  308. $in = Db::name("purchease")->where($info)->save($up);
  309. if($in){
  310. $order=["order_type"=>'BHD',"order_code"=>$info['bk_code'],"order_status"=>$info['status']];
  311. ProcessOrder::AddProcess($this->post['token'],$order);
  312. return app_show(0,"更新成功",['bk_code'=>$info['bk_code']]);
  313. }else{
  314. return error_show(1005,"更新失败");
  315. }
  316. }
  317. public function delete(){
  318. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  319. if($id==""){
  320. return error_show(1001,'id不能为空');
  321. }
  322. $info = Db::name("purchease")->where(["id"=>$id,"is_del"=>0])->find();
  323. if(empty($info)){
  324. return error_show(1002,'未找到数据');
  325. }
  326. $info['is_del']=1;
  327. $info['updatetime']=date("Y-m-d H:i:s");
  328. $up = Db::name("purchease")->update($info);
  329. return $up ? app_show(0,"删除成功"):error_show(1005,"删除失败");
  330. }
  331. public function status(){
  332. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  333. if($id==""){
  334. return error_show(1001,'id不能为空');
  335. }
  336. $info = Db::name("purchease")->where(["id"=>$id,"is_del"=>0])->find();
  337. if(empty($info)){
  338. return error_show(1002,'未找到数据');
  339. }
  340. $status = isset($this->post['status'])&&$this->post['status']!=='' ? intval($this->post['status']) : "";
  341. if($status===""){
  342. return error_show(1001,'status不能为空');
  343. }
  344. $info['status']= $status;
  345. $info['updatetime']=date("Y-m-d H:i:s");
  346. $up = Db::name("purchease")->update($info);
  347. if($up){
  348. $order=["order_type"=>'BHD',"order_code"=>$info['bk_code'],"order_status"=>$status];
  349. ProcessOrder::AddProcess($this->post['token'],$order);
  350. return app_show(0,"更新成功",['bk_code'=>$info['bk_code']]);
  351. }else{
  352. return error_show(1005,"更新失败");
  353. }
  354. }
  355. public function addFeed(){
  356. $token = isset($this->post['token']) ? trim($this->post['token']) : "";
  357. if($token==""){
  358. return error_show(101,'token不能为空');
  359. }
  360. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  361. if($id==""){
  362. return error_show(1001,'id不能为空');
  363. }
  364. $info = Db::name("purchease")->where(["id"=>$id,"is_del"=>0])->find();
  365. if(empty($info)){
  366. return error_show(1002,'未找到备库数据');
  367. }
  368. if($info['status']!=1){
  369. return error_show(1002,'备库数据状态有误');
  370. }
  371. $num = isset($this->post['num']) && $this->post['num']!=="" ? intval($this->post['num']):"";
  372. if($num==''){
  373. return error_show(1002,'参数num 不能为空或零');
  374. }
  375. $expecttime = isset($this->post['expecttime'])&&$this->post['expecttime']!=''?$this->post['expecttime'] :"";
  376. if($expecttime==''){
  377. return error_show(1002,'参数expecttime 不能为空');
  378. }
  379. $wsm_code = isset($this->post['wsm_code'])&&$this->post['wsm_code']!="" ? trim($this->post['wsm_code']):"";
  380. if($wsm_code==""){
  381. return error_show(1002,'参数wsm_code 不能为空');
  382. }
  383. $wsminfo = Db::name("warehouse_info")->where(['wsm_code'=>$wsm_code,"is_del"=>0])->find();
  384. if(empty($wsminfo)){
  385. return error_show(1002,'未找到仓库数据');
  386. }
  387. $supplierNo = isset($this->post['supplierNo'])&&$this->post['supplierNo']!="" ? trim($this->post['supplierNo']):"";
  388. if($supplierNo==""){
  389. return error_show(1002,'参数supplierNo 不能为空');
  390. }
  391. $supplie = Db::name("supplier")->where(['code'=>$supplierNo,"is_del"=>0])->find();
  392. if(empty($supplie)){
  393. return error_show(1002,'未找到供应商');
  394. }
  395. $good_price = isset($this->post['good_price'])&&$this->post['good_price']!=="" ? $this->post['good_price']:"";
  396. if($good_price===""){
  397. return error_show(1002,'参数good_price 不能为空');
  398. }
  399. $pakge_fee = isset($this->post['pakge_fee'])&&$this->post['pakge_fee']!=="" ? $this->post['pakge_fee']:0;
  400. $cert_fee = isset($this->post['cert_fee'])&&$this->post['cert_fee']!=="" ? $this->post['cert_fee']:0;
  401. $open_fee = isset($this->post['open_fee'])&&$this->post['open_fee']!=="" ? $this->post['open_fee']:0;
  402. $delivery_fee = isset($this->post['delivery_fee'])&&$this->post['delivery_fee']!=="" ? $this->post['delivery_fee']:0;
  403. $mark_fee = isset($this->post['mark_fee'])&&$this->post['mark_fee']!=="" ? $this->post['mark_fee']:0;
  404. $teach_fee = isset($this->post['teach_fee'])&&$this->post['teach_fee']!=="" ? $this->post['teach_fee']:0;
  405. $nake_fee = isset($this->post['nake_fee'])&&$this->post['nake_fee']!=="" ? $this->post['nake_fee']:0;
  406. $demo_fee = isset($this->post['demo_fee'])&&$this->post['demo_fee']!=="" ? $this->post['demo_fee']:0;
  407. $weight = isset($this->post['weight'])&&$this->post['weight']!=="" ? $this->post['weight']:0;
  408. $diff_weight =isset($this->post['diff_weight'])&&$this->post['diff_weight']!=="" ? $this->post['diff_weight']:0;
  409. $diff_price =isset($this->post['diff_price'])&&$this->post['diff_price']!=="" ? $this->post['diff_price']:0;
  410. $remark =isset($this->post['remark'])&&$this->post['remark']!=="" ? $this->post['remark']:'';
  411. $data = GetUserInfo($token);
  412. if((!empty($data) && $data['code']!=0) ||empty($data) ){
  413. return error_show($data['code'],$data['message']);
  414. }
  415. $userinfo = $data['data'];
  416. $data=[
  417. "bkcode"=>$info['bk_code'],
  418. "warehouse"=>$wsm_code,
  419. "num"=>$num,
  420. 'expecttime'=>$expecttime,
  421. 'supplier'=>isset($supplie) && $supplie['code']!=''? $supplie['code']:'',
  422. 'good_price'=>$good_price,
  423. 'pakge_fee'=>$pakge_fee,
  424. 'cert_fee'=>$cert_fee,
  425. 'open_fee'=>$open_fee,
  426. 'mark_fee'=>$mark_fee,
  427. 'teach_fee'=>$teach_fee,
  428. 'nake_fee'=>$nake_fee,
  429. 'demo_fee'=>$demo_fee,
  430. 'delivery_fee'=>$delivery_fee,
  431. 'weight'=>$weight,
  432. 'remark'=>$remark,
  433. 'diff_weight'=>$diff_weight,
  434. 'diff_price'=>$diff_price,
  435. 'purchaser'=>$userinfo['nickname'],
  436. 'purchaser_id'=>$userinfo['id'],
  437. "addtime"=>date("Y-m-d H:i:s"),
  438. "updatetime"=>date("Y-m-d H:i:s")
  439. ];
  440. Db::startTrans();
  441. try{
  442. $in = Db::name('purchease_feedback')->insert($data);
  443. if($in){
  444. $info['status']=2;
  445. $info['addtime']=date("Y-m-d H:i:s");
  446. $ood=Db::name('purchease')->save($info);
  447. if($ood){
  448. $order=["order_type"=>'BHD',"order_code"=>$info['bk_code'],"order_status"=>$info['status']];
  449. ProcessOrder::AddProcess($this->post['token'],$order);
  450. Db::commit();
  451. return app_show(0,"新建成功");
  452. }
  453. }
  454. Db::rollback();
  455. return error_show(1005,"新建失败");
  456. }catch (\Exception $e){
  457. Db::rollback();
  458. return error_show(1005,"新建失败");
  459. }
  460. // return $in ? app_show(0,"新建成功"):error_show(1005,"新建失败");
  461. }
  462. public function delFeed(){
  463. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  464. if($id==""){
  465. return error_show(1001,'id不能为空');
  466. }
  467. $feed = Db::name("purchease_feedback")->where(['id'=>$id,'is_del'=>0])->find();
  468. if(empty($feed)){
  469. return error_show(1004,'未找到数据');
  470. }
  471. if($feed['status']==1){
  472. return error_show(1004,'反馈数据已采用无法删除');
  473. }
  474. $feed['is_del']= 1;
  475. $feed['updatetime']=date("Y-m-d H:i:s");
  476. $up = Db::name("purchease_feedback")->update($feed);
  477. return $up ? app_show(0,"删除成功"):error_show(1005,"删除失败");
  478. }
  479. public function infoFeed(){
  480. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  481. if($id==""){
  482. return error_show(1001,'id不能为空');
  483. }
  484. $info = Db::name("purchease")->where(["id"=>$id,"is_del"=>0])->find();
  485. if(empty($info)){
  486. return error_show(1002,'未找到备库数据');
  487. }
  488. $feed = Db::name("purchease_feedback")->where(['bkcode'=>$info['bk_code'],'is_del'=>0])->find();
  489. if(empty($feed)){
  490. return error_show(1004,'未找到反馈数据');
  491. }
  492. $feed['wsm_name']="";
  493. if($feed['warehouse']!=""){
  494. $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
  495. ->where(["a.wsm_code"=>$feed['warehouse']])->field("a.name as wsm_name,b.name,b.code")->find();
  496. $feed['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
  497. $feed['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
  498. $feed['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
  499. }
  500. if($feed['supplier']!=""){
  501. $supplie = Db::name("supplier")->where(['code'=>$feed['supplier'],"is_del"=>0])->find();
  502. $feed['supplier_name'] =isset($supplie['name']) ? $supplie['name']:"";
  503. }
  504. return app_show(0,"获取成功",$feed);
  505. }
  506. public function changeFeed(){
  507. $id = isset($this->post['id']) ? intval($this->post['id']) : "";
  508. if($id==""){
  509. return error_show(1001,'id不能为空');
  510. }
  511. $feed = Db::name("purchease")->where(['id'=>$id,'is_del'=>0])->find();
  512. if(empty($feed)){
  513. return error_show(1004,'未找到数据');
  514. }
  515. $status = isset($this->post['status'])&& $this->post['status']!=='' ? intval($this->post['status']) : "";
  516. if($status==""){
  517. return error_show(1001,'参数status 不能为空');
  518. }
  519. $remark = isset($this->post['remark'])&& $this->post['remark']!=='' ? trim($this->post['remark']) : "";
  520. Db::startTrans();
  521. try{
  522. $feed['remark']= $remark;
  523. $feed['status']= $status;
  524. $feed['updatetime']=date("Y-m-d H:i:s");
  525. $up = Db::name("purchease")->update($feed);
  526. if($up){
  527. $order=["order_type"=>'BHD',"order_code"=>$feed['bk_code'],"order_status"=>$feed['status']];
  528. ProcessOrder::AddProcess($this->post['token'],$order);
  529. if($status==3){
  530. // $ware = Db::name("warehouse_addr")->where(["wsm_code"=>$feed['warehouse'],"is_del"=>0])->find();
  531. $purse = Db::name("purchease_feedback")->where(['bkcode'=>$feed['bk_code'],"is_del"=>0])->find();
  532. if(empty($purse)){
  533. Db::rollback();
  534. return error_show(1001,'未找到备库反馈数据');
  535. }
  536. $purse['status']=1;
  537. $purse['addtime']=date("Y-m-d H:i:s");
  538. $up = Db::name("purchease_feedback")->save($purse);
  539. if($up==false){
  540. Db::rollback();
  541. return error_show(1001,'备库反馈数据状态修改失败');
  542. }
  543. $supplier = Db::name("supplier")->where(["code"=>$purse['supplier']])->find();
  544. $inw = makeNo("CG");
  545. $data=[
  546. "bkcode"=>$purse['bkcode'],
  547. 'cgdNo'=>$inw,
  548. "wsm_code"=>$purse['warehouse'],
  549. "good_code"=>$feed['good_code'],
  550. "good_name"=>$feed['good_name'],
  551. "good_type_code"=>$feed['good_type_code'],
  552. "good_num"=>$feed['good_num'],
  553. "send_num"=>0,
  554. "wsend_num"=>$feed['good_num'],
  555. 'good_price'=>$purse['good_price'],
  556. "total_fee"=>$purse['good_price'],
  557. 'pakge_fee'=>$purse['pakge_fee'],
  558. 'cert_fee'=>$purse['cert_fee'],
  559. 'open_fee'=>$purse['open_fee'],
  560. 'mark_fee'=>$purse['mark_fee'],
  561. 'teach_fee'=>$purse['teach_fee'],
  562. 'nake_fee'=>$purse['nake_fee'],
  563. 'demo_fee'=>$purse['demo_fee'],
  564. 'delivery_fee'=>$purse['delivery_fee'],
  565. 'weight'=>$purse['weight'],
  566. 'diff_weight'=>$purse['diff_weight'],
  567. 'diff_fee'=>$purse['diff_price'],
  568. 'cgder_id'=>$purse['purchaser_id'],
  569. 'cgder'=>$purse['purchaser'],
  570. "remark"=>$purse['remark'],
  571. "status"=>0,
  572. 'supplierNo'=>$purse['supplier'],
  573. 'supplier_name'=>isset($supplier['name']) ? $supplier['name']:"",
  574. 'lasttime'=>$purse['expecttime'],
  575. "addtime"=>date("Y-m-d H:i:s"),
  576. "updatetime"=>date("Y-m-d H:i:s")
  577. ];
  578. $in= Db::name("purchease_order")->insert($data);
  579. if($in){
  580. $order=["order_type"=>'CGD',"order_code"=>$data['cgdNo'],"order_status"=>$data['status']];
  581. ProcessOrder::AddProcess($this->post['token'],$order);
  582. Db::commit();
  583. return app_show(0,"更新成功",['cgdNo'=>$inw]);
  584. }
  585. }else{
  586. if($status==4){
  587. $purse = Db::name("purchease_feedback")->where(['bkcode'=>$feed['bk_code'],"is_del"=>0])->find();
  588. if(empty($purse)){
  589. Db::rollback();
  590. return error_show(1001,'未找到备库反馈数据');
  591. }
  592. $purse['status']=2;
  593. $purse['addtime']=date("Y-m-d H:i:s");
  594. $up = Db::name("purchease_feedback")->save($purse);
  595. if($up==false){
  596. Db::rollback();
  597. return error_show(1001,'备库反馈数据状态修改失败');
  598. }
  599. }
  600. Db::commit();
  601. return app_show(0,"更新成功");
  602. }
  603. }
  604. Db::rollback();
  605. return error_show(1004,"更新失败");
  606. }catch (\Exception $e){
  607. Db::rollback();
  608. return error_show(1005,$e->getMessage());
  609. }
  610. }
  611. }