Files
portal-api/resources/views/pdf/invoice-pdf.blade.php
baodev0 dfb926055d Add feature tests for domain order management
- Implement AdminDomainOrderTest to cover admin functionalities for domain orders including listing, confirming registration, KYC updates, activation, rejection, and refunds.
- Implement ClientDomainOrderTest to cover client functionalities for placing domain orders, including validation for balance, duplicate orders, and domain normalization.
- Ensure proper handling of domain pricing and service statuses throughout the tests.
2026-07-10 14:16:35 +07:00

550 lines
14 KiB
PHP

<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<style>
@font-face {
font-family: "SVN Times New Roman";
font-style: normal;
font-weight: 400;
src: url("{{ public_path('fonts/time-new-roman/SVN-Times-New-Roman.ttf') }}")
format("truetype");
}
@font-face {
font-family: "SVN Times New Roman";
font-style: normal;
font-weight: 700;
src: url("{{ public_path('fonts/time-new-roman/SVN-Times-New-Roman-Bold.ttf') }}")
format("truetype");
}
@font-face {
font-family: "SVN Times New Roman";
font-style: italic;
font-weight: 400;
src: url("{{ public_path('fonts/time-new-roman/SVN-Times-New-Roman-Italic.ttf') }}")
format("truetype");
}
@font-face {
font-family: "SVN Times New Roman";
font-style: italic;
font-weight: 700;
src: url("{{ public_path('fonts/time-new-roman/SVN-Times-New-Roman-Bold-Italic.ttf') }}")
format("truetype");
}
@page {
size: A4 portrait;
margin: 10mm;
}
* {
box-sizing: border-box;
font-family: "SVN Times New Roman", "DejaVu Serif", serif;
}
html,
body {
margin: 0;
padding: 0;
}
body {
color: #111;
font-family: "SVN Times New Roman", "DejaVu Serif", serif;
font-size: 10px;
font-weight: 400;
line-height: 1.45;
padding: 20px;
}
strong,
b,
th,
.bold {
font-family: "SVN Times New Roman", "DejaVu Serif", serif;
font-weight: 700;
}
em,
i,
.italic {
font-family: "SVN Times New Roman", "DejaVu Serif", serif;
font-style: italic;
font-weight: 400;
}
strong em,
strong i,
b em,
b i,
.bold.italic {
font-family: "SVN Times New Roman", "DejaVu Serif", serif;
font-style: italic;
font-weight: 700;
}
.invoice {
min-height: 277mm;
padding: 3mm;
border: 1px solid #efefe;
}
.header-table,
.info-table,
.product-table,
.signature-table {
width: 100%;
border-collapse: collapse;
}
.header-table td {
vertical-align: top;
}
.logo {
width: 145px;
}
.invoice-title {
text-align: center;
}
.invoice-title h1 {
margin: 0;
font-size: 21px;
font-weight: 700;
text-transform: uppercase;
}
.invoice-title h2 {
margin: 2px 0;
font-size: 15px;
font-style: italic;
font-weight: 700;
}
.invoice-title p {
margin: 3px 0;
}
.invoice-number {
width: 190px;
padding-left: 15px;
font-size: 11px;
}
.invoice-number p {
margin: 3px 0;
}
.divider {
margin: 7px 0;
border: 0;
border-top: 1px solid #bbb;
}
.company-name {
margin: 0 0 3px;
font-size: 16px;
font-weight: 700;
text-transform: uppercase;
}
.info-row {
margin: 4px 0;
}
.seller-section {
position: relative;
min-height: 120px;
padding-right: 120px;
}
.qr-code {
position: absolute;
top: 8px;
right: 15px;
width: 90px;
height: 90px;
border: 1px solid #555;
text-align: center;
line-height: 90px;
}
.bank-table {
width: 100%;
margin: 4px 0;
border-collapse: collapse;
}
.bank-table td {
padding: 0;
vertical-align: top;
}
.bank-table-label {
width: 155px;
}
.product-table {
margin-top: 6px;
table-layout: auto;
}
.product-table th,
.product-table td {
border: 1px solid #777;
}
.product-table th {
padding: 4px;
height: 48px;
text-align: center;
vertical-align: middle;
font-weight: 700;
}
.product-table tbody td {
padding: 1px 2px;
height: auto;
line-height: 1.2;
}
.product-table th:first-child,
.product-table td:first-child {
width: 8mm;
padding-left: 1px;
padding-right: 1px;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.italic {
font-style: italic;
}
.bold {
font-weight: 700;
}
.summary-label {
text-align: right;
}
.amount-words {
padding: 5px !important;
}
.signature-table {
margin-top: 12px;
}
.signature-table td {
width: 50%;
height: 130px;
text-align: center;
vertical-align: top;
}
.signature-title {
font-size: 12px;
font-weight: 700;
}
.signature-box {
width: 260px;
margin: 35px auto 0;
padding: 8px;
color: red;
border: 1px solid #65a765;
background: #eef8ee;
text-align: left;
font-weight: 700;
line-height: 1.8;
}
.footer {
text-align: center;
font-size: 9px;
}
.footer p {
margin: 3px 0;
}
.product-table-wrapper {
position: relative;
margin-top: 6px;
}
.product-table-watermark {
position: absolute;
top: 0;
left: 50%;
width: 430px;
height: auto;
opacity: 0.3;
margin-left: -215px;
z-index: 0;
}
.product-table {
position: relative;
z-index: 1;
width: 100%;
margin-top: 0;
table-layout: auto;
border-collapse: collapse;
}
.product-table th,
.product-table td {
background: transparent;
}
</style>
</head>
<body>
<div class="invoice">
<table class="header-table">
<tr>
<td style="width: 25%">
{{-- Thay bằng đường dẫn logo thực tế --}}
<img src="{{ public_path('images/image.png') }}" alt="Logo" style="width: 80%; height: auto;">
</td>
<td class="invoice-title">
<h1>HÓA ĐƠN GIÁ TRỊ GIA TĂNG</h1>
<h2>(VAT INVOICE)</h2>
<p>
Ngày <span class="italic">(Date)</span> 09
tháng <span class="italic">(month)</span> 07
năm <span class="italic">(year)</span> 2026
</p>
<p>
Mã CQT <span class="italic">(Code)</span>:
</p>
</td>
<td class="invoice-number">
<p>
Ký hiệu <span class="italic">(Serial)</span>:
<strong>1C26TCP</strong>
</p>
<p>
Số <span class="italic">(No.)</span>:
<strong>&lt;Chưa cấp số&gt;</strong>
</p>
</td>
</tr>
</table>
<hr class="divider">
<div class="seller-section">
<h3 class="company-name">
CÔNG TY CỔ PHẦN GIẢI PHÁP CÔNG NGHỆ THẾ GIỚI SỐ
</h3>
<div class="info-row">
Mã số thuế <span class="italic">(Tax code)</span>: 0318443116
</div>
<div class="info-row">
Địa chỉ <span class="italic">(Address)</span>:
Số 128/38 đường Tân Hương, Phường Phú Thọ Hòa,
Thành phố Hồ Chí Minh, Việt Nam
</div>
<div class="info-row">
Tên cửa hàng <span class="italic">(Shop name)</span>:
</div>
<table class="bank-table">
<tr>
<td class="bank-table-label">
Số tài khoản <span class="italic">(Bank account)</span>:
</td>
<td>
7379868 Ngân hàng TMCP Á Châu (ACB) Chi nhánh TP. Hồ Chí Minh
</td>
</tr>
<tr>
<td class="bank-table-label"></td>
<td>
797379868 Ngân hàng TMCP Quân Đội (MB) Chi nhánh Phú Nhuận
</td>
</tr>
</table>
<div class="qr-code">
<img src="{{ public_path('images/qr-code-tgs.jpg') }}" alt="QR Code" style="width: 100%; height: auto;">
</div>
</div>
<hr class="divider">
<div class="buyer-section">
<div class="info-row">
Họ tên người mua hàng <span class="italic">(Buyer)</span>:
PHẠM GIA BẢO
</div>
<div class="info-row">
Tên đơn vị <span class="italic">(Company's name)</span>:
CÔNG TY TNHH MỘT THÀNH VIÊN CÔNG NGHỆ DEVRO
</div>
<div class="info-row">
Mã số thuế <span class="italic">(Tax code)</span>: 079203005707
</div>
<div class="info-row">
Địa chỉ <span class="italic">(Address)</span>:
194/19/12 Chiến Lược, Phường Bình Trị Đông, Thành Phố Hồ Chí Minh
</div>
<div class="info-row">
Hình thức thanh toán <span class="italic">(Payment method)</span>:
TM/CK
</div>
</div>
<div class="product-table-wrapper">
<img src="{{ public_path('images/image.png') }}" alt="Watermark" class="product-table-watermark">
<table class="product-table">
<colgroup>
<col style="width: 8mm">
<col>
<col style="width: 13%">
<col style="width: 10%">
<col style="width: 14%">
<col style="width: 16%">
</colgroup>
<thead>
<tr>
<th>STT<br><span class="italic">(No)</span></th>
<th>
Tên hàng hóa, dịch vụ<br>
<span class="italic">(Name of goods and services)</span>
</th>
<th>Đơn vị tính<br><span class="italic">(Unit)</span></th>
<th>Số lượng<br><span class="italic">(Quantity)</span></th>
<th>Đơn giá<br><span class="italic">(Unit price)</span></th>
<th>Thành tiền<br><span class="italic">(Amount)</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-center">1</td>
<td>Phí đăng ký và duy trì tên miền quốc tế .COM</td>
<td class="text-center">Năm</td>
<td class="text-right">2,00</td>
<td class="text-right">340.000,00</td>
<td class="text-right">680.000</td>
</tr>
<tr>
<td colspan="5" class="summary-label">
Cộng tiền hàng <span class="italic">(Total amount excl. VAT)</span>:
</td>
<td class="text-right bold">680.000</td>
</tr>
<tr>
<td colspan="2">
Thuế suất GTGT <span class="italic">(VAT rate)</span>:
</td>
<td class="text-center bold">10%</td>
<td colspan="2" class="summary-label">
Tiền thuế GTGT <span class="italic">(VAT amount)</span>:
</td>
<td class="text-right bold">68.000</td>
</tr>
<tr>
<td colspan="5" class="summary-label">
Tổng tiền thanh toán <span class="italic">(Total amount)</span>:
</td>
<td class="text-right bold">748.000</td>
</tr>
<tr>
<td colspan="6" class="amount-words">
Số tiền viết bằng chữ
<span class="italic">(Total amount in words)</span>:
<strong><em>Bảy trăm bốn mươi tám nghìn đồng chẵn.</em></strong>
</td>
</tr>
</tbody>
</table>
</div>
<table class="signature-table">
<tr>
<td>
<div class="signature-title">
Người mua hàng <span class="italic">(Buyer)</span>
</div>
<div class="italic">
(Chữ ký số nếu có)<br>
(Digital signature if any)
</div>
</td>
<td>
<div class="signature-title">
Người bán hàng <span class="italic">(Seller)</span>
</div>
<div class="italic">
(Chữ ký điện tử, Chữ ký số)<br>
(E-signature, Digital signature)
</div>
<div class="signature-box">
Signature Valid<br>
<em>Ký bởi (Signed By):</em><br>
<em>Ký ngày (Signing Date):</em>
</div>
</td>
</tr>
</table>
<div class="footer">
<p>
Tra cứu tại Website <span class="italic">(Search in website)</span>:
<u>https://www.portal.tgs.com.vn/tra-cuu</u>
</p>
<p>
(Cần kiểm tra, đối chiếu khi lập, giao, nhận hóa đơn)
</p>
<p>
Phát hành bởi phần mềm Thế Giới Số Invoice
</p>
</div>
</div>
</body>
</html>