#include #include "hoken.h" /*----- プライベイトメンバー -----*/ /*---------- 賞与の社会保険料を求める ---------- *介護費用保険の判定 *nFlg==0:対象,1:対象外 ---------------------------------------------*/ void CHokenryo::BonusSyakai(int nFlg) { const double kenkoritu = 0.041; const double nenkinritu = 0.0679; const double kaigoritu = 0.00555; const double rdup = 0.9; const double rd46 = 0.4; const long rd1000 = 1000; const long rd10 = 10; long hyojun = 0; if (mKyuyo > 0) { hyojun = (long)(mKyuyo / rd1000) * rd1000; mSyaho = (long)((hyojun * kenkoritu * rd10 + rdup) / rd10 + rd46); mNenkin = (long)((hyojun * nenkinritu * rd10 + rdup) / rd10 + rd46); if (nFlg == 0) mKaigo = (long)((hyojun * kaigoritu + rd10 + rdup) / rd10 + rd46); } } /*---------- 賞与の雇用保険を求める ---------- *A欄B欄区分の判定 *nKubun==0:A欄,1:B欄 * *給与賞与の判定 *nFlg==0:給与,1:賞与 -------------------------------------------*/ void CHokenryo::Koyo(int nKubun, int nFlg) { const double rituA = 0.007; const double rituB = 0.008; if (nFlg == 1) { if (nKubun == 0) mKoyo = (long)(mKyuyo * rituA); if (nKubun == 1) mKoyo = (long)(mKyuyo * rituB); } else { if (mKyuyo < 92000) { if (nKubun == 0) mKoyo = (long)(mKyuyo * rituA); if (nKubun == 1) mKoyo = (long)(mKyuyo * rituB); } else if (mKyuyo >= 92000 && mKyuyo < 96000) { if (nKubun == 0) mKoyo = 658; if (nKubun == 1) mKoyo = 752; } else if (mKyuyo >= 96000 && mKyuyo < 100000) { if (nKubun == 0) mKoyo = 686; if (nKubun == 1) mKoyo = 784; } else if (mKyuyo >= 100000 && mKyuyo < 104000) { if (nKubun == 0) mKoyo = 714; if (nKubun == 1) mKoyo = 816; } else if (mKyuyo >= 104000 && mKyuyo < 108000) { if (nKubun == 0) mKoyo = 742; if (nKubun == 1) mKoyo = 848; } else if (mKyuyo >= 108000 && mKyuyo < 112000) { if (nKubun == 0) mKoyo = 770; if (nKubun == 1) mKoyo = 880; } else if (mKyuyo >= 112000 && mKyuyo < 116000) { if (nKubun == 0) mKoyo = 798; if (nKubun == 1) mKoyo = 912; } else if (mKyuyo >= 116000 && mKyuyo < 120000) { if (nKubun == 0) mKoyo = 826; if (nKubun == 1) mKoyo = 944; } else if (mKyuyo >= 120000 && mKyuyo < 124000) { if (nKubun == 0) mKoyo = 854; if (nKubun == 1) mKoyo = 976; } else if (mKyuyo >= 124000 && mKyuyo < 128000) { if (nKubun == 0) mKoyo = 882; if (nKubun == 1) mKoyo = 1008; } else if (mKyuyo >= 128000 && mKyuyo < 132000) { if (nKubun == 0) mKoyo = 910; if (nKubun == 1) mKoyo = 1040; } else if (mKyuyo >= 132000 && mKyuyo < 136000) { if (nKubun == 0) mKoyo = 938; if (nKubun == 1) mKoyo = 1072; } else if (mKyuyo >= 136000 && mKyuyo < 140000) { if (nKubun == 0) mKoyo = 966; if (nKubun == 1) mKoyo = 1104; } else if (mKyuyo >= 140000 && mKyuyo < 145000) { if (nKubun == 0) mKoyo = 998; if (nKubun == 1) mKoyo = 1140; } else if (mKyuyo >= 145000 && mKyuyo < 150000) { if (nKubun == 0) mKoyo = 1033; if (nKubun == 1) mKoyo = 1180; } else if (mKyuyo >= 150000 && mKyuyo < 155000) { if (nKubun == 0) mKoyo = 1068; if (nKubun == 1) mKoyo = 1220; } else if (mKyuyo >= 155000 && mKyuyo < 160000) { if (nKubun == 0) mKoyo = 1103; if (nKubun == 1) mKoyo = 1260; } else if (mKyuyo >= 160000 && mKyuyo < 165000) { if (nKubun == 0) mKoyo = 1138; if (nKubun == 1) mKoyo = 1300; } else if (mKyuyo >= 165000 && mKyuyo < 170000) { if (nKubun == 0) mKoyo = 1173; if (nKubun == 1) mKoyo = 1340; } else if (mKyuyo >= 170000 && mKyuyo < 175000) { if (nKubun == 0) mKoyo = 1208; if (nKubun == 1) mKoyo = 1380; } else if (mKyuyo >= 175000 && mKyuyo < 180000) { if (nKubun == 0) mKoyo = 1243; if (nKubun == 1) mKoyo = 1420; } else if (mKyuyo >= 180000 && mKyuyo < 186000) { if (nKubun == 0) mKoyo = 1281; if (nKubun == 1) mKoyo = 1464; } else if (mKyuyo >= 186000 && mKyuyo < 192000) { if (nKubun == 0) mKoyo = 1323; if (nKubun == 1) mKoyo = 1512; } else if (mKyuyo >= 192000 && mKyuyo < 198000) { if (nKubun == 0) mKoyo = 1365; if (nKubun == 1) mKoyo = 1560; } else if (mKyuyo >= 198000 && mKyuyo < 204000) { if (nKubun == 0) mKoyo = 1407; if (nKubun == 1) mKoyo = 1608; } else if (mKyuyo >= 204000 && mKyuyo < 210000) { if (nKubun == 0) mKoyo = 1449; if (nKubun == 1) mKoyo = 1656; } else if (mKyuyo >= 210000 && mKyuyo < 216000) { if (nKubun == 0) mKoyo = 1491; if (nKubun == 1) mKoyo = 1704; } else if (mKyuyo >= 216000 && mKyuyo < 223000) { if (nKubun == 0) mKoyo = 1537; if (nKubun == 1) mKoyo = 1756; } else if (mKyuyo >= 223000 && mKyuyo < 230000) { if (nKubun == 0) mKoyo = 1586; if (nKubun == 1) mKoyo = 1812; } else if (mKyuyo >= 230000 && mKyuyo < 238000) { if (nKubun == 0) mKoyo = 1638; if (nKubun == 1) mKoyo = 1872; } else if (mKyuyo >= 238000 && mKyuyo < 246000) { if (nKubun == 0) mKoyo = 1694; if (nKubun == 1) mKoyo = 1936; } else if (mKyuyo >= 246000 && mKyuyo < 255000) { if (nKubun == 0) mKoyo = 1754; if (nKubun == 1) mKoyo = 2004; } else if (mKyuyo >= 255000 && mKyuyo < 264000) { if (nKubun == 0) mKoyo = 1817; if (nKubun == 1) mKoyo = 2076; } else if (mKyuyo >= 264000 && mKyuyo < 274000) { if (nKubun == 0) mKoyo = 1883; if (nKubun == 1) mKoyo = 2152; } else if (mKyuyo >= 274000 && mKyuyo < 284000) { if (nKubun == 0) mKoyo = 1953; if (nKubun == 1) mKoyo = 2232; } else if (mKyuyo >= 284000 && mKyuyo < 295000) { if (nKubun == 0) mKoyo = 2027; if (nKubun == 1) mKoyo = 2316; } else if (mKyuyo >= 295000 && mKyuyo < 306000) { if (nKubun == 0) mKoyo = 2104; if (nKubun == 1) mKoyo = 2404; } else if (mKyuyo >= 306000 && mKyuyo < 318000) { if (nKubun == 0) mKoyo = 2184; if (nKubun == 1) mKoyo = 2496; } else if (mKyuyo >= 318000 && mKyuyo < 330000) { if (nKubun == 0) mKoyo = 2268; if (nKubun == 1) mKoyo = 2592; } else if (mKyuyo >= 330000 && mKyuyo < 343000) { if (nKubun == 0) mKoyo = 2356; if (nKubun == 1) mKoyo = 2692; } else if (mKyuyo >= 343000 && mKyuyo < 356000) { if (nKubun == 0) mKoyo = 2447; if (nKubun == 1) mKoyo = 2796; } else if (mKyuyo >= 356000 && mKyuyo < 370000) { if (nKubun == 0) mKoyo = 2541; if (nKubun == 1) mKoyo = 2904; } else if (mKyuyo >= 370000 && mKyuyo < 384000) { if (nKubun == 0) mKoyo = 2639; if (nKubun == 1) mKoyo = 3016; } else if (mKyuyo >= 384000 && mKyuyo < 399000) { if (nKubun == 0) mKoyo = 2741; if (nKubun == 1) mKoyo = 3132; } else if (mKyuyo >= 399000 && mKyuyo < 414000) { if (nKubun == 0) mKoyo = 2846; if (nKubun == 1) mKoyo = 3252; } else if (mKyuyo >= 414000 && mKyuyo < 430000) { if (nKubun == 0) mKoyo = 2954; if (nKubun == 1) mKoyo = 3376; } else if (mKyuyo >= 430000 && mKyuyo < 447000) { if (nKubun == 0) mKoyo = 3070; if (nKubun == 1) mKoyo = 3508; } else if (mKyuyo >= 447000 && mKyuyo < 465000) { if (nKubun == 0) mKoyo = 3192; if (nKubun == 1) mKoyo = 3648; } else if (mKyuyo >= 465000 && mKyuyo < 484000) { if (nKubun == 0) mKoyo = 3322; if (nKubun == 1) mKoyo = 3796; } else if (mKyuyo >= 484000) { if (nKubun == 0) mKoyo = (long)(mKyuyo * rituA); if (nKubun == 1) mKoyo = (long)(mKyuyo * rituB); } } } /*----- パブリックメンバー -----*/ //コンストラクタ CHokenryo::CHokenryo() { mKyuyo = 0; mSyaho = 0; mKaigo = 0; mNenkin = 0; mKoyo = 0; } //デストラクタ CHokenryo::~CHokenryo() { } /*社会保険料を計算する *lKyuyo == 給与額 *介護費用判定 *nFlg == 0:対象外,1:対象 *lSyaho == 健康保険の返り値 *lKaigo == 介護費用保険の返り値 *lNenkin == 厚生年金の帰り値 */ void CHokenryo::GetDataA(long lKyuyo, int nFlg, long* lSyaho, long* lKaigo, long* lNenkin) { mKyuyo = lKyuyo; //メンバー関数 BonusSyakai(nFlg); *lSyaho = mSyaho; *lKaigo = mKaigo; *lNenkin = mNenkin; } /*雇用保険料を計算する *lKyuyo == 給与額 *A欄B欄区分 *nKubun == 0:A欄,1:B欄 *給与賞与判定 *nFlg == 0:給与,1:賞与 *lKoyo == 雇用保険料の返り値 */ void CHokenryo::GetDataB(long lKyuyo, int nKubun, int nFlg, long* lKoyo) { mKyuyo = lKyuyo; //メンバー関数 Koyo(nKubun, nFlg); *lKoyo = mKoyo; }