<?php

require_once 'ADOdb/adodb.inc.php';
require_once 'ConnectDB.class.php';

define('DB_TYPE', 'mysql');
define('DB_USER', 'root');
define('DB_PASSWORD', 'mSNIB3zuts');
define('DB_NAME', 'ttt_jmedb');
define('DB_DSN', DB_TYPE.'://'.DB_USER.':'.DB_PASSWORD.'@localhost/'.DB_NAME);

$db = &new ConnectDB(DB_DSN);

echo "<pre>\n";
if($db->connect()) {
  $sql = "SELECT KSA.*, I.`企業名`, K.`カナ`, I.`郵便番号`, I.`住所`, I.`電話番号`, ";
  $sql.= "N.`工事名`, I.`資本金`, I.`完工高比`, I.`完工高平均`, I.`総合評点P`, I.`評点Y`, ";
  $sql.= "`資金繰り評価`, `売上高`, `売上総利益`, `受取利息配当金`, `支払利息`, `経常利益`, ";
  $sql.= "`営業キャッシュフロー当期`, `営業キャッシュフロー前期`, `固定資産当期`, `流動負債`, `固定負債`, ";
  $sql.= "`利益剰余金`, `自己資本`, `総資本当期`, `総資本前期`, `純支払利息比率` , `負債回転期間X2` , ";
  $sql.= "`総資本売上総利益率X3` , `売上高経常利益率X4` , `自己資本対固定資産比率` , `自己資本比率X6` , ";
  $sql.= "`営業キャッシュフローX7` , `利益剰余金X8`,`審査基準日`,`更新日`,`新旧区分`,`審査基準年度`, ";
  $sql.= "`支払利息`,`有利子負債`,`完工高対象`,`完工高以前`,`営業利益`,`キャッシュ・フロー`,`当期純利益`, ";
  $sql.= "`受取利息配当金`,`総資本当期`,`支払勘定`,`自己資本`,`受取勘定`,`未成工事支出金`,`未成工事受入金` ";
  $sql.= "FROM `99ksa_120127` AS KSA ";
  $sql.= "LEFT JOIN `00index` AS I ON KSA.`ID` = I.`ID`";
  $sql.= "LEFT JOIN `00kana` AS K ON I.`ID` = K.`ID` ";
  $sql.= "LEFT JOIN `92koji` AS N ON I.`工事の種類` = N.`工事の種類` ";
  $sql.= "LEFT JOIN `00last_alm` AS A ON I.`ID` = A.`ID` ";
  $sql.= "LEFT JOIN `93update` AS U ON U.`ver` = RIGHT(I.`HDER`,2) ;";
  //$sql.= "WHERE I.`市区町村コード` LIKE '18%' ;";
  //$sql.= "AND I.`審査基準日` >= date_sub(date_sub(current_date, interval 1 year), interval 7 month) ;";
  
  if($db->load($sql)) {
    $record = $db->getRecord();
    
    /* ヘッダー出力 */
    echo "No.\tJME値\t総合評価\t許可番号\t企業名\tカナ\t郵便番号\t住所\t電話番号\t工事の種類\t平均完成工事高\t完成工事高比率\t資本金\t";
    echo "総合評定値P\t評点Y\t資金繰り評価\t売上高\t売上総利益\t営業利益\t受取利息配当金\t支払利息\t経常利益\t";
    echo "営業キャッシュフロー当期\t営業キャッシュフロー前期\t固定資産\t流動負債\t固定負債\t";
    echo "利益剰余金\t自己資本\t総資本当期\t総資本前期\t有利子負債\t純支払利息比率X1\t負債回転期間X2\t総資本売上総利益率X3\t";
    echo "売上高経常利益率X4\t自己資本対固定資産比率X5\t自己資本比率X6\t営業キャッシュフローX7\t利益剰余金X8\t";
    echo "審査基準日\t更新日\t審査基準年度\n";    
    
    /*
    require_once 'JMEScore.class.php';
    require_once 'funcComments.php';
    */
    
    $num = 1;
    foreach($record as $rec) {
        /*
        // JME値オブジェクト生成
        $jmev = new JMEScore();
        
        // 演算用科目
        $v['売上高'] = $rec['売上高'] != null ? $rec['売上高'] : 0;
        $v['営業利益'] = $rec['営業利益'] != null ? $rec['営業利益'] : 0;
        $v['受取利息配当金'] = $rec['受取利息配当金'] != null ? $rec['受取利息配当金'] : 0;
        $v['支払利息'] = $rec['支払利息'] != null ? $rec['支払利息'] : 0;
        $v['当期純利益'] = $rec['当期純利益'] != null ? $rec['当期純利益'] : 0;
        
        $v['受取勘定'] = $rec['受取勘定'] != null ? $rec['受取勘定'] : 0;
        $v['未成工事支出金'] = $rec['未成工事支出金'] != null ? $rec['未成工事支出金'] : 0;
        $v['支払勘定'] = $rec['支払勘定'] != null ? $rec['支払勘定'] : 0;
        $v['未成工事受入金'] = $rec['未成工事受入金'] != null ? $rec['未成工事受入金'] : 0;
        $v['自己資本'] = $rec['自己資本'] != null ? $rec['自己資本'] : 0;
        $v['総資本当期'] = $rec['総資本当期'] != null ? $rec['総資本当期'] : 0;
        $v['有利子負債'] = $rec['有利子負債'] != null ? $rec['有利子負債'] : 0;
        $v['キャッシュ・フロー'] = $rec['キャッシュ・フロー'] != null ? $rec['キャッシュ・フロー'] : 0;
        
        $v['完工高対象'] = $rec['完工高対象'] != null ? $rec['完工高対象'] : 0;
        $v['完工高以前'] = $rec['完工高以前'] != null ? $rec['完工高以前'] : 0;
        
        // スコア計算
        $rs01 = $jmev->set_score01($v['支払利息'], $v['有利子負債']);
        $rs02 = $jmev->set_score02($v['完工高対象'], $v['完工高以前']);
        $rs03 = $jmev->set_score03($v['営業利益'], $v['キャッシュ・フロー'], $v['当期純利益'], $v['有利子負債']);
        $rs04 = $jmev->set_score04($v['有利子負債'], $v['売上高']);
        $rs05 = $jmev->set_score05($v['支払利息'], $v['受取利息配当金'], $v['売上高']);
        $rs06 = $jmev->set_score06($v['有利子負債'], $v['総資本当期']);
        $rs07 = $jmev->set_score07($v['支払勘定'], $v['完工高対象']);
        $rs08 = $jmev->set_score08($v['受取利息配当金'], $v['支払利息'], $v['完工高対象']);
        $rs09 = $jmev->set_score09($v['自己資本'], $v['総資本当期']);
        $rs10 = $jmev->set_score10($v['支払利息'], $v['受取利息配当金'], $v['完工高対象']);
        $rs11 = $jmev->set_score11($v['総資本当期'], $v['自己資本']);
        $rs12 = $jmev->set_score12($v['有利子負債'], $v['自己資本']);
        $rs13 = $jmev->set_score13($v['受取勘定'], $v['未成工事支出金'], $v['未成工事受入金'], $v['自己資本']);
        $rs   = round($jmev->get_score(),1);
        
        // 総合評価算出
        $tcm = cmTotal(array(
            'JME値'=>$rs,
            'ALARM値'=>$rec['資金繰り評価']
            )
        );
        */
        
        /* JME値・総合評価算出 */
        $chk_rs = check_skgdb($rec['ID'], DB_DSN);
        
        /* NULL出力処理 */
        $rec['資金繰り評価'] = $rec['資金繰り評価'] != null ? $rec['資金繰り評価'] : "NULL";
        $chk_rs['JME値'] = $chk_rs['JME値'] != '' ? $chk_rs['JME値'] : "NULL";
        $chk_rs['総合評価'] = $chk_rs['総合評価'] != '　' ? $chk_rs['総合評価'] : "NULL";
        //$rs = $rs != null ? $rs : "NULL";
        //$tcm['score'] = $tcm['score'] != '　' ? $tcm['score'] : "NULL";
        $rec['売上高'] = $rec['売上高'] != null ? $rec['売上高'] : "NULL";
        $rec['純支払利息比率'] = $rec['純支払利息比率'] != null ? $rec['純支払利息比率'] : "NULL";
        $rec['負債回転期間X2'] = $rec['負債回転期間X2'] != null ? $rec['負債回転期間X2'] : "NULL";
        $rec['総資本売上総利益率X3'] = $rec['総資本売上総利益率X3'] != null ? $rec['総資本売上総利益率X3'] : "NULL";
        $rec['売上高経常利益率X4'] = $rec['売上高経常利益率X4'] != null ? $rec['売上高経常利益率X4'] : "NULL";
        $rec['自己資本対固定資産比率'] = $rec['自己資本対固定資産比率'] != null ? $rec['自己資本対固定資産比率'] : "NULL";
        $rec['自己資本比率X6'] = $rec['自己資本比率X6'] != null ? $rec['自己資本比率X6'] : "NULL";
        $rec['営業キャッシュフローX7'] = $rec['営業キャッシュフローX7'] != null ? $rec['営業キャッシュフローX7'] : "NULL";
        $rec['利益剰余金X8'] = $rec['利益剰余金X8'] != null ? $rec['利益剰余金X8'] : "NULL";
        $rec['審査基準日'] = $rec['審査基準日'] != null ? $rec['審査基準日'] : "NULL";
        $rec['更新日'] = $rec['更新日'] != null ? $rec['更新日'] : "NULL";
        $rec['審査基準年度'] = ($rec['審査基準年度'] == null && $rec['新旧区分'] == 1) ? $rec['審査基準年度'] = "2008" : $rec['審査基準年度'];
        $rec['審査基準年度'] = $rec['審査基準年度'] != null ? $rec['審査基準年度'] : "NULL";
        
        
        echo $rec['cd']."\t";
        echo $chk_rs['JME値']."\t";
        echo $chk_rs['総合評価']."\t";
        echo $rec['ID']."\t";
        echo $rec['企業名']."\t";
        echo $rec['カナ']."\t";
        echo $rec['郵便番号']."\t";
        echo $rec['住所']."\t";
        echo $rec['電話番号']."\t";
        echo $rec['工事名']."\t";
        echo $rec['完工高平均']."\t";
        echo $rec['完工高比']."\t";
        echo $rec['資本金']."\t";
        echo $rec['総合評点P']."\t";
        echo $rec['評点Y']."\t";
        echo $rec['資金繰り評価']."\t";
        echo $rec['売上高']."\t";
        echo $rec['売上総利益']."\t";
        echo $chk_rs['営業利益']."\t";
        echo $rec['受取利息配当金']."\t";
        echo $rec['支払利息']."\t";
        echo $rec['経常利益']."\t";
        echo $rec['営業キャッシュフロー当期']."\t";
        echo $rec['営業キャッシュフロー前期']."\t";
        echo $rec['固定資産当期']."\t";
        echo $rec['流動負債']."\t";
        echo $rec['固定負債']."\t";
        echo $rec['利益剰余金']."\t";
        echo $rec['自己資本']."\t";
        echo $rec['総資本当期']."\t";
        echo $rec['総資本前期']."\t";
        echo $chk_rs['有利子負債']."\t";
        echo $rec['純支払利息比率']."\t";
        echo $rec['負債回転期間X2']."\t";
        echo $rec['総資本売上総利益率X3']."\t";
        echo $rec['売上高経常利益率X4']."\t";
        echo $rec['自己資本対固定資産比率']."\t";
        echo $rec['自己資本比率X6']."\t";
        echo $rec['営業キャッシュフローX7']."\t";
        echo $rec['利益剰余金X8']."\t";
        echo $rec['審査基準日']."\t";
        echo $rec['更新日']."\t";
        echo $rec['審査基準年度']."\n";
        
        $num++;
    }
    
    
  } else {
    $err = $db->getError();
    echo "Error: ${err}\n";
  }
  $db->close();
} else {
  $err = $db->getError();
  echo "Error: ${err}\n";
}
echo "</pre>\n";
exit();

