wugg 1 年之前
父節點
當前提交
c2a83edf81
共有 3 個文件被更改,包括 102 次插入11 次删除
  1. 95 0
      app/admin/controller/OrderOutChild.php
  2. 4 10
      app/admin/controller/SaleReport.php
  3. 3 1
      app/admin/route/app.php

+ 95 - 0
app/admin/controller/OrderOutChild.php

@@ -758,5 +758,100 @@ class OrderOutChild extends Base
 
         return json_show(0, '获取成功', $list);
     }
+    //退货旧数据生成发货工单
+    public function  makeOutChild(){
+    	    $param = $this->request->only(['outCode'], 'post', 'trim');
+            $val = Validate::rule(['outCode' => 'require']);
+            if($val->check($param)==false) return error_show(1004,$val->getError());
+            $out=Db::name("order_out")->where(["outCode"=>$param['outCode'],"is_del"=>0])->findOrEmpty();
+            if(empty($out))return error_show(1004,'发货单不存在');
+            if(!in_array($out['status'],[2,3]))return error_show(1004,'发货单状态不满足条件');
+			$sale=Db::name("sale")->where(["orderCode"=>$out['orderCode'],"is_del"=>0])->findOrEmpty();
+			if(empty($sale))return error_show(1004,'订单不存在');
+            if(!in_array($sale['status'],[1,2]))return error_show(1004,'订单状态不满足条件');
+            $bninfo =Db::name("sale_info")->where([["orderCode","=",$out['orderCode']],["is_change_outbn","in",[1,2]]])
+            ->select()->toArray();
+            if(empty($bninfo)) return error_show(1004,'订单状态bn数据未找到');
+            $isT= Db::name("order_out_child")->where(["outCode"=>$param['outCode'],"is_del"=>0])->findOrEmpty();
+            if(!empty($isT))return error_show(1004,'发货单已存在工单');
+            if($out['wsm_code']==''){
+            	if($sale["order_type"]==1) $cod =["b.supplierNo"=>$sale['supNo']];
+            	else $cod =["b.companyNo"=>$sale['supplierNo']];
+            	$wsmcode =Db::name("good_stock")->alias("a")
+            	->leftJoin("warehouse_info b","a.wsm_code = b.wsm_code ")
+            	->where("a.spuCode",$sale['good_code'])
+            	->where("b.wsm_type","in",[2,5])
+            	->where($cod)
+            	->value("a.wsm_code",'');
+            }else $wsmcode =$out['wsm_code'];
+			$outchild=[
+				"outChildCode"=>"",str_replace("DF","TCD",$param['outCode']),
+				"orderCode"=>$out['orderCode'],
+				"outCode"=>$out['outCode'],
+				"companyNo"=>$sale['supplierNo'],
+				"companyName"=>$sale['supplierName'],
+				"customer_code"=>$sale['customer_code'],
+				"customer_name"=>$sale['customerName'],
+				"supplierNo"=>$sale['supNo'],
+				"supplierName"=>$sale['supName'],
+				"spuCode"=>$sale['good_code'],
+				"skuCode"=>$sale['skuCode'],
+				"good_name"=>$sale['good_name'],
+				"order_type"=>$sale['order_type'],
+				"order_source"=>$sale['order_source'],
+				"num"=>$out['send_num'],
+				"wsm_code"=>$wsmcode,
+				"apply_id"=>$out['apply_id'],
+				"apply_name"=>$out['apply_name'],
+				"addrid"=>$out['addrid'],
+				"post_name"=>$out['post_name'],
+				"post_code"=>$out['post_code'],
+				"post_fee"=>$out['post_fee'],
+				"status"=>"2",
+				"sendtime"=>$out['sendtime'],
+				];
+
+			$bnin=[];
+			Db::startTrans();
+			try{
+				$sendnum =$out['send_num'];
+				foreach ($bninfo as $item) {
+					if($item['num']>=$sendnum){
+						$temp=$sendnum;
+						$item['num']-=$sendnum;
+						$sendnum=0;
+					}else{
+						$temp= $item['num'];
+						$sendnum-=$item['num'];
+						$item['num']=0;
+					}
+			$bnin[]=[
+				"outChildCode"=>$outchild['outChildCode'],
+				"orderCode"=>$out['orderCode'],
+				"outCode"=>$out['outCode'],
+				"bnCode"=>$item['bnCode'],
+				"num"=>$temp,
+				"origin_price"=>$item['origin_price'],
+				"total_bn_num"=>$temp
+				];
+				$up = Db::name("sale_info")->where(["id"=>$item['id']])
+				->inc("change_num",$temp)
+				->update(["is_change_outbn"=>$item['num']==0?3:2,"updatetime"=>date("Y-m-d H:i:s")]);
+				if($up==false) throw new \Exception("订单bn更新失败");
+				if($sendnum==0)break;
+			}
+			$makeChild =Db::name("order_out_child")->insert($outchild);
+			if($makeChild==false) throw new \Exception("发货工单生成失败");
+			$makeBn=Db::name("child_bn")->insertAll($bnin);
+			if($makeBn==false) throw new \Exception("发货工单bn生成失败");
+			$up = Db::name("order_out")->where(["outCode"=>$param['outCode'],"is_del"=>0])->update(["send_status"=>4]);
+			if($up==false) throw new \Exception("发货单更新失败");
+			Db::commit();
+			return app_show(0,"发货工单生成完毕");
+			}catch (\Exception $e){
+				Db::rollback();
+				return  error_show(1004,$e->getMessage());
+			}
 
+    }
 }

