{success} 請求が発生する監理団体の、翌月KIZUNA利用料の請求データを一括で作成するバッチです。
毎月21日の0時に請求が発生する監理団体の、翌月KIZUNA利用料の請求データを一括で作成するバッチです。
対象の監理団体毎に、請求データorganization_paymentsを新規作成し、翌月のKIZUNA利用料金が確定した旨をオーナーアカウントへメール送信します。
{primary} 翌月KIZUNA利用料の請求データを作成する監理団体の条件を記載しています。
| 項目 | 条件 |
|---|---|
| basic_charge_unit_price | 基本料金単価もしくは従量課金単価が0円より大きい金額が設定されているか? |
| pay_per_use_price | 基本料金単価もしくは従量課金単価が0円より大きい金額が設定されているか? |
| 項目 | 条件 |
|---|---|
| status | ステータスが「利用中」か「アカウント停止」 |
SELECT *
FROM organization_payment_settings ops
LEFT JOIN organizations o
ON ops.organization_id = o.id
WHERE ( -- [organization_payment_settings] 請求が発生するか? ※基本料金単価もしくは従量課金単価が0円より大きい金額が設定されているか?
ops.basic_charge_unit_price > 0 -- [organization_payment_settings] 基本料金単価
OR ops.pay_per_use_price > 0 -- [organization_payment_settings] 従量課金単価
)
AND ops.deleted_at IS NULL
AND o.status IN (5, 10) -- [organizations] 監理団体のステータスが「5:利用中」か「10:アカウント停止」
AND o.deleted_at IS NULL
organization_paymentsレコードを作成{primary} 来月のKIZUNA利用料の請求データを該当件数分、新規作成します。
| 物理名 | 論理名 | 登録値 | 備考 |
|---|---|---|---|
| organization_id | 監理団体ID | 支払設定データの値コピー | |
| organization_payment_setting_id | 監理団体 支払設定ID | 支払設定データの値コピー | |
| payment_method | 支払方法 | 支払設定データの値コピー | |
| payment_timing | 支払時期 | 支払設定データの値コピー | |
| payment_type | 請求種類 | 1 : 毎月 | |
| plan | プラン人数 | 支払設定データの値コピー | |
| basic_charge_unit_price | 基本料金単価 | 支払設定データの値コピー | |
| pay_per_use_price | 従量課金単価 | 支払設定データの値コピー | |
| credit_card_number | カード番号 | 支払設定データの値コピー | |
| payment_year | 支払年 | today()->firstOfMonth()->addMonth()->year |
次月の年 |
| payment_month | 支払月 | today()->firstOfMonth()->addMonth()->month |
次月 |
| billing_period_from | 請求対象期間 開始 | today()->firstOfMonth()->addMonth() |
|
| billing_period_until | 請求対象期間 終了 | today()->firstOfMonth()->addMonth()->lastOfMonth() |
|
| billing_confirmed_at | 請求確定日時 | now() |
現在日時 |
| status | 請求状態 | 1 : 未請求 | |
| closed | 請求データクローズフラグ | false | |
| subtotal_amount | 請求 小計 | basic_charge_unit_price + (pay_per_use_price * plan) |
支払設定データの基本料金+(従量課金単価 x プラン人数) |
| tax | 請求 消費税 | subtotal_amount * 0.1 小数点以下切り捨て |
請求 小計 x 0.1 の小数点以下切り捨て |
| total_amount | 請求 合計 | subtotal_amount + tax |
請求 小計 + 請求 消費税 |
| is_annual_payment | この請求データで基本料金年払いをするか? | 支払設定データの値 | |
| payment_details | 請求明細 | (※)jsonなので、ここに書くと分かりにくいので表枠外に記述しています。 | 請求明細の値をjsonで登録します。 |
| total_amount_init | 請求 合計 初期値 | total_amountと同じ値 |
(※)請求明細payment_detailsに登録する明細の内容
[
{
"amount" : 9800, // 金額
"quantity" : 1, // 数量
"item_name" : "基本料金(月払い)", // 品目
"unit_price" : 9800 // 単価
},
{
"amount" : 2000, // 金額
"quantity" : 200, // 数量
"item_name" : "従量課金額", // 品目
"unit_price" : 10 // 単価
}
]
<div style="width:100%; background:#f13757; padding:40px 20px;">
<div style="width:80%;margin:0 auto; background:#fff; padding: 20px; border-radius:8px;">
<div><img src="{{ $logo_src }}" alt="" style="width: 200px;"></div>
<p style="font-weight:bold; font-size:2rem;">翌月ご利用分の利用料金が確定しました。</p>
<p><br></p>
<p>KIZUNA管理画面の請求情報から内容を確認してください。</p>
<p>末日に自動で決済が行われます。</p>
<p>※お支払いが確認できない場合、決済ができなかった場合にはアカウントが停止されますのでご注意ください。</p>
<p><br></p>
<p>アカウントが停止となった場合には以下の手順よりご操作ください。</p>
<p>1. (KIZUNAにログイン後)右上に表示されている組合名を選択</p>
<p>2. 当月費用支払いを選択</p>
<p>3. 決済するを押していただき決済を行う</p>
<p><br></p>
<p>なお、上記の手順を踏んでもアカウントが利用できない場合には、</p>
<p>下記の可能性が考えられますので、ご登録のクレジットカード会社にお問い合わせください。</p>
<p>・カード上限金額を超えてしまっている</p>
<p>・カードの有効期限が過ぎてしまっている</p>
<p>・その他の要因でカードが利用できない状態になってしまっている</p>
<p><br></p>
<p>新しくクレジットカードをご準備される場合には、</p>
<p>(KIZUNAにログイン後)支払い設定画面にて、新しいカード情報をご登録の上、再度、上記の手順を行ってください。</p>
<p><br></p>
<p>以上の内容でも解決しない場合、または本メールに見覚えがなかったり、ご不明点があった際には、</p>
<p>下記メールアドレス迄お問い合わせください。</p>
<p><br></p>
<p>{{ $contact_email }}</p>
</div>
</div>
App\Console\Kernelの設定値$schedule->command('monthlybatch:createBillingData')->monthlyOn(21, '0:00');
監理団体のステータスを更新するジョブApp\Jobs\CreateMonthlyBillingを実行します。
App\Console\Commands\MonthlyCreateBillingDateBatch
条件に該当する請求データorganization_paymentsレコードを新規作成します。
App\Jobs\CreateMonthlyBilling
KIZUNA利用料金の請求確定メールの設定を行います。
App\Notifications\CreateMonthlyBillingNotification