Sale.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\model\CgdInfo;use app\admin\model\InvoicePool;use app\admin\model\Pay;use app\admin\model\TradePool;use think\App;
  4. use think\facade\Db;use think\facade\Validate;
  5. class Sale extends Base{
  6. #public $novalidate=["*"];
  7. public function __construct(App $app) {parent::__construct($app);}
  8. /** 获取列表
  9. * @return \think\response\Json|void
  10. * @throws \think\db\exception\DataNotFoundException
  11. * @throws \think\db\exception\DbException
  12. * @throws \think\db\exception\ModelNotFoundException
  13. */
  14. public function list(){
  15. $post =$this->request->param();
  16. $condition = [['a.is_del',"=",0]];
  17. $roleid = $this->roleid;
  18. $check = checkRole($roleid,'86');
  19. if($check){
  20. $condition[]=["a.ownerid","=",$this->uid];
  21. }
  22. $page = isset($post['page'])&&$post['page']!==''?intval($post['page']):1;
  23. $size = isset($post['size'])&&$post['size']!==''?intval($post['size']):15;
  24. $start =isset($post['start'])&&$post['start']!==''?trim($post['start']):'';
  25. if($start!=''){
  26. $condition[]=["a.createdTime",">=",$start." 00:00:00"];
  27. }
  28. $end =isset($post['end'])&&$post['end']!==''?trim($post['end']):'';
  29. if($end!=''){
  30. $condition[]=["a.createdTime","<=",$end." 23:59:59"];
  31. }
  32. $total_min = isset($post['total_min'])&&$post['total_min']!==''?floatval($post['total_min']):'';
  33. if($total_min!==''){
  34. $condition[]=["a.totalPrice",">=",$total_min];
  35. }
  36. $total_max = isset($post['total_max'])&&$post['total_max']!==''?floatval($post['total_max']):'';
  37. if($total_max!==''){
  38. $condition[]=["a.totalPrice","<=",$total_max];
  39. }
  40. if(isset($post['is_comon'])&&$post['is_comon']!=='') $condition []=['is_comon','=',$post['is_comon']];
  41. $cxCode = isset($post['cxCode'])&&$post['cxCode']!==''?trim($post['cxCode']):'';
  42. if($cxCode!==''){
  43. $condition[]=["a.cxCode","=",$cxCode];
  44. }
  45. $inv_status = isset($post['inv_status'])&&$post['inv_status']!==''?intval($post['inv_status']):'';
  46. if($inv_status!==''){
  47. if($inv_status==0){
  48. $condition[]=["a.inv_status","<>",3];
  49. }else{
  50. $condition[]=["a.inv_status","=",$inv_status];
  51. }
  52. }
  53. $invIs = isset($post['inv_is'])&&$post['inv_is']!==''?intval($post['inv_is']):'';
  54. if($invIs!==''){
  55. if($invIs==1){
  56. $condition[]=["a.winv_fee","<>",0];
  57. }else{
  58. $condition[]=["a.winv_fee","=",0];
  59. }
  60. }
  61. $payIs = isset($post['pay_is'])&&$post['pay_is']!==''?intval($post['pay_is']):'';
  62. if($payIs!==''){
  63. if($invIs==1){
  64. $condition[]=["a.wpay_fee","<>",0];
  65. }else{
  66. $condition[]=["a.wpay_fee","=",0];
  67. }
  68. }
  69. $pay_status = isset($post['pay_status'])&&$post['pay_status']!==''?intval($post['pay_status']):'';
  70. if($pay_status!==''){
  71. if($pay_status==0){
  72. $condition[]=["a.pay_status","<>",3];
  73. }else{
  74. $condition[]=["a.pay_status","=",$pay_status];
  75. }
  76. }
  77. $status = isset($post['status'])&&$post['status']!==''?intval($post['status']):'';
  78. if($status!==''){
  79. if($status==3){
  80. $condition[]=["a.status","<>",2];
  81. }else{
  82. $condition[]=["a.status","=",$status];
  83. }
  84. }
  85. $qrdNo = isset($post['sequenceNo'])&&$post['sequenceNo']!=''?trim($post['sequenceNo']):'';
  86. if($qrdNo!==''){
  87. $condition[]=["a.sequenceNo","like","%$qrdNo%"];
  88. }
  89. $department = isset($post['department'])&&$post['department']!=''?trim($post['department']):'';
  90. if($department!==''){
  91. $condition[]=["a.department","like","%$department%"];
  92. }
  93. $customerNo = isset($post['customerNo'])&&$post['customerNo']!=''?trim($post['customerNo']):'';
  94. if($customerNo!==''){
  95. $condition[]=["a.customerNo","like","%$customerNo%"];
  96. }
  97. $customer = isset($post['customer'])&&$post['customer']!=''?trim($post['customer']):'';
  98. if($customer!=''){
  99. $condition[]=["a.customerName","like","%$customer%"];
  100. }
  101. $companyNo = isset($post['companyNo'])&&$post['companyNo']!=''?trim($post['companyNo']):'';
  102. if($companyNo!==''){
  103. $condition[]=["a.companyNo","=",$companyNo];
  104. }
  105. $companyName = isset($post['companyName'])&&$post['companyName']!=''?trim($post['companyName']):'';
  106. if($companyName !=''){
  107. $condition[]=["a.companyName","like","%$companyName%"];
  108. }
  109. $platName = isset($post['platName'])&&$post['platName']!=''?trim($post['platName']):'';
  110. if($platName!=''){
  111. $condition[]=["a.platName","like","%$platName%"];
  112. }
  113. $platform_type = isset($post['platform_type'])&&$post['platform_type']!==''?intval($post['platform_type']):'';
  114. if($platform_type!==''){
  115. $condition[]=["a.platform_type","=",$platform_type];
  116. }
  117. $saler= isset($post['saler']) && $post['saler']!='' ? trim($post['saler']) :"";
  118. if($saler!='') $condition []=["a.ownerName","like","%$saler%"];
  119. $salerid= isset($post['salerid']) && $post['salerid']!='' ? intval($post['salerid']) :"";
  120. if($salerid!='') $condition []=["a.ownerid","=",$salerid];
  121. $qrdtype= isset($post['qrdtype']) && $post['qrdtype']!='' ? intval($post['qrdtype']) :"";
  122. if($qrdtype!='') $condition []=["a.qrdType","=",$qrdtype];
  123. $qrdsource= isset($post['qrdsource']) && $post['qrdsource']!='' ? intval($post['qrdsource']) :"";
  124. if($qrdsource!='') $condition []=["a.qrdSource","=",$qrdsource];
  125. $sendstatus= isset($post['sendstatus']) && $post['sendstatus']!='' ? intval($post['sendstatus']) :"";
  126. if($sendstatus!='') $condition []=["a.sendStatus","=",$sendstatus];
  127. $tag_id= isset($post['tag_id'])&&$post['tag_id']!=="" ? intval($post['tag_id']) :"";
  128. if($tag_id!==''){
  129. if($tag_id==1) $condition[]=["a.inv_tag","=",1];
  130. if($tag_id==2) $condition[]=["a.pay_tag","=",1];
  131. if($tag_id==3) $condition[]=["a.pay_tag|inv_tag","=",1];
  132. if($tag_id==4) $condition[]=["a.pay_tag&inv_tag","=",1];
  133. }
  134. $cat_status= isset($post['cat_status'])&&$post['cat_status']!=="" ? intval($post['cat_status']) :"";
  135. if($cat_status!=='') $condition[]=["b.status","=",$cat_status];
  136. $count =Db::name("qrd_info")->alias("a")->leftJoin("good b","a.goodNo=b.spuCode")->where($condition)->count();
  137. $total = ceil($count/$size);
  138. $page = $page>$total ? intval($total) : $page;
  139. $list =Db::name("qrd_info")->alias("a")
  140. ->leftJoin("good b","a.goodNo=b.spuCode")
  141. ->field("a.*,b.status as cat_status,b.inv_cat_name,b.inv_cat_code,b.inv_tax,b.inv_good_name,b.isZx")
  142. ->order("a.createdTime desc")
  143. ->where($condition)->page($page,$size)->select();
  144. $data=[];
  145. foreach ( $list as $ky=>$value){
  146. $value['catInfo'] = json_decode($value['catInfo'],true);
  147. $tag =Db::name("tag_log")->alias("a")->leftJoin("order_tag b","a.tag_id=b.id")->where
  148. (["code"=>$value['sequenceNo'],"a.status"=>1])->column("a.id,b.tag_name,a.tag_img,a.tag_remark","b.type");
  149. $value['goodNum'] = $value['goodNum'] -$value['thNum'];
  150. $value['sendNum'] = $value['sendNum'] -$value['thNum'];
  151. $value['inv_tag_name']=$tag[4]['tag_name']??'';
  152. $value['inv_tag_id']=$tag[4]['id']??'0';
  153. $value['pay_tag_id']=$tag[3]['id']??'0';
  154. $value['pay_tag_name']=$tag[3]['tag_name']??'';
  155. $value['pay_tag_img']=$tag[3]['tag_img']??'';
  156. $value['inv_tag_img']=$tag[4]['tag_img']??'';
  157. $value['inv_tag_remark']=$tag[4]['tag_remark']??'';
  158. $value['pay_tag_remark']=$tag[3]['tag_remark']??'';
  159. $invArr = Db::name("assoc")
  160. ->alias("a")
  161. ->leftJoin("invoice_good b", "a.viceCode=b.invNo AND b.orderCode =a.orderCode")
  162. ->where(["a.status" => [1, 2], "a.is_del" => 0, "a.type" => 1, "a.orderCode" => $value['sequenceNo']])->group("a.status")
  163. ->column("sum(b.goodNum) as goodNum", "a.status");
  164. $value['inv_num'] = $invArr[1]??0;
  165. $value['ainv_num'] = $invArr[2]??0;
  166. $value['winv_num'] =$value['goodNum']- $value['inv_num']-$value['ainv_num'];
  167. $data[]=$value;
  168. }
  169. return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
  170. }
  171. public function query(){
  172. $post =$this->request->param();
  173. $condition = [['a.is_del',"=",0]];
  174. $start =isset($post['start'])&&$post['start']!==''?trim($post['start']):'';
  175. if($start!=''){
  176. $condition[]=["a.createdTime",">=",$start." 00:00:00"];
  177. }
  178. $end =isset($post['end'])&&$post['end']!==''?trim($post['end']):'';
  179. if($end!=''){
  180. $condition[]=["a.createdTime","<=",$end." 23:59:59"];
  181. }
  182. $total_min = isset($post['total_min'])&&$post['total_min']!==''?floatval($post['total_min']):'';
  183. if($total_min!==''){
  184. $condition[]=["a.totalPrice",">=",$total_min];
  185. }
  186. if(isset($post['is_comon'])&&$post['is_comon']!=='') $condition []=['is_comon','=',$post['is_comon']];
  187. $total_max = isset($post['total_max'])&&$post['total_max']!==''?floatval($post['total_max']):'';
  188. if($total_max!==''){
  189. $condition[]=["a.totalPrice","<=",$total_max];
  190. }
  191. $cxCode = isset($post['cxCode'])&&$post['cxCode']!==''?trim($post['cxCode']):'';
  192. if($cxCode!==''){
  193. $condition[]=["a.cxCode","=",$cxCode];
  194. }
  195. $inv_status = isset($post['inv_status'])&&$post['inv_status']!==''?intval($post['inv_status']):'';
  196. if($inv_status!==''){
  197. if($inv_status==0){
  198. $condition[]=["a.inv_status","<>",3];
  199. }else{
  200. $condition[]=["a.inv_status","=",$inv_status];
  201. }
  202. }
  203. $invIs = isset($post['inv_is'])&&$post['inv_is']!==''?intval($post['inv_is']):'';
  204. if($invIs!==''){
  205. if($invIs==1){
  206. $condition[]=["a.winv_fee","<>",0];
  207. }else{
  208. $condition[]=["a.winv_fee","=",0];
  209. }
  210. }
  211. $payIs = isset($post['pay_is'])&&$post['pay_is']!==''?intval($post['pay_is']):'';
  212. if($payIs!==''){
  213. if($invIs==1){
  214. $condition[]=["a.wpay_fee","<>",0];
  215. }else{
  216. $condition[]=["a.wpay_fee","=",0];
  217. }
  218. }
  219. $pay_status = isset($post['pay_status'])&&$post['pay_status']!==''?intval($post['pay_status']):'';
  220. if($pay_status!==''){
  221. if($pay_status==0){
  222. $condition[]=["a.pay_status","<>",3];
  223. }else{
  224. $condition[]=["a.pay_status","=",$pay_status];
  225. }
  226. }
  227. $status = isset($post['status'])&&$post['status']!==''?intval($post['status']):'';
  228. if($status!==''){
  229. if($status==3){
  230. $condition[]=["a.status","<>",2];
  231. }else{
  232. $condition[]=["a.status","=",$status];
  233. }
  234. }
  235. $qrdNo = isset($post['sequenceNo'])&&$post['sequenceNo']!=''?trim($post['sequenceNo']):'';
  236. if($qrdNo!==''){
  237. $condition[]=["a.sequenceNo","in",explode(",",$qrdNo)];
  238. }
  239. $department = isset($post['department'])&&$post['department']!=''?trim($post['department']):'';
  240. if($department!==''){
  241. $condition[]=["a.department","like","%$department%"];
  242. }
  243. $customerNo = isset($post['customerNo'])&&$post['customerNo']!=''?trim($post['customerNo']):'';
  244. if($customerNo!==''){
  245. $condition[]=["a.customerNo","like","%$customerNo%"];
  246. }
  247. $customer = isset($post['customer'])&&$post['customer']!=''?trim($post['customer']):'';
  248. if($customer!=''){
  249. $condition[]=["a.customerName","like","%$customer%"];
  250. }
  251. $companyNo = isset($post['companyNo'])&&$post['companyNo']!=''?trim($post['companyNo']):'';
  252. if($companyNo!==''){
  253. $condition[]=["a.companyNo","=",$companyNo];
  254. }
  255. $companyName = isset($post['companyName'])&&$post['companyName']!=''?trim($post['companyName']):'';
  256. if($companyName !=''){
  257. $condition[]=["a.companyName","like","%$companyName%"];
  258. }
  259. $platName = isset($post['platName'])&&$post['platName']!=''?trim($post['platName']):'';
  260. if($platName!=''){
  261. $condition[]=["a.platName","like","%$platName%"];
  262. }
  263. $platform_type = isset($post['platform_type'])&&$post['platform_type']!==''?intval($post['platform_type']):'';
  264. if($platform_type!==''){
  265. $condition[]=["a.platform_type","=",$platform_type];
  266. }
  267. $saler= isset($post['saler']) && $post['saler']!='' ? trim($post['saler']) :"";
  268. if($saler!='') $condition []=["a.ownerName","like","%$saler%"];
  269. $salerid= isset($post['salerid']) && $post['salerid']!='' ? intval($post['salerid']) :"";
  270. if($salerid!='') $condition []=["a.ownerid","=",$salerid];
  271. $qrdtype= isset($post['qrdtype']) && $post['qrdtype']!='' ? intval($post['qrdtype']) :"";
  272. if($qrdtype!='') $condition []=["a.qrdType","=",$qrdtype];
  273. $qrdsource= isset($post['qrdsource']) && $post['qrdsource']!='' ? intval($post['qrdsource']) :"";
  274. if($qrdsource!='') $condition []=["a.qrdSource","=",$qrdsource];
  275. $sendstatus= isset($post['sendstatus']) && $post['sendstatus']!='' ? intval($post['sendstatus']) :"";
  276. if($sendstatus!='') $condition []=["a.sendStatus","=",$sendstatus];
  277. $tag_id= isset($post['tag_id'])&&$post['tag_id']!=="" ? intval($post['tag_id']) :"";
  278. if($tag_id!==''){
  279. if($tag_id==1) $condition[]=["a.inv_tag","=",1];
  280. if($tag_id==2) $condition[]=["a.pay_tag","=",1];
  281. if($tag_id==3) $condition[]=["a.pay_tag|inv_tag","=",1];
  282. if($tag_id==4) $condition[]=["a.pay_tag&inv_tag","=",1];
  283. }
  284. $cat_status= isset($post['cat_status'])&&$post['cat_status']!=="" ? intval($post['cat_status']) :"";
  285. if($cat_status!=='') $condition[]=["b.status","=",$cat_status];
  286. $list =Db::name("qrd_info")->alias("a")
  287. ->leftJoin("good b","a.goodNo=b.spuCode")
  288. ->field("a.*,b.status as cat_status,b.inv_cat_name,b.inv_cat_code,b.inv_tax,b.inv_good_name,b.isZx")
  289. ->order("a.createdTime desc")
  290. ->where($condition)->select();
  291. $data=[];
  292. foreach ( $list as $ky=>$value){
  293. $value['catInfo'] = json_decode($value['catInfo'],true);
  294. $tag =Db::name("tag_log")->alias("a")->leftJoin("order_tag b","a.tag_id=b.id")->where
  295. (["code"=>$value['sequenceNo'],"a.status"=>1])->column("b.tag_name,a.tag_img,a.tag_remark","b.type");
  296. $value['goodNum'] = $value['goodNum'] -$value['thNum'];
  297. $value['sendNum'] = $value['sendNum'] -$value['thNum'];
  298. $value['inv_tag_name']=$tag[4]['tag_name']??'';
  299. $value['pay_tag_name']=$tag[3]['tag_name']??'';
  300. $value['pay_tag_img']=$tag[3]['tag_img']??'';
  301. $value['inv_tag_img']=$tag[4]['tag_img']??'';
  302. $value['inv_tag_remark']=$tag[4]['tag_remark']??'';
  303. $value['pay_tag_remark']=$tag[3]['tag_remark']??'';
  304. $invArr = Db::name("assoc")
  305. ->alias("a")
  306. ->leftJoin("invoice_good b", "a.viceCode=b.invNo AND b.orderCode =a.orderCode")
  307. ->where(["a.status" => [1, 2], "a.is_del" => 0, "a.type" => 1, "a.orderCode" => $value['sequenceNo']])->group("a.status")
  308. ->column("sum(b.goodNum) as goodNum", "a.status");
  309. $value['inv_num'] = $invArr[1]??0;
  310. $value['ainv_num'] = $invArr[2]??0;
  311. $value['winv_num'] =$value['goodNum']- $value['inv_num']-$value['ainv_num'];
  312. $data[]=$value;
  313. }
  314. return app_show(0,"获取成功",$data);
  315. }
  316. /**
  317. * 更改销售单状态 是否需要回款 0 未回款对账 1 回款对账 2 无需汇款操作
  318. */
  319. public function status(){
  320. $post =$this->request->only(["sequenceNo"=>'',"status"=>0],"post","trim");
  321. if($post['sequenceNo']==''){
  322. return error_show(1004,"参数 sequenceNo 不能为空");
  323. }
  324. if($post['status']===''){
  325. return error_show(1004,"参数 status 不能为空");
  326. }
  327. $qrdinfo =Db::name("qrd_info")->where("sequenceNo","=",$post['sequenceNo'])->findOrEmpty();
  328. if(empty($qrdinfo)){
  329. return error_show(1004,"未找到确认单信息");
  330. }
  331. if ($qrdinfo['status']==1){
  332. return error_show(1004,"确认单已参与对账");
  333. }
  334. $update=[
  335. "status"=>$post['status'],
  336. "updatetime"=>date("Y-m-d H:i:s")
  337. ];
  338. $up =Db::name("qrd_info")->where($qrdinfo)->update($update);
  339. if($up){
  340. return app_show(0,"更新成功");
  341. }else{
  342. return error_show(1003,"更新失败");
  343. }
  344. }
  345. //确认单信息详情
  346. public function saleinfo(){
  347. $post=$this->post;
  348. $sequenceNo =isset($post['sequenceNo'])&&$post['sequenceNo']?trim($post['sequenceNo']):"";
  349. if($sequenceNo==''){
  350. return error_show(1003,"参数 sequenceNo 不能为空");
  351. }
  352. $qrdinfo =Db::name("qrd_info")->where("sequenceNo","=",$post['sequenceNo'])->findOrEmpty();
  353. if(empty($qrdinfo)){
  354. return error_show(1004,"未找到确认单信息");
  355. }
  356. $goodinfo = Db::name("good")->where(["spuCode"=>$qrdinfo["goodNo"]])->findOrEmpty();
  357. $qrdinfo['goodinfo'] =$goodinfo;
  358. $qrdinfo['catInfo'] = json_decode($qrdinfo['catInfo'],true);
  359. $tag =Db::name("tag_log")->alias("a")->leftJoin("order_tag b","a.tag_id=b.id")
  360. ->where(["code"=>$qrdinfo['sequenceNo'],"a.status"=>1])->column("a.id,b.tag_name,a.tag_img,a.tag_remark","b.type");
  361. $qrdinfo['inv_tag_name']=$tag[4]['tag_name']??'';
  362. $qrdinfo['pay_tag_name']=$tag[3]['tag_name']??'';
  363. $qrdinfo['pay_tag_img']=$tag[3]['tag_img']??'';
  364. $qrdinfo['inv_tag_id']=$tag[4]['id']??'0';
  365. $qrdinfo['pay_tag_id']=$tag[3]['id']??'0';
  366. $qrdinfo['pay_tag_remark']=$tag[3]['tag_remark']??'';
  367. $qrdinfo['inv_tag_img']=$tag[4]['tag_img']??'';
  368. $qrdinfo['inv_tag_remark']=$tag[4]['tag_remark']??'';
  369. $qrdinfo['goodNum'] = $qrdinfo['goodNum'] -$qrdinfo['thNum'];
  370. $qrdinfo['sendNum'] = $qrdinfo['sendNum'] -$qrdinfo['thNum'];
  371. $qrdinfo['customerAttr'] = Db::name("customer_info")->where(["companyNo"=>$qrdinfo['customerNo']])->value("parent",'');
  372. return app_show(0,"获取成功",$qrdinfo);
  373. }
  374. /**验证采销订单管联数据是否对账
  375. * @return \think\response\Json|void
  376. */
  377. public function OrderIsCheck(){
  378. $post =$this->request->only(["orderCode"=>'',"isCgd"=>0,"is_cgd_check"=>0],"post","trim");
  379. $vali=Validate::rule([
  380. "orderCode|销售单单号"=>"require|max:255",
  381. "isCgd|是否退采购单"=>"require|in:0,1",
  382. "is_cgd_check|只退采购单"=>"in:0,1"
  383. ]);
  384. if($vali->check($post)==false) return error_show(1004,$vali->getError());
  385. $data=[];
  386. if($post['is_cgd_check']==0){
  387. $qrdinf =Db::name('qrd_info')->where(['sequenceNo|cxCode'=>$post['orderCode'],'is_del'=>0])
  388. ->field('sequenceNo,ownerName,companyName,inv_tag,pay_tag')->select()->toArray();
  389. if(!empty($qrdinf)){
  390. foreach ($qrdinf as $item){
  391. if($item['inv_tag']==1){
  392. $temp=["type"=>"结算销售单开票标签","username"=> $item['ownerName'],"orderCode"=>$item['sequenceNo'],
  393. "companyName"=>$item['companyName']];
  394. $data[]=$temp;
  395. }
  396. if($item['pay_tag']==1){
  397. $temp=['type'=>'结算销售单付款标签','username'=> $item['ownerName'],'orderCode'=>$item['sequenceNo'],'companyName'=>$item['companyName']];
  398. $data[]=$temp;
  399. }
  400. $asscoinfo =Db::name('assoc')->where(['orderCode'=>$item['sequenceNo'],'status'=>[1,2],'is_del'=>0])->column
  401. ('viceCode','type');
  402. if(isset($asscoinfo[1])){
  403. $uname = InvoicePool::where("invNo",$asscoinfo[1])->value("apply_name",'');
  404. $temp=['type'=>'结算销售单开票申请','username'=> $uname,'orderCode'=>$asscoinfo[1],'companyName'=>$item['companyName']];
  405. $data[]=$temp;
  406. }
  407. if(isset($asscoinfo[2])){
  408. $uname = TradePool::where('logNo',$asscoinfo[2])->value('apply_name','');
  409. $temp=['type'=>'结算销售单资金认领','username'=> $uname,'orderCode'=>$asscoinfo[2],'companyName'=>$item['companyName']];
  410. $data[]=$temp;
  411. }
  412. }
  413. // if(empty($data)==false) $this->error("结算存在进行中业务",1005,$data);
  414. }
  415. $cgdinfo =Db::name('cgd_info')->where(['cxCode'=>$post['orderCode'],'status'=>1,'is_del'=>0])->field('sequenceNo,companyName')->findOrEmpty();
  416. if(!empty($cgdinfo)){
  417. $payNo = Db::name('pay_info')->where(['cgdNo'=>$cgdinfo['sequenceNo'],'status'=>1,'is_del'=>0])->value('payNo','');
  418. if($payNo!=''){
  419. $uname = Pay::where("payNo",$payNo)->value("apply_name",'');
  420. $data[]=['type'=>'采购对账单','username'=> $uname,'orderCode'=>$payNo,'companyName'=>$cgdinfo['companyName']];
  421. $hp = Db::name('pay_invoice')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  422. ->column('hpNo,apply_name');
  423. if(!empty($hp)){
  424. foreach ($hp as $item){
  425. $data[]=['type'=>'采购对账单回票','username'=> $item['apply_name'],'orderCode'=>$item['hpNo'],'companyName'=>$cgdinfo['companyName']];
  426. }
  427. }
  428. $paydz = Db::name('pay_payment')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  429. ->column('dzNo,apply_name');
  430. if(!empty($paydz)){
  431. foreach ($paydz as $item){
  432. $data[]=['type'=>'采购对账单付款','username'=> $item['apply_name'],'orderCode'=>$item['dzNo'],'companyName'=>$cgdinfo['companyName']];
  433. }
  434. }
  435. }
  436. }
  437. if($post['isCgd']==1){
  438. $cgdinfo =Db::name('cgd_info')->where(['qrdCode'=>$post['orderCode'],'is_del'=>0])->field('sequenceNo,companyName')->findOrEmpty();
  439. if(!empty($cgdinfo)){
  440. $payNo = Db::name('pay_info')->where(['cgdNo'=>$cgdinfo['sequenceNo'],'status'=>1,'is_del'=>0])->value('payNo','');
  441. if($payNo!=''){
  442. $uname = Pay::where('payNo',$payNo)->value('apply_name','');
  443. $data[]=['type'=>'采购对账单','username'=> $uname,'orderCode'=>$payNo,'companyName'=>$cgdinfo['companyName']];
  444. $hp = Db::name('pay_invoice')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  445. ->column('hpNo,apply_name');
  446. if(!empty($hp)){
  447. foreach ($hp as $item){
  448. $data[]=['type'=>'采购对账单回票','username'=> $item['apply_name'],'orderCode'=>$item['hpNo'],'companyName'=>$cgdinfo['companyName']];
  449. }
  450. }
  451. $paydz = Db::name('pay_payment')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  452. ->column('dzNo,apply_name');
  453. if(!empty($paydz)){
  454. foreach ($paydz as $item){
  455. $data[]=['type'=>'采购对账单付款','username'=> $item['apply_name'],'orderCode'=>$item['dzNo'],'companyName'=>$cgdinfo['companyName']];
  456. }
  457. }
  458. }
  459. $comoOrder = CgdInfo::where(['mainCode'=>$cgdinfo['sequenceNo'],'is_comon'=>2,'status'=>1])->field('sequenceNo,companyName')->findOrEmpty();
  460. if(!empty($comoOrder)){
  461. $payNo = Db::name('pay_info')->where(['cgdNo'=>$comoOrder['sequenceNo'],'status'=>1,'is_del'=>0])->value('payNo','');
  462. if($payNo!=''){
  463. $uname = Pay::where('payNo',$payNo)->value('apply_name','');
  464. $data[]=['type'=>'源头采购对账单','username'=> $uname,'orderCode'=>$payNo,'companyName'=>$comoOrder['companyName']];
  465. $hp = Db::name('pay_invoice')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  466. ->column('hpNo,apply_name');
  467. if(!empty($hp)){
  468. foreach ($hp as $item){
  469. $data[]=['type'=>'源头采购对账单回票','username'=> $item['apply_name'],'orderCode'=>$item['hpNo'],'companyName'=>$cgdinfo['companyName']];
  470. }
  471. }
  472. $paydz = Db::name('pay_payment')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  473. ->column('dzNo,apply_name');
  474. if(!empty($paydz)){
  475. foreach ($paydz as $item){
  476. $data[]=['type'=>'源头采购对账单付款','username'=> $item['apply_name'],'orderCode'=>$item['dzNo'],'companyName'=>$cgdinfo['companyName']];
  477. }
  478. }
  479. }
  480. }
  481. }
  482. }
  483. }else{
  484. $cgdinfo =Db::name('cgd_info')->where(['sequenceNo'=>$post['orderCode'],'status'=>1,'is_del'=>0])->field('sequenceNo,companyName')->findOrEmpty();
  485. if(!empty($cgdinfo)){
  486. $payNo = Db::name('pay_info')->where(['cgdNo'=>$cgdinfo['sequenceNo'],'status'=>1,'is_del'=>0])->value('payNo','');
  487. if($payNo!=''){
  488. $uname = Pay::where('payNo',$payNo)->value('apply_name','');
  489. $data[]=['type'=>'采购对账单','username'=> $uname,'orderCode'=>$payNo,'companyName'=>$cgdinfo['companyName']];
  490. $hp = Db::name('pay_invoice')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  491. ->column('hpNo,apply_name');
  492. if(!empty($hp)){
  493. foreach ($hp as $item){
  494. $data[]=['type'=>'采购对账单回票','username'=> $item['apply_name'],'orderCode'=>$item['hpNo'],'companyName'=>$cgdinfo['companyName']];
  495. }
  496. }
  497. $paydz = Db::name('pay_payment')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  498. ->column('dzNo,apply_name');
  499. if(!empty($paydz)){
  500. foreach ($paydz as $item){
  501. $data[]=['type'=>'采购对账单付款','username'=> $item['apply_name'],'orderCode'=>$item['dzNo'],'companyName'=>$cgdinfo['companyName']];
  502. }
  503. }
  504. }
  505. }
  506. $comoOrder = CgdInfo::where(['mainCode'=>$post['orderCode'],'is_comon'=>2,'status'=>1])->field('sequenceNo,companyName')->findOrEmpty();
  507. if(!empty($comoOrder)){
  508. $payNo = Db::name('pay_info')->where(['cgdNo'=>$comoOrder['sequenceNo'],'status'=>1,'is_del'=>0])->value('payNo','');
  509. if($payNo!=''){
  510. $uname = Pay::where('payNo',$payNo)->value('apply_name','');
  511. $data[]=['type'=>'源头采购对账单','username'=> $uname,'orderCode'=>$payNo,'companyName'=>$comoOrder['companyName']];
  512. $hp = Db::name('pay_invoice')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  513. ->column('hpNo,apply_name');
  514. if(!empty($hp)){
  515. foreach ($hp as $item){
  516. $data[]=['type'=>'源头采购对账单回票','username'=> $item['apply_name'],'orderCode'=>$item['hpNo'],'companyName'=>$cgdinfo['companyName']];
  517. }
  518. }
  519. $paydz = Db::name('pay_payment')->where(['payNo'=>$payNo,'is_del'=>0,'status'=>[1,2,3,4]])
  520. ->column('dzNo,apply_name');
  521. if(!empty($paydz)){
  522. foreach ($paydz as $item){
  523. $data[]=['type'=>'源头采购对账单付款','username'=> $item['apply_name'],'orderCode'=>$item['dzNo'],'companyName'=>$cgdinfo['companyName']];
  524. }
  525. }
  526. }
  527. }
  528. }
  529. empty($data)?$this->success("不存在对账订单"):$this->error("存在对账业务数据",1005,$data);
  530. }
  531. }