Przeglądaj źródła

Merge branch 'version1.5' into dev_wf

wufeng 2 lat temu
rodzic
commit
79364c5cac

+ 15 - 8
app/admin/controller/After.php

@@ -22,7 +22,7 @@ class After extends Base
          if($outCode==''){
              return error_show(1004,"参数outCode 不能为空");
          }
-         $orderout= Db::name("order_out")->where(["outCode"=>$outCode])->find();
+         $orderout= Db::name("order_out")->where(["outCode"=>$outCode,'is_del'=>0])->find();
          if($orderout==false){
              return error_show(1005,"未找到订单数据");
          }
@@ -257,7 +257,7 @@ class After extends Base
     }
         $info["addr_cn"]=GetAddr($addcode);
       //  $info["addr_code"]=json_decode($addcode,true);
-        $out =Db::name("order_out")->where(["outCode"=>$info['outCode']])->find();
+        $out =Db::name("order_out")->where(["outCode"=>$info['outCode'],"is_del"=>0])->find();
         $info['out_num'] = isset($out['send_num'])?$out['send_num']:'';
 //        $customer = Db::name("customer_info")->where(["companyNo"=>$info['customer_code']])->find();
         $wsmcode=[];
@@ -314,7 +314,7 @@ class After extends Base
         if($status===""){
             return error_show(1005,"参数status 不能为空");
         }
-        $orde= Db::name("order_out")->where(["outCode"=>$info['outCode']])->find();
+        $orde= Db::name("order_out")->where(["outCode"=>$info['outCode'],"is_del"=>0])->find();
         if($orde==false){
             return error_show(1005,"未找到出库单数据");
         }
@@ -838,7 +838,7 @@ class After extends Base
         $list=[];
         if($info['is_th']==1){
             if($info["order_type"]==1){
-                $out =Db::name("order_out")->where(["outCode"=>$info['outCode']])->find();
+                $out =Db::name("order_out")->where(["outCode"=>$info['outCode'],"is_del"=>0])->find();
                 if(empty($out)){
                     return error_show(1005,"未找到出库单数据");
                 }
@@ -908,7 +908,7 @@ class After extends Base
         if(($info['is_receive']==0&&$info['status']!=3)||($info['is_receive']==1&&$info['status']!=4) ){
             return error_show(1005,"售后单流程状态有误");
         }
-        $out=Db::name("order_out")->where(["outCode"=>$info["outCode"]])->find();
+        $out=Db::name("order_out")->where(["outCode"=>$info["outCode"],"is_del"=>0])->find();
         if($out==false){
             return error_show(1005,"未找到发货单数据");
         }
@@ -1070,9 +1070,15 @@ class After extends Base
                                 Db::rollback();
                                 return error_show(1005,'采购单数据更新失败');
                             }
-
-                        }
-                        if($info['return_tag']==1){
+                            if($info['error_num']>=$out['send_num']){
+                                    $out['status']=4;
+                                    $out['updatetime']=date("Y-m-d H:i:s");
+                                    $upout =Db::name("order_out")->save($out);
+                                    if($upout==false){
+                                        Db::rollback();
+                                        return error_show(1005,'出库单数据更新失败');
+                                    }
+                            }
                             $data=[
                                 "orderCode"=>$info['orderCode'],
                                 "th_type"=>3,
@@ -1094,6 +1100,7 @@ class After extends Base
                                 return error_show(1004,"退货单更新失败");
                             }
                         }
+
                         Db::commit();
                         return app_show(0,"退货单新建成功",["thNo"=>$thNo]);
                     }

+ 10 - 0
app/admin/controller/Orderback.php

@@ -660,6 +660,16 @@ class Orderback extends Base
                     Db::rollback();
                     return error_show(1004,"退货单更新失败");
                 }