function check_skgdb($id, $dsn)
{
	require_once 'ClassCorporation.php';
	require_once 'funcComments.php';
	
	$corp = new Corporation($id, $dsn);
	if(!$corp->load()) {
		die("DB読込エラー:${id}");
	}
	
	$y = $corp->getYears();
	$ay = $corp->getAlarmYears();
	$cnt = count($y ?? []);
	if($cnt > 5) {
		$cnt--;
	}
	$ly = $y[0];
	$fy = null;
	if($cnt != 1) {
		$fy = $y[$cnt-1];
	}
	$info = $corp->getInfo();
	$rec = $corp->getFinance();
	$rank = $corp->getRanking();
	$stat = $corp->getStatistics();
	$alarm = $corp->getAlarm();
	
	// ランキング
	if($corp->getArea() == "00") {
		$rank_area = '全国';
		$rank_type = $info["許可名"];
		$rank_sales = $rank['完工大臣'];
		$rank_p = $rank['P大臣'];
		$rank_y = $rank['Y大臣'];
	} else {
		$rank_area = $info["県名"];
		$rank_type = $info["許可名"];
		$rank_sales = $rank['完工県'];
		$rank_p = $rank['P県'];
		$rank_y = $rank['Y県'];
	}
	
	// 統計情報
	$now_sales = $corp->getIndexValue($ly, "完成工事高", "pl");
	$now_p = $rec[$ly]["総合評点P"];
	$now_y = $rec[$ly]["評点Y"];
	$stat_all = $stat['総数'];
	$avg_sales = $stat['完工高平均'];
	$avg_p = $stat['P点平均'];
	$avg_y = $stat['Y点平均'];
	$std_sales = $stat['完工高標準偏差'];
	$std_p = $stat['P点標準偏差'];
	$std_y = $stat['Y点標準偏差'];
	$sc_sales = 0;
	$sc_p = 0;
	$sc_y = 0;
	if($std_sales != 0) {
		$sc_sales = ((10 * ($now_sales - $avg_sales)) / $std_sales) + 50;
	}
	if($std_p != 0) {
		$sc_p = ((10 * ($now_p - $avg_p)) / $std_p) + 50;
	}
	if($std_y != 0) {
		$sc_y = ((10 * ($now_y - $avg_y)) / $std_y) + 50;
	}
	
	/* 評価用計算 */
	// 収益傾向
	$sales = 0;
	$profits = 0;
	$sc_s = '';
	$sc_pr = '';
	$cm_sales = '';
	$cm_profits = '';
	if(!is_null($fy)) {
		$cprofit = cmProfit(array(
			'売上高'=>$rec[$ly]["売上高"],
			'売上高前'=>$rec[$fy]["売上高"],
			'営業利益'=>$rec[$ly]["営業利益"],
			'営業利益前'=>$rec[$fy]["営業利益"]
			)
		);
		$sales = $cprofit['売上高']['point'];
		$profits = $cprofit['営業利益']['point'];
		$sc_s = $cprofit['売上高']['score'];
		$sc_pr = $cprofit['営業利益']['score'];
		$cm_sales = $cprofit['売上高']['comment'];
		$cm_profits = $cprofit['営業利益']['comment'];
	}
	$sc = $sc_s.$sc_pr;
	// JME値
	$jpoint = $corp->getIndexValue($y[0], "JME値", "jme");
	$jcm = cmJME($jpoint);
	// ALARM値
	$apoint = null;
	if(!is_null($alarm) && $ly == $ay[0]) {
		$apoint = $alarm[$ay[0]]["資金繰り評価"];
	}
	$acm = cmAlarm($apoint);
	// 経審Y評点
	$ypoint = $rec[$ly]["評点Y"];
	$ycm = cmYpoint(array('評点Y'=>$now_y,'Y点平均'=>$avg_y,'Y点標準偏差'=>$std_y));
	// 財務状況
	$a = $corp->getIndexValue($ly, "資産合計", "bs");
	$e = $corp->getIndexValue($ly, "資本合計", "bs");
	$c = $corp->getIndexValue($ly, "資本金", "bs");
	$p = $corp->getIndexValue($ly, "営業利益", "pl");
	$k = $corp->getIndexValue($ly, "有利子負債", "bs");
	$s = $corp->getIndexValue($ly, "売上高合計", "pl");
	$ca = $corp->getIndexValue($ly, "現金預金、その他流動資産", "bs");
	$aa = $rec[$ly]['受取勘定'];
	$fa = $corp->getIndexValue($ly, "固定資産合計", "bs");
	$cl = $corp->getIndexValue($ly, "流動負債合計", "bs");
	$fl = $corp->getIndexValue($ly, "固定負債合計", "bs");
	$tkr = $rec[$ly]['立替工事高比率'];
	$i = $corp->getIndexValue($ly, "支払利息", "pl");
	
	$fcm = cmFinace(array(
		'総資産'=>$a,
		'自己資本'=>$e,
		'資本金'=>$c,
		'営業利益'=>$p,
		'有利子負債'=>$k,
		'売上高'=>$s,
		'その他流動資産'=>$ca,
		'受取勘定'=>$aa,
		'固定資産'=>$fa,
		'流動負債'=>$cl,
		'固定負債'=>$fl,
		'立替工事高比率'=>$tkr,
		'支払利息'=>$i,
		'収益傾向'=>$sc_s.$sc_pr.$cm_profits
		)
	);
	// 財務状況
	$fscore = $fcm['score'];
	$fcomment = '';
	foreach($fcm['comment'] as $_cm) {
		$fcomment .= $_cm."<br />";
	}
	// 総合評価
	$tcm = cmTotal(array(
		'JME値'=>$jpoint,
		'ALARM値'=>$apoint
		)
	);
	
	$result = array(
		'総合評価'   => $tcm['score'],
		'JME値'      => number_format($jpoint, 1),
		'営業利益'   => floor($p),
		'有利子負債' => floor($k)
	);
	return $result;
}
?>
