Hóa đơn POS
Hóa đơn POS được phát hành theo thời gian thực tại điểm bán hàng với việc tự động gửi đến T-VAN.
Tổng quan
| Thuộc tính | Giá trị |
|---|---|
| Dịch vụ | POSSaleInvoiceService / POSVATInvoiceService |
| Thời gian thực | Có |
| Tự động gửi | Có |
| Trường hợp Sử dụng | Hệ thống POS tại cửa hàng |
Các loại Hóa đơn POS
Hóa đơn Bán hàng POS
- Thanh toán nhanh
- Không yêu cầu thông tin người mua
- Định dạng đơn giản hóa
Hóa đơn GTGT POS
- Khách hàng yêu cầu hóa đơn GTGT
- Yêu cầu mã số thuế người mua
- Chi tiết VAT đầy đủ
Tạo Hóa đơn Bán hàng POS
typescript
import { POSSaleInvoiceService } from '@nx-3rd/iiapi';
const invoice = await this.posSaleService.create({
// Các trường bắt buộc tối thiểu
invoiceDate: new Date(),
items: [
{
itemName: 'Cà phê',
quantity: 2,
unitPrice: 50000,
amount: 100000,
},
{
itemName: 'Bánh ngọt',
quantity: 1,
unitPrice: 35000,
amount: 35000,
},
],
totalAmount: 135000,
totalPayment: 135000,
paymentMethod: 'CASH',
// Tùy chọn: Thông tin thiết bị đầu cuối
posTerminalId: 'POS001',
cashierId: 'CASHIER001',
});Tạo Hóa đơn GTGT POS
typescript
import { POSVATInvoiceService } from '@nx-3rd/iiapi';
const invoice = await this.posVatService.create({
// Thông tin khách hàng cho VAT
buyer: {
taxCode: '9876543210',
name: 'Công ty Khách hàng',
address: '456 Đại lộ',
},
invoiceDate: new Date(),
items: [
{
itemName: 'Văn phòng phẩm',
quantity: 10,
unitPrice: 50000,
amount: 500000,
vatRate: 10,
vatAmount: 50000,
},
],
totalAmount: 500000,
totalVatAmount: 50000,
totalPayment: 550000,
paymentMethod: 'CARD',
posTerminalId: 'POS001',
});Luồng Thời gian thực
In Biên lai
typescript
// Lấy dữ liệu hóa đơn có thể in
const printData = await this.iiApiService.getPrintData(invoice.id);
// In biên lai
await printer.print({
header: printData.sellerInfo,
items: printData.items,
totals: printData.totals,
qrCode: printData.lookupQR, // Để khách hàng xác minh
footer: `Hóa đơn: ${printData.invoiceNumber}`,
});