受注原価管理システム (2.0)

Download OpenAPI specification:Download

島守ダクト受注原価管理システム

v1:2020

v2:2022

日程

日程取得

日程表を表示するためのデータを取得するAPI

返却する際に下記の条件によって上から順に担当者の順番を並び替える

  • 受注の担当者
  • 雇用区分(正社員>再雇用>アルバイト>外注)
  • IDの昇順
query Parameters
schedule_date
required
string

取得対象日

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

日程登録

日程を登録するAPI

site_status が 1 の場合は order_id は必須
departure_time HH:MM:00
is_processing_work がリクエストに存在しない場合は false と同様に扱う

Request Body schema: multipart/form-data
schedule_date
required
string

日程対象日(登録年月日)

site_status
required
integer

現場ステータス 1:現場 2:学校 3:休み

order_id
integer Nullable

受注ID、現場ステータスが1の場合は必須

user_id
required
Array of integers

従業員のIDを配列で渡す

departure_time
string Nullable

出発時間

is_processing_work
integer Nullable

加工作業フラグ 1(true) or 0(false)

other_contacts
string Nullable

その他連絡事項

Responses

Request samples

Content type
multipart/form-data
{
  "schedule_date": "2022-05-01",
  "site_status": 1,
  "order_id": 4,
  "user_id": [
    1,
    3,
    6
  ],
  "departure_time": null,
  "is_processing_work": 0,
  "other_contacts": null
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

日程詳細取得

日程詳細を取得するAPI

path Parameters
id
required
integer

日程ID

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    }
}

日程削除

日程を削除するAPI

path Parameters
id
required
integer

日程ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

日程更新

日程を更新するAPI

path Parameters
id
required
integer

日程ID

Request Body schema: multipart/form-data
schedule_date
string

対象日

site_status
integer

現場ステータス

order_id
integer Nullable

受注ID(現場ステータスが1のときのみ必須)

user_id
Array of integers

従業員ID配列

departure_time
string Nullable

出発時間

is_processing_work
boolean

加工作業フラグ

other_contacts
string Nullable

その他連絡事項

Responses

Request samples

Content type
multipart/form-data
{
  "schedule_date": "2022-05-01",
  "site_status": 2,
  "order_id": null,
  "user_id": [
    5,
    9
  ],
  "departure_time": null,
  "is_processing_work": false,
  "other_contacts": null
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

前回日程コピー

  1. パラメータの当日の日付を元に前回登録したデータを取得
  2. 1を当日のデータとして新規登録
  3. 2の登録データを返却

例:登録対象日が月曜日、前回登録が金曜日だった場合、金曜日のデータをコピーする

query Parameters
schedule_date
required
string

登録対象日

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

作業員一覧取得

日程登録/更新時に使用する
ユーザ種別(user_kind)が作業員(2)のデータのみを返却する

  1. user_kind が 2 かつ is_hidden が false の従業員を雇用区分の昇順->IDの昇順で全件取得する
  2. 日程対象日(@param)に存在する日程に使用されている従業員(作業員)だった場合は is_in_use を true にする(日程IDが指定されている場合は対象外)

ソート順

  1. 雇用区分(正社員>再雇用>アルバイト>外注)
  2. IDの昇順
query Parameters
schedule_date
required
string

日程対象日

schedule_id
integer

日程ID

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

略称現場名一覧取得

略称現場名を取得して返却する

受注ID(order_id)がnullまたはパラメータが存在しない場合

  • 対象日(schedule_date)に既に登録されている現場以外を返却する

受注ID(order_id)が指定されている場合

  • 対象日に既に登録されている現場を除いて返却するが、受注IDに一致する場合は除かない

is_aggregateがtrueの場合は集計用現場名を返却する(全件返却)
※ schedule_date が指定されていない場合、対象日は当日とする

query Parameters
schedule_date
string

登録・編集対象日

order_id
integer

受注ID

is_aggregate
boolean

集計用か

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

連絡事項

連絡事項取得

対象日の連絡事項を取得する

日程別連絡事項も同時に取得する

出発時間がある場合
「現場名 時間 出発」

加工作業フラグがtrueの場合
「現場名 加工」

その他連絡事項がある場合
「現場名 連絡事項」

query Parameters
schedule_date
required
string

日程対象日

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    }
}