+                if($info['return_num']>=$out['send_num']){
+                    $out['status']=4;
+                    $out['updatetime']=date("Y-m-d H:i:s");
+                    $upout =Db::name("order_out")->save($out);
+                    if($upout==false){
+                        Db::rollback();
+                        return error_show(1005,'出库单数据更新失败');
+                    }
+                }
+
                 $stn = ["order_code" => $param['thNo'], "status" => $info['status'], "action_remark" => '', "action_type" => "edit"];
                 ActionLog::logAdd($this->post['token'], $stn, "CKTHD",  $param['status'], $stn);
                 $process = ["order_code" => $param['thNo'], "order_id" => $info['id'], "order_status" => $param['status'], "order_type" =>"CKTHD","before_status"=>$info['status']];

+ 2 - 2
app/admin/controller/Reorder.php

@@ -492,7 +492,7 @@ class Reorder extends Base
                 $value['addive_time']=isset($addrlist['addive_time'])?$addrlist['addive_time']:"";
                 $value['customer_code']=isset($addrlist['customer_code']) ?$addrlist['customer_code']:"" ;
                 $value['receipt_quantity']=isset($addrlist['receipt_quantity']) ?$addrlist['receipt_quantity']:"" ;
-                $send = Db::name("order_out")->where(['addrid' => $addrlist['id'], 'orderCode' => $addrlist['orderCode']])->sum("send_num");
+                $send = Db::name("order_out")->where(['addrid' => $addrlist['id'], 'orderCode' => $addrlist['orderCode'],"is_del"=>0])->where("status",">=",2)->sum("send_num");
                 $value['addr_send'] = $send ?? 0;
                 $value['addr_wsend'] = $value['receipt_quantity'] - $value['addr_send'];
                 $customer = Db::name("customer_info")->where(['companyNo'=>$addrlist['customer_code']])->find();
@@ -653,7 +653,7 @@ class Reorder extends Base
                                         return error_show(1004, "地址发货单发货数量不足");
                                     }
                                     $out['send_num'] -= $value['return_num'];
-                                    $out['status'] = $out['send_num'] <= 0 ? 4 : $out['status'];
+                                    $out['is_del'] = $out['send_num'] <= 0 ? 1 : 0;
                                     $out['updatetime'] = date("Y-m-d H:i:s");
                                     $outup = Db::name("order_out")->save($out);
                                     if ($outup == false) {

+ 13 - 11
app/admin/controller/Sale.php

@@ -2132,7 +2132,7 @@ class Sale extends Base
             $supplier = Db::name("business")->where(["companyNo" => $einfo['supplierNo']])->find();
             $einfo['supplierName'] = isset($supplier['company']) ? $supplier['company'] : "";
         }
-        $fo = Db::name('order_addr')->alias("a")->leftJoin("order_out b","a.id=b.addrid")
+        $fo = Db::name('order_addr')->alias("a")->leftJoin("order_out b","a.id=b.addrid and b.is_del=0")
             ->where(['a.orderCode' => $einfo['orderCode'], 'a.is_del' => 0])->field("a.*,b.post_name,b.post_code,
             b.post_fee,b.sendtime,b.send_num,b.check_num,b.error_num,b.wsm_code,b.order_type,b.status as send_status,b.outCode")
             ->select();
@@ -2292,7 +2292,7 @@ class Sale extends Base
                         }
                         $dm['usable_stock'] -= $value['num'];
                         $dm['wait_out_stock'] += $value['num'];
-                        $send = Db::name("order_out")->where(["wsm_code" => $value['wsm_code']])->sum("send_num");
+                        $send = Db::name("order_out")->where(["wsm_code" => $value['wsm_code'],"is_del"=>0])->sum("send_num");
                         $value['send_num'] = $send ?? 0;
                         $value['wsend_num'] = $value['num'] - $value['send_num'];
                         $Db = Db::name('good_stock')->update($dm);
