|
|
@@ -840,7 +840,7 @@ class ShopController extends BaseController {
|
|
|
return static::notice('订单不存在', 400);
|
|
|
}
|
|
|
if (!$order['INVOICE_NO']) {
|
|
|
- $invoiceNo = Tool::generateInvoiceNo();
|
|
|
+ $invoiceNo = $this->generateInvoiceNo();
|
|
|
Order::updateAll(['INVOICE_NO' => $invoiceNo], 'SN = :SN', [':SN' => $orderSn]);
|
|
|
}
|
|
|
|
|
|
@@ -1150,4 +1150,28 @@ class ShopController extends BaseController {
|
|
|
|
|
|
return static::notice('成功. ' . json_encode($orderErr));
|
|
|
}
|
|
|
+
|
|
|
+ public function generateInvoiceNo()
|
|
|
+ {
|
|
|
+ $prefix = 'Inv';
|
|
|
+ $currentDate = date('dmY');
|
|
|
+
|
|
|
+ // 查询今天生成的最新发票号(包含当天日期格式的)
|
|
|
+ $order = Order::find()
|
|
|
+ ->where(['STATUS' => 1, 'IS_DELETE' => 0])
|
|
|
+ ->andWhere(['like', 'INVOICE_NO', $prefix . $currentDate])
|
|
|
+ ->orderBy(['INVOICE_NO' => SORT_DESC])
|
|
|
+ ->one();
|
|
|
+
|
|
|
+ if ($order && !empty($order->INVOICE_NO)) {
|
|
|
+ $invoiceNo = $order->INVOICE_NO;
|
|
|
+ // 截取最后5位数字部分并+1
|
|
|
+ $no = sprintf('%05d', intval(substr($invoiceNo, -5)) + 1);
|
|
|
+ } else {
|
|
|
+ // 如果今天没有生成过发票号或没有符合条件的订单,从00001开始
|
|
|
+ $no = '00001';
|
|
|
+ }
|
|
|
+
|
|
|
+ return $prefix . $currentDate . $no;
|
|
|
+ }
|
|
|
}
|