連絡事項登録

対象日の連絡事項を登録する

Request Body schema: multipart/form-data
schedule_date
required
string

登録対象日

contact_info
string

連絡事項

Responses

Request samples

Content type
multipart/form-data
{
  "schedule_date": "2022-05-01",
  "contact_info": "田中、中村は休み"
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

連絡事項更新

対象日の連絡事項を更新する

path Parameters
id
required
integer

連絡事項ID

Request Body schema: multipart/form-data
contact_info
string

連絡事項

Responses

Request samples

Content type
multipart/form-data
{
  "contact_info": "田中、中村が休み"
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

受注

受注一覧取得

受注一覧を取得するAPI

IDの降順

デフォルト(初回表示)の返却
当月以前に受注されているかつステータスが完了になっていない受注を全て返却する

検索機能
年月: デフォルト当月
受注開始日が年月以前の受注を絞り込んで返却する
受注ステータス: デフォルト空(null)
パラメータで受注ステータスが指定されている場合は受注ステータスで絞り込んで返却する
受注(2) 出来高(3) 請求済み(4) 工事完了(6) 完了(5)
顧客ID: デフォルト空(null)
指定されている場合は顧客IDに一致する受注を絞り込んで返却する
完了した受注を表示:デフォルトfalse
true の場合は完了した受注を含めて返却する
※年月が指定されている場合、年月よりも完了日が前の場合は表示しない

パラメータが一つも指定されていない場合は未完了の受注を全件返却する
複数パラメータが指定された場合はそのすべてに一致する受注を返却する(AND)

(実装中に仕様が変わる可能性有)

query Parameters
search_date
string

検索年月(初期値当月)

order_status
string

検索受注ステータス

client_id
string

顧客ID

is_show_completed
string

完了した受注を表示するか否か

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

受注登録

受注を登録するAPI

※リクエスト以外の保存内容
orders.order_start_date に作成日(現在の日付)を入れる
受注ステータスが完了の場合 orders.completed_date に現在の日付を入れる

Request Body schema: application/json
client_id
required
integer

顧客ID

client_contact_name
string <= 20 characters

担当者(顧客)

formal_site_name
string <= 100 characters

現場名(正式名称)

informal_site_name
required
string <= 50 characters

現場名(略称)

estimated_number
string <= 255 characters

見積もり番号

user_id
integer

従業員ID

estimated_amount
string <= 15 characters

見積金額

contract_amount
string <= 15 characters

請負金額

exists_purchase_order
required
boolean

注文書ありフラグ

construction_start_date
required
string

工期開始日

construction_end_date
required
string

工期終了日

complete_plan_date
string

完成予定日

personal_cost
string <= 15 characters

人件費単位

order_status
required
integer

受注ステータス:受注(2) 出来高(3) 請求済み(4) 工事完了(6) 完了(5)

Responses

Request samples

Content type
application/json
{
  • "client_id": 1,
  • "client_contact_name": "斎藤",
  • "formal_site_name": "AAA案件A現場名",
  • "informal_site_name": "A現場",
  • "estimated_number": "1",
  • "user_id": 1,
  • "estimated_amount": "10000000",
  • "contract_amount": "9000000",
  • "exists_purchase_order": true,
  • "construction_start_date": "2020-01-01",
  • "construction_end_date": "2020-12-31",
  • "complete_plan_date": "2020-12-25",
  • "personal_cost": "25000",
  • "order_status": 1
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

受注詳細取得

受注を取得するAPI

path Parameters
id
required
integer

受注ID

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "client_id": 1,
  • "client_contact_name": "田中",
  • "formal_site_name": "AAA現場",
  • "informal_site_name": "A現場",
  • "estimated_number": "1",
  • "user_id": 1,
  • "estimated_amount": "10000000",
  • "contract_amount": "9000000",
  • "exists_purchase_order": true,
  • "construction_start_date": "2022-06-01",
  • "construction_end_date": "2023-06-01",
  • "complete_plan_date": "2023-06-30",
  • "personal_cost": "50000",
  • "order_status": 1
}

受注更新

受注を更新するAPI

完了ステータス以外から完了に変更された場合、orders.complete_date に現在の日付を入れる
完了ステータスからそれ以外に変更された場合、orders.complete_date に null を入れる

path Parameters
id
required
integer

受注ID

Request Body schema: application/json
client_id
required
integer

顧客ID

client_contact_name
string <= 20 characters

担当者(顧客)

formal_site_name
string <= 100 characters

現場名(正式名称)

informal_site_name
required
string <= 50 characters

現場名(略称)

estimated_number
string <= 255 characters

見積もり番号

user_id
integer

従業員ID

estimated_amount
string <= 15 characters

見積金額

contract_amount
string <= 15 characters

請負金額

exists_purchase_order
required
boolean

注文書ありフラグ

construction_start_date
required
string

工期開始日

construction_end_date
required
string

工期終了日

complete_plan_date
string

完成予定日

personal_cost
string <= 15 characters

人件費単位

order_status
required
integer

受注ステータス:受注(2) 出来高(3) 請求済み(4) 工事完了(6) 完了(5)

Responses

Request samples

Content type
application/json
{
  • "client_id": 1,
  • "client_contact_name": "斎藤",
  • "formal_site_name": "AAA案件A現場名",
  • "informal_site_name": "A現場",
  • "estimated_number": "1",
  • "user_id": 1,
  • "estimated_amount": "10000000",
  • "contract_amount": "9000000",
  • "exists_purchase_order": true,
  • "construction_start_date": "2020-01-01",
  • "construction_end_date": "2020-12-31",
  • "complete_plan_date": "2020-12-25",
  • "personal_cost": "25000",
  • "order_status": 1
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

受注削除

日程表に使われている場合削除しない(405)


受注を削除するAPI

path Parameters
id
required
integer

受注ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

原価

使用材料取得

受注ID(@path)に紐づく使用材料を取得する

path Parameters
order_id
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

使用材料更新

使用材料を更新する

path Parameters
order_id
required
string
Request Body schema: application/json
Array ()
order_id
required
integer
material_name
required
string <= 100 characters
quantity
required
string <= 15 characters
unit
required
string <= 10 characters
unit_price
required
string <= 15 characters
use_year
required
string
remark
string Nullable

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

原価取得

受注IDを基データを返却する

  • 受注情報(元請、現場情報や算出に関わる金額等)
  • 人数集計(工期開始月から工期終了月までの日程表データを各年月日毎にまとめる)
  • 使用材料

headcount

  • 工期開始日から工期終了日までの月毎の日別人数を日程表から集計する
  • 日毎のデータはarray[30]で各番地を1日~31日として扱い、稼働が無い場合は0、ある場合はその人数を入れる
  • 月に存在しない日に値する番地に関してはnullを入れる

その他算出要素に関してはフロント側で計算を行う

path Parameters
order_id
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    }
}

出来高

年月出来高一覧

※年月出来高一覧と出来高一覧は間違いやすいので注意
年月出来高一覧は、指定年月に出来高がある受注の一覧(出来高管理画面で使用する)

started_orders

  • 検索年月日(@param)以前に受注済みかつ検索年月日時点で未完了な受注のうち、工期以内のもの

not_started_orders

  • 検索年月日(@param)以前に受注済みかつ検索年月日時点で未完了な受注のうち、検索年月日が工期開始日よりも前のもの
query Parameters
search_date
string

検索年月日

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    }
}

