/***************************************
*                                      *
*             制御値の設定             *
*                                      *
*                                      *
***************************************/

#include <iostream>
#include <cstdlib>
#include "snaps.h"
#include "kiso.h"
#include "kisosu.h"
#include "cntl.h"
#include "file_open.h"

void cntl()
{
	// 変数宣言
	int nendo;
	int sotai_nendo;
	int seido;
	char filename[250];
	
	using namespace std;
	
	// 推計方法
	// １：通常の給付水準調整または機械的に給付水準調整を進める場合
	// ２：所得代替率50％を維持させる場合
	suikei = 1;
	
	// 妻積み
	Tumatumi[SUM][2014 - SHONENDO] = 1556726072449;
	TUMATUMI_NENDO = 2015;
	TUMATUMI_KIKAN = 10;
	
	// オプションⅠ
	// ０：しない
	// １：する
	Option1 = 0;
	
	// オプションⅡ
	// ０：しない
	// １：する（ 220万人ベース）
	// ２：する（1200万人ベース）
	Option2 = 0;
	
	// オプションⅢ
	// ０：しない
	// １：する
	Option3 = 0;
	
	// 支援額計算用
	K_Shien[0] = 61280. / 8546187.;
	K_Shien[1] = 5404. / 8546187.;
	K_Shien[2] = 91200. / 8546187.;
	
	// 業務勘定への繰入
	FUKUSHI_NENDO = 2014;
	Fukushi[FUKUSHI_NENDO - 2 - SHONENDO] = 80103260000.;
	Fukushi[FUKUSHI_NENDO - 1 - SHONENDO] = 80103260000.;
	Fukushi[FUKUSHI_NENDO     - SHONENDO] = 80103260000.;
	
	switch( suikei )
	{
		case 1 :
			cout << "国年先決め" << endl;
			break;
		case 2 :
			cout << "厚年先決め" << endl;
			break;
		default :
			cout << "指定外の数字を検出しました" << endl;
			exit( 1 );
	}
	
	if( suikei == 1 )
	{
		// 積立度合の目標年度
		T_NENDO = 2110;
		
		// 積立度合の目標積立度合
		T_DOAI = 1;
		
		// 開始年度
		KAISHI1 = 2013;
		C_NENDO = 2004;
		
		// KAISHI1 - 1 年度末積立金
		Tumitate[KAISHI1 - 1 - SHONENDO] = 104172;
		Tumitate[KAISHI1 - 1 - SHONENDO] *= 100000000.;
	}
	
	// 国庫負担割合
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		sotai_nendo = nendo - SHONENDO;
		{
			tuki[sotai_nendo] = 4;
		}
	}
	
	for( nendo = SHONENDO - 1 ; nendo <= SAISHUNENDO ; nendo++ )
	{
		Kokko_Wariai[nendo - ( SHONENDO - 1 )] = 1. / 2.;
		tokubetu_kokko_wariai[nendo - ( SHONENDO - 1 )][TOKUBETU_MENJO] = 1.;
		tokubetu_kokko_wariai[nendo - ( SHONENDO - 1 )][TOKUBETU_KASAAGE] = 1. / 4.;
		tokubetu_kokko_wariai[nendo - ( SHONENDO - 1 )][TOKUBETU_KASAMENJO] = 1.;
		tokubetu_kokko_wariai[nendo - ( SHONENDO - 1 )][TOKUBETU_SHITASASAE] = 1.;
		tokubetu_kokko_wariai[nendo - ( SHONENDO - 1 )][TOKUBETU_GONEN] = 1. / 8.;
		tokubetu_kokko_wariai[nendo - ( SHONENDO - 1 )][TOKUBETU_20MAE] = 2. / 10.;
	}
	
	for( nendo = SHONENDO - 1 ; nendo <= SAISHUNENDO ; nendo++ )
	{
		for( seido = SUM ; seido <= NORIN ; seido++ )
		{
			K_Wariai[seido][nendo - ( SHONENDO - 1 )] = 1. / 2.;
		}
	}
	
	// 給付費補整
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		hosei_shin[nendo - SHONENDO] = 1.;
		
		for( seido = SUM ; seido <= SHIGAKU ; seido++ )
		{
			hosei_kyu[seido][nendo - SHONENDO] = 1.;
		}
	}
	hosei_shin[2011 - SHONENDO] = 1.0039;
	hosei_shin[2012 - SHONENDO] = 1.0039;
	hosei_shin[2013 - SHONENDO] = 1.0031;
	hosei_shin[2014 - SHONENDO] = 1.0023;
	hosei_shin[2015 - SHONENDO] = 1.0016;
	hosei_shin[2016 - SHONENDO] = 1.0008;
	
	hosei_kyu[KOKUNEN][2011 - SHONENDO] = 0.9411;
	hosei_kyu[KOKUNEN][2012 - SHONENDO] = 0.9411;
	hosei_kyu[KOKUNEN][2013 - SHONENDO] = 0.9528;
	hosei_kyu[KOKUNEN][2014 - SHONENDO] = 0.9646;
	hosei_kyu[KOKUNEN][2015 - SHONENDO] = 0.9764;
	hosei_kyu[KOKUNEN][2016 - SHONENDO] = 0.9882;
	
	hosei_kyu[KOUNEN][2011 - SHONENDO] = 1.0365;
	hosei_kyu[KOUNEN][2012 - SHONENDO] = 1.0365;
	hosei_kyu[KOUNEN][2013 - SHONENDO] = 1.0292;
	hosei_kyu[KOUNEN][2014 - SHONENDO] = 1.0219;
	hosei_kyu[KOUNEN][2015 - SHONENDO] = 1.0146;
	hosei_kyu[KOUNEN][2016 - SHONENDO] = 1.0073;
	
	// 設定の書込み
	sprintf( filename , "/rev26/bas/settei/SETTEI_%s-%s" , Version , Version_cut );
	if( ( fp_settei = fopen( filename , "a" ) ) == NULL )
	{
		cout << "設定ファイルのオープンに失敗しました" << endl;
		exit( 1 );
	}
	
	fprintf( fp_settei , "推計方法   %d\n" , suikei );
	
	fprintf( fp_settei , "パート適用拡大  2016.10\n" );
	
	if( Option1 == 1 )
	{
		fprintf( fp_settei , "オプションⅠ　マクロ経済スライドの仕組みの見直し\n" );
	}
	
	if( Option2 == 1 )
	{
		fprintf( fp_settei , "オプションⅡ　更なる適用拡大（220万人ベース）  2024.4\n" );
	}
	else if(  Option2 == 2 )
	{
		fprintf( fp_settei , "オプションⅡ　更なる適用拡大（1200万人ベース）  2024.4\n" );
	}
	
	if( Option1 == 1 )
	{
		fprintf( fp_settei , "オプションⅢ　保険料拠出期間と受給開始年齢の選択制\n" );
	}
	
	if( suikei == 1 )
	{
		fprintf( fp_settei , "\t事務費の最終年度　%d, 額　%f\n", FUKUSHI_NENDO, Fukushi[FUKUSHI_NENDO - SHONENDO] );
		fprintf( fp_settei , "開始年度  %d\n", KAISHI1 );
		fprintf( fp_settei , "開始－１年度末積立金  %f\n", Tumitate[KAISHI1 - 1 - SHONENDO]/100000000. );
		
		fprintf( fp_settei , "給付水準調整開始年度  %d\n", C_NENDO );
		
		fprintf( fp_settei , "目標年度     %d\n" , T_NENDO );
		fprintf( fp_settei , "目標積立度合     %d\n" , T_DOAI );
	}
}
