Demo lập báo giá và hóa đơn

Ba không gian làm việc độc lập, một cho Việt Nam, một cho Mỹ và một cho EU, mỗi nơi có tiền tệ, cách xử lý thuế và cách đánh số riêng. Không hào nhoáng, chạy hoàn toàn phía trình duyệt, và đúng là thứ các doanh nghiệp nhỏ thực sự đi tìm mua.

Mở bản demo

Mở quote-invoice.taiphamsolutions.com trong tab mới. Không cần tài khoản, không cần đăng ký, và mọi thao tác của bạn đều không rời khỏi trình duyệt. Ứng dụng demo chỉ có bản tiếng Anh.

Bản demo này làm gì

Trình soạn thảo giống nhau ở cả ba không gian: dòng hàng sửa được, thông tin khách hàng, địa chỉ giao hàng, hướng dẫn thanh toán, giá đã gồm hoặc chưa gồm thuế, và tổng tiền tính lại ngay khi bạn gõ. Thứ khác nhau giữa chúng là mô hình thuế. Việt Nam dùng VND với các mức VAT 8% và 10% có sẵn. Mỹ dùng USD với các thành phần thuế bang và địa phương cộng thêm, sửa được. EU có các mẫu theo quốc gia với thuế suất điều chỉnh được, mã số VAT, IBAN và BIC, ngày cung ứng, và cơ chế reverse charge.

Tiền được lưu ở đơn vị nhỏ nhất dạng số nguyên và không bao giờ ở dạng số thực. Các dòng chưa gồm thuế làm tròn giá trị thuần và từng thành phần thuế theo quy tắc làm tròn lên ở mức nửa. Các dòng đã gồm thuế giữ nguyên số tiền gộp, làm tròn phần thuần lên ở mức nửa, và phân bổ phần thuế còn lại cho các thành phần theo phần dư lớn nhất, để các phần luôn cộng lại đúng bằng tổng mà khách đã nhìn thấy.

Một bản nháp thì chưa có số và sửa thoải mái. Việc phát hành nó là nguyên tử: một giao dịch IndexedDB duy nhất lấy số tiếp theo và đóng băng nội dung, với các dãy số riêng theo vùng, theo loại chứng từ và theo năm phát hành, ví dụ VN-INV-2026-0001. Sau đó nội dung là bất biến. Một sai sót được xử lý bằng cách hủy chứ không phải sửa, và con số không bao giờ được dùng lại. Các bộ đếm vẫn tăng đơn điệu kể cả sau một lần khôi phục từ sao lưu.

Phát hành một hóa đơn, rồi thử đổi tổng tiền của nó. Thay vào đó hãy hủy nó, và xem con số vẫn bị coi là đã dùng chứ không quay vòng lại.

Tính năng

Ba không gian làm việc mẫu với khách hàng và sản phẩm hư cấu, cùng nút điền nhanh, khách hàng ngẫu nhiên và dòng hàng ngẫu nhiên trong lúc bạn khám phá.

Ba chế độ thuế

Các không gian làm việc Việt Nam, Mỹ và EU với tiền tệ, mẫu cấu hình và cách đánh số riêng, cùng các cách xử lý thuế suất 0%, miễn thuế và reverse charge, tất cả đều bắt buộc phải kèm ghi chú.

Trình soạn thảo và tổng tiền

Dòng hàng, thông tin khách và địa chỉ giao, hướng dẫn thanh toán, giá đã gồm hoặc chưa gồm thuế, và tổng tiền tính trực tiếp ở đơn vị nhỏ nhất dạng số nguyên.

Phát hành và vòng đời

Đánh số nguyên tử, nội dung đã phát hành bất biến, theo dõi trạng thái thủ công, hủy mà không dùng lại số, nhân bản, và một liên kết từ báo giá tới hóa đơn mà nó đã trở thành.

Đưa nó ra ngoài

Một bản in cho khổ A4 và Letter với tiêu đề bảng lặp lại qua các trang, lưu thành PDF từ hộp thoại in của trình duyệt, xuất danh sách ra CSV, và sao lưu JSON có đánh phiên bản.

Quy trình khép kín, từ đầu đến cuối

