Browse Source

Merge branch 'dev_wf' of wugg/phpstock into version1.5

wufeng 2 năm trước cách đây
mục cha
commit
65f272e155

+ 27 - 0
app/admin/controller/After.php

@@ -114,6 +114,15 @@ class After extends Base
             $orde = ["order_code"=>$returnCode,"status"=>$in['status'],"action_remark"=>'',"action_type"=>"create"];
             ActionLog::logAdd($this->post['token'],$orde,'SHD',1,$orde);
             if($create>0){
+
+                //维护台账
+                Db::name('standing_book')
+                    ->where('outCode', $outCode)
+                    ->update([
+                        'returnCode' => $returnCode,
+                        'updatetime' => date("Y-m-d H:i:s")
+                    ]);
+
                     $process=["order_code"=>$returnCode,"order_id"=>$create,"order_status"=>$in['status'],"order_type"=>'SHD',"before_status"=>1];
                     ProcessOrder::AddProcess($token,$process);
                     Db::commit();
@@ -715,6 +724,15 @@ class After extends Base
                     ];
                     $back =Db::name("order_back")->insert($data,true);
                     if($back>0){
+
+                        //维护台账
+                        Db::name('standing_book')
+                            ->where('returnCode', $bkcode)
+                            ->update([
+                                'thNo' => $data['thNo'],
+                                'updatetime' => date("Y-m-d H:i:s")
+                            ]);
+
                         $order = ["order_code"=>$data['thNo'],"status"=>0,"action_remark"=>'',"action_type"=>"create"];
                         ActionLog::logAdd($this->post['token'],$order,"CKTHD", 0,$data);
                         $process=["order_code"=>$data['thNo'],"order_id"=>$back,"order_status"=>0,"order_type"=>"CKTHD","before_status"=>0];
@@ -1031,6 +1049,15 @@ class After extends Base
                             "order_id" => $sav,
                             "order_status" => $thdata['status'],"before_status"=>1
                         ]);
+
+                        //维护台账记录
+                        Db::name('standing_book')
+                            ->where(['returnCode' => $bkcode])
+                            ->update([
+                                'thNo' => $thNo,
+                                'updatetime' => date("Y-m-d H:i:s")
+                            ]);
+
                         if($info['return_tag']==1){
                             $sale['th_num']+= $info['error_num'];
                             if($sale['th_num']==$sale['send_num']&& $sale['wsend_num']==0){

+ 32 - 0
app/admin/controller/Consult.php

@@ -198,6 +198,10 @@ class Consult extends Base
             ];
             $zx = Db::name("consult_order")->insert($data);
             if($zx){
+
+                //判断是否是项目,且该项目是否存在台账记录中
+                if($is_project==1) $stand_exists=Db::name('standing_book')->field('id')->where('projectNo',$projectNo)->find();
+
                 foreach ($ladder as $value){
                     $infoNo=makeNo("IF");
                     $specinfo=[];
@@ -261,6 +265,28 @@ class Consult extends Base
 //                            "order_id" => 0,
 //                            "order_status" => 1
 //                        ]);
+
+
+                        //如果存在该项目编码,更新对应的第一个竞价单编码,其他竞价单编码新增(带着项目编码)
+                        if (isset($stand_exists)) {
+                            Db::name('standing_book')
+                                ->where('id', $stand_exists['id'])
+                                ->update([
+                                    'infoNo' => $infoNo,
+                                    'updatetime' => date('Y-m-d H:i:s')
+                                ]);
+                            unset($stand_exists);//后面的竞价单编码不用更新,都是新增
+                        } else {
+                            //添加台账信息
+                            Db::name('standing_book')
+                                ->insert([
+                                    'standBookNo' => makeNo("IO"),
+                                    'projectNo' => isset($projectNo) ? $projectNo : '',
+                                    'infoNo' => $infoNo,
+                                    'addtime' => date('Y-m-d H:i:s'),
+                                    'updatetime' => date('Y-m-d H:i:s')
+                                ]);
+                        }
                     }
                 }
                 Db::commit();
@@ -1205,6 +1231,8 @@ class Consult extends Base
             return error_show(1004,$e->getMessage());
         }
     }
+
+    //生成议价单
     public function bargain_add(){
         $bidNo = isset($this->post['bidNo'])&& $this->post['bidNo']!=""?trim($this->post['bidNo']):"";
         if($bidNo===""){
@@ -1337,6 +1365,10 @@ class Consult extends Base
                        return app_show(0,"议价单生成成功",["bargainNo"=>$bargainNo]);
                    }
                }
+
+               //维护台账信息
+               Db::name('standing_book')->where('infoNo', $info['infoNo'])->update(['bargainNo' => $bargainNo,'updatetime' => date('Y-m-d H:i:s')]);
+
             }
             Db::rollback();
             return error_show(1004,"议价单新建失败");

+ 1 - 3
app/admin/controller/Good.php

@@ -121,9 +121,7 @@ class Good extends Base
         $page = $page >= $total ? $total : $page;
         $list = Db::name('good')
             ->alias("a")
