個人給とシフト給

当システムには、個人給とシフト給という2種類の給与体系があります。

個人給は各警備員ごとに定めた賃金。シフト給は、○○施設のA勤はXX円、B勤はYY円というようにそれぞれの物件のシフトごとに定めた賃金です。
これらの賃金を設定しておけば、給与金額の入力は、個人給シフト給ボタンをクリックするだけで済みます。(もちろん、手入力もできます。)

個人給やその関連情報を警備員ごとに設定する

[グローバルナビ:警備員[警備員一覧]] > 経理

警備員一覧のページに移動して、各警備員の行の右端にある「経理」ボタンをクリック

(1) 個人給と労働時間制を設定
  • 個人給は、時給制・日給制・月給制が設定できる。
  • 時給と日給の違い:日給は1日分の賃金であるため、8Hに満たない労働であっても全額を支給するのが原則。
  • 警備員のプラベートな理由で早退した場合など、日給制であってもそのときだけ時給計算にすることができる。
  • 週残業(週40Hを超えた分に割増を付与する)を計算するかどうかを指定できる。※給与計算時に、全員に強制的に週残業を計算させることもできる。
  • 1ヶ月単位の変形労働時間制( 変形期間が1ヶ月以内)の警備員については、週残業を計算する、及び月残業を計算するの2つにチェックを入れる。
  • 1年単位の変形労働時間制(変形期間が1ヶ月を超え1年以下)の警備員については、週残業を計算する、及び年残業を計算するの2つにチェックを入れる。
  • 月給制の警備員については、月給の中に残業手当や深夜割増を含めず、基本月給のみを入力してください。
(2) 所定労働時間のテーブルを設定する

上図の画面を下にスクロールしていくと、所定労働時間のテーブルを設定する部分が出てきます。
このテーブルは、残業時間の算出や休日勤務かどうかをチェックするのに使われます。このテーブルから所定労働時間をゲットし、実際の労働時間と比較して残業時間の算出を行うわけです。

まず、週テーブルと月テーブルのどちらを使うのかを選択します。
曜日によって所定労働時間が決まっている勤務者に対しては、週テーブルを選択してください。

↑日曜日から土曜日まで、すべてを480にすると、何曜日であろうとも、8Hを超えた労働時間を残業として計算します。この場合、法定休日が定められていないため、休日割増は計算されません。

月単位で所定労働時間を決める場合は、月テーブルを選択します。月テーブルの設定は、「編集」「追加」のリンクをクリックすればそこに遷移します。
月給制の勤務員や、変形労働時間制の勤務員については、月テーブルで運用してください。

  1. 本システムは、所定労働時間テーブルに基づいて残業時間や休日勤務の算出を行う。
  2. 所定労働時間テーブルは、それに基づいて、残業や休日勤務の計算を行うためのデータであり、所定労働時間が労働基準法に合致しているかどうかのチェックはしない。
  3. テーブルには、法定休日は0を、法定外休日は-480 (負数)を入力して両者を区別すること。(法定休日の労働については、給与計算時に休日割増を付与するため)
  4. 所定労働時間テーブルは、週単位で設定するものと1ヶ月単位で設定するものがあり、どちらを使って給与計算するかを予め選択しておきます。
  5. 月給制の警備員に対しデフォルトの週テーブルは使わないこと。1ヶ月の所定労働時間が不正確になるため、月給を逆算して時給を算出するときに不正確な金額を算出する。その時給を用いて算出した残業割増等も不正確であることに注意。
  6. 週テーブルを使う場合、月テーブルは設定されていなくてもよい。逆も同様。
テーブル種別説      明
週テーブル日曜日~土曜日までの所定労働時間を分単位コンマまたはタブ区切りで入力します。
月テーブル第1カラムは給与の起算年月日、第2カラム以降に、起算日~締め日までの所定労働時間を分単位コンマまたはタブ区切りで入力します。
例えば、給与の締め日が20日で、2024年の5/21~6/20までの給与を計算する場合は、月テーブルの内容を
2024/5/21, 480,600,……
とします。
月テーブルで運用する場合は、毎月新しいデータを追加していく必要があります。
また、1年以上前の古いデータはどこかの時点で自動削除されます。
テーブル仕様
テーブル作成には、Excelを利用してコピペを

