feat: create PostCategoryFactory for generating post category data feat: create PostFactory for generating post data feat: add retry_requested_at column to services table feat: add vcenter provisioning fields to products table feat: add module_host_id to os table feat: create email_notification_templates table for email templates feat: add scenario and format fields to template table feat: add admin fields to transactions table fix: update ticket table columns and types feat: add uuid to ticket table and backfill existing records fix: make ticket_reply user_id nullable feat: create notifications table for user notifications fix: make ticket uuid nullable feat: create post_categories table for blog categories feat: create posts table for blog posts feat: add invoice email template for PDF generation
385 lines
11 KiB
HTML
385 lines
11 KiB
HTML
<!doctype html>
|
|
<html lang="vi">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>VAT Invoice</title>
|
|
|
|
<style>
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
padding: 20px;
|
|
background: #f5f5f5;
|
|
font-family: "Times New Roman", serif;
|
|
color: #000;
|
|
}
|
|
|
|
.invoice {
|
|
width: 900px;
|
|
margin: auto;
|
|
background: #fff;
|
|
border: 1px solid #333;
|
|
padding: 20px;
|
|
}
|
|
|
|
.top-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.logo {
|
|
width: 180px;
|
|
}
|
|
|
|
.logo img {
|
|
width: 100%;
|
|
}
|
|
|
|
.invoice-title {
|
|
text-align: center;
|
|
flex: 1;
|
|
}
|
|
|
|
.invoice-title h1 {
|
|
margin: 0;
|
|
font-size: 32px;
|
|
font-weight: bold;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.invoice-title h2 {
|
|
margin: 5px 0;
|
|
font-size: 22px;
|
|
font-style: italic;
|
|
}
|
|
|
|
.invoice-title p {
|
|
margin: 6px 0;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.invoice-meta {
|
|
width: 220px;
|
|
font-size: 15px;
|
|
line-height: 1.8;
|
|
}
|
|
|
|
.divider {
|
|
border-top: 1px solid #999;
|
|
margin: 12px 0;
|
|
}
|
|
|
|
.company-section {
|
|
position: relative;
|
|
}
|
|
|
|
.company-section h3 {
|
|
margin: 0 0 10px;
|
|
font-size: 28px;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.info-line {
|
|
margin-bottom: 8px;
|
|
font-size: 17px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.label {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.qr {
|
|
position: absolute;
|
|
right: 0;
|
|
top: 10px;
|
|
width: 120px;
|
|
height: 120px;
|
|
border: 1px solid #ccc;
|
|
}
|
|
|
|
.buyer-section {
|
|
margin-top: 15px;
|
|
}
|
|
|
|
.payment-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 20px;
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin-top: 15px;
|
|
font-size: 16px;
|
|
}
|
|
|
|
th,
|
|
td {
|
|
border: 1px solid #333;
|
|
padding: 8px;
|
|
vertical-align: top;
|
|
}
|
|
|
|
th {
|
|
text-align: center;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.text-center {
|
|
text-align: center;
|
|
}
|
|
|
|
.text-right {
|
|
text-align: right;
|
|
}
|
|
|
|
.summary-row td {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.amount-words {
|
|
border: 1px solid #333;
|
|
border-top: none;
|
|
padding: 10px;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.signature-section {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-top: 40px;
|
|
text-align: center;
|
|
}
|
|
|
|
.signature-box {
|
|
width: 40%;
|
|
}
|
|
|
|
.signature-box h4 {
|
|
margin: 0 0 10px;
|
|
font-size: 18px;
|
|
}
|
|
|
|
.signature-box p {
|
|
margin: 5px 0;
|
|
font-style: italic;
|
|
}
|
|
|
|
.digital-sign {
|
|
margin-top: 25px;
|
|
border: 1px solid #90c790;
|
|
background: #f1fff1;
|
|
padding: 12px;
|
|
color: #b30000;
|
|
font-weight: bold;
|
|
line-height: 1.8;
|
|
}
|
|
|
|
.footer {
|
|
margin-top: 30px;
|
|
text-align: center;
|
|
font-size: 15px;
|
|
line-height: 1.8;
|
|
}
|
|
|
|
@media print {
|
|
body {
|
|
background: white;
|
|
padding: 0;
|
|
}
|
|
|
|
.invoice {
|
|
border: none;
|
|
width: 100%;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="invoice">
|
|
<div class="top-header">
|
|
<div class="logo">
|
|
<img src="{setting.logo}" alt="logo" />
|
|
</div>
|
|
|
|
<div class="invoice-title">
|
|
<h1>HÓA ĐƠN ĐẶT HÀNG</h1>
|
|
<h2>(INVOICE ORDER)</h2>
|
|
|
|
<p>Ngày (Date) 14 tháng (month) 04 năm (year) 2026</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="divider"></div>
|
|
|
|
<div class="company-section">
|
|
<div class="qr"></div>
|
|
|
|
<h3>CÔNG TY CỔ PHẦN GIẢI PHÁP CÔNG NGHỆ THẾ GIỚI SỐ</h3>
|
|
|
|
<div class="info-line">
|
|
<span class="label">Mã số thuế (Tax code):</span>
|
|
0318443116
|
|
</div>
|
|
|
|
<div class="info-line">
|
|
<span class="label">Địa chỉ (Address):</span>
|
|
số 128/38 đường Tân Hương, Phường Phú Thọ Hòa, TP Hồ Chí
|
|
Minh, Việt Nam.
|
|
</div>
|
|
|
|
<div class="info-line">
|
|
<span class="label">Số tài khoản (Bank account):</span>
|
|
7379868 Ngân hàng TMCP Á Châu (ACB) Chi Nhánh TP. Hồ Chí
|
|
Minh
|
|
</div>
|
|
|
|
<div class="info-line">
|
|
<span class="label">Số tài khoản (Bank account):</span>
|
|
797379868 Ngân hàng TMCP Quân Đội (MB) Chi nhánh Phú Nhuận
|
|
</div>
|
|
</div>
|
|
|
|
<div class="divider"></div>
|
|
|
|
<div class="buyer-section">
|
|
<div class="info-line">
|
|
<span class="label">Họ tên người mua hàng (Buyer):</span>
|
|
</div>
|
|
|
|
<div class="info-line">
|
|
<span class="label">Tên đơn vị (Company's name):</span>
|
|
CÔNG TY TNHH SOPRO
|
|
</div>
|
|
|
|
<div class="info-line">
|
|
<span class="label">Mã số thuế (Tax code):</span>
|
|
0317005737
|
|
</div>
|
|
|
|
<div class="info-line">
|
|
<span class="label">Địa chỉ (Address):</span>
|
|
Lầu 3, 365 Lê Quang Định, Phường Bình Lợi Trung, Thành Phố
|
|
Hồ Chí Minh, Việt Nam
|
|
</div>
|
|
|
|
<div class="payment-row">
|
|
<div class="info-line">
|
|
<span class="label"
|
|
>Hình thức thanh toán (Payment method):</span
|
|
>
|
|
TM/CK
|
|
</div>
|
|
|
|
<div class="info-line">
|
|
<span class="label">Số tài khoản (Bank account):</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th width="60">STT</th>
|
|
<th>Tên hàng hóa, dịch vụ</th>
|
|
<th width="100">Đơn vị tính</th>
|
|
<th width="100">Số lượng</th>
|
|
<th width="150">Đơn giá</th>
|
|
<th width="160">Thành tiền</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<tr>
|
|
<td class="text-center">1</td>
|
|
|
|
<td>
|
|
Cước phí dịch vụ thuê máy chủ từ 07/04/2026 đến
|
|
06/10/2026
|
|
</td>
|
|
|
|
<td class="text-center">Tháng</td>
|
|
|
|
<td class="text-center">6,00</td>
|
|
|
|
<td class="text-right">700.000,00</td>
|
|
|
|
<td class="text-right">4.200.000</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="text-center">2</td>
|
|
|
|
<td>
|
|
Cước phí dịch vụ thuê máy chủ từ 07/04/2026 đến
|
|
06/10/2026
|
|
</td>
|
|
|
|
<td class="text-center">Tháng</td>
|
|
|
|
<td class="text-center">6,00</td>
|
|
|
|
<td class="text-right">560.000,00</td>
|
|
|
|
<td class="text-right">3.360.000</td>
|
|
</tr>
|
|
|
|
<tr class="summary-row">
|
|
<td colspan="5" class="text-right">
|
|
Cộng tiền hàng (Total amount excl. VAT)
|
|
</td>
|
|
|
|
<td class="text-right">7.560.000</td>
|
|
</tr>
|
|
|
|
<tr class="summary-row">
|
|
<td colspan="3">Thuế suất GTGT (VAT rate): 10%</td>
|
|
|
|
<td colspan="2" class="text-right">
|
|
Tiền thuế GTGT (VAT amount)
|
|
</td>
|
|
|
|
<td class="text-right">756.000</td>
|
|
</tr>
|
|
|
|
<tr class="summary-row">
|
|
<td colspan="5" class="text-right">
|
|
Tổng tiền thanh toán (Total amount)
|
|
</td>
|
|
|
|
<td class="text-right">8.316.000</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div class="amount-words">
|
|
<strong>
|
|
Số tiền viết bằng chữ (Total amount in words):
|
|
</strong>
|
|
|
|
Tám triệu ba trăm mười sáu nghìn đồng chẵn.
|
|
</div>
|
|
|
|
<div class="footer">
|
|
Tra cứu tại Website: https://portal.tgs.com.vn/tra-cuu - Mã tra
|
|
cứu (Invoice code):
|
|
<strong>{invoice_num}</strong>
|
|
|
|
<br /><br />
|
|
|
|
Phát hành bởi phần mềm Portal - Công ty Cổ phần Giải Pháp Công
|
|
Nghệ Thế Giới Số (www.tgs.com.vn)
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|