Browse Source

Merge branch 'wugg-dev' of wugg/phpstock into version1.5

wugg 2 years ago
parent
commit
22b5681ab1

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

@@ -25,9 +25,13 @@ class After extends Base
              return error_show(1004,"参数outCode 不能为空");
          }
          $orderout= Db::name("order_out")->where(["outCode"=>$outCode])->find();
-         if(empty($orderout)){
+         if($orderout==false){
              return error_show(1005,"未找到订单数据");
          }
+         $wsm =Db::name("warehouse_info")->where(["wsm_code"=>$orderout['wsm_code']])->find();
+        if($wsm==false){
+            return error_show(1005,"未找到仓库数据");
+        }
         $oder= Db::name("sale")->where(["orderCode"=>$orderout['orderCode'],"is_del"=>0])->find();
         if(empty($oder)){
             return error_show(1005,"未找到订单数据");
@@ -78,6 +82,8 @@ class After extends Base
                 "customer_code"=>$oder['customer_code'],
                 "apply_id"=>$rm,
                 "apply_name"=>$ri,
+                "cgder"=>$wsm['contactor_name'],
+                "cgderid"=>$wsm['contactor'],
                 'total_num'=>$orderout['send_num'],
                 "error_code"=>$errorCode,
                 "error_num"=>$num,
@@ -168,15 +174,17 @@ class After extends Base
             $where[]=['a.addtime',"<=", $end];
         }
         $role=$this->checkRole();
-        if(!empty($role['write'])){
-            $where[]=["apply_id","in",$role['write']];
+        $condition='';
+        if(!empty($role['write']) && $this->uid!=""){
+            // $where[]=["a.apply_id","in",$role['write']];
+            $condition .="a.cgderid = {$this->uid} or a.apply_id in (".implode(',',$role['write']).")";
         }
         $count=Db::name("order_return")->alias("a")->leftJoin("order_returninfo b","a.returnCode=b.returnCode")->where
-        ($where)->count();
+        ($where)->where($condition)->count();
         $total = ceil($count/$size);
         $page = $total>=$page ? $page :$total;
         $list =Db::name("order_return")->alias("a")->leftJoin("order_returninfo b","a.returnCode=b.returnCode")->where($where)
-            ->field("a.*,b.return_wsm,b.contactor,b.mobile,b.addr,b.addr_code,b.post_code,b.post_company,b.post_fee,b.gys_remark")->page($page,$size)
+            ->where($condition)->field("a.*,b.return_wsm,b.contactor,b.mobile,b.addr,b.addr_code,b.post_code,b.post_company,b.post_fee,b.gys_remark")->page($page,$size)
             ->order("addtime desc")->select();
         $data=[];
         foreach ($list as $value){
@@ -916,6 +924,8 @@ class After extends Base
                         "received_num"=>0,
                         "apply_id"=>$info['apply_id'],
                         "apply_name"=>$info['apply_name'],
+                        "cgder"=>$info['cgder'],
+                        "cgderid"=>$info['cgderid'],
                         "contactor"=>$returninfo["contactor"],
                         "mobile"=>$returninfo["mobile"],
                         "addr"=>$returninfo["addr"],

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

@@ -877,7 +877,9 @@ class Goodup extends Base
                         $lemp['mark_fee'] = $value['mark_fee'];
                         $lemp['package_fee'] = $value['package_fee'];
                         $lemp['other_fee'] = $value['other_fee'];
-                        if($is_gold_price==1 && $datas['cat_id']==6){
+                        $top_cat_id = made($datas['cat_id']);//获取所有分类
+                        $top_cat_id = isset($top_cat_id[0]['id']) ? $top_cat_id[0]['id'] : 0;//获取顶级分类id
+                        if($is_gold_price==1 && $top_cat_id==6){
                             //$gold =Db::name("gold_price1")->where(["type"=>$noble_metal,"status"=>1,"is_del"=>0])
 //                            ->order("addtime desc")->find();
                             //$lemp['nake_total'] =$noble_weight*$gold['price'] + $value['cost_fee']*$noble_weight+$value['mark_fee']+$value['package_fee']+$value['cert_fee']+$value['nake_fee']+$value['delivery_fee']+$value['other_fee'];

+ 6 - 4
app/admin/controller/Orderback.php

@@ -65,13 +65,15 @@ class Orderback extends Base
             $where[]=['addtime',"<=", $end];
         }
         $role=$this->checkRole();
-        if(!empty($role['write'])){
-            $where[]=["apply_id","in",$role['write']];
+        $condition='';
+        if(!empty($role['write']) && $this->uid!=""){
+            // $where[]=["a.apply_id","in",$role['write']];
+            $condition .="cgderid = {$this->uid} or apply_id in (".implode(',',$role['write']).")";
         }
-        $count=Db::name("order_back")->where($where)->count();
+        $count=Db::name("order_back")->where($where)->where($condition)->count();
         $total = ceil($count/$size);
         $page = $page >= $total ? $total : $page;
-        $list = Db::name("order_back")->where($where)->page($page,$size)->order("addtime desc")->select();
+        $list = Db::name("order_back")->where($where)->where($condition)->page($page,$size)->order("addtime desc")->select();
         $data=[];
         foreach ($list as $value){
             $value['wsm_name']="";

+ 10 - 8
app/admin/controller/Proorder.php

@@ -18,16 +18,19 @@ public function list(){
     $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 =[['is_del',"=",0]];
-    $count = Db::name('workflow')->where($where)->count();
+    $count = Db::name('process_order')->alias("a")->leftJoin("workflow b","a.order_type=b.order_type and a.order_code=b.order_code")->where($where)->count();
     $total = ceil("$count/$size");
     $page = $page>$total ? $total:$page;
-    $list = Db::name('workflow')
-        ->where($where)->page($page,$size)->order("addtime desc")->select();
+    $list = Db::name('process_order')->alias("a")->leftJoin("workflow b","a.order_type=b.order_type and a.order_code=b.order_code")
+        ->field("b.apply_id,b.apply_name,a.addtime,a.action_uid,a.action_name,a.order_status,a.order_type,a.action_process,a.order_code,a.order_id,a.id")
+        ->where($where)->page($page,$size)->order("a.addtime desc")->select();
     $data=[];
     foreach ($list as $value){
-        $str = Db::name("process_order")->where(['order_type'=>$value['order_type']])->find();
-        $value['order_type']=$str['order_type'];
-        $value['order_status']=$str['order_status'];
+        $str = Db::name("process")->where(['process_type' => $value['order_type']])->field("process_name,status")->find();
+        $var = Db::name("action_process")->where(['order_type'=>$value['order_type'],'order_process'=>$value['order_status']])->field("status_name,order_process,order_name,roleid")->find();
+        $value['process_name']=$str['process_name'];
+        $value['order_name']=$var['order_name'];
+        $value['status_name'] = $var['status_name'];
         $data[]=$value;
     }
     return app_show(0,"获取成功",['count'=>$count,'list'=>$data]);
@@ -58,10 +61,9 @@ public function waitlist(){
     foreach ($list as $value) {
         $str = Db::name("process")->where(['process_type' => $value['order_type']])->field("process_name,status")->find();
         $var = Db::name("action_process")->where(['order_type'=>$value['order_type'],'order_process'=>$value['order_status']])->field("status_name,order_process,order_name,roleid")->find();
- // var_dump(Db::name("action_process")->getLastSql());
         $item = Db::name('role')->where(['id'=>$var['roleid']])->field("role_name")->find();
         $value['process_name']=$str['process_name'];
-      $value['order_name']=$var['order_name'];
+        $value['order_name']=$var['order_name'];
         $value['status_name'] = $var['status_name'];
         $data[]=$value;
     }

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

@@ -165,7 +165,7 @@ class Reorder extends Base
 
                 if($order['is_stock']==1){
 
-                        if ($order['wsend_num'] < $order['num']) {
+                        if ($order['wsend_num'] < $thnum) {
                             Db::rollback();
                             return error_show(1004, "销售单未发货数量不足退货");
                         }
@@ -731,6 +731,16 @@ class Reorder extends Base
                                 Db::rollback();
                                 return error_show(1005, '未找到采购单数据');
                             }
+                            $lor=$cgd['status'];
+                            if($cgd['wsend_num']<$info['num']){
+                                $cgd['wsend_num']=0;
+                                $cgd['send_num'] += $info['num']-$cgd['wsend_num'];
+                            }else{
+                                $cgd['wsend_num'] -= $info['num'];
+                                $cgd['send_num'] += $info['num'];
+                            }
+                            $cgd['status'] = $cgd['wsend_num']==0?2:($cgd['send_num']==0?0:1);
+                            $cgd['send_status'] =$cgd['wsend_num']==0?3:($cgd['send_num']==0?1:2);
                             $cgd['th_num'] += $info['num'];
                             $cgd['th_fee'] += round($info['num'] * $cgd['good_price'], 2);
                             $cgd['updatetime'] = date("Y-m-d H:i:s");
@@ -739,6 +749,23 @@ class Reorder extends Base
                                 Db::rollback();
                                 return error_show(1005, '采购单数据更新失败');
                             }
+                            $stock = Db::name("good_stock")->where(["spuCode" => $info['good_code'], 'wsm_code' =>$cgd['wsm_code']])->find();
+                            if ($stock==false) {
+                                Db::rollback();
+                                return error_show(1005, '商品仓库未找到');
+                            }
+                            if($stock['wait_in_stock']<$info['num']){
+                                $stock['wait_in_stock']=0;
+                                $stock['usable_stock'] -= $info['num']-$stock['wait_in_stock'];
+                                $stock['total_stock']= $stock['usable_stock']+ $stock['wait_out_stock'];
+                            }else{
+                                $stock['wait_in_stock']-=$info['num'];
+                            }
+                            $stock['updatetime'] = date("Y-m-d H:i:s");
+                            $st_up = Db::name("good_stock")->save($stock);
+                            if ($st_up == false) {
+                                return error_show(1005, '可售商品入库失败');
+                            }
 
                         } else {
                             $orderinfo['th_num'] += $info['num'];
@@ -761,7 +788,30 @@ class Reorder extends Base
                                 Db::rollback();
                                 return error_show(1005, '关联数据更新失败');
                             }
+                            $cgd = Db::name("purchease_order")->where(["cgdNo" => $ordernum['cgdNo'], "is_del" => 0])->find();
+                            if ($cgd == false) {
+                                Db::rollback();
+                                return error_show(1005, '未找到采购单数据');
+                            }
+                            $stock = Db::name("good_stock")->where(["spuCode" => $info['good_code'], 'wsm_code' =>$cgd['wsm_code']])->find();
+                            if ($stock==false) {
+                                Db::rollback();
+                                return error_show(1005, '商品仓库未找到');
+                            }
+                            if($stock['usable_stock']<$info['num']){
+                                Db::rollback();
+                                return error_show(1005, '商品可用库存不足退回数量');
+                            }else{
+                                $stock['usable_stock'] -= $info['num'];
+                                $stock['total_stock']= $stock['usable_stock']+ $stock['wait_out_stock'];
+                            }
+                            $stock['updatetime'] = date("Y-m-d H:i:s");
+                            $st_up = Db::name("good_stock")->save($stock);
+                            if ($st_up == false) {
+                                return error_show(1005, '可售商品入库失败');
+                            }
                         }
+
                     }
                     ActionLog::logAdd($this->post['token'], [
                         "order_code" => $orderinfo["orderCode"],//出库单号
@@ -804,7 +854,7 @@ class Reorder extends Base
                         return error_show(1005, '可售商品入库失败');
                     }
                     $good_data = ['good_log_code' => $info['returnCode'], "stock_id" => isset($stock['id']) ? $stock['id'] : Db::name("good_stock")->getLastInsID(), "type" => 1, 'stock' => $info['num'], "stock_name" => "usable_stock"];
-                    GoodLog::LogAdd($this->post['token'], $good_data, 'QRTHD');
+                    GoodLog::LogAdd($this->post['token'], $good_data, 'XSTHD');
                 }
             }
                 Db::commit();