[グローバルナビ:各種マスター] > テンプレートや部品 > エクセル

にある 所定労働時間の割当作業.xlsx をダウンロードします。 このブックを編集して、赤枠の行をコピペしましょう。

上が週テーブル、下が月テーブルです。月テーブルは、変形なしと変形労働時間制のシートがそれぞれ用意されています。
給与が20日締めの会社は、起算日を21に修正すると幸せになれます。

いずれも、赤枠の部分を選択して(行全体を選択するのではありません)コピペしてください。

(3) 社会保険の控除額を設定する

さらに下にスクロールすると、社会保険の控除額を記入する部分が出てきます。

ここに記入した金額は、給与明細に反映されます。入力は数値だけです。「円」を付けないでください。

シフト給を物件ごとに設定する

シフト給の設定は任意です。
が、シフトごとに日給が変わる施設警備業務やマラソン大会や花火大会などのイベント系の警備業務に設定しておくと、賃金入力が正確になります。

シフト給の設定ボタンは、受注物件View にあります。※ こちらにも説明がありますので、合わせてご確認ください

[グローバルナビ:受注物件] > 表示 (受注物件View) > 現物件のシフトやシフト給を追加

以下の画面でシフト給を追加します。

  • 必須項目:勤務シフトの名称(適当な名前を付けてください)、上番・下番の時刻、仮眠と休憩の時間、深夜業対象時間を記入。必須項目です。
  • 基本給:このシフトにおける基本給を記入します。日給ベースか時給ベースで記入してください。記入にあたっては次のことに注意します。
    • 日給ベースで設定する場合
      • 8Hを超えるシフトについては、基本給には残業や深夜の割増のない 8H分の日給を記入すること。
      • 8Hに満たない勤務(例えば6H)の場合は、その日給が 6H分の賃金なのか、8H分の賃金なのかを明確にしておくこと。(深夜や残業の割増計算に影響が出るため)
      • 右側のボタンで時間の切り替えが可能。
    • 時給ベースで設定する場合
      • 基本給に、時給を記入して、右の「1時間」ボタンをクリック。

勤務時間や残業時間の切り上げ

勤務時間等を切り上げる場合の問題点

例えば、08h42の実働が発生したとして、42分の残業をどのようにするかという問題があります。

短くすることは違法となりますので、42分ちょうどの残業手当をつけるか、15分とか30分、或いは 60分単位で切り上げて残業手当をつけるか、それぞれの会社で決まっているはずです。

仮に、「30分単位で切り上げて残業手当を支給する」となっていたとして、どのタイミングで切り上げるかが次の問題となります。
① 労働時間を 08h42 ⇒ 09h00 に切り上げてから、09h00 - 08h00 = 01h00 のように残業時間を計算する方法 [労働時間を切り上げ]
② 労働時間はそのままに残業時間を算出して、その残業時間を切り上げる方法 08h42 - 08h00 = 00h42 ⇒ 01h00 [残業時間を切り上げ]

どちらも同じではないか?と思うかも知れませんが、次のような場合に違いが出てきます。

  • ①の労働時間を切り上げる方法では、例えば、07h10 の労働(残業が発生していない)に対して、07h30 の賃金を支給することになります。
    一方、②の残業時間を切り上げる方法にすると、残業が発生していないため切り上げは行われず、07h10 の賃金が算出されます。
    時給で賃金を支給する場合は①と②で支給額が異なります。
  • 変形労働制の警備員は、日によって所定労働時間が異なるため、残業が発生する労働時間(残業発生の境界時間)が08h00とは限りません。
    08h42の実働に対して、その日の所定労働時間が08h20だった場合、
      ①での残業時間 = 09h00 - 08h20 = 00h40 ですが、②での残業時間 = 08h42 - 08h20 = 00h22 ⇒ 00h30 となり、両者は異なります。
    さらに、①の残業時間は30分単位になっていないという問題も発生しますので、30分単位の支給にこだわるのであれば再度の切り上げが必要になります。

