Browse Source

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

wugg 2 years ago
parent
commit
7476e02a5e

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

@@ -403,7 +403,7 @@ class Orderback extends Base
         try {
 
             $info = Db::name("order_back")
-                ->field('id,order_type,status,outCode,good_code,return_num,orderCode,returnCode')
+                ->field('id,order_type,status,outCode,good_code,return_num,orderCode,returnCode,apply_id,apply_name')
                 ->where(['thNo' => $param['thNo'], 'is_del' => 0])
                 ->find();
 
@@ -645,7 +645,7 @@ class Orderback extends Base
                     "th_type"=>3,
                     "th_num"=>$info['return_num'],
                     "th_fee"=>round($info['return_num']*$sale['sale_price'],2),
-                    "thCode"=>$info['thNo'],
+                    "thCode"=>$info['returnCode'],
                     "apply_id"=>$info['apply_id'],
                     "apply_name"=>$info['apply_name'],
                     "spuCode"=>$sale['good_code'],

+ 56 - 41
app/admin/controller/Purchin.php

@@ -254,42 +254,6 @@ class Purchin extends Base
                 ProcessOrder::AddProcess($this->post['token'],$process);
                 $order = ["order_code"=>$cgdNo,"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"];
                 if($status==1){
-//                    $cgdinfo['wsend_num']-=$send_num;
-//                    $cgdinfo['send_num']+=$send_num;
-//                    $cgdinfo['send_status']=$cgdinfo['wsend_num']==0 ? 3:($cgdinfo['send_num']==0 ?1:2);
-//                    $cgdinfo['status']=$cgdinfo['wsend_num']==0 ? 3:($cgdinfo['send_num']==0 ?1:2);
-//                    $cgdinfo['updatetime']=date("Y-m-d H:i:s");
-//                    $up=Db::name("purchease_order")->save($cgdinfo);
-                   // if($up){
-//                        if($cgdinfo['order_type']!=1){
-//                            $good = Db::name("good_stock")->where(["wsm_code"=>$cgdinfo['wsm_code'],"spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
-//                            if(empty($good)) {
-//                                $good=[
-//                                    "spuCode"=>$cgdinfo['spuCode'],
-//                                    "wsm_code"=>$cgdinfo['wsm_code'],
-//                                    "usable_stock"=>0,
-//                                    "wait_out_stock"=>0,
-//                                    "wait_in_stock"=>0,
-//                                    "total_stock"=>0,
-//                                    "addtime"=>date("Y-m-d H:i:s"),
-//                                    "updatetime"=>date("Y-m-d H:i:s"),
-//                                ];
-//                              //  $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'',
-//                                // "action_type"=>"create"];
-//                            }else{
-//                              //  $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'',
-//                                // "action_type"=>"edit"];
-//                            }
-//                            $good['wait_in_stock']+=$send_num;
-//                            $good['updatetime'] = date("Y-m-d H:i:s");
-//                            $upd=  Db::name("good_stock")->save($good);
-//                            if($upd==false){
-//                                Db::rollback();
-//                                return error_show(1004,"新建失败");
-//                            }
-//                            $good_data[]=['good_log_code'=>$wsm_in_code,"stock_id"=>isset($good['id'])? $good['id']:Db::name("good_stock")->getLastInsID(),"type"=>1,'stock'=>$send_num,"stock_name"=>"wait_in_stock"];
-//                            GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
-//                        }
                             Db::commit();
                             return app_show(0,'新建成功',["wsm_in_code"=>$wsm_in_code]);
                 }
@@ -323,7 +287,19 @@ class Purchin extends Base
                         // "action_type"=>"edit"];
                     }
                     $good['wait_in_stock']-=$send_num;
-                    $good['usable_stock']+=$send_num;
+                    if($good['presale_stock']>0){
+                        if($good['presale_stock']>=$send_num){
+                            $good['presale_stock']-=$send_num;
+                            $good['wait_out_stock']+=$send_num;
+                        }else{
+                            $good['presale_stock']=0;
+                            $good['usable_stock']+=$send_num-$good['presale_stock'];
+                            $good['wait_out_stock']+=$good['presale_stock'];
+                        }
+                    }else{
+                        $good['usable_stock']+=$send_num;
+                    }
+
                     $good['total_stock']=$good['usable_stock']+$good['wait_out_stock'];
                     $good['updatetime'] = date("Y-m-d H:i:s");
                     $upd=  Db::name("good_stock")->save($good);
