【发布时间】:2020-10-20 07:08:27
【问题描述】:
我必须为交易编号制定格式,格式示例是BKK-202009-00001。将自动递增的数字 00001。我已经尝试过,但没有得到预期的输出。
编码
public function createBefore($model, $arrayData, $metaData, $id=null)
{
//$arrayData["no_draft"] = $this->custom_getdraftid(null);
$prefix = 'BBK';
if ($arrayData['payment_type']=='CASH') {
$prefix='BKK';
} elseif ($arrayData['payment_type']=='GIRO') {
$prefix='BGK';
}
ff($prefix);
$no_transaction = \DB::table('acc_tra_cash_bank_expenses_header')
->selectRaw(" '$prefix' || '-' ||to_char(CURRENT_DATE, 'YYYYMM')||'-'||RIGHT('0000'||(
RIGHT( (SELECT no_transaction FROM acc_tra_cash_bank_expenses_header WHERE no_transaction LIKE '$prefix'||to_char(CURRENT_DATE, 'YYYYMM')||'%'
ORDER BY id DESC LIMIT 1),5)::INTEGER+1)::TEXT,5) AS no_transaction")->first();
ff($no_transaction->no_transaction);
if (!$no_transaction) {
$bulantanggal = date('Ym');
$no_transaction->no_transaction = "$prefix-$bulantanggal-00001";
}
$newModel = $model;
$newArrayData = array_merge($arrayData, [
'no_draft'=> $this->custom_getdraftid(null),
'no_transaction' => $no_transaction->no_transaction
]);
return [
"model" => $newModel,
"data" => $newArrayData,
];
}
【问题讨论】:
-
00001,它是来自像id这样的任何地方,还是你必须自己增加它?? -
不要从任何地方增加它
-
您要添加多少个零?比如如果数字是 1000 或 99 或 99999,那么预期的输出是什么??
-
00001 四个零如果数字 1000 01000
-
你说你没有得到预期的输出,但你没有分享你得到的结果。与我们分享您所看到的非常有帮助。