また、もっと大きな問題として、以下のことが起こり得ます。
08h20 の所定労働時間に対して 08h15 の実働が発生したとします。この場合、08h20 を超えて労働した時間が残業時間となるので、実働 08h15 なら残業は発生していません。
しかし、①のように労働時間の切り上げを行うと、08h15 ⇒ 08h30 となって、計算上、10分の残業が発生したようになってしまいます。
※ 当システムでは、実際に残業が発生していない場合には、計算上の残業時間が発生しないよう対策がとられていますのでご安心ください。
※ 労働時間や残業時間の切り上げはプログラムのメモリ上だけで行っており、DB内の上番や下番の時刻のデータを書き換えることはありません。

このような事情から、給与を算出するに当たって、①や②のような労働時間の切り上げを行うことを、作者は推奨しません

当システムにおける労働時間の切り上げ

当システムでは、Environment Values で、労働時間や残業時間の切り上げを設定します。pay.fraction で労働時間の切り上げを、pay.overtime_fraction で残業時間の切り上げを指定します。

例えば、pay.fraction = 30 のときは、労働時間を30分単位で切り上げます。pay.fraction = 1 (1分単位)にすると、切り上げ前の時間と切り上げ後の時間が同じになり、事実上、切り上げを行わないことになります。

番号労働時間を切り上げる時間単位
( pay.fraction の値 )
残業時間を切り上げる時間単位
( pay.overtime_fraction の値 )
結     果
(1)30分1分労働時間だけを30分単位で切り上げる。
残業の発生しない 07h10 の労働に対しては、07h30 の賃金を算出することとなる。
(2)1分30分残業が発生していれば、残業時間だけを30分単位で切り上げる。
労働時間の切り上げは行わないので、07h10 の労働に対して07h10 の賃金を算出する。
(3)30分30分労働時間を30分単位で切り上げた後に残業時間を算出し、その残業時間を30分単位で切り上げる。
(4)1分1分時間の切り上げを行わずに給与計算を行う(この設定での運用を作者は推奨します)
  • 表中の切り上げる時間単位の 30分は一例です。60分の約数(60分、30分、20分、15分など)ならどれにしても構いません。
(i) 固定労働時間制の警備員に対する切り上げ

固定労働時間制(残業の境界時間が 08h00 に固定されている)の警備員については、(1)~(4)のどれかで運用することになります。

実は、(3)は計算結果が(1)と同じになります。

残業時間 (A) = 労働時間 (B) - 残業発生の境界時間 (C)

ですが、労働時間 (B) に対して30分単位の切り上げを行えば、労働時間が30分の倍数となります。さらに残業発生の境界時間が 08h00(=8*2*30分) のように30分の倍数である場合には、その差である残業時間も30分の倍数となるため、引き続き残業時間の切り上げを行ったとしても、切り上げは発生しません。そのため、(1)と(3)は、事実上同じになります。

(ii) 変形労働時間制の警備員に対する切り上げ

変形労働時間制の警備員については、pay.fraction , pay.overtime_fraction の値に関わらず、切り上げを行いません

変形労働時間制というのは、あらかじめ労働時間を変形させた勤務表を作成しておき、残業の発生を低く抑えるというのが目的の制度です。
しかるに、労働時間の切り上げや残業時間の切り上げを行うのは、本来の趣旨に反します。そのため、変形労働時間制の警備員については、切り上げを行わない仕様にしています。

警備員の日額給与を割り当てる

[グローバルナビ:配置情報] > 給与

配置情報一覧で、給与ボタンをクリックすると、賃金view に遷移します。

編集ボタンで、賃金の割当画面に遷移します。

賃金割当の作業画面は、上部に当該勤務に関する様々な情報が、下部に入力フォームが配置されます。