@@ -699,8 +675,21 @@ class Purchin extends Base
                     }else{
                         $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"edit"];
                     }
-                    $good['usable_stock']+=$info['wsm_num'];
+//                    $good['usable_stock']+=$info['wsm_num'];
                     $good['wait_in_stock']-=$info['wsm_num'];
+                    if($good['presale_stock']>0){
+                        if($good['presale_stock']>=$info['wsm_num']){
+                            $good['presale_stock']-=$info['wsm_num'];
+                            $good['wait_out_stock']+$info['wsm_num'];
+                        }else{
+                            $good['presale_stock']=0;
+                            $good['usable_stock']+=$info['wsm_num']-$good['presale_stock'];
+                            $good['wait_out_stock']+=$good['presale_stock'];
+                        }
+                    }else{
+                        $good['usable_stock']+=$info['wsm_num'];
+                    }
+
                     $good['total_stock']=$good['usable_stock']+$good['wait_out_stock'];
                     $good['updatetime'] = date("Y-m-d H:i:s");
                     $upd=  Db::name("good_stock")->save($good);
@@ -821,8 +810,21 @@ class Purchin extends Base
                 }else{
                     $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"edit"];
                 }
-                $good['usable_stock']+=$wsm_num;
                 $good['wait_in_stock']-=$wsm_num;
+                if($good['presale_stock']>0){
+                    if($good['presale_stock']>=$wsm_num){
+                        $good['presale_stock']-=$wsm_num;
+                        $good['wait_out_stock']+=$wsm_num;
+                    }else{
+                        $good['presale_stock']=0;
+                        $good['usable_stock']+=$wsm_num-$good['presale_stock'];
+                        $good['wait_out_stock']+=$good['presale_stock'];
+                    }
+                }else{
+                    $good['usable_stock']+=$wsm_num;
+                }
+//                $good['usable_stock']+=$wsm_num;
+
                 $good['total_stock']=$good['usable_stock']+$good['wait_out_stock'];
                 $good['updatetime'] = date("Y-m-d H:i:s");
                 $upd=  Db::name("good_stock")->save($good);
@@ -976,8 +978,21 @@ class Purchin extends Base
                         }else{
                             $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"edit"];
                         }
-                        $good['usable_stock']+=$return['wsm_num'];
-                        $good['wait_in_stock']-=$return['wsm_num']+$return['return_num']-$return['reissue_num'];
+                    $good['wait_in_stock']-=$return['wsm_num']+$return['return_num']-$return['reissue_num'];
+                        if($good['presale_stock']>0){
+                            if($good['presale_stock']>=$return['wsm_num']){
+                                $good['presale_stock']-=$return['wsm_num'];
+                                $good['wait_out_stock']+=$return['wsm_num'];
+                            }else{
+                                $good['presale_stock']=0;
+                                $good['usable_stock']+=$return['wsm_num']-$good['presale_stock'];
+                                $good['wait_out_stock']+=$good['presale_stock'];
+                            }
+                        }else{
+                            $good['usable_stock']+=$return['wsm_num'];
+                        }
+//                        $good['usable_stock']+=$return['wsm_num'];
+//                        $good['wait_in_stock']-=$return['wsm_num']+$return['return_num']-$return['reissue_num'];
                         $good['total_stock']=$good['usable_stock']+$good['wait_out_stock'];
                         $good['updatetime'] = date("Y-m-d H:i:s");
                         $upd=  Db::name("good_stock")->save($good);

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

@@ -284,8 +284,18 @@ class Reorder extends Base
                             "updatetime" => date("Y-m-d H:i:s"),
                         ];
                     }
