Tạo hóa đơn PDF bằng PHP MySQL và thư viện dompdf

Trong hướng dẫn trước của chúng tôi, bạn đã học cách phát triển Hệ thống kiểm kê với Ajax, PHP & MySQL. Trong hướng dẫn này, chúng tôi sẽ giải thích cách phát triển hệ thống hóa đơn của riêng bạn với PHP & MySQL

Hóa đơn hoặc Hệ thống quản lý thanh toán rất phổ biến vì hiện nay hầu hết các giao dịch đều được thực hiện trực tuyến. Bây giờ mọi người bán và người mua đều cần hệ thống hóa đơn để xử lý thanh toán trực tuyến. Vì vậy, nếu bạn đang tìm kiếm hóa đơn hoặc hệ thống thanh toán bằng PHP và MySQL, thì bạn đang ở đây đúng nơi. Trong hướng dẫn này, bạn sẽ học cách phát triển hóa đơn và hệ thống thanh toán bằng PHP và MySQL

Ngoài ra, đọc

  • Xây dựng hệ thống quản lý nội dung với PHP & MySQL
  • Xây dựng hệ thống trò chuyện trực tiếp với Ajax, PHP & MySQL
  • Xây dựng hệ thống bình luận với Ajax, PHP & MySQL

Chúng tôi sẽ trình bày hướng dẫn này theo các bước đơn giản với bản demo trực tiếp để phát triển hệ thống hóa đơn hoàn chỉnh để tạo và chỉnh sửa hóa đơn với bản in hóa đơn để chuyển đổi sang định dạng PDF. Chúng tôi cũng sẽ cho phép tải xuống mã nguồn hoàn chỉnh của bản demo trực tiếp


Vì chúng tôi sẽ giới thiệu hướng dẫn này với ví dụ trực tiếp để xây dựng hệ thống hóa đơn với PHP & MySQL, nên các tệp chính cho ví dụ này sẽ như sau

  • mục lục. php
  • hóa đơn_list. php
  • tạo hóa đơn. php
  • edit_invoice. php
  • hoạt động. php
  • hóa đơn. js
  • Hóa đơn. php

Bước 1. Tạo bảng cơ sở dữ liệu MySQL
Đầu tiên, chúng ta sẽ tạo bảng invoice_user để lưu trữ chi tiết đăng nhập của người dùng nhằm cho phép người dùng đã đăng nhập quản lý hóa đơn.

CREATE TABLE `invoice_user` [
`id` int[11] NOT NULL,
`email` varchar[100] NOT NULL,
`password` varchar[100] NOT NULL,
`first_name` varchar[100] NOT NULL,
`last_name` varchar[100] NOT NULL,
`mobile` bigint[20] NOT NULL,
`address` text NOT NULL
] ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `invoice_user`
  ADD PRIMARY KEY [`id`];
  
ALTER TABLE `invoice_user`
  MODIFY `id` int[11] NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=123457;

Đây là dữ liệu kết xuất người dùng mẫu

INSERT INTO `invoice_user` [`id`, `email`,
 `password`, `first_name`, `last_name`,
 `mobile`, `address`] 
VALUES
[123456, 'admin@phpzag.com', '12345', 
'Admin', '', 12345678912, 'New Delhi 110096 India.'];

Ta sẽ tạo bảng invoice_order để lưu thông tin chi tiết hóa đơn