入力フォームの部分は以下のようになります。

入力が必須なのは、①基本給と、各種手当の金額です。「②残業」と「③深夜」に関しては、「暫定算出」ボタンをクリックすれば自動入力されますが、
これらは月単位の残業算入手当を反映していません。反映させるには、calc()メソッドを実行する必要があります。

Actionボタン等の機能は以下のとおりです。

ボタン等機 能 の 説 明
ノーマル給例えば、12Hの労働を行ったとすると、前半8Hは通常勤務、後半4Hは法定時間外残業として、8Hの基本給+(4Hの基本給+4Hの割増) という計算を行うことが多いようです。
が、当システムは、とある理由から (8Hの基本給+4Hの基本給)+4Hの割増 という計算を行います。で、最初のカッコについて、(8Hの基本給+4Hの基本給) ⇒ 12Hの割増のない賃金 ⇒ 12Hのノーマル給 と呼んでいます。
シフト給シフト給の時間と金額を基に算出した賃金をノーマル給に代入します。
シフト給が時給ベースのときは、時給計算した値を書き込みます。
シフト給が日給ベースのときは、実働時間が短くてもそのままシフト給を書き込みます。実働時間の方が長いときは比例計算(時給計算)した値を書き込みます。
個人給個人給の金額を「①ノーマル給」にコピーしますが、時給制の警備員の場合は、時給計算した金額を代入します。
日給制の警備員は、実働時間が短い場合は、個人給をそのまま代入します。実働時間が長い場合は、比例計算した結果を書き込みます。
(1)時給計算労働時間が8Hに満たない場合に、「①ノーマル給」に入力されている金額を時給換算して修正します。
シフト給や個人給の日給ベースの金額を、実働の分だけ時給で計算し直すことになります。
(2)時間指定ノーマル給の対象時間を指定時間に変更し、同時に現在入力されている金額を指定時間分の時間給に修正します。
「(1)時給計算」ボタンは、実働時間の時間給を算出しますが、このボタンは指定された時間の賃金を算出します。
クリックすると、時間指定のダイアログボックスが出ますので、時間を設定してOKをクリックしてください。
月給から逆算
基本給は月給に含まれる
勤務員が月給制の場合にのみ使用できます。月給制でない勤務員についてはグレーアウトします。
月給制の警備員の場合、この勤務の報酬が月給に含まれているなら、「基本給は月給に含まれる」ボタンをクリックしてください。
この勤務の報酬が月給に含まれていない場合は、当該勤務の賃金を支給しないといけません。シフト給を支給するならシフト給ボタンをクリック。
月給から逆算した時間単価を利用して時給で支給するなら、このボタンをクリックします。
ただし、時間単価 = (月給) ÷ (所定労働時間の1ヶ月の合計) を計算するため、当月の所定労働時間が明確になっている(週テーブルか月テーブルをきちんと作成しておく)必要があります。
シフト固定変形労働時間制で、且つ日給制のスタッフ用のボタンです。彼らに対しては、その日の所定労働時間が10Hであっても6Hであっても、日給(基本給)の金額は一定にしなければならないため、実際の勤務時間に関わらず、 シフト給をそのまま基本給に代入します。比例計算は全く行いません。
個人固定上記「シフト固定」と同じで比例計算をせず、個人給(日給制に限る)をそのまま基本給に代入します。
の手当
(参入手当)
金額を手入力します。残業算入の欄が「◯」になっているこれらの手当は、賃金単価に加算されて残業や深夜の割増が算出されます。どの手当を残業や深夜業に算入するかは、マスターテーブルの「手当の種類」で設定します。(グローバルナビの各種マスターをクリック)
法律上は、各個人の能力に応じて支給される金額が変わる手当は、残業や深夜業に参入しなければなりません。
暫定入力残業や深夜が発生した場合に、このボタンをクリックすると、残業や深夜業の支給額を暫定的に計算し表示します。これらの金額はSubmitによって一旦DBに保管されますが、calc() メソッドの実行によって再計算され、書き換えられます。calc() メソッドとは、給与明細を発行する前に実行し、残業(日・週・月・年)や深夜業、休日勤務の割増を正確に計算するものです。60H超え残業の割増にも対応しています。
週残業や休日勤務を計算しない場合は、calc()メソッドを実行しない選択もありえます。このときは、この暫定入力ボタンで日残業と深夜だけ計算しておいてください。
深夜割増を計算しない深夜業が発生した場合にその割増を計算せず、代わりに夜勤手当などで代用する場合は、④にチェックを入れ、夜勤手当のところに金額を入力してください。
の手当
(参入外手当)
残業や深夜業に算入しない手当を手入力します。個人の能力に関係なく条件によって一律に金額が決まる手当は残業や深夜業に算入する必要はありません。
例えば、現場までの電車賃を通勤手当として支給する場合、電車賃は区間が同じであれば、誰が乗っても同一料金です。個人の能力や役職に関係しません。このような性質を持つ手当が算入外となります。