@@ -3006,7 +3006,7 @@ class Sale extends Base
     public function saleout(){
         $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']):"1";
         $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']) :"10";
-        $where= [];
+        $where= [["a.is_del","=",0]];
         $orderCode=isset($this->post['orderCode']) && $this->post['orderCode'] !=="" ? trim($this->post['orderCode']) :"";
         if($orderCode !==""){
             $where[]=['a.orderCode',"like","%$orderCode%"];
@@ -3120,7 +3120,7 @@ class Sale extends Base
         if ($outCode == "") {
             return error_show(1002, "参数outcode不能为空");
         }
-        $codeinfo = Db::name("order_out")->where(['outCode' => $outCode])->find();
+        $codeinfo = Db::name("order_out")->where(['outCode' => $outCode,"is_del"=>0])->find();
         if (empty($codeinfo)) {
             return error_show(1002, "未找到出库数据");
         }
@@ -3172,7 +3172,8 @@ class Sale extends Base
         if ($send_num == "") {
             return error_show(1002, "发货数量不能为空");
         }
-        $wsed=Db::name("order_out")->where(["orderCode"=>$orderCode])->where("status","<",2)->sum('send_num');
+        $wsed=Db::name("order_out")->where(["orderCode"=>$orderCode])->where([["status","<",2],["is_del","=",0]])->sum
+        ('send_num');
         if ($send_num > $der['wsend_num']-$wsed) {
             return error_show(1002, "超出可发货数量");
         }
@@ -3357,7 +3358,7 @@ class Sale extends Base
        if($outCode==""){
            return error_show(1004,"参数outCode不能为空");
        }
-       $outinfo = Db::name("order_out")->where(["outCode"=>$outCode])->find();
+       $outinfo = Db::name("order_out")->where(["outCode"=>$outCode,"is_del"=>0])->find();
        if($outinfo==false){
            return error_show(1004,"发货数据未找到");
        }
@@ -3818,7 +3819,7 @@ class Sale extends Base
                 return isset($status[$val]) ? $status[$val] : '';
             })->withAttr('发货方式', function ($val) use ($send_type) {
                 return isset($send_type[$val]) ? $send_type[$val] : '';
-            })
+            })->where("a.is_del","=",0)
             ->leftJoin("sale b", "b.orderCode=a.orderCode")
             ->leftJoin("order_addr oa", "oa.id=a.addrid AND oa.is_del=0")
             ->leftJoin("warehouse_info wi", "wi.wsm_code=a.wsm_code AND wi.is_del=0")
@@ -3885,19 +3886,19 @@ class Sale extends Base
 
             $rs = Db::name('order_out')
                 ->field('id,orderCode')
-                ->where(['outCode' => $outCode, 'status' => 2])
+                ->where(['outCode' => $outCode, 'status' => 2,"is_del"=>0])
                 ->find();
 
             if (empty($rs)) throw new Exception('该出库单不存在或不允许确认收货');
 
             //发货单收货
             $res_order_out = Db::name('order_out')
-                ->where(['id' => $rs['id'], 'status' => 2])
+                ->where(['id' => $rs['id'], 'status' => 2,"is_del"=>0])
                 ->update(['status' => 3, 'updatetime' => date('Y-m-d H:i:s')]);
 
             //查询该发货单所属的销售单,是否还有未收货的其他发货单
             $other_res_sale = Db::name('order_out')
-                ->where(['orderCode' => $rs['orderCode'], 'status' => 2])
+                ->where(['orderCode' => $rs['orderCode'], 'status' => 2,"is_del"=>0])
                 ->where('id', '<>', $rs['id'])
                 ->find();
 
@@ -3940,6 +3941,7 @@ class Sale extends Base
             //所有发货单信息
             $order_out_infos = Db::name("order_out")
                 ->where('status', 1)
+                ->where('is_del', 0)
                 ->whereIn('outCode', array_column($param['list'], 'outCode'))
                 ->column('id,status,send_num,orderCode,wsm_code', 'outCode');
 
@@ -3969,7 +3971,7 @@ class Sale extends Base
 
                 //更新发货单
                 $up = Db::name("order_out")