CREATE TABLE `invoice_order` [
`order_id` int[11] NOT NULL,
`user_id` int[11] NOT NULL,
`order_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`order_receiver_name` varchar[250] NOT NULL,
`order_receiver_address` text NOT NULL,
`order_total_before_tax` decimal[10,2] NOT NULL,
`order_total_tax` decimal[10,2] NOT NULL,
`order_tax_per` varchar[250] NOT NULL,
`order_total_after_tax` double[10,2] NOT NULL,
`order_amount_paid` decimal[10,2] NOT NULL,
`order_total_amount_due` decimal[10,2] NOT NULL,
`note` text NOT NULL
] ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `invoice_order`
  ADD PRIMARY KEY [`order_id`];
  
ALTER TABLE `invoice_order`
  MODIFY `order_id` int[11] NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=682;

Đây là dữ liệu kết xuất mẫu cho đơn đặt hàng hóa đơn

INSERT INTO `invoice_order` [`order_id`, `user_id`, `order_date`, `order_receiver_name`, 
`order_receiver_address`, `order_total_before_tax`,
 `order_total_tax`, `order_tax_per`, 
`order_total_after_tax`, `order_amount_paid`,
 `order_total_amount_due`, `note`] 
VALUES
[2, 123456, '2021-01-31 19:33:42', 'abcd',
 'Admin\r\nA - 4000, Ashok Nagar, New Delhi,
 110096 India.\r\n12345678912\r\nadmin@phpzag.com',
 342400.00, 684800.00, '200', 1027200.00, 
45454.00, 981746.00, 'this note txt'];

Chúng tôi cũng sẽ tạo bảng hóa đơn_order_item để lưu trữ chi tiết các mặt hàng hóa đơn

CREATE TABLE `invoice_order_item` [
`order_item_id` int[11] NOT NULL,
`order_id` int[11] NOT NULL,
`item_code` varchar[250] NOT NULL,
`item_name` varchar[250] NOT NULL,
`order_item_quantity` decimal[10,2] NOT NULL,
`order_item_price` decimal[10,2] NOT NULL,
`order_item_final_amount` decimal[10,2] NOT NULL
] ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `invoice_order_item`
  ADD PRIMARY KEY [`order_item_id`];
  
ALTER TABLE `invoice_order_item`
  MODIFY `order_item_id` int[11] NOT NULL 
AUTO_INCREMENT, AUTO_INCREMENT=4364;

Đây là dữ liệu kết xuất mẫu cho các mục đặt hàng hóa đơn

INSERT INTO `invoice_order_item` [`order_item_id`, 
`order_id`, `item_code`, `item_name`, 
`order_item_quantity`, `order_item_price`,
 `order_item_final_amount`] VALUES
[4100, 2, '13555', 'Face Mask', 120.00, 2000.00, 240000.00],
[4101, 2, '34', 'mobile', 10.00, 10000.00, 100000.00],
[4102, 2, '34', 'mobile battery', 1.00, 34343.00, 34343.00],
[4103, 2, '34', 'mobile cover', 10.00, 200.00, 2000.00],
[4104, 2, '36', 'testing', 1.00, 2400.00, 2400.00];

Bước 2. Triển khai đăng nhập người dùng
Trước tiên, chúng tôi sẽ tạo chức năng đăng nhập người dùng để cung cấp quyền truy cập quản lý hóa đơn cho người dùng đã đăng nhập. Chúng tôi sẽ tạo biểu mẫu đăng nhập trong chỉ mục. php.

Build Invoice System with PHP & MySQL

Invoice User Login:

Login

Chúng tôi sẽ xử lý chức năng đăng nhập khi gửi biểu mẫu đăng nhập bằng phương thức loginUsers[]


Bước 3. Hiển thị danh sách hóa đơn
Bây giờ, chúng tôi sẽ hiển thị danh sách hóa đơn của người dùng trong invoice_list. tập tin php. Chúng ta sẽ gọi phương thức hóa đơn getInvoiceList[] để lấy danh sách hóa đơn của người dùng đã đăng nhập.

________số 8

Bước 4. Triển khai Tạo hóa đơn
Bây giờ trong create_invoice. php, chúng tôi sẽ triển khai chức năng tạo hóa đơn. Chúng tôi sẽ tạo biểu mẫu hóa đơn với các trường bắt buộc để lưu chi tiết hóa đơn với các mặt hàng và tổng số.

PHP Invoice System

From,





To,

Item No Item Name Quantity Price Total
- Delete + Add More

Notes:


Chủ Đề