<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * 請求書 PDF テンプレート
 *
 * @var array $invoice      請求書データ
 * @var array $payment      決済データ
 * @var array $registration 申込データ
 * @var array $event        イベントデータ
 */
?>
<h1>請 求 書</h1>

<table class="header" cellpadding="0" cellspacing="0">
	<tr>
		<td class="header-left">
			<?php
			/*
			 * 宛名は「所属名（上）→ 氏名＋敬称（下）」の順。
			 *
			 * 🔴 v1.6.5 まで逆で、**敬称が所属名のほうに付いていた**（「国立検証大学 医学部 様」）。
			 *    所属名に敬称が付くと団体宛の「御中」と混ざって読めるうえ、日本語として据わりが悪い。
			 *    **敬称は氏名に付く**のが自然なので、並びを入れ替えた。
			 *
			 * ⚠️ **並びだけを入れ替え、どの敬称を出すかは変えていない**（$invoice['honorific']）。
			 *    製品が請求書を作る経路は TransactionalMailer::auto_generate_invoice() の 1 箇所だけで、
			 *    そこは '様' を渡す。`?? '御中'` に当たるのは honorific を渡さない呼び出しだけで、
			 *    2026-08-28 時点では**製品コードに存在しない**（テストと bin/checks のみ）。
			 *
			 * ⚠️ **空判定を外さないこと。** 所属名の無い会員が居るので、外すと `<br>` だけが残って
			 *    氏名の上に空行が出る。
			 *
			 * ⭐ 帳票は PDF を保存せず都度描画する（v1.8.0〜）ので、**過去に発行した分もこの並びで出る**。
			 *    番号は変わらない＝再発行の扱いにはならない。
			 */
			?>
			<div class="addressee">
				<?php if ( ! empty( $invoice['addressee_dept'] ) ) : ?>
					<?php echo esc_html( $invoice['addressee_dept'] ); ?><br>
				<?php endif; ?>
				<?php echo esc_html( $invoice['addressee_name'] ); ?>
				<span class="honorific"><?php echo esc_html( $invoice['honorific'] ?? '御中' ); ?></span>
			</div>
			<p style="font-size: 10pt; color: #666; margin-top: 10px;">請求書番号: <?php echo esc_html( $invoice['invoice_no'] ); ?></p>
		</td>
		<td class="header-right">
			<p>発行日: <?php echo esc_html( wp_date( 'Y年n月j日', strtotime( $invoice['issued_at'] ) ) ); ?></p>
			<?php if ( ! empty( $event['organizer_info'] ) ) : ?>
				<p style="margin-top: 10px; font-size: 10pt; color: #333;"><?php echo nl2br( esc_html( $event['organizer_info'] ) ); ?></p>
			<?php endif; ?>
		</td>
	</tr>
</table>

<table class="detail">
	<tr>
		<th>イベント名</th>
		<td><?php echo esc_html( $event['title'] ?? '' ); ?></td>
	</tr>
	<?php
	// 参加区分。共催の催しで「どの学会の会員として申し込んだか」が帳票からも分かるよう、
	// 学会の略称が設定されていれば前置する（初期設定の「学会の略称」）。
	// 🔴 DB の焼き付け（fee_type_label）は書き換えず、印字の直前にだけ装飾する。
	$conf_fee_label = \ConfManager\Members\MemberTypeLabel::decorate_registration(
		(string) ( $registration['fee_type'] ?? '' ),
		(string) ( $registration['fee_type_label'] ?? '' )
	);
	?>
	<?php if ( '' !== $conf_fee_label ) : ?>
	<tr>
		<th>参加区分</th>
		<td><?php echo esc_html( $conf_fee_label ); ?></td>
	</tr>
	<?php endif; ?>
	<tr>
		<th>開催日</th>
		<td><?php echo esc_html( $event ? wp_date( 'Y年n月j日', strtotime( $event['date_start'] ) ) : '' ); ?></td>
	</tr>
	<tr>
		<th>登録番号</th>
		<td><?php echo esc_html( $registration['registration_no'] ?? '' ); ?></td>
	</tr>
	<tr>
		<th>金額（税抜）</th>
		<td>&yen;<?php echo number_format( (int) ( $payment['amount'] ?? 0 ) ); ?></td>
	</tr>
	<tr>
		<?php
		// 税率は決済行に保存されていないため（conf_payments は amount と tax のみ）、
		// イベントの tax_rate をそのまま印字すると、税率を変更したあとに過去の帳票を
		// 刷り直したときに税率と税額が食い違う。印字した税率で計算し直すと印字した
		// 税額になる値を解決する。
		$conf_tax_label = \ConfManager\Payment\PaymentManager::tax_rate_label(
			is_array( $payment ) ? $payment : [],
			is_array( $event ) ? $event : null
		);
		?>
		<th>消費税（<?php echo esc_html( $conf_tax_label ); ?>）</th>
		<td>&yen;<?php echo number_format( (int) ( $payment['tax'] ?? 0 ) ); ?></td>
	</tr>
	<tr class="amount-row">
		<th>合計金額</th>
		<td>&yen;<?php echo number_format( (int) ( $payment['amount'] ?? 0 ) + (int) ( $payment['tax'] ?? 0 ) ); ?></td>
	</tr>
</table>

<table class="detail">
	<tr>
		<th>お支払方法</th>
		<td>
			<?php
			$conf_method_labels = [
				'stripe' => __( 'Credit Card (Stripe)', 'conferencemanager' ),
				'bank'   => __( 'Bank Transfer', 'conferencemanager' ),
			];
			echo esc_html( $conf_method_labels[ $payment['method'] ?? '' ] ?? __( 'Other', 'conferencemanager' ) );
			?>
		</td>
	</tr>
	<?php if ( ! empty( $payment['paid_at'] ) ) : ?>
	<tr>
		<th>お支払日</th>
		<td><?php echo esc_html( wp_date( 'Y年n月j日', strtotime( $payment['paid_at'] ) ) ); ?></td>
	</tr>
	<?php endif; ?>
</table>

<?php if ( ( $payment['method'] ?? '' ) === 'bank' && ( ! empty( $event['payment_account_name'] ) || ! empty( $event['payment_account_info'] ) ) ) : ?>
<div style="margin-top: 30px; padding: 15px; border: 1px solid #ccc; background: #fafafa;">
	<h3 style="margin: 0 0 10px; font-size: 12pt;">お振込先</h3>
	<?php if ( ! empty( $event['payment_account_name'] ) ) : ?>
		<p style="font-weight: bold; margin: 0 0 5px;"><?php echo esc_html( $event['payment_account_name'] ); ?></p>
	<?php endif; ?>
	<?php if ( ! empty( $event['payment_account_info'] ) ) : ?>
		<p style="margin: 0;"><?php echo nl2br( esc_html( $event['payment_account_info'] ) ); ?></p>
	<?php endif; ?>
</div>
<?php endif; ?>

<?php if ( ! empty( $invoice['tax_registration_no'] ) ) : ?>
<p class="tax-no">適格請求書発行事業者登録番号: <?php echo esc_html( $invoice['tax_registration_no'] ); ?></p>
<?php endif; ?>

<div class="footer">
	<p>本請求書は Conference Manager により自動生成されました。</p>
</div>
