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
Trước tiên, chúng tôi sẽ tạo bảng hóa đơn_user để lưu trữ chi tiết đăng nhập của người dùng để cho phép người dùng đã đăng nhập quản lý hóa đơn
Đâ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. Thực hiện đă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
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()
<?php if (!empty($_POST['email']) && !empty($_POST['pwd'])) { include 'Invoice.php'; $invoice = new Invoice(); $user = $invoice->loginUsers($_POST['email'], $_POST['pwd']); if(!empty($user)) { $_SESSION['user'] = $user[0]['first_name']."".$user[0]['last_name']; $_SESSION['userid'] = $user[0]['id']; $_SESSION['email'] = $user[0]['email']; $_SESSION['address'] = $user[0]['address']; $_SESSION['mobile'] = $user[0]['mobile']; header("Location:invoice_list.php"); } else { $loginError = "Invalid email or password!"; } } ?>
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
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ố
Chúng tôi sẽ lưu chi tiết hóa đơn bằng phương thức hóa đơn saveInvoice()
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.'); 0Bước5. Thực hiện cập nhật hóa đơn
Bây giờ trong edit_invoice. php, chúng tôi sẽ triển khai chức năng chỉnh sửa 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 chỉnh sửa hóa đơn với các mục và tổng số
Chúng tôi sẽ chỉnh sửa lưu hóa đơn bằng cách sử dụng phương thức hóa đơn updateInvoice()
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.'); 2
Bước 6. Thực hiện in hóa đơn
Bây giờ chúng ta sẽ triển khai chức năng tạo PDF hóa đơn trong print_invoice. php để cho phép người dùng in hoặc tải xuống hóa đơn. Chúng tôi sẽ lấy chi tiết hóa đơn từ các bảng cơ sở dữ liệu bằng cách sử dụng phương thức hóa đơn getInvoice() và getInvoiceItems(). Sau đó, chúng tôi sẽ sử dụng thư viện PHP Dompdf để tạo PDF từ HTML
Bước7. Thực hiện Xóa hóa đơn
Chúng tôi sẽ triển khai chức năng xóa hóa đơn trong hóa đơn. js. Chúng tôi sẽ xử lý chức năng trên trình xử lý deleteInvoice và thực hiện hành động yêu cầu Ajax. php để xóa hóa đơn khỏi bảng cơ sở dữ liệu
trong hành động. php, chúng tôi sẽ kiểm tra hành động xóa hóa đơn và id hóa đơn để xóa hóa đơn bằng phương thức hóa đơn deleteInvoice() và trả về phản hồi JSON