-            ->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.cat_id,a.good_name,a.good_img,a.good_thumb_img,a.good_info_img
-            ,b.createrid,a.is_exclusive,a.brand_id,a.supplierNo,a.good_unit,a.noble_metal,a.companyNo,a.spuCode,a.good_type,
-            b.creater,b.addtime,b.updatetime,b.exam_status,a.createrid purchase_id,a.creater purchase,u.itemid")//成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
+            ->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.cat_id,a.good_name,a.good_img,a.good_info_img,a.good_thumb_img,b.createrid,a.is_exclusive,a.brand_id,a.supplierNo,a.good_unit,a.noble_metal,a.companyNo,a.spuCode,a.good_type,b.creater,b.addtime,b.updatetime,b.exam_status,a.createrid purchase_id,a.creater purchase,u.itemid")//成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
             ->leftJoin("good_platform b","a.spuCode=b.spuCode")
 //            ->leftJoin("good_basic gb","gb.spuCode=a.spuCode")
             ->leftJoin("depart_user u", "u.uid=a.createrid AND u.is_del=0")

+ 26 - 2
app/admin/controller/Project.php

@@ -87,8 +87,8 @@ class Project extends Base
                 "addtime"=>date("Y-m-d H:i:s"),
                 "updatetime"=>date("Y-m-d H:i:s")
             ];
-            $pro=Db::name("project")->insert($data);
-            if($pro){
+            $pro=Db::name("project")->insertGetId($data);
+            if($pro>0){
                 if(!empty($ladder)){
                     $la=[];
                     foreach ($ladder as $value){
@@ -142,9 +142,21 @@ class Project extends Base
                         ], "PRO", 1, $this->post);
                         $process = ["order_code" => $projectNo, "order_id" => Db::name("project")->getLastInsID(), "order_status" =>1, "order_type" =>"PRO","before_status"=>1];
                         ProcessOrder::AddProcess($this->post['token'], $process);
+
+                    //台账记录
+                    Db::name('standing_book')
+                        ->insert([
+                            'standBookNo' => makeNo("IO"),
+                            'projectNo' => $projectNo,
+                            'addtime' => date('Y-m-d H:i:s'),
+                            'updatetime' => date('Y-m-d H:i:s')
+                        ]);
+
                         Db::commit();
                         return app_show(0,"项目新建成功",['projectNo'=>$projectNo]);
                 }
+
+
             }
             Db::rollback();
             return error_show(1004,"项目新建失败");
@@ -1053,6 +1065,18 @@ class Project extends Base
                         return error_show(1004, "销售订单创建失败");
                     }
                 }
+
+                Db::name('standing_book')
+                    ->where('projectNo', $backinfo['projectNo'])
+                    ->update([
+                        'orderCode' => $orderCode,
+                        'customer_code' => $prject['khNo'],
+                        'spuCode' => $backinfo['spuCode'],
+                        'order_type' => $data['order_type'],
+                        'supplierNo' => $prject['companyNo'],
+                        'updatetime' => date("Y-m-d H:i:s")
+                    ]);
+
                 Db::commit();
                 return error_show(0, "销售订单创建成功");
             }

+ 14 - 0
app/admin/controller/Purch.php

@@ -710,6 +710,11 @@ class Purch extends Base
                 $process=["order_code"=>$cgdNo,"order_id"=>$item,"order_status"=>1,"order_type"=>'CGGCD',"before_status"=>1];
                 ProcessOrder::AddProcess($this->post['token'],$process);
 
+                $update_standing_book_data = [
+                    'cgd_diff_id' => $item,//采购工差单id
+                    'updatetime' => date("Y-m-d H:i:s")
+                ];
+
                 $orderCode = Db::name("order_num")->where([["cgdNo","=",$cg['cgdNo']],["status","=",1]])->find();
                 if($orderCode!=false){
                     $order = Db::name("sale")->where("orderCode", '=', $orderCode['orderCode'])->find();
@@ -747,7 +752,16 @@ class Purch extends Base
                     ActionLog::logAdd($this->post['token'],$sto,"XSGCD",1,$data);
                     $process=["order_code"=>$orderCode['orderCode'],"order_id"=>$cgd,"order_status"=>1,"order_type"=>'XSGCD',"before_status"=>1];
                     ProcessOrder::AddProcess($this->post['token'],$process);
+
+                    $update_standing_book_data['sale_diff_id']=$cgd;//工差单id
+
                 }