-                    ->where(['id' => $order_out_infos[$value['outCode']]['id'], 'outCode' => $value['outCode'], 'status' => 1])
+                    ->where(['id' => $order_out_infos[$value['outCode']]['id'], 'outCode' => $value['outCode'], 'status' => 1,"is_del"=>0])
                     ->update([
                         'post_name' => isset($value['post_name']) ? $value['post_name'] : '',
                         'post_code' => $value['post_code'],

+ 25 - 23
app/command/NowReportHandle.php

@@ -168,25 +168,26 @@ class NowReportHandle extends Command
             ->leftJoin('warehouse_info wwi', 'wwi.wsm_code = wgs.wsm_code')
             ->leftJoin('business wb', 'wb.companyNo = wwi.companyNo')
             ->leftJoin('good_basic wgb', 'wgb.spuCode = wgs.spuCode')
-            ->leftJoin('supplier ws', 'ws.supplierNo = ws.`code`')
+            ->leftJoin('supplier ws', 'wwi.supplierNo = ws.`code`')
             ->where('wgs.is_del', 0)
             ->where('wgb.is_stock', 1)
-            ->whereBetween('gs.addtime', [$start_date, $end_date])
+            ->whereBetween('wgs.addtime', [$start_date, $end_date])
             ->order('wgs.addtime', 'desc')
             ->cursor();
 
         $list = [];
         foreach ($data as $value) {
             $cat = made($value['一级分类']);
-            $value['一级分类'] = isset($cat[0]['cat_name'])?$cat[0]['cat_name']:"";
+            $value['一级分类'] = isset($cat[0]['name'])?$cat[0]['name']:"";
             $value['成本单价'] = Db::name('good_nake')
-                ->where('spuCode', $value['产品编'])
+                ->where('spuCode', $value['产品编'])
                 ->order('min_num', 'asc')
                 ->value('nake_total', '0');
             $value['可用库存金额'] = bcmul((string)$value['可用库存数量'] ?? '0', (string)$value['成本单价'] ?? '0', 2);
             $value['当前库存金额'] = bcmul((string)$value['当前库存'] ?? '0', (string)$value['成本单价'] ?? '0', 2);
             $value['最近入库时间'] =Db::name("purchease_order")->alias("a")->leftJoin("purchease_in c","a.cgdNo=c.cgdNo")->where(["spuCode"=>
-                $value['产品编码'],"order_type"=>1,"c.status"=>[4,6]])->order("c.addtime desc")->value("c.addtime","");
+                $value['产品编号'],"order_type"=>1,"c.status"=>[4,6]])->order("a.addtime desc")->value("c.addtime","");
+            $value['备库单号']=Db::name("purchease_order")->alias("a")->where(["spuCode"=>$value['产品编号'], "order_type"=>1])->order("a.addtime desc")->value("a.bkcode","");
             if (!empty($value['最近入库时间'])) {
                 $value['保质期时间'] = date('Y-m-d H:i:s', strtotime($value['最近入库时间']) + 31536000);//365天之后
                 $value['库存天数'] = bcdiv((string)(time() - strtotime($value['最近入库时间'])), (string)(24 * 3600));//365天之后
@@ -209,16 +210,16 @@ class NowReportHandle extends Command
             ->leftJoin('business wb', ' ws.supplierNo=wb.companyNo')
             ->leftJoin('order_num won', 'won.orderCode=wtd.orderCode')
             ->leftJoin('purchease_order wpo', 'wpo.cgdNo=won.cgdNo')
-            ->leftJoin('supplier  wsp', 'wsp.`code`=wpo.supplierNo')
-            ->leftJoin('business wb', 'ws.supplierNo=wb.companyNo')
+            ->leftJoin('supplier wps', 'wps.code=wpo.supplierNo')
             ->leftJoin('customer_info wci', 'wci.companyNo =ws.customer_code')
-            ->whereBetween('ob.addtime', [$start_date, $end_date])
-            ->field("	year(ifnull(wsr.addtime,wor.addtime)) '年',
-	month(ifnull(wsr.addtime,wor.addtime)) '月',
-	DAYOFMONTH(ifnull(wsr.addtime,wor.addtime)) '日',
-	ifnull(wsr.addtime,wor.addtime) '退货单创建时间',
+            ->whereBetween('wtd.addtime', [$start_date, $end_date])
+            ->field("	year(wtd.addtime) '年',
+	month(wtd.addtime) '月',
+	DAYOFMONTH(wtd.addtime) '日',
+	wtd.addtime '退货单创建时间',
 	wb.company '公司名称',
 	thCode '退货单号',
+	if(wtd.th_type=1,'售前','售后') '退货类型',
 	'已完成' as '流程进度',
   wtd.apply_id '业务部门',
   wtd.apply_name '业务人员',
@@ -226,7 +227,7 @@ class NowReportHandle extends Command
 	ws.platform_id '平台类型',
 	ws.platform_order '平台订单号',
 	'' as '客户属性',
-	'' as '分公司',
+	wci.itemid  as '分公司',
 	wci.companyName '客户名称',
 	wtd.spuCode '产品编码',
 	'' as '财务核算码',
@@ -238,7 +239,7 @@ class NowReportHandle extends Command
 	wtd.th_num  '退货数量',
 	ws.sale_price '销售单价',
 	wtd.th_fee '退货金额',
-	'' as '退货备注',
+	 ifnull(wsr.remark,wor.error_remark) as '退货备注',
 	won.cgdNo '采购单单号',
 	wpo.cgder '采购员',
 	wpo.nake_fee '采购裸价',
@@ -255,13 +256,13 @@ class NowReportHandle extends Command
 	wpo.supplier_name '供应商名称',
 	if(ws.is_stock=1,'是','否') '是否库存',
 	'' as '发货方式',
-	if(wsp.pay_type='0','现结',if(wsp.pay_type='1','月清',if(wsp.pay_type='2','双月请',wsp.pay_type))) as '付款方式'")
-            ->cursor();
+	if(wps.pay_type='0','现结',if(wps.pay_type='1','月结',if(wps.pay_type='2','双月结',wps.pay_type))) as '付款方式'
+	
+	")->cursor();
 
-        $list = [];
+        $com = [];
         foreach ($data as $value) {
-
-            $value['业务部门'] = get_company_name_by_uid($value['业务部门']);
+            $value['业务部门'] = get_company_name_by_uid(intval($value['业务部门']));
             $value['财务核算码']=Db::name("cat")->where(["id"=>$value['三级分类']])->value("fund_code",'');
             $comp =get_top_customer_org($value['分公司']);
             $value['客户属性']=isset($comp[0]['name'])?$comp[0]['name']:"";
@@ -275,13 +276,13 @@ class NowReportHandle extends Command
             }else{
                 $good= Db::name("good_basic")->where(["spuCode"=>$value['产品编码']])->find();
             }
-            $value['单位']=isset($good['good_unit'])?Db::name("unit")->where(["id"=>$value['good_unit']])->value('unit',''):"";
-            $value['税']=isset($good['tax'])?$good['tax'].'%':"";
+            $value['单位']=isset($good['good_unit'])?Db::name("unit")->where(["id"=>$good['good_unit']])->value('unit',''):"";
+            $value['税']=isset($good['tax'])?$good['tax'].'%':"";
             $value['平台类型']= Db::name("platform")->where(["id"=>$value['平台类型']])->value("platform_name",'');
-            yield $list[] = $value;
+            yield $com[] = $value;
         }
 
-        return $list;
+        return $com;
 
     }
 
@@ -442,6 +443,7 @@ class NowReportHandle extends Command
                             bkcode '备库单号',
                             woo.orderCode '销售单号',
                             woo.outCode '出库单号',
+                             wpo.cgdNo '采购单号',
                                wpo.spuCode '商品编号',
                                '' as '一级分类',
                                '' as '二级分类',