getDepart($user); $top_depart_id = $user['depart_map'][$data['depart_id']] ?? 0; // 使用 strtotime 将日期字符串转换为时间戳,并设置为当天零时 $timestampZero = strtotime(date('Y-m-d') . ' 00:00:00'); $order_no_count = OrderNoCount::where('prefix',$prefix) ->where('top_depart_id',$top_depart_id) ->where('time', $timestampZero) ->first(); if(empty($order_no_count)) { $counter = 1; }else{ $counter = $order_no_count->count + 1; } // 格式化计数器为至少三位数 $number = str_pad($counter, ($counter >= 1000 ? 4 : 3), '0', STR_PAD_LEFT); // 生成订单单号 $orderNumber = $prefix . date('Ymd') . $number; return $orderNumber; } //采购 收货 发货 单号生成 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 createSalesOrderNumberImport($prefix) { // 获取当前时间的微秒级时间戳 list($micro, $seconds) = explode(' ', microtime()); // 从微秒部分截取全部6位作为唯一标识符 $microSuffix = substr($micro, 2, 6); return $prefix . date('YmdHis', $seconds) . $microSuffix; } //施工单订单合同号 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; } }