+
+                //维护台账记录
+                Db::name('standing_book')
+                    ->where('cgdNo', $cgdNo)
+                    ->update($update_standing_book_data);
+
                 Db::commit();
                 return error_show(0,"新建成功");
             }else{

+ 4 - 0
app/admin/controller/Purchin.php

@@ -253,6 +253,10 @@ class Purchin extends Base
                 $process=["order_code"=>$wsm_in_code,"order_id"=>$win,"order_status"=>$status,"order_type"=>'RKD',"before_status"=>$status];
                 ProcessOrder::AddProcess($this->post['token'],$process);
                 $order = ["order_code"=>$cgdNo,"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"];
+
+                //维护台账信息
+                Db::name('standing_book')->where('cgdNo', $cgdNo)->update(['wsm_in_code' => $wsm_in_code, 'update' => date('Y-m-d H:i:s')]);
+
                 if($status==1){
                             Db::commit();
                             return app_show(0,'新建成功',["wsm_in_code"=>$wsm_in_code]);

+ 17 - 0
app/admin/controller/Reorder.php

@@ -104,6 +104,14 @@ class Reorder extends Base
                 ActionLog::logAdd($this->post['token'],$stn,"XSTHD",$in['status'],$in);
                 $process=["order_code"=>$returnCode,"order_id"=>$create,"order_status"=>$in['status'],"order_type"=>'XSTHD',"before_status"=>0];
                 ProcessOrder::AddProcess($this->post['token'],$process);
+
+                //维护台账信息
+                Db::name('standing_book')
+                    ->where('orderCode', $ordeCode)
+                    ->update([
+                        "returnGoodCode" => $returnCode,
+                        "updatetime" => date("Y-m-d H:i:s")
+                    ]);
                 if($returnadr!=""){
                     $inf=[];
                     foreach ($returnadr as $val){
@@ -1051,6 +1059,15 @@ class Reorder extends Base
                 $ste = ["order_code"=>$returnCode,"status"=>0,"action_remark"=>'',
                     "action_type"=>"create"];
                 ActionLog::logAdd($this->post['token'],$ste,"XSTHD",3,$in);
+
+                //维护台账记录
+                Db::name('standing_book')
+                    ->where('ordeCode', $ordeCode)
+                    ->update([
+                        'returnGoodCode' => $returnCode,
+                        'updatetime' => date("Y-m-d H:i:s")
+                    ]);
+
                 if ($order['send_type'] == 1) {
                     $wsend = Db::name("order_out")->where(['orderCode' => $ordeCode, "status" => 1, "order_type"
                     =>2])->select();

+ 10 - 2
app/admin/controller/Resign.php

@@ -148,8 +148,7 @@ class Resign extends Base
         if($supplier==false)  return error_show(1004,"未找到供应商数据");
         $bk= Db::name("purchease")->where([["spuCode","=",$good_code],["status","<>",2],["is_del","=",0]])->find();
         if($bk!=false) return error_show(1004,"存在未完成备库单数据");
-        $cgd =Db::name("purchease_order")->where([["spuCode","=",$good_code],["status","in",[0,1]],["is_del","=",0]])
-        ->find();
+        $cgd =Db::name("purchease_order")->where([["spuCode","=",$good_code],["status","in",[0,1]],["is_del","=",0]])->find();
         if($cgd!=false) return error_show(1004,"存在未完成采购单数据");
         //查验仓库库存数量
         $stock =Db::name("good_stock")->alias("a")->leftJoin("warehouse_info b","a.wsm_code=b.wsm_code")->where
@@ -203,6 +202,15 @@ class Resign extends Base
             ProcessOrder::AddProcess($token,$order);
             $ste = ["order_code"=>$bk_code,"status"=>0,"action_remark"=>'',"action_type"=>"create"];
             ActionLog::logAdd($token,$ste,"BHD",1,$info);
+
+            //台账记录
+            Db::name('standing_book')
+                ->insert([
+                    'standBookNo' => makeNo("IO"),
+                    'bk_code' => $bk_code,
+                    'addtime' => date('Y-m-d H:i:s'),
+                    'updatetime' => date('Y-m-d H:i:s')
+                ]);
           return app_show(0,"新建成功",['bk_code'=>$bk_code]);
         }else{
           return error_show(1005,"新建失败");

+ 104 - 14
app/admin/controller/Sale.php

@@ -244,6 +244,7 @@ class Sale extends Base
            $paytime==""?"": $data['paytime'] = $paytime;
             $datainfo = Db::name('sale')->insert($data,true);
             if($datainfo>0){
+
                 //修改状态,添加待办
                 ActionLog::logAdd($this->post['token'], [
                     "order_code" => $orderCode,//销售单code
@@ -272,15 +273,22 @@ class Sale extends Base
                    }
                 }
                 $outstatus=0;
+                $standing_book_da = ['customer_code' => $customer_code, 'skuCode' => $skuCode, 'updatetime' => date('Y-m-d H:i:s')];
                 if($is_stock==0){
-                    $bol=$this->createCgd($cgd);
+                    $bol=$this->createCgd($cgd,$standing_book_da);
                     if($bol==false){
                         Db::rollback();
                         return error_show(1002,"订单创建失败");
                     }
                 }else{
                     $outstatus=1;
-                    $bol =$this->RelaCgd(['orderCode'=>$orderCode,"good_num"=>$good_num,"spuCode"=>$spuCode,"companyNo"=>$supplierNo,"cost_fee"=>isset($good['cost_fee'])?$good['cost_fee']:0]);
+                    $bol =$this->RelaCgd([
+                        'orderCode'=>$orderCode,
+                        "good_num"=>$good_num,
+                        "spuCode"=>$spuCode,
+                        "companyNo"=>$supplierNo,
+                        "cost_fee"=>isset($good['cost_fee'])?$good['cost_fee']:0
+                    ],$standing_book_da);
                     if($bol==false){
                         Db::rollback();
                         return error_show(1002,"库存商品关联采购单失败");
@@ -365,6 +373,7 @@ class Sale extends Base
                                         Db::rollback();
                                         return error_show(1002, "发货地址添加创建失败");
                                     }
+
                                     $cgdinfo = Db::name("purchease_order")->where(["cgdNo" => $order['cgdNo']])->find();
                                     if ($cgdinfo == false) {
                                         Db::rollback();
@@ -408,6 +417,8 @@ class Sale extends Base
                                             "order_id" => Db::name("order_out")->getLastInsID(),
                                             "order_status" => $out['status'],"before_status"=> $out['status']
                                         ]);
+
+                                        $standing_book_da['outCode'] = $outCode;
                                     }
                              //   }
                         }else{
@@ -416,6 +427,14 @@ class Sale extends Base
                         }
                     }
                 }
+
+                //处理台账
+                if (isset($standing_book_da['bk_code'])) {
+                    $temp = Db::name('standing_book')->field('id')->where('bk_code', $standing_book_da['bk_code'])->find();
+                    if (!empty($temp)) Db::name('standing_book')->where('id', $temp['id'])->update($standing_book_da);
+                    else Db::name('standing_book')->insert(array_merge($standing_book_da, ['addtime' => date('Y-m-d H:i:s'), 'standBookNo' => makeNo('IO')]));
+                } else Db::name('standing_book')->insert(array_merge($standing_book_da, ['addtime' => date('Y-m-d H:i:s'), 'standBookNo' => makeNo('IO')]));
+
                 Db::commit();
                 return error_show(0,"咨询订单创建成功",["order_code"=>$orderCode]);
             }
@@ -428,7 +447,7 @@ class Sale extends Base
     }
 
     //采购单