+ 4 - 10
app/admin/controller/SaleReport.php

@@ -2708,7 +2708,7 @@ class SaleReport extends Base
                     //非库存品
                     $list[$val['supplierNo']]['tag_2']+=$val['total_cgd'];
                     $total['tag_2']+=$val['total_cgd'];
-
+				break;
                 case 3:
                     //咨询采反
                     if ($val['order_source'] == 2) {
@@ -2910,10 +2910,7 @@ class SaleReport extends Base
 	        }
 	        $total['total_cgd'] +=$val['total_cgd'];
         }
-
-//        $list = array_merge($list);//重置下标,关联数组,下标是字符,无法通过array_merge方法重置下标
 	    $list=array_values($list);
-//        $list[] = $total;
 
         return app_show(0, '请求成功', $list);
 
@@ -2932,11 +2929,7 @@ class SaleReport extends Base
         if ($param['start_day'] != '' && $param['end_day'] != '') $where[] = ['a.addtime', 'between', [$param['start_day'] . ' 00:00:00', $param['end_day'] . ' 23:59:59']];
 
         if ($param['flag'] != '') {
-//            $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
-//                ->group('supplierNo')
-//                ->column('supplierNo');
             $has_sup_acc = checkHasAccountBySupplierNos();
-
             if ($param['flag'] == 1) $where[] = ['a.supplierNo', 'in', array_keys($has_sup_acc)];//1.开通账号的
             else $where[] = ['a.supplierNo', 'not in', array_keys($has_sup_acc)];//2.未开通账号的
         }
@@ -2986,8 +2979,9 @@ class SaleReport extends Base
 
                 case 3:
                     //咨询采反
-                    if ($val['order_source'] == 2) {
-
+                    if($val['order_source'] == 2){
+                    	$list[$val['supplierNo']]['反馈单数合计']+=$val['total_cgd'];
+                        $total['反馈单数合计']+=$val['total_cgd'];
                     } else {
                         $list[$val['cgder_id']]['采销录单采反']+=$val['total_cgd'];
                         $total['采销录单采反']+=$val['total_cgd'];

+ 3 - 1
app/admin/route/app.php

@@ -813,6 +813,7 @@ route::rule('child_info', 'admin/OrderOutChild/info');//详情
 route::rule('child_send', 'admin/OrderOutChild/send');//发货
 route::rule('child_out_list', 'admin/OrderOutChild/getListByOutCode');//根据发货单号查询发货工单
 route::rule('child_out_get_list', 'admin/OrderOutChild/getList');//根据发货单号获取发货工单列表()
+route::rule('child_out_make', 'admin/OrderOutChild/makeOutChild');//根据发货单号生成发货工单数据 //退货旧数据生成
 
 
 route::rule('order_cancel', 'admin/Sale/orderCancel');//订单取消
@@ -831,4 +832,5 @@ route::rule('channelquery', 'admin/Channel/query');//渠道新建
 route::rule('channeldel', 'admin/Channel/delete');//渠道新建
 route::rule('channelcatlist', 'admin/Channel/channelCatList');//渠道新建
 route::rule('channelcatsave', 'admin/Channel/channleCatSave');//渠道新建
-//route::rule('channeladd', 'admin/Channel/add');//渠道新建
+
+