| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | 
							- <?php
 
- namespace App\Service;
 
- use App\Model\Construction;
 
- use App\Model\SalesOrder;
 
- class OrderNoService extends Service
 
- {
 
-     //采购 收货 发货 单号生成
 
-     public function createOrderNumber($prefix){
 
-         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 . '%')
 
-             ->max('order_number');
 
-         if(empty($order_number)){
 
-             $number = str_pad(1,3,'0',STR_PAD_LEFT);
 
-             $number = $str . $number;
 
-         }else{
 
-             $tmp = substr($order_number, -3);
 
-             $tmp = $tmp + 1;
 
-             //超过999
 
-             if(strlen($tmp) > 3) return '';
 
-             $number = str_pad($tmp,3,'0',STR_PAD_LEFT);
 
-             $number = $str . $number;
 
-         }
 
-         return $number;
 
-     }
 
-     //施工单订单合同号
 
-     public static function createConstructionOrderNumber1($prefix){
 
-         $str = $prefix . date('Ymd',time());
 
-         $order_number = Construction::where('order_number','Like','%'. $str . '%')
 
-             ->max('order_number');
 
-         if(empty($order_number)){
 
-             $number = str_pad(1,3,'0',STR_PAD_LEFT);
 
-             $number = $str . $number;
 
-         }else{
 
-             $tmp = substr($order_number, -3);
 
-             $tmp = $tmp + 1;
 
-             //超过999
 
-             if(strlen($tmp) > 3) return '';
 
-             $number = str_pad($tmp,3,'0',STR_PAD_LEFT);
 
-             $number = $str . $number;
 
-         }
 
-         return $number;
 
-     }
 
-     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;
 
-     }
 
- }
 
 
  |