結局、どのボタンを利用したら良いのか

当該警備員が、変形労働時時間制なのか、固定労働時間制なのか、月給制なのか日給制なのか、或いは時給制なのかによって使用するボタンが異なるため、混乱するかも知れません。

結論を言うと、変形労働時間制で且つ日給制の警備員については、所定労働時間の長短に関わらず一定額を支給しなければならないため、「シフト固定」や「個人固定」ボタンを利用します。
固定労働時間制で且つ日給制の警備員については、「シフト給」か「個人給」ボタンを使います。
時給制の警備員については、固定労働時間制であっても変形労働時間制であっても、「シフト給」または「個人給」ボタンをクリックした後、「時給計算」ボタンをクリックします。

月給制の警備員の給与割当

月給制の警備員については、当該勤務の報酬が月給に含まれているのか、月給とは別に支給するのかを意識しないといけません。

当該勤務が花火大会であったとして、月給とは別に給与を支給するのであれば、その給与は花火大会のシフト給で支払うのか、月給を逆算して時間給を算出し、それを元に給与算出を行うのか、などを取り決める必要があります。

いずれの方法でも、ほとんどボタンクリックだけで給与の入力ができます。

当該勤務の報酬が月給に含まれる残業や深夜割増が発生していないノーマル給、残業、深夜をすべて空欄(または 0)に
残業や深夜割増が発生している基本給は月給に含まれる」ボタンをクリックする
月給とは別に支給するシフト給を支給するシフト給」ボタンをクリック。残業や深夜の暫定入力ボタンは任意。
月給から逆算する月給から逆算」ボタンをクリック。残業や深夜の暫定入力ボタンは任意。

後述しますが、calc()メソッドを実行すると、入力されたノーマル給ノーマル給支給時間を基に、残業や深夜の割増を再計算し上書きします。

月単位の手当を入力する

[グローバルナビ:メニュー] > 1ヶ月ごとに支給する手当

家族手当や住居手当など、月単位で支給する手当の入力状況を一覧表示します。月給制の警備員の月給(基本給:残業や深夜業の手当を含まない)もここで管理します。

左上の追加ボタンをクリックすると、次の画面に遷移して月単位で支給する手当の入力画面に遷移します。

  • 月単位の手当は毎月同じ種類の手当が同じ金額で発生することが多いため、一覧表示で、各レコードにチェックを入れて追加ボタンをクリックすると、日付を変えて同じものを登録することができるようになっています。
  • 月給制の警備員については、calc() メソッド実行時に月給金額の入力状況を調べ、ここに登録されていない場合に限り、警備員情報から月給の金額を読み取って自動登録します。

控除する金額と項目を入力する

[グローバルナビ:メニュー] > 控除額一覧

以下は、給与から差し引く金額(控除額)の一覧です。

左上の追加ボタンで控除データを追加します。

給与明細の発行においては、厚生年金・健康保険・介護保険・住民税がここに保管されていなければ、「社会保険の控除額を設定する」のところで登録された金額を使います。保管されていれば、その金額が使われます。

