371 lines
15 KiB
Plaintext
371 lines
15 KiB
Plaintext
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>合塑实业-汽车事业部-备货单(客户下定)</title>
|
|
<style>
|
|
/* 横版:A4 297mm,左右各 12mm => 可用宽度 273mm */
|
|
@page { margin: 12mm; }
|
|
|
|
body {
|
|
font-family: 'notosanssc', 'DejaVu Sans', Arial, sans-serif;
|
|
font-size: 10pt;
|
|
line-height: 1.3;
|
|
color: #000;
|
|
background: #fff;
|
|
}
|
|
|
|
.container {
|
|
width: 273mm; /* 横向版心 */
|
|
margin: 0 auto;
|
|
background: #fff;
|
|
}
|
|
|
|
.header {
|
|
text-align: center;
|
|
margin-bottom: 10pt;
|
|
padding-bottom: 6pt;
|
|
}
|
|
.title {
|
|
font-size: 14pt;
|
|
font-weight: bold;
|
|
margin-bottom: 6pt;
|
|
}
|
|
.sub-title {
|
|
font-size: 9pt;
|
|
color: #000;
|
|
margin: 0 6pt;
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin-bottom: 10pt;
|
|
font-size: 9pt;
|
|
table-layout: fixed; /* 横向固定布局,配合 colgroup 更稳 */
|
|
}
|
|
th, td {
|
|
border: 0.5pt solid #000;
|
|
padding: 6pt 6pt;
|
|
text-align: center;
|
|
vertical-align: middle;
|
|
word-break: break-all;
|
|
}
|
|
th {
|
|
background-color: #f0f0f0;
|
|
font-weight: bold;
|
|
color: #000;
|
|
}
|
|
|
|
/* 跨页友好 */
|
|
thead { display: table-header-group; }
|
|
tfoot { display: table-row-group; }
|
|
tr, img { page-break-inside: avoid; }
|
|
|
|
/* 信息类表格左对齐 */
|
|
.info-table td,
|
|
.logistics-table td { text-align: left; }
|
|
|
|
.info-label { font-weight: bold; color: #000; }
|
|
.info-value { color: #000; }
|
|
|
|
.summary-row {
|
|
background-color: #f0f0f0;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.payment-title {
|
|
background-color: #f0f0f0;
|
|
font-weight: bold;
|
|
text-align: center;
|
|
vertical-align: middle;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.nowrap { white-space: nowrap; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<!-- 头部 -->
|
|
<div class="header">
|
|
<h1 class="title">合塑实业-汽车事业部-备货单(客户下定)</h1>
|
|
<div>
|
|
<span class="sub-title">备货单号: <?php echo htmlspecialchars($data['order_no'] ?? 'N/A'); ?></span>
|
|
<span class="sub-title">业务员: <?php echo htmlspecialchars($data['salesperson_snapshot'] ?? ' - '); ?></span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 基本信息 -->
|
|
<table class="info-table">
|
|
<colgroup>
|
|
<col style="width:18%">
|
|
<col style="width:15%">
|
|
<col style="width:14%">
|
|
<col style="width:14%">
|
|
<col style="width:19%">
|
|
<col style="width:20%">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="info-label">阿里订单号/PI号:</span> <span class="info-value"><?php echo htmlspecialchars($data['pi_no'] ?? ' - '); ?></span></td>
|
|
<td><span class="info-label">日期:</span> <span class="info-value nowrap"><?php echo htmlspecialchars($data['biz_date'] ?? ' - '); ?></span></td>
|
|
<td><span class="info-label">清关目的国:</span> <span class="info-value"><?php echo htmlspecialchars($data['clearance_country_snapshot'] ?? ' - '); ?></span></td>
|
|
<td><span class="info-label">客户来源:</span> <span class="info-value"><?php echo htmlspecialchars($data['customer_source_snapshot'] ?? ' - '); ?></span></td>
|
|
<td><span class="info-label">客户名称:</span> <span class="info-value"><?php echo htmlspecialchars($data['customer_snapshot'] ?? ' - '); ?></span></td>
|
|
<td><span class="info-label">客户所在国:</span> <span class="info-value"><?php echo htmlspecialchars($data['customer_country_snapshot'] ?? ' - '); ?></span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- 产品列表 -->
|
|
<table class="product-table">
|
|
<thead>
|
|
<tr>
|
|
<th>编号</th>
|
|
<th>车型</th>
|
|
<th>数量</th>
|
|
<th>颜色</th>
|
|
<th colspan="7">费用明细</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<?php foreach (($data['veh_list'] ?? []) as $vehicle): ?>
|
|
<!-- ===== 每辆车分组:4行费用 + 1行备注 ===== -->
|
|
<!-- 行1:左侧4列用 rowspan,右侧为“费用明细(1)”标题 -->
|
|
<tr>
|
|
<!-- 编号 跨5行(含备注行) -->
|
|
<td rowspan="5">
|
|
<?php echo htmlspecialchars($vehicle['index'] ?? ' - '); ?>
|
|
</td>
|
|
|
|
<!-- 车型 跨4行(不含备注行) -->
|
|
<td rowspan="4">
|
|
<?php echo htmlspecialchars($vehicle['model_snapshot'] ?? ' - '); ?>
|
|
<?php if (!empty($vehicle['mileage']) && $vehicle['mileage'] > 0): ?>
|
|
<span class="nowrap">(<?php echo htmlspecialchars($vehicle['mileage']); ?>km)</span>
|
|
<?php endif; ?>
|
|
</td>
|
|
|
|
<!-- 数量 跨4行 -->
|
|
<td rowspan="4">
|
|
<?php echo htmlspecialchars($vehicle['num'] ?? ' - '); ?>
|
|
</td>
|
|
|
|
<!-- 颜色 跨4行:把外/内合并展示 -->
|
|
<td rowspan="4" style="text-align:left;">
|
|
外饰:<?php echo htmlspecialchars($vehicle['color_exterior_snapshot'] ?? ' - '); ?><br><br>
|
|
内饰:<?php echo htmlspecialchars($vehicle['color_interior_snapshot'] ?? ' - '); ?>
|
|
</td>
|
|
|
|
<!-- 费用明细(第1组)标题 -->
|
|
<th>改装费</th>
|
|
<th>配件费</th>
|
|
<th>收款价</th>
|
|
<th>总价</th>
|
|
<th>官方指导价/二手挂牌价</th>
|
|
<th>优惠</th>
|
|
<th>利润</th>
|
|
</tr>
|
|
|
|
<!-- 行2:费用明细(第1组)数据 -->
|
|
<tr>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['retrofit_fee']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['accessory_price']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['unit_price']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['total_price']['currency_info'] ?? ' - '); ?></td>
|
|
|
|
<?php if (!empty($vehicle['mileage']) && $vehicle['mileage'] > 0): ?>
|
|
<!-- 二手:挂牌价 + 优惠(减价) -->
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['listing_price']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['reduction_price']['currency_info'] ?? ' - '); ?></td>
|
|
<?php else: ?>
|
|
<!-- 新车:官方指导价 + 优惠 -->
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['official_price']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['discount_price']['currency_info'] ?? ' - '); ?></td>
|
|
<?php endif; ?>
|
|
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['profit']['currency_info'] ?? ' - '); ?></td>
|
|
</tr>
|
|
|
|
<!-- 行3:费用明细(第2组)标题 -->
|
|
<tr>
|
|
<th>报关价</th>
|
|
<th>FOB运费</th>
|
|
<th>车价</th>
|
|
<th>海运费</th>
|
|
<th>佣金</th>
|
|
<th>挂账</th>
|
|
<th>港杂</th>
|
|
</tr>
|
|
|
|
<!-- 行4:费用明细(第2组)数据 -->
|
|
<tr>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['clearance_price']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['fob_transport_fee']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['car_price']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['ocean_freight']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['commission']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['retention_price']['currency_info'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($vehicle['port_misc_fee']['currency_info'] ?? ' - '); ?></td>
|
|
</tr>
|
|
|
|
<!-- 行5:备注(因为“编号”已跨到本行,所以这里合并剩余10列) -->
|
|
<tr>
|
|
<td colspan="1"><strong>备注</strong></td>
|
|
<td colspan="9" style="text-align:left;">
|
|
<span class="info-value">
|
|
<?php echo nl2br($vehicle['remark'] ?? ''); ?>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
<!-- ===== 分组结束 ===== -->
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
|
|
<tfoot>
|
|
<tr class="summary-row">
|
|
<!-- 注意:tfoot 没有跨行单元格,总列=11,所以采用 4 + 7 -->
|
|
<td colspan="4" style="text-align:left;">
|
|
<span class="info-label">合同汇率:</span>
|
|
<span class="info-value"><?php echo htmlspecialchars($data['contract_exchange_rate'] ?? ' - '); ?></span>
|
|
</td>
|
|
<td colspan="7" style="text-align:left;">
|
|
<span class="info-label">合计到岸价:</span>
|
|
<span class="info-value"><?php echo htmlspecialchars($data['cif_total']['currency_info'] ?? ' - '); ?></span>
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
|
|
<!-- 物流信息 -->
|
|
<table class="logistics-table">
|
|
<colgroup>
|
|
<col style="width:16%">
|
|
<col style="width:18%">
|
|
<col style="width:12%">
|
|
<col style="width:18%">
|
|
<col style="width:22%">
|
|
<col style="width:14%">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<td><span class="info-label">清关人:</span> <span class="info-value"><?php echo htmlspecialchars($data['declarant_name'] ?? ' - '); ?></span></td>
|
|
|
|
<?php if ($data['is_final'] == 1): ?>
|
|
<td><span class="info-label">全款收齐日:</span> <span class="info-value nowrap"><?php echo htmlspecialchars($data['collect_all_date'] ?? ' - '); ?></span></td>
|
|
<?php else: ?>
|
|
<td><span class="info-label">预计发运日期:</span> <span class="info-value nowrap"><?php echo htmlspecialchars($data['eta_ship_date'] ?? ' - '); ?></span></td>
|
|
<?php endif; ?>
|
|
|
|
<td><span class="info-label">出运方式:</span> <span class="info-value"><?php echo htmlspecialchars($data['shipping_method_snapshot'] ?? ' - '); ?></span></td>
|
|
<td><span class="info-label">国内收货港:</span> <span class="info-value"><?php echo htmlspecialchars($data['domestic_port_snapshot'] ?? ' - '); ?></span></td>
|
|
<td><span class="info-label">贸易条款/清关目的港:</span> <span class="info-value"><?php echo htmlspecialchars($data['trade_term_snapshot'] ?? ' - '); ?>/<?php echo htmlspecialchars($data['clearance_port_snapshot'] ?? ' - '); ?></span></td>
|
|
|
|
<?php if ($data['is_final'] == 1): ?>
|
|
<td><span class="info-label">提车日期:</span> <span class="info-value nowrap"><?php echo htmlspecialchars($data['pick_up_date'] ?? ' - '); ?></span></td>
|
|
<?php else: ?>
|
|
<td><span class="info-label">最迟到港时间:</span> <span class="info-value nowrap"><?php echo htmlspecialchars($data['latest_arrival_date'] ?? ' - '); ?></span></td>
|
|
<?php endif; ?>
|
|
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- 计划收款信息 -->
|
|
<table class="payment-table">
|
|
<colgroup>
|
|
<col style="width:12%">
|
|
<col style="width:10%">
|
|
<col style="width:14%">
|
|
<col style="width:12%">
|
|
<col style="width:12%">
|
|
<col style="width:20%">
|
|
<col style="width:10%">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th style="width:24mm" rowspan="<?php echo htmlspecialchars($data['acc_index']); ?>">计划收款信息</th>
|
|
<th>序号</th>
|
|
<th>汇款国</th>
|
|
<th>日期</th>
|
|
<th>币种</th>
|
|
<th>账户</th>
|
|
<th>汇款人</th>
|
|
<th>金额</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach (($data['account_list'] ?? []) as $account): ?>
|
|
<tr>
|
|
<td class="nowrap"><?php echo htmlspecialchars($account['index'] ?? ' - '); ?></td>
|
|
<td><?php echo htmlspecialchars($account['remit_country_name_snapshot'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($account['remit_date'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($account['currency_name_snapshot'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($account['account_name_snapshot'] ?? ' - '); ?></td>
|
|
<td style="text-align:left;"><?php echo htmlspecialchars($account['remitter_name'] ?? ' - '); ?></td>
|
|
<td class="nowrap"><?php echo htmlspecialchars($account['amount'] ?? ' - '); ?></td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- PDF 底部签名区 -->
|
|
<div style="margin-top: 6mm; font-size: 12px;">
|
|
<!-- 左侧:业务员签字 / 备发货负责人签字 -->
|
|
<div style="width: 50%; float: left; text-align: left;">
|
|
<!-- 行距通过 margin-bottom 控制;行内元素通过固定行高和 vertical-align: middle 垂直居中 -->
|
|
<div style="height: 14mm; line-height: 14mm; margin-bottom: 5mm;">
|
|
<span>业务员签字:</span>
|
|
<?php if (!empty($data['sign_img_url'])): ?>
|
|
<img src="<?php echo htmlspecialchars($data['sign_img_url']); ?>" style="height: 12mm; vertical-align: middle;">
|
|
<?php else: ?>
|
|
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<div style="height: 14mm; line-height: 14mm;">
|
|
<span>备发货负责人签字:</span>
|
|
<?php if (!empty($data['sign_imgs'][1])): ?>
|
|
<img src="<?php echo htmlspecialchars($data['sign_imgs'][1]); ?>" style="height: 12mm; vertical-align: middle;">
|
|
<?php else: ?>
|
|
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 右侧:组长签字 / 日期 -->
|
|
<div style="width: 50%; float: right; text-align: left;">
|
|
<div style="height: 14mm; line-height: 14mm; margin-bottom: 5mm;">
|
|
<span>组长签字:</span>
|
|
<?php if (!empty($data['sign_imgs'][0])): ?>
|
|
<img src="<?php echo htmlspecialchars($data['sign_imgs'][0]); ?>" style="height: 12mm; vertical-align: middle;">
|
|
<?php else: ?>
|
|
<span style="display:inline-block; width:21mm; height:12mm; vertical-align: middle; border-bottom:0.2mm solid #000;"></span>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<div style="height: 14mm; line-height: 14mm;">
|
|
<span>日期:</span>
|
|
<?php
|
|
$_dt = $data['signed_date'] ?? ($data['created_at'] ?? '');
|
|
if (is_numeric($_dt)) {
|
|
echo htmlspecialchars(date('Y-m-d', (int)$_dt));
|
|
} elseif (!empty($_dt)) {
|
|
$t = strtotime($_dt);
|
|
echo $t ? htmlspecialchars(date('Y-m-d', $t)) : ' - ';
|
|
} else {
|
|
echo ' - ';
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="clear: both;"></div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</body>
|
|
</html> |