Mọi bước dưới đây đều diễn ra bên trong bản demo. Không có điểm nào mà công việc rời khỏi trình duyệt rồi quay lại.

  1. Chọn không gian làm việc và mở một bản nháp

    Không gian làm việc quyết định tiền tệ, mô hình thuế, dãy số và ngôn ngữ chứng từ trước khi có gì được gõ vào.

  2. Dựng chứng từ

    Khách hàng, dòng hàng, và lựa chọn giữa giá đã gồm hay chưa gồm thuế. Cách xử lý thuế được nêu rõ, và trường hợp miễn thuế hay reverse charge sẽ không lưu được nếu thiếu ghi chú.

  3. Xem tổng tiền chốt lại

    Việc làm tròn diễn ra theo từng thành phần ở đơn vị nhỏ nhất dạng số nguyên, nên thứ được in ra là thứ cộng lại đúng, chứ không phải thứ mà một số thực tình cờ tạo ra.

  4. Phát hành

    Một giao dịch duy nhất đánh số chứng từ và chụp lại vào trong đó thông tin khách hàng, doanh nghiệp, tiền tệ, ngôn ngữ, cách xử lý thuế và khổ giấy.

  5. Theo dõi, hủy, hoặc chuyển đổi

    Trạng thái được theo dõi thủ công, một lần hủy để con số ở trạng thái đã tiêu, và một báo giá mang theo liên kết tới hóa đơn mà nó đã trở thành.

  6. In hoặc xuất ra

    Một bản in lặp lại tiêu đề bảng qua các trang, hoặc CSV cho danh sách, hoặc một bản sao lưu JSON có đánh phiên bản cho cả ba không gian làm việc.

Cái gì là thật, cái gì thì không

Không có máy chủ nào phía sau, và chính điều đó quyết định cả hai cột. Cột trái là những phần mà ràng buộc ấy khiến chúng đáng được làm cho tử tế. Cột phải là những phần nó loại trừ.

Được xử lý thật

  • Việc làm tròn khớp được cả trên giá đã gồm thuế lẫn chưa gồm thuế
  • Cách đánh số không thể phát hành trùng, và các bộ đếm sống sót qua một lần khôi phục
  • Chứng từ đã phát hành thì hết sửa được, và hủy là cách sửa sai duy nhất
  • Kiểm tra xung đột giữa các tab trên chứng từ, khách hàng, sản phẩm và thiết lập

Cố ý không làm thật

  • Đây là một quy trình lập hóa đơn, không phải hệ thống kê khai thuế hay nộp hóa đơn điện tử cho cơ quan nhà nước
  • Các mẫu cấu hình là ví dụ sửa được. Chúng không quyết định cách xử lý thuế áp dụng cho một giao dịch thật
  • Không có quy đổi tiền tệ, và không có gì được gửi email hay tải lên bất cứ đâu
  • Việc đánh số chỉ duy nhất trong một không gian làm việc trên một trình duyệt. Hai thiết bị không được điều phối với nhau

Được xây dựng thế nào

Phần mô tả này thuyết phục hơn cả bản thân ứng dụng, nên nó nằm ngay trên trang thay vì trong một kho mã không ai mở được.

Công nghệ
Svelte 5, TypeScript và Vite, với IndexedDB cho mọi bản ghi và decimal.js-light cho phần tính toán.
Tiền tệ
Đơn vị nhỏ nhất dạng số nguyên xuyên suốt, đồng với VND và phần trăm đơn vị ở những nơi khác. Không có số thực nào ở gần một dòng tổng tiền.
Ngoại tuyến
Bản build tạo ra một service worker lưu trước gói mã, phông chữ và biểu tượng, nên sau một lần truy cập thành công thì ứng dụng mở được, tạo được chứng từ, lưu và in mà không cần mạng. Việc cập nhật gói mã không bao giờ ghi đè lên dữ liệu nghiệp vụ.
Kiểm thử
Các bộ test trên trình duyệt cho ba quy trình theo vùng, cộng thêm test hồi quy cho thuế mặc định, nhập liệu số, điều hướng, thiết lập giữa các tab và sửa thư mục, hộp thoại lưu đang chờ, và việc sửa khách hàng trong lúc random dòng hàng.

Bản demo này là bằng chứng cho dịch vụ nào

Một bản demo tồn tại để chứng minh điều gì đó trong danh sách dịch vụ, chứ không phải để tự nó gây ấn tượng. Đây là những dịch vụ mà bản demo này chứng minh.

Các bản demo khác

Mỗi bản là một loại bài toán khác nhau, và tất cả đều nằm trong menu Bản demo ở đầu trang.

Muốn một bản như thế này nhưng chạy theo quy tắc của bạn?

Bản này được làm dưới một ràng buộc mà không ai tự chọn. Bản của bạn sẽ có máy chủ, tài khoản thật, và cả những phần thực sự khó trong nghiệp vụ. Hãy cho chúng tôi biết phần mềm cần làm được gì, chúng tôi sẽ nói cần những gì để làm ra nó.

Cứ mang tới bài toán còn ngổn ngang. Đó là kiểu trao đổi chúng tôi thích nhất.