出来高一覧取得

※年月出来高一覧と出来高一覧は間違いやすいので注意
出来高一覧は、指定受注の出来高一覧(出来高編集画面で使用する)

受注IDに一致する受注の出来高を受注開始日~当月までの毎月の出来高を返却する(既に完了している受注の場合は完了日まで)

出来高テーブルに値がある月はそのデータを、無い月はidと請求額をnullで返却する

path Parameters
order_id
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    }
}

出来高登録

出来高を登録するAPI

422について

  • 請求なしフラグがtrueの場合は今月請求額はnull
  • 請求なしフラグがfalse(=請求あり)の場合は今月請求額必須
  • ダイアログで表示する 「項目に不備があります。\n請求なしにチェックまたは今月請求額を入力しているか確認して再度保存してください。」
path Parameters
order_id
required
string
Request Body schema: application/json
billing_date
required
string

請求年月

billing_amount
integer Nullable

請求額

is_not_billed
required
boolean

請求なしフラグ

Responses

Request samples

Content type
application/json
{
  • "billing_date": "2022-06",
  • "billing_amount": 3220000,
  • "is_not_billed": false
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

出来高更新

出来高を更新するAPI

422について

  • 請求なしフラグがtrueの場合は今月請求額はnull
  • 請求なしフラグがfalse(=請求あり)の場合は今月請求額必須
  • ダイアログで表示する 「項目に不備があります。\n請求なしにチェックまたは今月請求額を入力しているか確認して再度保存してください。」
path Parameters
id
required
integer
order_id
required
integer
Request Body schema: application/json
billing_date
required
string

請求年月

billing_amount
integer Nullable

請求額

is_not_billed
required
boolean

請求なしフラグ

Responses

Request samples

Content type
application/json
{
  • "billing_date": "2022-05",
  • "billing_amount": null,
  • "is_not_billed": true
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

顧客

顧客一覧取得

顧客一覧を取得する

ソート条件

  • かなの昇順(あいうえお順)
  • (ないとは思うが)同じ会社名の場合はIDの昇順

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

顧客登録

顧客を登録する

Request Body schema: multipart/form-data
client_name
required
string

会社名

client_name_kana
required
string

会社名(ふりがな)

postal_code
string Nullable

郵便番号

client_address
string Nullable

住所

closing_date
string Nullable

締め日

payment_date
string Nullable

支払日

remarks
string Nullable

備考

Responses

Request samples

Content type
multipart/form-data
{
  "client_name": "株式会社あいうえお",
  "client_name_kana": "かぶしきがいしゃあいうえお",
  "postal_code": "000-0000",
  "client_address": "青森県八戸市XXXX",
  "closing_date": "当月15",
  "payment_date": "当月末",
  "remarks": null
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

顧客詳細取得

顧客の詳細情報を取得する

path Parameters
id
required
integer

顧客ID

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    }
}

顧客更新

顧客情報を更新する

path Parameters
id
required
integer

顧客ID

Request Body schema: multipart/form-data
client_name
required
string

会社名

client_name_kana
required
string

会社名(ふりがな)

postal_code
string Nullable

郵便番号

client_address
string Nullable

住所

closing_date
string Nullable

締め日

payment_date
string Nullable

支払日

remarks
string Nullable

備考

Responses

Request samples

Content type
multipart/form-data
{
  "client_name": "株式会社あいうえお",
  "client_name_kana": "かぶしきがいしゃあいうえお",
  "postal_code": null,
  "client_address": null,
  "closing_date": null,
  "payment_date": null,
  "remarks": null
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

顧客削除

削除しようとしている顧客が受注で使用されている場合削除しない(405)

--

顧客を削除する

path Parameters
id
required
integer

顧客ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

従業員

従業員一覧取得

非表示の従業員を除いた全件取得する
※id(@param)が指定されている場合は非表示ユーザーでもそのユーザーを除かない

ソート順

  • 雇用区分(正社員>再雇用>アルバイト>外注)
  • IDの昇順

user_authority

  1. 管理者
  2. 一般

user_kind

  1. 事務員
  2. 作業員

employment_classification

  1. 正社員
  2. 再雇用
  3. アルバイト
  4. 外注
query Parameters
id
number

従業員ID

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

従業員登録

従業員を登録する

Request Body schema: multipart/form-data
login_id
required
string

ログインID

login_password
required
string

パスワード

confirm_password
required
string

パスワード確認

user_name
required
string

従業員名

user_authority
required
integer

権限

user_kind
required
integer

種別

employment_classification
required
integer

雇用区分

Responses

Request samples

Content type
multipart/form-data
{
  "login_id": "admin",
  "login_password": "password",
  "confirm_password": "password",
  "user_name": "山田太郎",
  "user_authority": 1,
  "user_kind": 1,
  "employment_classification": 1
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

従業員詳細取得

従業員の詳細情報を取得する

path Parameters
id
required
integer

従業員ID

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    }
}

従業員更新

従業員の情報を更新する

path Parameters
id
required
integer

従業員ID

Request Body schema: multipart/form-data
login_password
required
string

パスワード

confirm_password
required
string

パスワード確認

user_name
required
string

従業員名

user_authority
required
integer

権限

user_kind
required
integer

種別

employment_classification
required
integer

雇用区分

Responses

Request samples

Content type
multipart/form-data
{
  "login_password": "password",
  "confirm_password": "password",
  "user_name": "山田太郎",
  "user_authority": 2,
  "user_kind": 2,
  "employment_classification": 1
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

従業員削除

従業員を削除する

以下のいずれかに当てはまった場合削除を行わない。(405)

  1. 最後の管理者かチェック
  2. パラメータの従業員IDが受注マスタに使用されているかチェック
  3. パラメータの従業員IDが日程詳細テーブルに使用されているかチェック

※結果によって405レスポンスメッセージを変更する

  • 1に当てはまった場合(1がtrueなら全てこのレスポンス) message = "管理者が残り1人のため削除できません"
  • 受注マスタのみに使用されていた場合(2のみtrue) message = "受注で使用されているため削除できません"
  • 日程詳細テーブルのみに使用されている場合(3のみtrue) message = "日程表で使用されているため削除できません"
  • どちらにも使用されている場合(1がfalse、2と3がtrue) message = "受注と日程表に使用されているため削除できません"
path Parameters
id
required
integer

従業員ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

従業員非表示

従業員を日程等にはデータを残したまま一覧から非表示にするために使用する
従業員の非表示フラグをTRUE(1)に更新する

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

集計

集計データ取得

集計年(@param)に一致する日程データや使用材料データを基に1月から12月の集計を行い返却する
受注ID(@param)が指定されている場合は、一致する受注のみの集計を行う

集計年が指定されていない場合は、現在の年で集計して返却する

query Parameters
year
string

集計年

order_id
string

受注ID

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": [
    ]
}

認証類

ログイン

IDとパスワードを使用してマスタに一致するユーザが存在するかチェックする
一致したユーザが存在した場合はユーザ情報を返却する

※IDとパスワードが一致していたとしても、is_hidden が true のユーザーはログイン不可とすること

Request Body schema: application/json
login_id
string
login_password
string

Responses

Request samples

Content type
application/json
{
  • "login_id": "string",
  • "login_password": "string"
}

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    },
  • "token": "xxxxxxxxxxxxxxxxxxxxxx"
}

ログイン情報取得(me)

ログインができている場合はユーザー情報を返却する
トークンが切れているまたはトークンが存在しない等の理由で認証に失敗した場合は401が返却される

Responses

Response samples

Content type
application/json
{
  • "message": "Success",
  • "data": {
    }
}

ログアウト

バックエンド側のログアウト処理を行うAPI

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}