-    public function createCgd($data){
+    public function createCgd($data,array &$standing_book_da=[]){
         $cgdCode = makeNo("CG");
         $supplier=Db::name("supplier")->where(["code"=>$data['supplierNo'],"is_del"=>0])->find();
         if($supplier==false){
@@ -517,6 +536,16 @@ class Sale extends Base
                 "order_status" => $cg['status'],"before_status"=> 0
             ]);
 
+            $standing_book_da = array_merge($standing_book_da, [
+                'orderCode' => $data['orderCode'],
+                'cgdNo' => $cgdCode,
+                'spuCode' => $data['spuCode'],
+                'skuCode' => $data['skuCode'],
+                'order_type' => $data['order_type'],
+                'supplierNo' => $data['supplierNo'],
+                "companyNo" => $data['companyNo'],
+            ]);
+
             $rela=[
                 "orderCode"=>$data['orderCode'],
                 "cgdNo"=>$cgdCode,
@@ -743,11 +772,12 @@ class Sale extends Base
                                 "order_id" => Db::name("order_out")->getLastInsID(),
                                 "order_status" => $status,"before_status"=> 0
                             ]);
+
+                            //处理台账-既然是根据orderCode更新的数据,那么肯定是有数据的,只需要更新就行了
+                            Db::name('standing_book')->where('orderCode', $orderCode)->update(['outCode' => $outCode, 'updatetime' => date('Y-m-d H:i:s')]);
                         }
 
                         //维护商品所在仓库的库存 --- end
-
-
                 }else{
                     Db::rollback();
                     return error_show(1002,"发货地址添加创建失败");
@@ -917,6 +947,9 @@ class Sale extends Base
             ];
             $datainfo = Db::name('sale')->insert($data, true);
             if($datainfo>0){
+
+                $standing_book_data = ['infoNo' => $zxinfo['infoNo'], 'updatetime' => date('Y-m-d H:i:s')];
+
                 //修改状态,添加待办
                 ActionLog::logAdd($this->post['token'], [
                     "order_code" =>$orderCode,//销售单code
@@ -948,7 +981,7 @@ class Sale extends Base
                         ], "ZXD", 5, $zx);
 
                     }
-                    $bol=$this->createCgd($cgd);
+                    $bol=$this->createCgd($cgd,$standing_book_data);
                     if($bol==false){
                         Db::rollback();
                         return error_show(1002,"咨询订单创建失败");
@@ -1069,6 +1102,9 @@ class Sale extends Base
                                         "order_id" => Db::name("order_out")->getLastInsID(),
                                         "order_status" => 0,"before_status"=> 0
                                     ]);
+
+                                    //将发货编号添加到台账中
+                                    $standing_book_data['outCode']=$outCode;
                                 }
                                 $order['send_num']+=$value['receipt_quantity'];
                                 $order['wsend_num']-=$value['receipt_quantity'];
@@ -1099,6 +1135,10 @@ class Sale extends Base
                             }
                         }
                     }
+
+                    //处理台账
+                Db::name('standing_book')->where('infoNo', $standing_book_data['infoNo'])->update($standing_book_data);
+
                 Db::commit();
                 return error_show(0,"咨询订单创建成功",["order_code"=>$orderCode]);
             }
@@ -1184,6 +1224,8 @@ class Sale extends Base
                 $good['rm']=$rm;
                 $good['ri']=$ri;
                 $good['send_num']=0;
