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;
- }
- }
|