請求管理一覧の請求情報の一覧を返却する API です。
日付は請求確定日で算出します。
| メソッド | URI | Headers |
|---|---|---|
/api/claim/list/{year}/{month/{page}/{per_page}?search={search} |
Default |
| パラメーター名 | 型 | 内容 | 特記 |
|---|---|---|---|
| year | int | 年 / 必ず月とセット / 未来はない | |
| month | int | 月 / 必ず年とセット / 未来はない | |
| search | string | 監理団体名/請求種類/状態/金額 空白区切り で LIKE 検索 | |
| page | int | 現在のページ(何回実行したか何 P 目かを表す) | 以降加算されていく |
| per_page | int | リクエスト件数(50 なら 50 件返却) |
/api/claim/list/2021/1/0/50?search=〇〇
{primary}
pageが 0 の時は= 1 ページ目 / 1 の時は 2 ページ目と同義となる
| パラメーター名 | 型 | 内容 | 特記 |
|---|---|---|---|
| id | int | 請求情報の ID | |
| type | int | 請求種類 | 1:毎月 5:初月 10:アカウント停止 |
| name | string | 請求先の監理団体名称 | |
| status | int | 請求状態 | 1:未入金 2:入金済み |
| amount | int | 請求金額 |
{
"result" : true,
"errors" : "",
"data" : [
{
'id' : 1,
'type' : 1,
'name' : 'テスト監理団体',
'status' : 2,
'amount' : 100000,
},
{
'id' : 2,
'type' : 1,
'name' : 'ttテスト監理団体',
'status' : 2,
'amount' : 100000,
},
],
}
{primary} 何もなければ空配列で返却
失敗ではなく、成功として返却。
{danger} 失敗時は200以外のエラーコードが返却されます。共通ルールのレスポンスをチェック。
payment_typeのEnumの文字列の値の配列と$keywordが一致するものを$paymentTypeとして取得します。statusのEnumの文字列の値の配列と$keywordが一致するものを$statusとして取得。$keywordのうち、半角数値のキーワードがあればその値でtotal_amountを検索します。$request->route('page')で渡されたOFFSET値の場所から、$request->route('per_page')にて渡された件数のみデータ取得を行います。SELECT
*
FROM
`organization_payments`
LEFT JOIN
`organizations`
ON
`organization_payments`.`organization_id` = `organizations`.`id`
WHERE
(
`organizations`.`name` LIKE "%{$keyword1}%"
OR `organizations`.`name` LIKE "%{$keyword2}%"
OR ...
OR `organization_payments`.`payment_type` IN ($paymentType1, $paymentType2, ...)
OR `organization_payments`.`status` IN ($status1, $status2, ...)
OR `organization_payments`.`total_amount` IN ($amount1, $amount2, ...)
)
AND `organization_payments`.`deleted_at` IS NULL
AND `organization_payments`.`payment_year` LIKE "%{$request->get('year')}%"
AND `organization_payments`.`payment_month` LIKE "%{$request->get('month')}%"
ORDER BY
`organizations`.`id` DESC
LIMIT $request->route('per_page') OFFSET $request->route('page')
{warning}
name,payment_type,status,amountの検索は、GETパラメータsearchが渡されたときのみ必要になります。
{primary} バリデーションはありません。