Tải bản đầy đủ (.docx) (20 trang)

Báo cáo thực tập lập trình hóa đơn điện tử trên NET CORE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (139.98 KB, 20 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

LẬP TRÌNH HĨA ĐƠN ĐIỆN TỬ
TRÊN .NET CORE

Công ty thực tập : LBC international
Người phụ trách : Nguyễn Thanh Cường
Thực tập sinh : 16520199 - Nguyễn Tiến Đạt

TP. Hồ Chí Minh, tháng 12 năm 2020


Nguyễn Tiến Đạt

1

LỜI MỞ ĐẦU

Ngày nay, ngành kỹ thuật phần mềm là một bộ phận không thể thiếu của ngành công nghiệp
phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ, ngành kỹ thuật phần mềm đã và đang là nhân tố
kích thích sự phát triển của cơng nghệ thông tin thế giới, cả về phần cứng và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ. Ngành công
nghiệp non trẻ này đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty hàng đầu về
game trên thế giới. Bên cạnh những công ty phát triển phần mềm trẻ tuổi trong nước, những công ty
phần mềm khác trên thế giới (như LBC) cũng gia nhập vào thị trường Việt Nam, góp phần rất lớn
vào sự phát triển tích cực của ngành phát triển phần mềm Việt.
Ngành phát triển phần mềm được sinh ra là do nhu cầu của mọi người bằng những thiết bị
công nghệ mới nhất. Và cũng chính mọi người sẽ là nguồn nhân lực quan trọng cho việc phát triển


của ngành phần mềm sau này. Vì lý do này, em quyết định chọn lập trình phần mềm làm định hướng
cho việc học tập của mình.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như
muốn được tham gia làm phần mềm (Web) trong một môi trường chuyên nghiệp, em có dự định là
sẽ thực tập trong kì này. Vì vậy, em quyết định chọn LBC international - một môi trường lý tưởng,
hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này.


Nguyễn Tiến Đạt

2

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty LBC international đã tạo điều kiện cho em có cơ hội được
thực tập tại cơng ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, nhóm thực
tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được một backend phục vụ
cho Retail. Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian,cơng sức để
hướng dẫn chúng em hồn thành đợt thực tập này.
Đặc biệt cảm ơn anh Nguyễn Thanh Cường, đã training .NET core, hướng dẫn, giúp đỡ cho
chúng em tận tình cả những khó khăn trong cơng việc, đến những khó khăn việc làm quen với mơi
trường mới, hướng dẫn các quy trình nghiệp vụ trong hệ thống Retails; Cảm ơn anh Long đã hướng
dẫn giúp em giải đáp những khó khăn trong q trình lập trình.
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện
em làm bài báo cáo này.
Nguyễn Tiến Đạt
TpHCM, 17/12/2020



Nguyễn Tiến Đạt

3

NHẬN XÉT CỦA KHOA


Nguyễn Tiến Đạt

4

MỤC LỤC

1. Giới thiệu công ty LBC international 6 2. Sản phẩm của công ty 6 2.1. Các cơng cụ làm việc 7 2.2.
Tìm hiểu ngơn ngữ C# nâng cao 7 2.3. Lập trình EInvoice với BKAV einvoice: 8 2.4. Lập trình trên .Net
Core 10 2.5 Thực hiện project 11 2.6 Lịch làm việc 11 3: Chi tiết về project 13 3.1 Giới thiệu về
Services 13 3.2 Front-End: 13 3.3 Thực hiện 14 3.4 Kế hoạch 14 TÀI LIỆU THAM KHẢO 16 TỔNG
KẾT 17


Nguyễn Tiến Đạt

5

Chương 1: Giới thiêu công ty thực tập

1. Giới thiệu công ty LBC international
Là một đội ngũ năng động bao gồm các chuyên gia am hiểu về công nghệ lẫn thị trường
bán lẻ. Chúng tôi hỗ trợ tối ưu và cải tiến các nền tảng quản lý bán lẻ để đáp ứng với
nhu cầu phát triển của doanh nghiệp và thị trường.

Với hơn 10 năm kinh nghiệm làm việc với Retail Pro và hiện là đối tác chính thức của
họ tại thị trường Việt Nam, công ty không ngừng nỗ lực để giúp khách hàng tạo ra nhiều
giá trị hơn bằng cách tối ưu hố quy trình kinh doanh thông qua việc ứng dụng công
nghệ.

2. Sản phẩm của công ty
Retail Pro Prism - Giải pháp quản lý bán lẻ toàn diện dành cho các lĩnh vực đặc thù
Retail Pro Prism là thế hệ tiếp theo của phần mềm quản lý bán lẻ thông minh do Retail Pro nhà cung cấp giải pháp quản lý bán lẻ hàng đầu thế giới*- phát triển, với đầy đủ các phân hệ
chức năng cho phép xử lý khối lượng công việc cho cả hệ thống.


(*) kết quả được cơng bố bởi tập đồn nghiên cứu tồn cầu về cơng nghệ IHL vào tháng
11/2019

Nguyễn Tiến Đạt

6

Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Tích hợp hóa đơn điện tử BKAV vào cơng nghệ .NET core” nhằm
mục đích giúp sinh viên thực tập được đào tạo tồn diện về quy trình bán lẻ đồng thời rèn luyện
những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp. Tại cơng ty, sinh viên có cơ hội
được học tập, khám phá và làm việc trong một môi trường phát triển ứng dụng bán lẻ chun
nghiệp.

1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian : 1 ngày
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triên
(như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của cơng

ty .
Ngồi ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như
thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…
Kết quả : Hiểu thêm về công ty LBC Int, q trình thành lập và phát triển. Có thêm các kỹ
năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm
hơn.

2. Nghiên cứu kỹ thuật
2.1. Các công cụ làm việc
Thời gian : 4 ngày
Nội dung : Tìm hiểu về các cơng cụ sẽ được sử dụng trong quá trình làm việc. Trong thời


gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các cơng cụ sẽ giúp ích cho
trong cơng việc sau này. Một số phần mềm trong số đó như Microsoft Team - sử dụng
trong làm việc nhóm, VMWare– Máy ảo với mục đích setup nhanh hơn, Notepad ++ một chương trình soạn thảo văn bản rất hữu ích và phổ biến với lập trình viên, Retails Pro
Prism ứng dụng bán lẻ của công ty, VisualStudio,…
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các công cụ với
nhau, so với việc dung các IDE.
2.2. Tìm hiểu ngơn ngữ C# nâng cao
Thời gian : 5 ngày (1 tuần)

Nguyễn Tiến Đạt

7
Nội dung : Được training về các kỹ thuật C# nâng cao, những kiến thức quan trọng cho
việc tối ưu trên .NET core.
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính như

tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình. Ngồi ra, thực tập sinh còn được
hướng dẫn về cách thiết kế lớp cho các đối tượng.
- Con trỏ :
Con trỏ là môt phần rất quan trọng trong lập trình game, vì cần phải sử dụng con trỏ
để cấp phát động, truyền tham số qua lại các hàm, các lớp.
- Quản lý code
Thực tập sinh sẽ được hướng dẫn về cách code sao cho dễ bảo trì, dễ đọc hiểu, gọn và
sạch đẹp.
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty.
- Làm các bài thực hành, kiểm tra về kiến thức đã học.


Kết quả :
- Nâng cao kỹ năng lập trình với ngơn ngữ C#.
- Có được những kiến thức quan trọng cho việc lập trình Backend sau này. - Ngồi ra còn
được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu.
2.3. Lập trình EInvoice với BKAV einvoice:
Nội dung: Các kiến thức cơ bản về EInvoice để tạo một einvoice đơn giản: Khái niệm cơ bản về hóa đơn điện tử.
Theo khoản 1 Điều 3 trong Thông tư số 32/2011/TT-BTC ngày 14/03/2011 của Bộ
Tài Chính thì:
Hóa đơn điện tử là tập hợp thơng điệp dữ liệu về bán hàng hoá, cung ứng dịch vụ
được tạo, lập, gửi, nhận, lưu trữ quản lý bằng phương tiện điện tử
Hóa đơn điện tử được khởi tạo, lập, xử lý trên hệ thống máy tính của tổ chức đã được
cấp mã số thuế khi bán hàng hóa, dịch vụ và được lưu trữ trên máy tính của các bên
theo quy định của pháp luật về giao dịch điện tử.

Nguyễn Tiến Đạt

8

Hóa đơn điện tử gồm các loại: hóa đơn xuất khẩu, hóa đơn giá trị gia tăng, hóa đơn
bán hàng, hóa đơn khác gồm: tcm, vé, thẻ, phiếu thu tiền bảo hiểm,…; phiếu thu tiền
cước vận chuyển hàng khơng, chứng từ thu cước phí vận tài quốc tế, chứng từ thu phí
dịch vụ ngân hàng…, hình thức và nội dung được lập theo thông lệ quốc lế và các quy
định của pháp luật có liên quan


Hóa đơn điện tử đảm bảo nguyên tắc: xác định được số hóa đơn theo ngun tắc liên
tục và trình tự thời gian, mỗi số hóa đơn đảm bảo chỉ được lập và sử dịnh một lần duy
nhất..
- SOAP:
SOAP dựa hoàn toàn vào XML để cũng cấp các services truyền tin. Microsoft ban
đầu phát triển SOAP để thay thế cho các công nghệ cũ hơn không hoạt động tốt trên
Internet như Distributed Component Object Model (DCOM) and Common Object
Request Broker Architecture (CORBA). Những cơng nghệ này khơng thành cơng vì
chúng dựa vào truyền tin nhị phân, cách truyền tin XML mà SOAP sử dụng làm việc
tốt hơn qua Internet.
XML được sử dụng để tạo ra các requests và nhận responses trong SOAP, nó có thể
trở nên cực kỳ phức tạp. Trong một số ngơn ngữ lập trình, bạn cần phải xây dựng các
requests đó bằng tay, điều này trở nên mơ hồ vì SOAP khơng dung nạp được các lỗi.
Tuy nhiên, một vài ngơn ngữ khác có thể sử dụng các phím tắt mà SOAP cung cấp;
Có thể giúp bạn giảm bớt effort cần thiết để tạo request và phân tích responses. Thực
tế, khi làm việc với .NET, bạn thậm chí chưa bao giờ gặp đến XML..
- Security
base64 là phương thức convert dạng mã hóa 2 chiều từ binary sang string để có thể
gửi đi được trong network một cách dễ dàng. Các binary lúc này sẽ được thể hiện
bằng các ký tự mã ASCII.
- Tăng tốc độ tải
Zip các Object của request giúp tăng tốc độ tải của hệ thống.


Thực hiện :

Nguyễn Tiến Đạt


9

- Tham gia đầy đủ các buổi training.
- Làm các bài tập thực hành như tạo hóa đơn điện tử đơn giản, …
- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.
Kết quả :
- Hiểu được những khái niệm cơ bản trong tạo lập hóa đơn điện tử.
- Hiểu được việc quan trọng của Security trong việc gửi dữ liệu.
2.4. Lập trình trên .Net Core
Nội dung : Các kỹ thuật tạo ra một hóa đơn điện tử, sử dụng BKAV eHoaDon trong .Net
Core.
Định nghĩa về .Net Core:
- ASP.NET Core là gì Nó là một open-source mới và framework đa nền tảng (crossplatform) cho việc xây dựng những ứng dụng hiện tại dựa trên kết nối đám mây, giống
như web apps, IoT và backend cho mobile.
- Ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên phiên bản đầy đủ
của .NET Framework. Nó được thiết kế để cung cấp và tối ưu development
framework cho những dụng cái mà được triển khai trên đám mây (cloud) hoặc chạy
on-promise.
- Nó bao gồm các thành phần theo hướng module nhằm tối thiểu tài nguyên và chi phí
phát triển, như vậy bạn giữ lại được sự mềm dẻo trong việc xây dựng giải pháp của
bạn. Bạn có thể phát triển và chạy những ứng dụng ASP.NET Core đa nền tảng trên
Windows, Mac và Linux.Tạo ứng dụng Android:
Được các trainer hướng dẫn tạo ra một ứng dụng cơ bản, cấu hình quyền truy cập cho
android, cách sử dụng các công cụ để biên dịch, chạy android trên máy ảo trên PC.
- Lập trình tạo lập và quản lý hóa đơn điện tử bằng C#:

Để có thể lập trình hóa đơn điện tử trên C# và đưa lên BKAV eHoaDon, lập trình viên
phải hiểu được cách Retails Pro Prism hoạt động, sau đó hiểu được luồng hoạt động
của BKAV ehoadon để đẩy dữ liệu lên. Quá trình này mất rất nhiều bước như xử lý số
liệu, bảo mật dữ liệu, tối ưu tốc độ tải lên.
Thực hiện :
- Tham gia đầy đủ các buổi training.


Nguyễn Tiến Đạt

10
- Tạo ra một Service để tạo hóa đơn lưu vào hệ thống và đẩy lên BKAV ehoadon. Kết

quả:
- Đã có thể tạo ra Service để tạo hóa đơn lưu vào hệ thống và đẩy lên BKAV ehoadon. 2.5

Thực hiện project
Sau ba tháng được training và thực hành, thực tập sinh đã nắm được những kiến thức cơ bản
về C#, BKAV eHoaDon, .Net Core. Trong tháng thứ hai và ba, trainer đã hướng dẫn thực tập
sinh áp dụng những kiến thức đã học để thực hiện một project ứng dụng tạo ehoadon cho hệ
thống công ty cung cấp cho khách hàng.
Chi tiết đồ án sẽ được nói ở phần sau.
2.6 Lịch làm việc
Tuần

Cơng việc

Người hướng dẫn

1


- Tìm hiểu về công ty,
cách tổ chức của
công ty.
- Làm quen với các
công cụ làm việc
trong công ty.
- Học cách trao đổi,
làm việc qua email.

Chị Phạm Thanh
Bình

2

- Tìm hiểu ngơn ngữ
lập trình C# nâng
cao
- Thực hành C#
- Làm bài test C#

Anh Nguyễn
Thanh Cường

3

- Tìm hiểu về BKAV
ehoadon
- Thực hành một số
luồng hoạt động


bản

Anh Nguyễn Văn
Long,
Anh
Nguyễn
Thanh
Cường

Mức
độ
hoàn
thành

Nhận xét của
người hướng dẫn


4

- Tìm hiểu về .Net
Core
- Thực hành tạo một
Service .Net Core
cơ bản.

Anh Nguyễn
Thanh Cường


Nguyễn Tiến Đạt

11

5

Giai đoạn Alpha:
- Lên kế hoạch
- Viết Service tạo hóa
đơn điện tử cho hệ
thống của mình.
- Tìm hiểu các quy
trình nghiệp vụ

Anh Nguyễn
Thanh Cường

6

Giai đoạn Alpha(tiếp): Viết code để đảm bảo
tính bảo mật dữ liệu.
- Viết code Zip các
object để tăng tốc
độ tải.

Anh Nguyễn
Thanh Cường

7


Giai đoạn Beta:
- Viết Services tạo
ehoadon trên Bkav
- Viết Services tự động
tạo hóa đơn trên
Bkav khi hệ thống
tạo hóa đơn mới.

Anh Nguyễn
Thanh Cường


8

Giai đoạn Beta và giai
đoạn kết thúc, báo cáo :
- Viết các tính năng
khác của ehoadon
như hóa đơn giảm,
hóa đơn giá trị gia
tăng.
- Tự tạo hóa đơn cuối
ngày
- Fix bug backend, fix
frontend.
- Báo cáo cuối đợt
thực tập.

Anh Nguyễn
Thanh Cường


Nguyễn Tiến Đạt

12

3: Chi tiết về project

3.1 Giới thiệu về Services
Services có chức năng lấy các hóa đơn và chia chúng theo trạng thái: Đã in hết mặt hàng
trong hóa đơn, Chưa in hết, Chưa in mặt hàng nào. Front-end chia các hóa đơn thành các
màu theo trạng thái. Sau đó người dùng chọn hóa đơn muốn in ehoadon, chọn các mặt hàng
muốn in ra hóa đơn. Cuối ngày những mặt hàng nào chưa được in ra và các mặt hàng đổi trả
sẽ được gom lại và in ra.
1.1. Các Services
Tên Service
Get bills Today

Mục Đích
Lấy tất cả các hóa đơn
trong ngày

Mức Độ Hoàn Thành
100%


Create EInvoice

Tạo hóa đơn điện tử với
những mặt hàng đã
chọn


100%

Create EInvoice Sale
End Of Day

Tạo hóa đơn gồm tất cả
các mặt hàng bán chưa
được in trong ngày

90%

Create EInvoice Return
End Of Day

Tạo hóa đơn gồm tất cả
các mặt hàng đổi trả
trong ngày

100%

Create EInvoice Sale
By Day

Tạo hóa đơn gồm tất cả
các mặt hàng bán chưa
được in theo ngày

100%


Create EInvoice Return
By Day

Tạo hóa đơn gồm tất cả
các mặt hàng đổi trả
theo ngày

100%

3.2 Front-End:
Mô tả:
Là test các Service được tạo ra, được viết bằng HTML + CSS + JS. Chia các hóa đơn bằng
màu theo trạng thái : Vàng (đã in một ít), Trắng (đã in hết), Xanh (chưa in). Hiển

Nguyễn Tiến Đạt

13
thị các mặt hàng của hóa đơn được chọn và hiển thị màu theo trạng thái : Đỏ (hàng đổi trả),
Trắng (đã in), Xanh (chưa in). Sử dụng AJAX để hiển thị nhanh mà không cần lấy dữ liệu


mới từ server.

3.3 Thực hiện
- Nguyễn Tiến Đạt
Và sự giúp đỡ tận tình của team trainer LBC international.

3.4 Kế hoạch
Giai đoạn Alpha:
- Tìm hiểu quy trình nghiệp vụ

- Tìm hiểu ứng dụng Retails Pro Prism
- Tìm hiểu cấu trúc dữ liệu của ứng dụng
- Tìm hiểu quy trình gửi request của BKAV ehoadon
- Tạo một service test việc tạo ehoadon
Kết quả :
- Tính năng trên đã được thực hiện.

Giai đoạn Beta:

Nguyễn Tiến Đạt


14

- Tạo Service tạo hóa đơn điện tử
- Tạo Service lấy danh sách hóa đơn
- Tạo Service tạo hóa đơn sale theo ngày.
- Tạo Service tạo hóa đơn return theo ngày.
- Tạo UI để sử dụng các Services.
Kết quả : Đã hồn thành tồn bộ những tính năng trên.


Nguyễn Tiến Đạt

15

TÀI LIỆU THAM KHẢO

For .Net Core
/>For BKAV ehoadon

/>For SOAP
/>For Sercurity
/>xtencoder.encode?view=aspnetcore-2.2
For Zip
/>

Nguyễn Tiến Đạt

16

TỔNG KẾT
Như vậy, chỉ trong vòng ba tháng ngắn ngủi, nhóm đã kịp hồn thành một Service tạo hóa
đơn điện tử trên nền tảng .NET core. Service đã có khá đầy đủ các tính năng đã đề ra ban đầu. Do
thời gian có hạn nên tính năng Services cịn đơn giản, tính năng chưa đầy đủ như mong đợi. Nhưng
do Services phát triển theo framework có tính kế thừa nên sau này khi có thời gian sẽ có thể phát
triển lên mức cao hơn.
Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer LBC International. Cảm ơn Anh
Nguyễn Thanh Cường đã giúp em hoàn thành bài báo cáo này.


Nguyễn Tiến Đạt

17



×