オフセット時間の登録と配置情報の重複チェック

[グローバルナビ:メニュー] > 給与 > オフセット時間の登録及び配置データの重複の有無をチェック

同一日に同じ警備員が配置されているデータを検索し、表示します。一日に2現場以上勤務した警備員については、検索条件に合致するため、必ず表示されます。
このとき、最初の現場と後半の現場の勤務時間に重複した時間があれば、その部分を赤で表示して注意を促します。
また、オフセット時間も同時に表示して、そのチェックと設定を行うことができます。

データの重複による給与の二重払いの回避、配置表の矛盾の解消、オフセット時間のチェックと設定を行うのが目的です。calc()メソッドの前に実行して、間違った配置データがないことを確認してください。

  • は、7/12に、9:00から17:00まで勤務したことになっているが、は13:00から別の現場に勤務したことになっている。
  • 勤務時間が重複しているため、の勤務時間が赤で表示されている。どちらかが間違っているので、訂正しなければならない。
  • 右側の「編集」ボタンで、修正画面に遷移する。
  • 右側の「07h00」ボタンをクリックすると、のデータのオフセット時間が07h00に書き換えられる。※ オフセット時間についてはこちらへ

calc() メソッド

実際の勤務時間に対して、所定労働時間のテーブルに基づき、残業(日・週・変形期間)や深夜、休日勤務の時間計算、及び金額計算を行います。

どこかで労働時間の修正が入って勤務時間が変更されたとすると、週残業・月残業などに影響します。例え変更があったものに残業が発生していなかったとしても、もしかすると増えた労働時間のせいで週残業が変わる可能性があります。そのため、その日以降の勤務時間すべてにチェックを入れて週残業が発生していないか、月残業が発生していないか、などを再計算しなければなりません。また、60H超えの残業があった場合、60Hを超えるポイントがずれますので、それも再計算の必要を生じさせます。

そこで、給与明細を発行する直前にcalc()メソッドを実行して、その時点での正確な残業時間や割増を計算する仕様にしました。

※ 週残業や変形期間の残業を計算せず、休日勤務も考慮しないのであれば、calc()メソッドを実行する意味はありません。

参照するキー

calc() メソッドにおいては、次に列挙する「会社に依存する値(Environment Value)」を参照します。これらの値を会社に合わせて編集してください。

キーデフォルト値説   明
pay.first_day_of_month1給与の毎月の起算日の日にち
pay.first_month_of_year3給与の一年の起算日の月。1年単位の変形労働制のときに必要。
pay.force_calc_week_overtime01にすると週残業の計算を強制的に行う
pay.round_unit11にすると、計算途中で小数が発生するたびに四捨五入を行って計算する。具体的には、残業・深夜の①単価算出時、②割増率をかけた時、に四捨五入する。
0にすると、計算途中で四捨五入は行わず、残業手当や深夜業手当の最終計算結果に対してのみ四捨五入を行う。
pay.work_minutesInlaw480法定労働時間を分で。
premiumRate.nighttime0.25深夜労働の割増率
premiumRate.overtime0.25法定時間外残業の割増率。間違えて 1.25 にしないこと
premiumRate.overtime.600.5残業時間の累計が60Hを超過した場合の残業の割増率
premiumRate.restdayInlaw0.35法定休日における労働の割増率
pay.first_weekday0給与計算における週の起算日(日~土を0~6の数値で)。週残業を計算するときに使用
参照するキー

calc()メソッドを実行する

[グローバルナビ:メニュー] > calc() メソッドを実行

  • 上図では、7月に給与が発生する警備員をゲットし、その中から計算の対象にする警備員を選択します(複数選択)。
  • Submitすると、calc()メソッドが走り、残業等の計算を行います。

給与明細を出力する

[グローバルナビ:メニュー] > 給与明細を発行

警備員をゲットして、選択(複数選択)。Submitすると、給与明細が発行され、ダウンロードされます。

給与明細は、エクセルブックで提供されます。