InterOrder.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517
  1. <?php
  2. namespace app\admin\controller;
  3. use think\facade\Db;
  4. use think\facade\Validate;
  5. use think\App;
  6. class InterOrder extends \app\admin\BaseController{
  7. public function __construct(App $app) {
  8. parent::__construct($app);
  9. }
  10. /**
  11. * @return \think\response\Json|void
  12. * @throws \think\db\exception\DataNotFoundException
  13. * @throws \think\db\exception\DbException
  14. * @throws \think\db\exception\ModelNotFoundException
  15. */
  16. public function list(){
  17. $param = $this->request->only(["page"=>1,"size"=>10,'cgdNo'=>"","qrdNo"=>"","khNo"=>"",
  18. "supplierNo"=>"","companyNo"=>"","starttime"=>"","endtime"=>"","sale_name"=>"","cgd_saler"=>""],"post","trim");
  19. $where=[];
  20. if($param['cgdNo']!="") $where[]=["a.cgdNo","like","%{$param['cgdNo']}%"];
  21. if($param['qrdNo']!="") $where[]=["a.orderCode","like","%{$param['qrdNo']}%"];
  22. if($param['khNo']!="") $where[]=["b.customerNo","like","%{$param['khNo']}%"];
  23. if($param['companyNo']!="") $where[]=["b.companyNo","like","%{$param['companyNo']}%"];
  24. if($param['supplierNo']!="") $where[]=["c.supplierNo","like","%{$param['supplierNo']}%"];
  25. if($param['starttime']!="") $where[]=["a.addtime",">=",date("Y-m-d 00:00:00",strtotime($param['starttime']))];
  26. if($param['endtime']!="") $where[]=["a.addtime","<=",date("Y-m-d 23:59:59",strtotime($param['endtime']))];
  27. if($param['sale_name']!="") $where[]=["b.ownerName","like","%{$param['sale_name']}%"];
  28. if($param['cgd_saler']!="") $where[]=["c.ownerName","like","%{$param['cgd_saler']}%"];
  29. $count= Db::name("inter_order")->alias("a")
  30. ->leftJoin("qrd_info b","a.orderCode=b.sequenceNo")
  31. ->leftJoin("cgd_info c","a.cgdNo=c.sequenceNo")->where($where)->count();
  32. $total =ceil($count/$param['size']);
  33. $page =$total>=$param['page'] ? intval($param['page']): intval($total);
  34. $list= Db::name("inter_order")->alias("a")
  35. ->leftJoin("qrd_info b","a.orderCode=b.sequenceNo")
  36. ->leftJoin("cgd_info c","a.cgdNo=c.sequenceNo")
  37. ->field("a.id,
  38. a.orderCode,
  39. b.customerName as khName,
  40. b.customerNo as khNo,
  41. b.companyName,
  42. b.companyNo,
  43. a.rate*100 as cgd_tax,
  44. c.supplierName,
  45. c.supplierNo,
  46. b.poCode,
  47. a.addtime as ordertime,
  48. b.ownerName as sale_name,
  49. c.ownerName as cgd_saler,
  50. c.department as cgd_depart,
  51. b.department as sale_depart,
  52. b.goodName,
  53. b.tax,
  54. b.goodPrice,
  55. b.goodNum,
  56. b.totalPrice,
  57. b.apay_fee,
  58. b.wpay_fee,
  59. b.ainv_fee,
  60. b.winv_fee,
  61. b.qrdType,
  62. b.catInfo,
  63. a.cgdNo,
  64. b.workCode")
  65. ->json(["catInfo"])
  66. ->where($where)->page($page,intval($param['size']))->order("id desc")
  67. ->select()->toArray();
  68. // echo Db::name("inter_order")->getLastSql();
  69. return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
  70. }
  71. public function create(){
  72. $param =$this->request->only([
  73. "sale_name"=>"","sale_id"=>"","companyNo"=>'',"poCode"=>"","workCode"=>"","khNo"=>"","qrdType"=>"","goodName"=>"",
  74. "tax"=>"","goodNum"=>"","goodPrice"=>"","mobile"=>"","addr"=>"","contactor"=>"",
  75. "buyer"=>"","buyerid"=>"","sendtime"=>"","cat"=>[],"supplierNo"=>"","cgd_tax"=>"","sale_depart"=>"","cgd_depart"=>""
  76. ],"post");
  77. $valid =Validate::rule([
  78. "sale_name|业务员名称"=>"require|max:255|min:1",
  79. "sale_id|业务员名称"=>"require|number|gt:0",
  80. "companyNo|业务公司编号"=>"require|max:255|min:1",
  81. "supplierNo|业务公司编号"=>"require|max:255|min:1",
  82. "poCode|PO编号"=>"require|max:255|min:1",
  83. "workCode|单据编号"=>"require|max:255|min:1",
  84. "khNo|客户公司编号"=>"require|max:255|min:1",
  85. "qrdType|订单类型"=>"require|number|in:[1,2,3]",
  86. "goodName|商品名称"=>"require|max:255|min:1",
  87. "tax|税率"=>"require|number|gt:0",
  88. "goodNum|商品数量"=>"require|number|gt:0",
  89. "goodPrice|商品单价"=>"require|number|gt:0",
  90. "mobile|联系人电话"=>"require|number|mobile",
  91. "contactor|联系人"=>"require|max:255|min:1",
  92. "addr|收货地址"=>"require|max:255|min:1",
  93. "buyer|销售员"=>"require|max:255|min:1",
  94. "buyerid|销售员"=>"require|number|gt:0",
  95. "sendtime|发货时间"=>"require|date",
  96. "cat|商品分类"=>"require|array",
  97. "cgd_tax|采购毛利率"=>"require|number|gt:0",
  98. "sale_depart|销售员部门"=>"require|max:255|min:1",
  99. "cgd_depart|采购员部门"=>"require|max:255|min:1",
  100. ]);
  101. if($valid->check($param)==false)return error_show(1004,$valid->getError());
  102. $qrdcode =makeNo("QRD");
  103. $cgddcode =makeNo("CGD");
  104. $goodCode =makeNo("SPU");
  105. $customer =Db::name("customer_info")->where('companyNo', "=", $param['khNo'])->find();
  106. $supplierName =Db::name("supplier_info")->where('code', "=", $param['supplierNo'])->value("name","");
  107. $companyName =Db::name("supplier_info")->where('code', "=", $param['companyNo'])->value("name","");
  108. $taxinfo = Db::name("order_rate")->where(["id"=>$param["tax"],"status"=>1])->value("rate",0);
  109. $param["cgd_tax"]=$param["cgd_tax"]/100;
  110. $inter=[
  111. "cgdNo"=>$cgddcode,
  112. "orderCode"=>$qrdcode,
  113. "rate"=>$param["cgd_tax"],
  114. "apply_id"=>$this->uid,
  115. "apply_name"=>$this->uname,
  116. "mobile"=>$param['mobile'],
  117. "contactor"=>$param['contactor'],
  118. "sendtime"=>$param['sendtime'],
  119. "addr"=>$param['addr'],
  120. ];
  121. $qrd =[
  122. 'name' => $param['sale_depart']."销售单",//确认单名称,
  123. 'sequenceNo' => $qrdcode,//确认单编号,
  124. 'ownerName' => $param['sale_name'],//销售员,
  125. 'ownerid' => $param['sale_id'],//销售员id,
  126. 'department' => $param['sale_depart'],//部门,
  127. 'createdTime' => date("Y-m-d H:i:s"),//销售单创建时间,
  128. 'qrdType' => $param['qrdType'],//销售单类型,
  129. 'qrdSource' => 1,//销售单来源,
  130. 'companyNo' => $param['companyNo'],//业务企业编号,
  131. 'companyName' => $companyName,//业务企业名称,
  132. 'customerNo' => $param['khNo'],//客户编号,
  133. 'customerName' =>$customer['companyName']??"",//客户名称,
  134. 'poCode' => $param['poCode'],//po编号,
  135. 'platName' => '',//平台名称,
  136. 'workCode' =>$param['workCode'],//业务编号,
  137. 'zxCode' => '',//咨询单编号,
  138. 'goodNo' => $goodCode,//商品编号,
  139. 'goodName' => $param['goodName'],//商品名称,
  140. 'goodBrand' =>'',//商品品牌,
  141. 'firstCat' => $param['cat'][0]['cat_name']??"",//一级分类,
  142. 'secCat' => $param['cat'][1]['cat_name']??"",//二级分类,
  143. 'thirdCat' => $param['cat'][2]['cat_name']??"",//三级分类,
  144. 'catInfo' => json_encode($param['cat'],JSON_UNESCAPED_UNICODE),//分类详情,
  145. 'fundCode' => $param['cat'][2]['fund_code']??"",//核算编码,
  146. 'goodMaterial' => '',//商品材质,
  147. 'goodUnit' => '',//商品单位,
  148. 'goodDesc' => '',//工艺说明,
  149. 'goodType' =>1,//商品类型,
  150. 'goodModel' => '',//商品型号,
  151. 'isStock' => 0,//是否库存品,
  152. 'metalsType' =>'',//贵金属种类,
  153. 'weight' => 0,//商品重量,
  154. 'goldPrice' => 0,//贵金属单价,
  155. 'deliveryDay' =>'',//物流天数,
  156. 'workDay' => '',//工期,
  157. 'tax' => $taxinfo,//税率,
  158. 'goodNum' => $param['goodNum'],//销售数量,
  159. 'goodPrice' => $param['goodPrice'],//产品单价,
  160. 'totalPrice' =>round( $param['goodPrice']*$param['goodNum'],2),//货款总额,
  161. 'sendNum' => $param['goodNum'],//已发货数量,
  162. 'wsendNum' => 0,//未发货数量,
  163. 'apay_fee' => 0,//已付款,
  164. 'pay_fee' => 0,//付款中
  165. 'wpay_fee' => round( $param['goodPrice']*$param['goodNum'],2),
  166. 'inv_fee' => 0,//回票中
  167. 'ainv_fee' => 0,//已开票,
  168. 'winv_fee' =>round( $param['goodPrice']*$param['goodNum'],2),
  169. 'is_diff' =>0,//是否有工差,
  170. 'sendType' => 1,//发货方式,
  171. 'sendStatus' =>3,//发货状态,
  172. 'pay_status' =>1,//收款状态,1未付,2部分,3完结
  173. 'inv_status' => 1,//开票状态,,1未付,2部分,3完结
  174. 'remark' => '',//备注,
  175. 'invtime' => null,
  176. 'paytime' => null,
  177. 'diff_weight' =>0,//工差重量,
  178. 'diff_fee' =>0,//工差金额,
  179. 'area' =>$customer['companyName']??"",//公司,
  180. 'customerAttr' => $customer['parent']??"",//客户属性,
  181. 'branch' => $customer['branch']??"",//分公司,从客户表中查
  182. 'cgdNo' => $cgddcode,//采购单号,
  183. 'thNum' => 0,//退货数量,
  184. 'th_fee' => 0,//退货金额,
  185. 'is_del' => 0,//是否删除,
  186. 'addtime' => date("Y-m-d H:i:s"),
  187. 'updatetime' =>date("Y-m-d H:i:s"),
  188. 'inv_tag' => 0,//开票标签,
  189. 'pay_tag' => 0,//回款标签,
  190. 'inv_tag_fee' => 0,//开票票标签金额,
  191. 'pay_tag_fee' => 0,//回款标签金额,
  192. ];
  193. $cgd=[
  194. 'name' => $param['cgd_depart']."采购单",//采购单名称',
  195. 'sequenceNo' => $cgddcode,//采购单编号',
  196. 'ownerName' => $param['buyer'],//采购员名称',
  197. 'ownerid' => $param['buyerid'],//采购员id',
  198. 'department' => $param['cgd_depart'],//部门名称',
  199. 'createdTime' => date("Y-m-d H:i:s"),//订单创建时间',
  200. 'cgdType' =>$param['qrdType'],//采购单类型',
  201. 'cgdSource' => 0,//采购单来源',
  202. 'companyNo' => $param['companyNo'],//业务公司编号',
  203. 'companyName' => $companyName,//业务公司',
  204. 'cgdTime' => date("Y-m-d H:i:s"),//采购下单时间',
  205. 'bkCode' => '',//备库单编号',
  206. 'qrdCode' => $qrdcode,//确认单编号',
  207. 'goodNo' => $goodCode,//商品编号',
  208. 'goodName' => $param['goodName'],//商品名称',
  209. 'goodType' => 1,//商品类型',
  210. 'goodBrand' =>'',//商品品牌',
  211. 'goodModel' => '',//商品型号',
  212. 'firstCat' => $param['cat'][0]['cat_name']??"",//商品一级分类',
  213. 'secCat' => $param['cat'][1]['cat_name'],//二级分类',
  214. 'thirdCat' => $param['cat'][2]['cat_name'],//三级分类',
  215. 'catInfo' => json_encode($param['cat'],JSON_UNESCAPED_UNICODE),//分类明细',
  216. 'fundCode' => $param['cat'][2]['fund_code'],//NOT NULL,
  217. 'goodMaterial' => '',//商品材质',
  218. 'goodUnit' => '',//商品单位',
  219. 'goodDesc' => '',//工艺说明',
  220. 'metalsType' => '',//贵金属种类',
  221. 'weight' => 0,//商品重量',
  222. 'goldPrice' => 0,//贵金属实时金价',
  223. 'is_diff' =>0,//是否有工差',
  224. 'deliveryDay' =>'',//物流天数',
  225. 'workDay' =>'',//产品工期',
  226. 'tax' => $taxinfo,//税点',
  227. 'barePrice' => 0,//裸价',
  228. 'markPrice' => 0,//加标费',
  229. 'packPrice' => 0,//包装费',
  230. 'certPrice' => 0,//证书费',
  231. 'openPrice' => 0,//开模费',
  232. 'costPrice' => 0,//工艺费',
  233. 'deliveryPrice' =>0,//物流费',
  234. 'goodPrice' => round( $param['goodPrice']*(1-$param['cgd_tax']),2),//成本合计/单价',
  235. 'isStock' =>0,//是否库存品',
  236. 'goodNum' => $param['goodNum'],//下单数量',
  237. 'totalPrice' => round( $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
  238. 'supplierNo' => $param['supplierNo'],//供应商编号',
  239. 'supplierName' => $supplierName,//供应商名称',
  240. 'apay_fee' => 0,//已付款金额',
  241. 'wpay_fee' =>round( $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
  242. 'ainv_fee' => 0,//已开票金额',
  243. 'winv_fee' =>round( $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
  244. 'sendType' => 1,//发货方式',
  245. 'bkCreater' => '',//备库申请人',
  246. 'sendStatus' => 3,//发货状态',
  247. 'wsendNum' =>0,//未发货数量',
  248. 'sendNum' => $param['goodNum'],//已发货数量',
  249. 'wareHouse' => '',//仓库名称',
  250. 'wsmCode' =>'',//仓库编号',
  251. 'remark' => '',//备注',
  252. 'pay_status' =>1,//付款情况',
  253. 'inv_status' => 1,//开票情况',
  254. 'diff_weight' => 0,//工差重量',
  255. 'diff_fee' => 0,//工差金额',
  256. 'thNum' => 0,//退货数量',
  257. 'th_fee' => 0,//退货金额',
  258. 'check_rate' => '',//修正后的税率',
  259. 'is_del' => 0,
  260. 'addtime' => date("Y-m-d H:i:s"),
  261. 'updatetime' => date("Y-m-d H:i:s"),
  262. ];
  263. $good=[
  264. "spuCode"=>$goodCode,
  265. "good_name"=>$param['goodName'],
  266. "companyNo"=>$param['companyNo'],
  267. "supplierNo"=>$param['supplierNo'],
  268. "is_stock"=>0,
  269. "craft_desc"=>'',
  270. "after_sales"=>'',
  271. "good_img"=>'',
  272. "good_thumb_img"=>'',
  273. "good_info_img"=>'',
  274. "creater"=>$this->uname,
  275. "createrid"=>$this->uid,
  276. "cat_name"=>$param['cat'][2]['cat_name'],
  277. "unit_name"=>'',
  278. "isZx"=>0,
  279. "status"=>0,
  280. "addtime"=>date("Y-m-d H:i:s"),
  281. "updatetime"=>date("Y-m-d H:i:s")
  282. ];
  283. Db::startTrans();
  284. try {
  285. $a = Db::name("qrd_info")->insert($qrd);
  286. $d = Db::name("inter_order")->insert($inter);
  287. $b = Db::name('cgd_info')->insert($cgd);
  288. $c = Db::name('good')->insert($good);
  289. if ($a && $b && $c&&$d) {
  290. Db::commit();
  291. return app_show(0,'新建成功');
  292. } else {
  293. Db::rollback();
  294. return error_show(1004,'新建失败');
  295. }
  296. } catch (\Exception $e) {
  297. Db::rollback();
  298. return error_show(1004, $e->getMessage());
  299. }
  300. }
  301. public function save(){
  302. $param =$this->request->only([
  303. "sale_name"=>"","sale_id"=>"","companyNo"=>'',"poCode"=>"","workCode"=>"","khNo"=>"","qrdType"=>"","goodName"=>"",
  304. "tax"=>"","goodNum"=>"","goodPrice"=>"","good_total"=>"","mobile"=>"","addr"=>"","contactor"=>"","id"=>"",
  305. "buyer"=>"","buyerid"=>"","sendtime"=>"","cat"=>[],"supplierNo"=>"","cgd_tax"=>"","sale_depart"=>"","cgd_depart"=>""
  306. ],"post");
  307. $valid =Validate::rule([
  308. "id|主键ID"=>"require|number|gt:0",
  309. "sale_name|业务员名称"=>"require|max:255|min:1",
  310. "sale_id|业务员名称"=>"require|number|gt:0",
  311. "companyNo|业务公司编号"=>"require|max:255|min:1",
  312. "supplierNo|业务公司编号"=>"require|max:255|min:1",
  313. "poCode|PO编号"=>"require|max:255|min:1",
  314. "workCode|单据编号"=>"require|max:255|min:1",
  315. "khNo|客户公司编号"=>"require|max:255|min:1",
  316. "qrdType|订单类型"=>"require|number|in:[1,2,3]",
  317. "goodName|商品名称"=>"require|max:255|min:1",
  318. "tax|税率"=>"require|number|gt:0",
  319. "goodNum|商品数量"=>"require|number|gt:0",
  320. "goodPrice|商品单价"=>"require|number|gt:0",
  321. "mobile|联系人电话"=>"require|number|mobile",
  322. "contactor|联系人"=>"require|max:255|min:1",
  323. "addr|收货地址"=>"require|max:255|min:1",
  324. "buyer|销售员"=>"require|max:255|min:1",
  325. "buyerid|销售员"=>"require|number|gt:0",
  326. "sendtime|发货时间"=>"require|date",
  327. "cat|商品分类"=>"require|array",
  328. "cgd_tax|采购毛利率"=>"require|number|gt:0",
  329. "sale_depart|销售员部门"=>"require|max:255|min:1",
  330. "cgd_depart|采购员部门"=>"require|max:255|min:1",
  331. ]);
  332. if($valid->check($param)==false)return error_show(1004,$valid->getError());
  333. $inter_order=Db::name("inter_order")->where(["id"=>$param['id']])->findOrEmpty();
  334. if(empty($inter_order)) return error_show(1004,"未找到订单数据");
  335. $qrd_order=Db::name("qrd_info")->where(["sequenceNo"=>$inter_order['orderCode']])->findOrEmpty();
  336. if(empty($qrd_order)) return error_show(1004,"未找到销售单数据");
  337. $cgd_order=Db::name("cgd_info")->where(["sequenceNo"=>$inter_order['cgdNo']])->findOrEmpty();
  338. if(empty($cgd_order)) return error_show(1004,"未找到采购单数据");
  339. $param["cgd_tax"]=$param["cgd_tax"]/100;
  340. $customer =Db::name("customer_info")->where('companyNo', "=", $param['khNo'])->find();
  341. $supplierName =Db::name("supplier_info")->where('code', "=", $param['supplierNo'])->value("name","");
  342. $companyName =Db::name("supplier_info")->where('code', "=", $param['companyNo'])->value("name","");
  343. $taxinfo = Db::name("order_rate")->where(["id"=>$param["tax"],"status"=>1])->value("rate",0);
  344. $inter=[
  345. "id"=>$inter_order['id'],
  346. "rate"=>$param["cgd_tax"],
  347. "mobile"=>$param['mobile'],
  348. "contactor"=>$param['contactor'],
  349. "addr"=>$param['addr'],
  350. "sendtime"=>$param['sendtime'],
  351. "updatetime"=>date("Y-m-d H:i:s")
  352. ];
  353. $qrd =["id"=>$qrd_order['id'],
  354. 'name' => $param['sale_depart']."销售单",//确认单名称,
  355. 'ownerName' => $param['sale_name'],//销售员,
  356. 'ownerid' => $param['sale_id'],//销售员id,
  357. 'department' => $param['sale_depart'],//部门,
  358. 'qrdType' => $param['qrdType'],//销售单类型,
  359. 'companyNo' => $param['companyNo'],//业务企业编号,
  360. 'companyName' => $companyName,//业务企业名称,
  361. 'customerNo' => $param['khNo'],//客户编号,
  362. 'customerName' =>$customer['companyName']??"",//客户名称,
  363. 'poCode' => $param['poCode'],//po编号,
  364. 'workCode' =>$param['workCode'],//业务编号,
  365. 'goodName' => $param['goodName'],//商品名称,
  366. 'firstCat' => $param['cat'][0]['cat_name']??"",//一级分类,
  367. 'secCat' => $param['cat'][1]['cat_name']??"",//二级分类,
  368. 'thirdCat' => $param['cat'][2]['cat_name']??"",//三级分类,
  369. 'catInfo' => json_encode($param['cat'],JSON_UNESCAPED_UNICODE),//分类详情,
  370. 'fundCode' => $param['cat'][2]['fund_code']??"",//核算编码,
  371. 'tax' => $taxinfo,//税率,
  372. 'goodNum' => $param['goodNum'],//销售数量,
  373. 'goodPrice' => $param['goodPrice'],//产品单价,
  374. 'totalPrice' =>round( $param['goodPrice']*$param['goodNum'],2),//货款总额,
  375. 'sendNum' => $param['goodNum'],//已发货数量,
  376. 'wpay_fee' => round( $param['goodPrice']*$param['goodNum'],2),
  377. 'winv_fee' =>round( $param['goodPrice']*$param['goodNum'],2),
  378. 'area' =>$customer['companyName']??"",//公司,
  379. 'customerAttr' => $customer['parent']??"",//客户属性,
  380. 'branch' => $customer['branch']??"",//分公司,从客户表中查
  381. 'updatetime' =>date("Y-m-d H:i:s"),
  382. ];
  383. $cgd=["id"=>$cgd_order['id'],
  384. 'name' => $param['cgd_depart']."采购单",//采购单名称',
  385. 'ownerName' => $param['buyer'],//采购员名称',
  386. 'ownerid' => $param['buyerid'],//采购员id',
  387. 'department' => $param['cgd_depart'],//部门名称',
  388. 'cgdType' =>$param['qrdType'],//采购单类型',
  389. 'companyNo' => $param['companyNo'],//业务公司编号',
  390. 'companyName' => $companyName,//业务公司',
  391. 'goodName' => $param['goodName'],//商品名称',
  392. 'firstCat' => $param['cat'][0]['cat_name']??"",//商品一级分类',
  393. 'secCat' => $param['cat'][1]['cat_name']??"",//二级分类',
  394. 'thirdCat' => $param['cat'][2]['cat_name']??"",//三级分类',
  395. 'catInfo' => json_encode($param['cat'],JSON_UNESCAPED_UNICODE),//分类明细',
  396. 'fundCode' => $param['cat'][2]['fund_code']??"",//NOT NULL,
  397. 'tax' => $taxinfo,//税点',
  398. 'goodPrice' => round( $param['goodPrice']*(1-$param['cgd_tax']),2),//成本合计/单价',
  399. 'goodNum' => $param['goodNum'],//下单数量',
  400. 'totalPrice' => round( $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
  401. 'supplierNo' => $param['supplierNo'],//供应商编号',
  402. 'supplierName' => $supplierName,//供应商名称',
  403. 'wpay_fee' =>round( $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
  404. 'winv_fee' =>round( $param['goodNum']*$param['goodPrice']*(1-$param['cgd_tax']),2),//采购总货款',
  405. 'sendNum' => $param['goodNum'],//已发货数量',
  406. 'updatetime' => date("Y-m-d H:i:s"),
  407. ];
  408. Db::startTrans();
  409. try {
  410. $a = Db::name("qrd_info")->save($qrd);
  411. $d = Db::name("inter_order")->save($inter);
  412. $b = Db::name('cgd_info')->save($cgd);
  413. if ($a && $b && $d) {
  414. Db::commit();
  415. return app_show(0,'更新成功');
  416. } else {
  417. Db::rollback();
  418. return error_show(1004,'更新失败');
  419. }
  420. } catch (\Exception $e) {
  421. Db::rollback();
  422. return error_show(1004, $e->getMessage());
  423. }
  424. }
  425. // "id|主键ID"=>"require|number|gt:0",
  426. // "sale_name|业务员名称"=>"require|max:255|min:1",
  427. // "sale_id|业务员名称"=>"require|number|gt:0",
  428. // "companyNo|业务公司编号"=>"require|max:255|min:1",
  429. // "supplierNo|业务公司编号"=>"require|max:255|min:1",
  430. // "poNo|PO编号"=>"require|max:255|min:1",
  431. // "sequenceNo|单据编号"=>"require|max:255|min:1",
  432. // "khNo|客户公司编号"=>"require|max:255|min:1",
  433. // "qrdType|订单类型"=>"require|number|in:[1,2,3]",
  434. // "goodName|商品名称"=>"require|max:255|min:1",
  435. // "tax|税率"=>"require|number|gt:0",
  436. // "goodNum|商品数量"=>"require|number|gt:0",
  437. // "goodPrice|商品单价"=>"require|number|gt:0",
  438. // "mobile|联系人电话"=>"require|number|mobile",
  439. // "contactor|联系人"=>"require|max:255|min:1",
  440. // "addr|收货地址"=>"require|max:255|min:1",
  441. // "buyer|销售员"=>"require|max:255|min:1",
  442. // "buyerid|销售员"=>"require|number|gt:0",
  443. // "sendtime|发货时间"=>"require|date",
  444. // "cat|商品分类"=>"require|array",
  445. // "cgd_tax|采购毛利率"=>"require|number|gt:0",
  446. // "sale_depart|销售员部门"=>"require|max:255|min:1",
  447. // "cgd_depart|采购员部门"=>"require|max:255|min:1",
  448. public function info(){
  449. $post=$this->request->post();
  450. $id = isset($post['id'])&&$post['id']!='' ? $post['id'] :"";
  451. $condition = [['a.id',"=",$id]];
  452. $list=Db::name('inter_order')->alias('a')->join('qrd_info b','a.orderCode=b.sequenceNo','left')
  453. ->join('cgd_info c','a.cgdNo=c.sequenceNo','left')->json(["cat"])->where($condition)
  454. ->order("a.addtime desc")->field('a.id,
  455. b.goodNo ,
  456. a.orderCode,
  457. b.customerNo as khNo,
  458. b.customerName as khName,
  459. b.companyName,
  460. b.companyNo,
  461. b.poCode,
  462. b.workCode,
  463. a.addtime as ordertime,
  464. b.ownerName as sale_name,
  465. b.ownerid as sale_id,
  466. b.department as sale_depart,
  467. b.goodName,
  468. b.goodNo,
  469. b.tax,
  470. b.catInfo as cat,
  471. b.goodPrice,
  472. b.goodNum,
  473. b.totalPrice,
  474. b.qrdType,
  475. c.supplierName,
  476. c.supplierNo,
  477. a.cgdNo,
  478. c.ownerName as buyer,
  479. c.ownerid as buyerid,
  480. c.department as cgd_depart,
  481. a.sendtime ,
  482. a.rate*100 as cgd_tax,
  483. a.contactor,
  484. a.mobile,
  485. a.addr
  486. ')->findOrEmpty();
  487. if(empty($list)){
  488. return error_show(1004,'未找到数据');
  489. }
  490. $list['rateid'] = Db::name("order_rate")->where('rate',"=",$list['tax'])->value("id",'');
  491. return app_show(0,"获取成功",$list);
  492. }
  493. public function getCat(){
  494. $post=$this->request->post();
  495. $condition = [['status',"=",1]];
  496. $pid = isset($post['pid'])&&$post['pid']!==""? $post['pid'] :'0';
  497. if($pid!==''){
  498. $condition[]=["pid","=",$pid];
  499. }
  500. $cat = Db::connect("mysql_wsm")->name("cat")->where($condition)->field("id,cat_name,fund_code")->order("weight desc ,addtime desc")
  501. ->select()->toArray();
  502. return app_show(0,"获取成功",$cat);
  503. }
  504. }