主キー(自動インクリメント)があるテーブル(請求書など)があります。ただし、別の参照番号が必要です。これも一意であり、次のパターンに基づいている必要があります。
INV-{Ymd}-{unique number for that day}
ここで、INV-連絡先プレフィックス{Ymd} -YYYMMDD形式の日付{その日の一意の番号}-はその日のシリアル番号です(自動インクリメントである必要がありますが、毎日0から開始する必要があります。
例
同じテーブルで実行できます。別のテーブルや列を作成する必要はありません。
列名が請求書テーブルのreference_numberであると想定します。
まず、テーブルから最新のレコードを取得します(主キーまたは挿入日で取得できます)。
$data=Invoice::find()->select('reference_number')->orderBy(['your_primary_key' => SORT_DESC])->one();
if($data) // record found
{
$temp= explode('-',$$data['reference_number']); // devide data in array
// compare with today's date,
if((int)$temp[1]==(int)date('Ymd'))
{
// if today's date match than increase number and create reference_number
$reference_number="INV".date('Ymd').((int)$temp[2]+1);
}
else // reference_number is from old date so you can create from today's date
{
$reference_number="INV".date('Ymd')."0";
}
}
else // record not found,(no record in your table)
{
// you can directly create reference_number from today's date
$reference_number="INV".date('Ymd')."0";
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加