+
+                $standing_book_data=['projectNo'=>$plan['projectNo'],'updatetime'=>date('Y-m-d H:i:s')];
                 if($value['sendtype']==1){
                     if(!isset($value['addrlist'])||empty($value['addrlist'])){
                         Db::rollback();
@@ -1194,7 +1236,7 @@ class Sale extends Base
                 }
                 if($feedback['data_source']==1){
 
-                    $feed=$this->project_good($good);
+                    $feed=$this->project_good($good,$standing_book_data);
                     if($feed !==true){
                         Db::rollback();
                         switch ($feed){
@@ -1217,7 +1259,7 @@ class Sale extends Base
                         return error_show(1002,$msg);
                     }
                 }else{
-                    $feed=$this->project_zx($good);
+                    $feed=$this->project_zx($good,$standing_book_data);
                     if($feed==false){
                         Db::rollback();
                         return error_show(1002, "咨询订单生成失败");
@@ -1231,6 +1273,9 @@ class Sale extends Base
                     Db::rollback();
                     return error_show(1002, "项目订单生成失败");
                 }
+
+                //处理台账
+                Db::name('standing_book')->where('projectNo',$plan['projectNo'])->update($standing_book_data);
             }
             $old_plan_status = $plan['status'];
             $plan['status']=2;
@@ -1280,6 +1325,7 @@ class Sale extends Base
             ], "PRT", 2, $this->post);
             $process = ["order_code" => $project['projectNo'], "order_id" => $project['id'], "order_status" =>2, "order_type" =>"PRT","before_status"=> 1];
             ProcessOrder::AddProcess($this->post['token'], $process);