-                    $stock['usable_stock'] += $thnum;
-                    $stock['wait_out_stock'] -= $thnum;
+                    if($stock['presale_stock']>0){
+                            if($stock['presale_stock']>=$thnum){
+                                $stock['presale_stock']-=$thnum;
+                            }else{
+                                $stock['presale_stock']=0;
+                                $stock['usable_stock']+=$thnum;
+                                $stock['wait_out_stock'] -= ($thnum -$stock['presale_stock']);
+                            }
+                    }else{
+                        $stock['usable_stock']+=$thnum;
+                        $stock['wait_out_stock'] -= $thnum;
+                    }
                     $stock['updatetime'] = date("Y-m-d H:i:s");
                     $st_up = Db::name("good_stock")->save($stock);
                     if ($st_up == false) {

+ 37 - 21
app/admin/controller/Sale.php

@@ -90,10 +90,16 @@ class Sale extends Base
         }
         if($goodinfo['is_stock']==1){
             $stock =Db::name("good_stock")->alias("a")->leftJoin("warehouse_info b","a.wsm_code=b.wsm_code")->where
-            (["spuCode"=>$spuCode, "a.is_del"=>0,"a.status"=>1,"b.wsm_type"=>5,"b.companyNo"=>$supplierNo])->field("a.id,a.usable_stock,a.wait_out_stock")->find();
-            if($stock==false||$stock['usable_stock']<$good_num){
+            (["spuCode"=>$spuCode, "a.is_del"=>0,"a.status"=>1,"b.wsm_type"=>5,"b.companyNo"=>$supplierNo])->field("a.id,a.wait_in_stock,a.presale_stock,a.usable_stock,a.wait_out_stock")->find();
+            if($stock==false){
                 return error_show(1003,"库存数量不足");
             }
+            if($stock['usable_stock']>0 && $stock['usable_stock']<$good_num){
+                return error_show(1003,"可用库存数量不足");
+            }
+            if($stock['usable_stock']== 0 && $stock['wait_in_stock']- $stock['presale_stock']<$good_num){
+                return error_show(1003,"待入库存数量不足");
+            }
             $origin_price = 0;
         }else{
             if($is_activity==0){
@@ -265,6 +271,7 @@ class Sale extends Base
                        return error_show(1002,"活动库存修改失败");
                    }
                 }
+                $outstatus=0;
                 if($is_stock==0){
                     $bol=$this->createCgd($cgd);
                     if($bol==false){
@@ -272,17 +279,26 @@ class Sale extends Base
                         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]);
                     if($bol==false){
                         Db::rollback();
                         return error_show(1002,"库存商品关联采购单失败");
                     }
                     if(isset($stock)){
-                        $stck = [
+
+                        if($stock['usable_stock']==0){
+                            $stck = ["presale_stock"=>$stock['presale_stock']+$good_num,
+                                    "updatetime"=>date("Y-m-d H:i:s")
+                                     ];
+                        }else{
+                            $stck = [
                             "usable_stock"=>$stock['usable_stock']-$good_num,
                             "wait_out_stock"=>$stock['wait_out_stock']+$good_num,
                             "updatetime"=>date("Y-m-d H:i:s")
                         ];
+                        }
+
                         $upad=Db::name("good_stock")->where($stock)->update($stck);
                         if($upad==false){
                             Db::rollback();
@@ -369,7 +385,7 @@ class Sale extends Base
                                         "error_num" => 0,
                                         "wsm_code" => $cgdinfo['wsm_code'],
                                         "order_type" =>$is_stock==1 ?1 :2,
-                                        "status" => $is_stock==1?1:0,
+                                        "status" => $outstatus,
                                         "addtime" => date("Y-m-d H:i:s"),
                                         "updatetime" => date("Y-m-d H:i:s")
                                     ];
@@ -640,25 +656,25 @@ class Sale extends Base
                                 Db::rollback();
                                 return error_show(1004, '库存不足');
                             }
-                            if (($temp['usable_stock'] - $num) < 0) {
+                            if (($temp['wait_out_stock'] - $num) < 0) {
                                 Db::rollback();
                                 return error_show(1004, '库存不足');
                             }
 
-                            $up =Db::name('good_stock')
-                                ->where('id', $temp['id'])
-                                ->update([
-                                    'usable_stock' => $temp['usable_stock'] - $num,
-                                    'wait_out_stock' => $temp['wait_out_stock'] + $num,
-                                    'updatetime' => date('Y-m-d H:i:s'),
-                                ]);
-                            if($up==false){
-                                Db::rollback();
-                                return error_show(1004, '库存更新失败');
-                            }
-                            $good_data[] = ['good_log_code' =>$outCode, "stock_id" =>$temp['id'], "type" => 1,'stock'=>$num, "stock_name" => "wait_out_stock"];
-                            $good_data[] = ['good_log_code' =>$outCode, "stock_id" =>$temp['id'], "type" => 2,'stock'=>$num, "stock_name" => "usable_stock"];
-                            GoodLog::LogAdd($this->post['token'],$good_data,"CKD");
+//                            $up =Db::name('good_stock')
+//                                ->where('id', $temp['id'])
+//                                ->update([
+//                                    'usable_stock' => $temp['usable_stock'] - $num,
+//                                    'wait_out_stock' => $temp['wait_out_stock'] + $num,
+//                                    'updatetime' => date('Y-m-d H:i:s'),
+//                                ]);
+//                            if($up==false){
+//                                Db::rollback();
+//                                return error_show(1004, '库存更新失败');
+//                            }
+//                            $good_data[] = ['good_log_code' =>$outCode, "stock_id" =>$temp['id'], "type" => 1,'stock'=>$num, "stock_name" => "wait_out_stock"];
+//                            $good_data[] = ['good_log_code' =>$outCode, "stock_id" =>$temp['id'], "type" => 2,'stock'=>$num, "stock_name" => "usable_stock"];
+//                            GoodLog::LogAdd($this->post['token'],$good_data,"CKD");
                             $status=1;
                         }else{
                             if ($temp == false || ($temp['usable_stock'] - $num) < 0) {
@@ -2862,7 +2878,7 @@ class Sale extends Base
                 $cgdup =Db::name("purchease_diff")->where(["id"=>$info['cgd_diffid']])->save($upda);
                 if($cgdup){
                     if($status==2){
-                        if($is_act==1){
+                        if($customer_remark==1){
                             $sale['diff_weight'] = $info['diff_weight'];
                             $sale['diff_fee'] = $info['diff_price'];
                             $sale['updatetime'] = date("Y-m-d H:i:s");
@@ -2943,7 +2959,7 @@ class Sale extends Base
                 ProcessOrder::AddProcess($this->post['token'],$order);
                 $cgdup =Db::name("purchease_diff")->where(["id"=>$info['cgd_diffid']])->save($upda);
                 if($cgdup){
-                    if($status==2){
+                    if($status==2 && $info['customer_remark']==1){
                         $sale['diff_weight'] = $info['diff_weight'];
                         $sale['diff_fee'] = $info['diff_price'];
                         $sale['updatetime'] = date("Y-m-d H:i:s");

+ 1 - 1
app/command/NowReportHandle.php

@@ -261,7 +261,7 @@ class NowReportHandle extends Command
 	wpo.supplier_name '供应商名称',
 	if(ws.is_stock=1,'是','否') '是否库存',
 	'' as '发货方式',
-	if(ifnull(wsr.is_th,wor.is_th)=0,'否',是) as '供应商是否同意退货',
+	if(ifnull(wsr.is_th,wor.is_th)=0,'否','') as '供应商是否同意退货',
 	if(wps.pay_type='0','现结',if(wps.pay_type='1','月结',if(wps.pay_type='2','双月结',wps.pay_type))) as '付款方式'
 	")->cursor();
 

+ 18 - 0
app/youzan/controller/Push.php

@@ -0,0 +1,18 @@
+<?php
+declare (strict_types = 1);
+
+namespace app\youzan\controller;
+
+use app\BaseController;
+use think\facade\Cache;
+use think\Request;
+
+class Push extends BaseController
+{
+   public  function  GetPush(){
+        $data =$this->request->post();
+        $header=$this->request->header(['Event-Sign','Event-Type','Client-Id']);
+        Cache::set("header",$header);
+        Cache::set("youzan",$data);
+   }
+}

+ 4 - 0
app/youzan/route/app.php

@@ -0,0 +1,4 @@
+<?php
+use think\facade\Route;
+
+route::rule("push","youzan/Push/GetPush");