修正
This commit is contained in:
15
backend/sql/add_employee_photos.sql
Normal file
15
backend/sql/add_employee_photos.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
-- 従業員の写真・身分証明書画像フィールドを追加
|
||||
-- Add employee photo and ID document image fields
|
||||
|
||||
ALTER TABLE employees
|
||||
ADD COLUMN IF NOT EXISTS photo_url VARCHAR(500),
|
||||
ADD COLUMN IF NOT EXISTS my_number_card_image_url VARCHAR(500),
|
||||
ADD COLUMN IF NOT EXISTS residence_card_image_url VARCHAR(500),
|
||||
ADD COLUMN IF NOT EXISTS health_insurance_card_image_url VARCHAR(500),
|
||||
ADD COLUMN IF NOT EXISTS other_id_image_url VARCHAR(500);
|
||||
|
||||
COMMENT ON COLUMN employees.photo_url IS '本人写真のURL';
|
||||
COMMENT ON COLUMN employees.my_number_card_image_url IS 'マイナンバーカード画像のURL';
|
||||
COMMENT ON COLUMN employees.residence_card_image_url IS '在留カード画像のURL';
|
||||
COMMENT ON COLUMN employees.health_insurance_card_image_url IS '健康保険証画像のURL';
|
||||
COMMENT ON COLUMN employees.other_id_image_url IS 'その他の身分証明書画像のURL';
|
||||
12
backend/sql/add_my_number_field.sql
Normal file
12
backend/sql/add_my_number_field.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
-- マイナンバーカード番号フィールドを追加
|
||||
-- Add my_number field to employees table
|
||||
|
||||
ALTER TABLE employees
|
||||
ADD COLUMN IF NOT EXISTS my_number VARCHAR(12);
|
||||
|
||||
COMMENT ON COLUMN employees.my_number IS 'マイナンバー(個人番号)12桁';
|
||||
|
||||
-- マイナンバーは機密情報なので、ユニーク制約を追加
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_employees_my_number
|
||||
ON employees(my_number)
|
||||
WHERE my_number IS NOT NULL;
|
||||
32
backend/sql/create_standard_remuneration.sql
Normal file
32
backend/sql/create_standard_remuneration.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- 標準報酬月額表テーブル
|
||||
CREATE TABLE IF NOT EXISTS standard_remuneration (
|
||||
id SERIAL PRIMARY KEY,
|
||||
rate_year INTEGER NOT NULL,
|
||||
prefecture VARCHAR(50) NOT NULL,
|
||||
grade VARCHAR(20) NOT NULL,
|
||||
monthly_amount DECIMAL(12, 2) NOT NULL,
|
||||
salary_from DECIMAL(12, 2) NOT NULL,
|
||||
salary_to DECIMAL(12, 2),
|
||||
health_insurance_no_care DECIMAL(12, 2) NOT NULL,
|
||||
health_insurance_with_care DECIMAL(12, 2) NOT NULL,
|
||||
pension_insurance DECIMAL(12, 2) NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE(rate_year, prefecture, grade)
|
||||
);
|
||||
|
||||
-- インデックス作成
|
||||
CREATE INDEX IF NOT EXISTS idx_standard_remuneration_year_pref
|
||||
ON standard_remuneration(rate_year, prefecture);
|
||||
CREATE INDEX IF NOT EXISTS idx_standard_remuneration_salary
|
||||
ON standard_remuneration(rate_year, prefecture, salary_from, salary_to);
|
||||
|
||||
COMMENT ON TABLE standard_remuneration IS '健康保険・厚生年金保険の標準報酬月額表';
|
||||
COMMENT ON COLUMN standard_remuneration.rate_year IS '適用年度';
|
||||
COMMENT ON COLUMN standard_remuneration.prefecture IS '都道府県名';
|
||||
COMMENT ON COLUMN standard_remuneration.grade IS '等級';
|
||||
COMMENT ON COLUMN standard_remuneration.monthly_amount IS '標準報酬月額';
|
||||
COMMENT ON COLUMN standard_remuneration.salary_from IS '報酬月額(下限)';
|
||||
COMMENT ON COLUMN standard_remuneration.salary_to IS '報酬月額(上限、最高等級の場合はNULL)';
|
||||
COMMENT ON COLUMN standard_remuneration.health_insurance_no_care IS '健康保険料(介護保険なし)';
|
||||
COMMENT ON COLUMN standard_remuneration.health_insurance_with_care IS '健康保険料(介護保険あり)';
|
||||
COMMENT ON COLUMN standard_remuneration.pension_insurance IS '厚生年金保険料';
|
||||
15
backend/sql/fix_photo_column_size.sql
Normal file
15
backend/sql/fix_photo_column_size.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
-- 写真フィールドのデータ型をVARCHAR(500)からTEXTに変更
|
||||
-- Base64エンコードされた画像データは数万文字になるため
|
||||
|
||||
ALTER TABLE employees
|
||||
ALTER COLUMN photo_url TYPE TEXT,
|
||||
ALTER COLUMN my_number_card_image_url TYPE TEXT,
|
||||
ALTER COLUMN residence_card_image_url TYPE TEXT,
|
||||
ALTER COLUMN health_insurance_card_image_url TYPE TEXT,
|
||||
ALTER COLUMN other_id_image_url TYPE TEXT;
|
||||
|
||||
-- 確認
|
||||
SELECT column_name, data_type, character_maximum_length
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'employees'
|
||||
AND column_name LIKE '%_url';
|
||||
34
backend/sql/insert_2025_insurance_rates.sql
Normal file
34
backend/sql/insert_2025_insurance_rates.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
-- 2025年度の保険料率を追加
|
||||
|
||||
-- 健康保険(2025年度 東京都)
|
||||
INSERT INTO insurance_rates (rate_year, rate_type, calculation_target, prefecture, employee_rate, employer_rate, care_insurance_age_threshold, notes) VALUES
|
||||
(2025, '健康保険', '給与', '東京都', 0.04985, 0.04985, NULL, '健康保険料率 9.97% (労使折半) - 給与'),
|
||||
(2025, '健康保険', '賞与', '東京都', 0.04985, 0.04985, NULL, '健康保険料率 9.97% (労使折半) - 賞与')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- 介護保険(2025年度)
|
||||
INSERT INTO insurance_rates (rate_year, rate_type, calculation_target, prefecture, employee_rate, employer_rate, care_insurance_age_threshold, notes) VALUES
|
||||
(2025, '介護保険', '給与', '東京都', 0.0091, 0.0091, 40, '介護保険料率 1.82% (労使折半、40歳以上対象) - 給与'),
|
||||
(2025, '介護保険', '賞与', '東京都', 0.0091, 0.0091, 40, '介護保険料率 1.82% (労使折半、40歳以上対象) - 賞与')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- 厚生年金(2025年度)
|
||||
INSERT INTO insurance_rates (rate_year, rate_type, calculation_target, prefecture, employee_rate, employer_rate, care_insurance_age_threshold, notes) VALUES
|
||||
(2025, '厚生年金', '給与', '東京都', 0.09150, 0.09150, NULL, '厚生年金保険料率 18.3% (労使折半) - 給与'),
|
||||
(2025, '厚生年金', '賞与', '東京都', 0.09150, 0.09150, NULL, '厚生年金保険料率 18.3% (労使折半) - 賞与')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- 雇用保険(2025年度)
|
||||
INSERT INTO insurance_rates (rate_year, rate_type, calculation_target, prefecture, employee_rate, employer_rate, care_insurance_age_threshold, notes) VALUES
|
||||
(2025, '雇用保険', '給与', '東京都', 0.006, 0.009, NULL, '雇用保険料率 従業員0.6% 会社0.9% - 給与'),
|
||||
(2025, '雇用保険', '賞与', '東京都', 0.006, 0.009, NULL, '雇用保険料率 従業員0.6% 会社0.9% - 賞与')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- 確認
|
||||
SELECT rate_year, rate_type, calculation_target,
|
||||
ROUND(employee_rate * 100, 3) as employee_pct,
|
||||
ROUND(employer_rate * 100, 3) as employer_pct,
|
||||
care_insurance_age_threshold
|
||||
FROM insurance_rates
|
||||
WHERE rate_year = 2025
|
||||
ORDER BY rate_type, calculation_target;
|
||||
Reference in New Issue
Block a user