+
             Db::commit();
             return app_show(0, "咨询订单生成成功");
         }catch (\Exception $e){
@@ -1298,7 +1344,7 @@ class Sale extends Base
      *
      */
 
-    public function project_zx($data){
+    public function project_zx($data,array &$standing_book_data=[]){
         $goodinfo = Db::name("consult_bids")->where(["spuCode"=>$data['spuCode'],"is_del"=>0])->find();
         if($goodinfo==false){
             return false;
@@ -1371,6 +1417,7 @@ class Sale extends Base
         ];
         $datainfo = Db::name('sale')->insert($datas, true);
         if($datainfo>0){
+            $standing_book_data['customer_code']=$datas['customer_code'];
             //修改状态,添加待办
             ActionLog::logAdd($this->post['token'], [
                 "order_code" =>$orderCode,//项目编码
@@ -1385,7 +1432,7 @@ class Sale extends Base
                 "order_id" => $datainfo,
                 "order_status" => 0,"before_status"=> 0
             ]);
-            $bol = $this->createCgd($cgd);
+            $bol = $this->createCgd($cgd,$standing_book_data);
             if ($bol == false) {
                 return false;
             }
@@ -1538,6 +1585,8 @@ class Sale extends Base
                             if ($sen == false) {
                                 return false;
                             }
+
+                            $standing_book_data['outCode'] = $outCode;
                         }
 
                     } else {
@@ -1556,7 +1605,7 @@ class Sale extends Base
      * @throws \think\db\exception\DbException
      * @throws \think\db\exception\ModelNotFoundException
      */
-    public function project_good($data){
+    public function project_good($data,array &$standing_book_data=[]){
         $good=Db::name('good')
             ->alias("a")
             ->leftJoin("good_platform b","a.spuCode=b.spuCode")
@@ -1675,7 +1724,7 @@ class Sale extends Base
                 'send_way'=>2
             ];
             if($good['is_stock']==0) {
-                $bol = $this->createCgd($cgd);
+                $bol = $this->createCgd($cgd,$standing_book_data);
                 if ($bol == false) {
                     return 3;//关联采购失败
                 }
@@ -1687,7 +1736,7 @@ class Sale extends Base
                         return 1; //库存不足
                     }
 
-                $bol =$this->RelaCgd(['orderCode'=>$orderCode,"good_num"=>$data['good_num'],"spuCode"=>$good['spuCode'],"companyNo"=>$data['companyNo'],"cost_fee"=>$goodlass['cost_fee']]);
+                $bol =$this->RelaCgd(['orderCode'=>$orderCode,"good_num"=>$data['good_num'],"spuCode"=>$good['spuCode'],"companyNo"=>$data['companyNo'],"cost_fee"=>$goodlass['cost_fee']],$standing_book_data);
                 if($bol==false){
                     return 3;//关联采购失败
                 }
@@ -1734,6 +1783,7 @@ class Sale extends Base
                         $temp['arrive_time'] = $data['arrtime'];
                         $vmp = Db::name('order_addr')->insert($temp, true);
                         if ($vmp > 0) {
+                            $standing_book_data['customer_code'] = $temp['customer_code'];
 //                            if ($good['is_stock'] == 1) {
                                 $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
                                     ->lock(true)->find();
@@ -1790,6 +1840,7 @@ class Sale extends Base
                                 if ($ou == false) {
                                     return 0;
                                 } else {
+                                    $standing_book_data['outCode'] = $outCode;
                                     //修改状态,添加待办
                                     ActionLog::logAdd($this->post['token'], [
                                         "order_code" => $outCode,//出库单号
@@ -2026,6 +2077,16 @@ class Sale extends Base
                 ActionLog::logAdd($this->post['token'],$stn,"XSQRD",$etid['status'],$datn);
 //                $order=["order_type"=>'XSQRD',"order_code"=>$etid['orderCode'],"order_id"=>$id,"order_status"=>$etid['status'],"before_status"=> 0];
 //                ProcessOrder::AddProcess($this->post['token'],$order);
+
+                //更新台账
+                Db::name('standing_book')
+                    ->where('orderCode', $etid['orderCode'])
+                    ->update([
+                        'customer_code' => $customer_code,
+                        'supplierNo' => $supplierNo,
+                        'updatetime' => date("Y-m-d H:i:s")
+                    ]);
+
                 foreach ($vi as $ion) {
                     $iten = [];
                     isset($ion['id']) && $ion['id'] !== "" ? $iten['id'] = $ion['id'] : '';
@@ -2444,6 +2505,10 @@ class Sale extends Base
                             Db::rollback();
                             return error_show(1003, "创建失败");
                         }
+
+                        //维护台账
+                        Db::name('standing_book')->where('cgdNo', $cgd)->update(['wsm_in_code' => $wsm_in_code, 'update' => date('Y-m-d H:i:s')]);
+
                         $good = Db::name("good_stock")->where(["wsm_code" => $wsm['wsm_code'], "good_type_code" => $zxinfo['cpNo'], "is_del" => 0])->find();
                         if (empty($good)) {
                             $good = [
@@ -3363,6 +3428,18 @@ class Sale extends Base
                                 "order_id" => $datainfo,
                                 "order_status" => $data['status'],"before_status"=> 0
                             ]);
+
+                        //维护台账记录
+                        Db::name('standing_book')
+                            ->where('orderCode', $orderCode)
+                            ->update([
+                                'order_type' => $der['order_type'],
+                                'cgdNo' => $order['cgdNo'],
+                                'outCode' => $outCode,
+                                'customer_code' => $der['customer_code'],
+                                'updatetime' => date('Y-m-d H:i:s'),
+                            ]);
+
                         Db::commit();
                         return app_show(0,"出库单新建成功");
                     }
@@ -3491,7 +3568,7 @@ class Sale extends Base
         }
 
     }
-    public function RelaCgd($outinfo){
+    public function RelaCgd($outinfo,array &$standing_book_da=[]){
             $cgd = Db::name("order_bk")->where([["spuCode","=",$outinfo['spuCode']],["is_del","=",0],["balance_num",">=",
                 $outinfo['good_num']],['companyNo',"=",$outinfo['companyNo']]])->lock(true)->find();
             if($cgd==false){
@@ -3547,6 +3624,19 @@ class Sale extends Base
             $insetrCgd=Db::name("purchease_order")->insert($QrdCgd);
             if($insetrCgd==false){
                 return false;
+            }else{
+                $standing_book_da = array_merge($standing_book_da, [
+//                    'standBookNo' => makeNo("IO"),
+                    'bk_code' => $cgdinfo['bkcode'],
+                    'orderCode' => $outinfo['orderCode'],
+                    'cgdNo' => $QrdCgd['cgdNo'],
+                    'spuCode' => $outinfo['spuCode'],
+                    'order_type' => $QrdCgd['order_type'],
+                    'supplierNo' => $cgdinfo['supplierNo'],
+                    "companyNo" => $cgdinfo['companyNo'],
+//                    'addtime' => date('Y-m-d H:i:s'),
+//                    'updatetime' => date('Y-m-d H:i:s')
+                ]);
             }
             if($good['is_gold_price']==1 && $good['is_stock']==1){
                 $gold = Db::name("gold_price1")

+ 18 - 2
app/admin/controller/Salezx.php

@@ -128,7 +128,15 @@ class Salezx extends \app\BaseController
             $datainfo = Db::name('sale')->insert($data,true);
             $vat=[];
             if($datainfo>0){
-               $bol= $this->createCgd($data,$good,$goodinfo);
+
+                $standing_bood_data=[
+                    "orderCode"=>$orderCode,
+                    "customer_code"=>$customer_code,
+                    "supplierNo"=>$supplierNo,
+                    'updatetime'=>date("Y-m-d H:i:s"),
+                ];
+
+               $bol= $this->createCgd($data,$good,$goodinfo,$standing_bood_data);
                if($bol==false){
                    Db::rollback();
                    return error_show(1002,"咨询订单创建失败");
@@ -223,6 +231,12 @@ class Salezx extends \app\BaseController
                     "order_status" => 0
                 ]);
 
+
+                //根据zxinfoNo查找infoNo,找到则更新台账,否则就新增台账
+                $infoNo = Db::name('consult_bids')->where('bidNo', $zxinfoNo)->value('infoNo');
+                if (empty($infoNo)) Db::name('standing_book')->insert(array_merge($standing_bood_data, ['addtime' => date('Y-m-d H:i:s'), 'standBookNo' => makeNo("IO")]));
+                else Db::name('standing_book')->where('infoNo', $infoNo)->update($standing_bood_data);
+
                     Db::commit();
                     return error_show(0,"咨询订单创建成功");
             }
@@ -234,7 +248,7 @@ class Salezx extends \app\BaseController
         }
     }
 
-    public function createCgd($data,$good,$good_info){
+    public function createCgd($data,$good,$good_info,array &$standing_bood_data=[]){
                 $cgdCode = makeNo("CG");
                 $supplier=Db::name("supplier")->where(["code"=>$good['supplierNo'],"is_del"=>0])->find();
                 if($supplier==false){
@@ -319,6 +333,8 @@ class Salezx extends \app\BaseController
                             "order_status" => $cg['status']
                         ]);
 
+                        $standing_bood_data['cgdNo']=$cgdCode;
+
                         return true;
                     }else{
                         return false;

+ 92 - 0
app/admin/controller/StandingBook.php

@@ -0,0 +1,92 @@
+<?php
+
+namespace app\admin\controller;
+
+use think\facade\Db;
+
+//台账
+class StandingBook extends Base
+{
+
+    //台账列表
+    public function getList()
+    {
+
+        $param = $this->request->only([
+            'start_date' => '',
+            'end_date' => '',
+            'standBookNo' => '',
+            'projectNo' => '',
+            'infoNo' => '',
+            'bargainNo' => '',
+            'bk_code' => '',
+            'orderCode' => '',
+            'outCode' => '',
+            'returnCode' => '',
+            'thNo' => '',
+            'returnGoodCode' => '',
+            'cgdNo' => '',
+            'wsm_in_code' => '',
+            'cgdReturnCode' => '',
+            'spuCode' => '',
+            'skuCode' => '',
+            'order_type' => '',
+            'supplierNo' => '',
+            'companyNo' => '',
+            'customer_code' => '',
+            'page' => 1,
+            'size' => 15
+        ], 'post', 'trim');
+
+        $where = [];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+        if ($param['standBookNo'] != '') $where[] = ['standBookNo', 'like', '%' . $param['standBookNo'] . '%'];
+        if ($param['projectNo'] != '') $where[] = ['projectNo', 'like', '%' . $param['projectNo'] . '%'];
+        if ($param['infoNo'] != '') $where[] = ['infoNo', 'like', '%' . $param['infoNo'] . '%'];
+        if ($param['bargainNo'] != '') $where[] = ['bargainNo', 'like', '%' . $param['bargainNo'] . '%'];
+        if ($param['bk_code'] != '') $where[] = ['bk_code', 'like', '%' . $param['bk_code'] . '%'];
+        if ($param['orderCode'] != '') $where[] = ['orderCode', 'like', '%' . $param['orderCode'] . '%'];
+        if ($param['outCode'] != '') $where[] = ['outCode', 'like', '%' . $param['outCode'] . '%'];
+        if ($param['returnCode'] != '') $where[] = ['returnCode', 'like', '%' . $param['returnCode'] . '%'];
+        if ($param['thNo'] != '') $where[] = ['thNo', 'like', '%' . $param['thNo'] . '%'];
+        if ($param['returnGoodCode'] != '') $where[] = ['returnGoodCode', 'like', '%' . $param['returnGoodCode'] . '%'];
+        if ($param['cgdNo'] != '') $where[] = ['cgdNo', 'like', '%' . $param['cgdNo'] . '%'];
+        if ($param['wsm_in_code'] != '') $where[] = ['wsm_in_code', 'like', '%' . $param['wsm_in_code'] . '%'];
+        if ($param['cgdReturnCode'] != '') $where[] = ['cgdReturnCode', 'like', '%' . $param['cgdReturnCode'] . '%'];
+        if ($param['spuCode'] != '') $where[] = ['spuCode', 'like', '%' . $param['spuCode'] . '%'];
+        if ($param['skuCode'] != '') $where[] = ['skuCode', 'like', '%' . $param['skuCode'] . '%'];
+        if ($param['order_type'] != '') $where[] = ['order_type', '=', $param['order_type']];
+        if ($param['supplierNo'] != '') $where[] = ['supplierNo', 'like', '%' . $param['supplierNo'] . '%'];
+        if ($param['companyNo'] != '') $where[] = ['companyNo', 'like', '%' . $param['companyNo'] . '%'];
+        if ($param['customer_code'] != '') $where[] = ['customer_code', 'like', '%' . $param['customer_code'] . '%'];
+
+        $count = Db::name('standing_book')
+            ->where($where)
+            ->count('id');
+
+        $list = Db::name('standing_book')
+            ->where($where)
+            ->order('addtime', 'desc')
+            ->page($param['page'], $param['size'])
+            ->select()
+            ->toArray();
+
+        return app_show(0, "获取成功", ['list' => $list, 'count' => $count]);
+
+    }
+
+
+    //台账详情
+    public function getDetail(){
+
+        $id = $this->request->post('id/d',0,'trim');
+
+        $res = Db::name('standing_book')
+            ->where('id',$id)
+            ->find();
+
+        return app_show(0,'请求成功',$res);
+
+    }
+
+}

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

@@ -566,4 +566,9 @@ Route::rule('seooa','admin/SaleReport/orderOutAddr');//有地址待发货单列
 Route::rule('seooae','admin/SaleReport/orderOutAddrExport');//有地址待发货单列表-导出
 
 
-Route::rule('statlist','admin/Stat/list');//
+Route::rule('statlist','admin/Stat/list');//
+
+
+Route::rule('standbooklist','admin/StandingBook/getList');//台账列表
+Route::rule('standbookdetail','admin/StandingBook/getDetail');//台账详情
+

+ 33 - 6
app/command/ImportOrderFromCHandleData.php

@@ -50,6 +50,8 @@ class ImportOrderFromCHandleData extends Command
                 Db::startTrans();
                 try {
 
+                    $standing_book_data = [];
+
                     //先找用户确认信息
                     $extend_data = Db::name('order_import_from_c_extend')
                         ->where(['order_import_from_c_id' => $c_data['id'], 'is_del' => 0, 'type' => 2])
@@ -254,15 +256,28 @@ class ImportOrderFromCHandleData extends Command
                             if ($actupp == false) throw new Exception('活动库存修改失败');
 
                         }
+
+                        //补充台账数据
+                        $standing_book_data = array_merge($standing_book_data, [
+                            'orderCode' => $orderCode,
+//                            'outCode'=>,
+//                            'cgdNo'=>,
+                            'spuCode' => $data['good_code'],
+                            'skuCode' => $data['skuCode'],
+                            'order_type' => $data['order_type'],
+                            'supplierNo' => $data['supplierNo'],
+                            'companyNo' => $extend_data['companyNo'],
+                            'customer_code' => $data['customer_code'],
+                        ]);
                         if ($is_stock == 0) {
 
                             //非库存品
-                            $bol = $this->createCgd($cgd, $rm, $ri);
+                            $bol = $this->createCgd($cgd, $rm, $ri, $standing_book_data);
                             if ($bol == false) throw new Exception('订单创建失败');
 
                         } else {
                             //库存品
-                            $bol = $this->RelaCgd(['orderCode' => $orderCode, "good_num" => $good_num, "spuCode" => $spuCode, "companyNo" => $supplierNo, 'order_type' => $order_type]);
+                            $bol = $this->RelaCgd(['orderCode' => $orderCode, "good_num" => $good_num, "spuCode" => $spuCode, "companyNo" => $supplierNo, 'order_type' => $order_type], $standing_book_data);
                             if ($bol == false) throw new Exception('库存商品关联采购单失败');
 
                             if (isset($stock)) {
@@ -366,6 +381,8 @@ class ImportOrderFromCHandleData extends Command
                                         "order_status" => 0,
                                         "before_status" => 0
                                     ]);
+
+                                    $standing_book_data['outCode'] = $outCode;
                                 }
                             } else throw new Exception('发货地址添加失败');
                         }
@@ -386,6 +403,10 @@ class ImportOrderFromCHandleData extends Command
                             'orderCode' => $orderCode
                         ]);
 
+                    //维护台账记录
+                    if (isset($standing_book_data['bk_code'])) Db::name('standing_book')->where('bk_code', $standing_book_data['bk_code'])->update(array_merge($standing_book_data, ['updatetime' => date('Y-m-d H:i:s')]));
+                    else Db::name('standing_book')->insert(array_merge($standing_book_data, ['addtime' => date('Y-m-d H:i:s'), 'updatetime' => date('Y-m-d H:i:s'), 'standBookNo' => makeNo("IO")]));
+
                     Db::commit();
 
                     $output->writeln(date('Y-m-d H:i:s') . '|处理成功');
@@ -411,11 +432,10 @@ class ImportOrderFromCHandleData extends Command
 
 
     //创建采购单
-    private function createCgd($data = [], $rm = '0', $ri = '')
+    private function createCgd($data = [], $rm = '0', $ri = '', array &$standing_book_data = [])
     {
         $cgdCode = makeNo("CG");
-        $supplier = Db::name("supplier")
-            ->where(["code" => $data['supplierNo'], "is_del" => 0])->find();
+        $supplier = Db::name("supplier")->where(["code" => $data['supplierNo'], "is_del" => 0])->find();
         if ($supplier == false) return false;
 
         $wsm = Db::name("warehouse_info")
@@ -505,6 +525,8 @@ class ImportOrderFromCHandleData extends Command
                 "before_status" => 0
             ]);
 
+            $standing_book_data['cgdNo'] = $cgdCode;
+
             $rela = [
                 "orderCode" => $data['orderCode'],
                 "cgdNo" => $cgdCode,
@@ -554,7 +576,7 @@ class ImportOrderFromCHandleData extends Command
 
 
     //创建.....
-    private function RelaCgd(array $outinfo = [])
+    private function RelaCgd(array $outinfo = [], array &$standing_book_data = [])
     {
         //备库单
         $cgd = Db::name("order_bk")
@@ -615,6 +637,11 @@ class ImportOrderFromCHandleData extends Command
         $insetrCgd = Db::name("purchease_order")->insert($QrdCgd);
         if ($insetrCgd == false) return false;
 
+        $standing_book_data = array_merge($standing_book_data, [
+            'cgdNo' => $QrdCgd['cgdNo'],
+            'bk_code' => $QrdCgd['bkcode'],
+        ]);
+
         $merge_num = Db::name("purchease_order")
             ->where(["bkcode" => $cgdinfo['bkcode'], "order_type" => $outinfo['order_type'], "is_del" => 0])
             ->field("sum(send_num)-sum(th_num) as num")