cqpCow 1 年間 前
コミット
7588f1c7b6
2 ファイル変更67 行追加27 行削除
  1. 46 5
      app/Service/OrderNoService.php
  2. 21 22
      app/Service/SalesOrderService.php

+ 46 - 5
app/Service/OrderNoService.php

@@ -9,11 +9,28 @@ class OrderNoService extends Service
 {
     //采购 收货 发货 单号生成
     public function createOrderNumber($prefix){
-        return $prefix . date('Ymd') . time() . rand(1000,9999);
+        return $prefix . date('YmdHis') . time() . rand(1000,9999);
     }
 
     //合同编号
     public static function createSalesOrderNumber($prefix){
+        return $prefix . date('YmdHis',time()). rand(1000,9999);
+    }
+
+    //施工单订单合同号
+    public static function createConstructionOrderNumber($prefix){
+       return $prefix . date('YmdHis',time()). rand(1000,9999);
+    }
+
+    //采购 收货 发货 单号生成
+    public function createReturnExchangeOrderNumber($prefix){
+        return $prefix . date('YmdHis') . time() . rand(1000,9999);
+    }
+
+
+    //暂时不用--------------------------------------------------------------------------
+    //合同编号
+    public static function createSalesOrderNumber1($prefix){
         $str = $prefix . date('Ymd',time());
 
         $order_number = SalesOrder::where('order_number','Like','%'. $str . '%')
@@ -37,7 +54,7 @@ class OrderNoService extends Service
     }
 
     //施工单订单合同号
-    public static function createConstructionOrderNumber($prefix){
+    public static function createConstructionOrderNumber1($prefix){
         $str = $prefix . date('Ymd',time());
 
         $order_number = Construction::where('order_number','Like','%'. $str . '%')
@@ -60,8 +77,32 @@ class OrderNoService extends Service
         return $number;
     }
 
-    //采购 收货 发货 单号生成
-    public function createReturnExchangeOrderNumber($prefix){
-        return $prefix . date('Ymd') . time() . rand(1000,9999);
+    static function generateOrderNumber() {
+        // 获取当前日期
+        $date = date('Ymd', time());
+
+        // 从数据库中获取已存在的最大单据号
+        $maxOrderNumber = SalesOrder::max('order_number');
+
+        // 定义单据号位数
+        $digitCount = 6;
+
+        // 如果数据库中没有单据号,则从000001开始
+        if(empty($maxOrderNumber)){
+            $number = $date . str_pad(1, $digitCount, '0', STR_PAD_LEFT);
+        }else{
+            // 获取数字部分
+            $lastNumber = substr($maxOrderNumber, -1 * $digitCount);
+            $lastNumber = (int)$lastNumber;
+
+            // 数字自增
+            $number = $lastNumber + 1;
+            $number = str_pad($number, $digitCount, '0', STR_PAD_LEFT);
+
+            // 拼接单据号
+            $number = $date . $number;
+        }
+
+        return $number;
     }
 }

+ 21 - 22
app/Service/SalesOrderService.php

@@ -495,13 +495,12 @@ class SalesOrderService extends Service
         if(empty($data['model_type'])) return [false,'订单模板类型不能为空'];
         if(! in_array($data['model_type'],SalesOrder::$model_type)) return [false,'订单模板类型错误'];
         if(empty($data['order_number'])) return [false,'合同编号不能为空'];
-        if(empty($data['customer_id'])) return [false,'请选择客户'];
-        if(empty($data['employee_one'])) return [false,'请选择签订人'];
-        if(empty($data['sign_time'])) return [false,'签订日期不能为空'];
-        $data['sign_time'] = $this->changeDateToDateMin($data['sign_time']);
+//        if(empty($data['customer_id'])) return [false,'请选择客户'];
+//        if(empty($data['employee_one'])) return [false,'请选择签订人'];
+        if(! empty($data['sign_time'])) $data['sign_time'] = $this->changeDateToDateMin($data['sign_time']);
         if(! empty($data['expire_time'])) $data['expire_time'] = $this->changeDateToDateMin($data['expire_time']);
-        if(empty($data['contract_state'])) return [false,'请选择合同状态'];
-        if(empty($data['employee_two'])) return [false,'请选择负责人'];
+//        if(empty($data['contract_state'])) return [false,'请选择合同状态'];
+//        if(empty($data['employee_two'])) return [false,'请选择负责人'];
         if(empty($data['product'])) return [false,'请选择产品'];
         foreach ($data['product'] as $value){
             if(empty($value['number'])) return [false,'产品数量不能为空'];
@@ -548,25 +547,25 @@ class SalesOrderService extends Service
 
         if($is_add){
             $bool = SalesOrder::where('del_time',0)->where('order_number',$data['order_number'])->exists();
-            if($bool) return [false,'合同号已存在,请重新获取'];
-
-            if($data['model_type'] == SalesOrder::Model_type_two){
-                $boolean = SalesOrder::where('del_time',0)
-                    ->where('title',$data['title'])
-                    ->where('model_type',$data['model_type'])
-                    ->exists();
-            }
+            if($bool) return [false,'合同号已存在,请重新获取'];
+
+//            if($data['model_type'] == SalesOrder::Model_type_two){
+//                $boolean = SalesOrder::where('del_time',0)
+//                    ->where('title',$data['title'])
+//                    ->where('model_type',$data['model_type'])
+//                    ->exists();
+//            }
         }else{
             if(empty($data['id'])) return [false,'ID不能为空'];
-            if($data['model_type'] == SalesOrder::Model_type_two){
-                $boolean = SalesOrder::where('del_time',0)
-                    ->where('id','<>',$data['id'])
-                    ->where('title',$data['title'])
-                    ->where('model_type',$data['model_type'])
-                    ->exists();
-            }
+//            if($data['model_type'] == SalesOrder::Model_type_two){
+//                $boolean = SalesOrder::where('del_time',0)
+//                    ->where('id','<>',$data['id'])
+//                    ->where('title',$data['title'])
+//                    ->where('model_type',$data['model_type'])
+//                    ->exists();
+//            }
         }
-        if(isset($boolean) && $boolean) return [false,'合同名称不能重复'];
+//        if(isset($boolean) && $boolean) return [false,'合同名称不能重复'];
 
         return [true, $data];
     }