Hệ thống quản lý bánhàng ở công ty mặc dù đã được tin học hóa, nhưng do khối lượng hàng hóa lớn, đòihỏi cần có một phần mềm tin học có khả năng quản lý một cách chính xác, thốngnhất, cun
LÝ LUẬN CHUNG VỀ XÂY DỰ̣NG PHẦ̀N MỀM KẾ́ TOÁN DOANH THU BÁN HÀNG TRONG DOANH NGHIỆP
Cơ sở lý luận để xây dựng phần mềm kế́ toá́n trong doanh nghiệp
1.1.1 Khái niệm, đặc điểm, vai trò và các thành phần của phần mềm kế toán trong doanh nghiệp
Phần mềm (hay còn gọi là Software) được hiểu là tập hợp các tập tin có mối liên hệ chặt chẽ với nhau, giữ vai trò thực hiện một số nhiệm vụ, chức năng nào đó trên thiết bị điện tử Các tập tin này có thể bao gồm: các file mã nguồn được viết bằng một hoặc kết hợp nhiều ngôn ngữ lập trình khác nhau, các file dữ liệu, các file hướng dẫn….
Phần mềm kế́ toá́n là một hệ thống được tổ chức dưới dạng chương trình máy tính nhằm tự động thực hiện một số nhiệm vụ, chức năng hay giải quyết một vấn đề cụ thể nào đó.
Phần mềm kế́ toá́n là phần mềm ứng dụng trong việc thu nhận, lưu trữ, xử lí các nghiệp vụ, lưu trữ và cung cấp thông tin kế toán trên máy tính Quá trình đó bắt đầu từ việc thu nhận thông tin từ chứng từ gốc, xử lí thông tin và cuối cùng là cung cấp thông tin dưới dạng các sổ sách kế toán, báo cáo tài chính, báo cáo quản trị và các báo cáo thống kê phân tích khác.
* Yêu cầu của phần mềm kế toán
Phần mềm kế toán phải hỗ trợ cho người sử dụng tuân thủ các quy định của Nhà nước về kế toán Khi sử dụng phần mềm kế toán không làm thay đổi bản chất, nguyên tắc và phương pháp kế toán được quy định tại các văn bản pháp luật hiện hành về kế toán.
Phần mềm kế toán phải có khả năng nâng cấp, có thể sửa đổi, bổ sung phù hợp với những thay đổi nhất định của chế độ kế toán và chính sách tài chính mà không ảnh hưởng đến dữ liệu đã có
Phần mềm kế toán phải tự động xử lý và đảm bảo sự chính xác về số liệu kế toán
Phần mềm kế toán phải đảm bảo tính bảo mật thông tin và an toàn dữ liệu
1.1.1.2 Vai trò của phần mềm kế toán
Phần mềm kế toán đang ngày càng trở nên phổ biến và được áp dụng rộng rãi bởi những vai trò vô cùng lớn của nó mang lại cho các kế toán, kiểm toán, Nhưng để một phần mềm kế toán phát huy được hết vai trò của nó thì doanh nghiệp phải lựa chọn được phần mềm kế toán phù hợp nhất với doanh nghiệp của mình.
Phần mềm kế toán sẽ giúp doanh nghiệp ghi lại và xử lý các nghiệp vụ kế toán một cách dễ dàng và nhanh chóng Cung cấp những bản báo cáo hết sức chi tiết cùng với những dữ liệu cần thiết khác dành cho việc phục vụ cho chiến lược kinh doanh của công ty.
Hỗ trợ các nghiệp vụ kế toán như: Giảm bớt áp lực cho các sổ sách kế toán,tính và chi trả lương,giải quyết các vấn đề về thuế thu nhập nhanh gọn,chuẩn bị khai thuế, sổ sách kế toán,chuẩn bị các báo cáo tài chính,…Tự động tạo các bút toán định kỳ, các bút toán phân bổ và kết chuyển cuối kỳ,kết nối thống nhất số liệu từ tất cả các phân hệ trong phần mềm.
Thay thế toàn bộ hay một phần công việc kế toán thủ công: việc tin học hóa công tác kế toán đã thay thế một phần hay toàn bộ công việc ghi chép, tính toán, xử lí thủ công của người kế toán Căn cứ vào thông tin do phần mềm kế toán cung cấp, nhà quản lí đề ra các quyết định kinh doanh hợp lí và nhanh chóng.
Vai trò số hóa thông tin: phần mềm kế toán tham gia vào việc cung cấp thông tin được số hóa để hình thành một xã hội số Thông tin của kế toán được lưu trữ dưới dạng các tập tin của máy tính nên dễ dàng số hóa để trao đổi thông tin qua các báo cáo điện tử Thay vì đọc gửi các thông tin kế toán bằng giấy tờ qua đường bưu điện, fax,… người sử dụng thông tin kế toán có thể có được thông tin từ máy tính của họ thông qua công cụ trao tin điện tử như E-mail, Internet và các phương tiện mang tin khác.
1.1.1.3 Đặc điểm phần mềm kế toán
- Công việc kế toán thực hiện theo một chương trình PMKT trên máy vi tính
- Thiết kế theo nguyên tắc của 1 trong 4 hình thức kế toán hoặc kết hợp.
- PMKT thiết kế theo hình thức kế toán nào sẽ có loại sổ của hình thức kế toán đó
1.1.1.4 Các thành phần của phần mềm kế toán
Hiện nay có hai công nghệ lập trình: lập trình cấu trúc và lập trình hướng đối tượng.
Trong lập trình cấu trúc, mỗi phần mềm bao gồm các file chương trình, file dữ liệu, mỗi file chương trình gồm chương trình chính, chương trình con dưới dạng các hàm hoặc thủ tục để thực hiện một công việc nào đó theo thiết kế định trước.
Do đó PMKT hướng cấu trúc thường được sử dụng để xây dựng phần mềm hệ thống.
Trong lập trình hướng đối tượng, một PMKT gồm sáu thành phần:
Cơ sở dữ liệu (Database): gồm một tệp DBC chứa tất cả các thông tin về các tệp trong CSDL và mối quan hệ giữa các tệp, và các tệp DBF dưới dạng các bảng.
Lớp (Class): là nơi lưu trữ các lớp do người sử dụng tự tạo dưới dạng các file, mỗi file có thể chứa nhiều lớp.
Giao diện (Form): là đối tượng cụ thể chứa các đối tượng, khi chạy Form tạo ra một cửa sổ để người dùng và máy giao tiếp Một phần mềm ứng dụng thường gồm các Form đăng nhập, Form giao diện chính, Form nhập dữ liệu, Form báo cáo,…
Báo cáo (Report): là tài liệu để đưa ra dữ liệu từ cơ sở dữ liệu ra ngoài theo khuôn dạng đã định trước.
Menu: Hệ thống Menu bao gồm các lệnh được thiết kế theo một trật tự phù hợp nhằm giúp cho người sử dụng tương tác một cách dễ dàng với phần mềm, thường được tổ chức phân cấp từ 2 đến 3 cấp.
Thành phần khác: Các thành phần khác bao gồm cac file anh, text,…
Hoạt động của PMKT được chi làm 4 giai đoạn:
Giai đoạn 1: Nhập dữ liệu
Trong giai đoạn này, kế toán phải tự phân loại các chứng từ phát sinh trong kỳ kế toán thành các nhóm( hóa đơn đầu ra, hóa đơn đầu vào, phiếu nhập kho, ) Sau đó, kế toán phải nhập dữ liệu bằng tay vào PMKT theo đúng quy chuẩn của từng PMKT đó.
Lý luận chung về kế́ toá́n doanh thu bá́n hàng trong doanh nghiệp
1.2.1 Một số khái niệm liên quan đến kế toán doanh thu bán hàng a Bán hàng và doanh thu bán hàng
Bán hàng là giai đoạn cuối cùng của quá trình tái sản xuất, quá trình này là quá trình thực hiện quan hệ trao đổi thông qua các phương tiện thanh toán để thực hiện các giá trị của sản phẩm, hàng hóa, lao vụ, dịch vụ.
Cung cấp dịch vụ là thực hiện công việc đã thỏa thuận theo hợp đồng trong 1 kỳ hoặc nhiều kỳ kế toán như cung cấp dịch vụ vận tải, du lịch, cho thuê TSCĐ
Doanh thu bán hàng là tổng giá trị của các lợi ích kinh tế doanh nghiệp đã thu được trong kỳ kế toán, phát sinh từ hoạt động sản xuất kinh doanh thông thường của doanh nghiệp, góp phần làm tăng vốn chủ sở hữu.
Doanh thu bán hàng và cung cấp dịch vụ là toàn bộ số tiền thu được từ các giao dịch và nghiệp vụ phát sinh doanh thu như bán hàng, sản phẩm, cung cấp dịch vụ,
Thuế tiêu thụ là nghĩa vụ của doanh nghiệp đối với nhà nước về hoạt động tiêu thụ sản phẩm, hàng hóa, cung cấp dịch vụ Gồm thuế:
Thuế giá trị gia tăng
Thuế tiêu thụ đặc biệt Thuế xuất khẩu b Các khoản giảm trừ doanh thu bán hàng
Các khoản giảm trừ doanh thu như: Chiết khấu thương mại, giảm giá hàng bán, doanh thu hàng bán bị trả lại Các khoản giảm trừ doanh thu là cơ sở để tính doanh thu thuần và kết quả kinh doanh trong kỳ kế toán Các khoản giảm trừ doanh thu phải được hạch toán, theo dõi chi tiết, riêng biệt trên những tài khoản kế toán phù hợp, nhằm cung cấp thông tin kế toán để lập Báo cáo tài chính.
Chiết khấu thương mại: Là khoản tiền doanh nghiệp giảm trừ cho người mua hàng do việc người mua hàng đã mua sản phẩm, hàng hóa, dịch vụ với khối lượng lớn theo thỏa thuận về chiết khấu thương mại đã ghi trên hợp đồng kinh tế mua bán hoặc cam kết mua, bán hàng.
Hàng bán bị trả lại: Là số sản phẩm, hàng hóa doanh nghiệp đã xác định là tiêu thụ, đã ghi nhận doanh thu nhưng bị khách hàng trả lại do vi phạm các điều kiện đã cam kết trong hợp đồng kinh tế hoặc theo chính sách bảo hành, như: Hàng kém chất lượng, sai quy cách, chủng loại.
Giảm giá hàng bán: Là khoản tiền doanh nghiệp (bên bán) giảm trừ cho bên mua hàng trong trường hợp đặc biệt vì lí do hàng bán bị kém phẩm chất, không đúng quy cách, hoặc không đúng thời hạn… đã ghi trong hợp đồng. c Thuế giá trị gia tăng phải nộp theo phương pháp trực tiếp
Thuế GTGT là một loại thuế gián thu, được tính trên khoản giá trị tăng thêm của hàng hóa, dịch vụ phát sinh trong quá trình sản xuất, lưu thông đến tiêu dùng.
1.2.2 Nhiệm vụ của kế toán doanh thu bán hàng
Hạch toán chính xác tình hình tiêu thụ sản phẩm, hàng hóa, dịch vụ, tình hình thanh toán với người mua, với ngân sách về các khoản thuê phải nộp.
Hạch toán chính xác giá vốn hàng bán của số sản phẩm, hàng hóa, dịch vụ,tiêu thụ.
Hạch toán chi tiết về nghiệp vụ bán hàng và xác định kết quả bán hàng vào mẫu sổ Kế toán chi tiết phù hợp.
Thường xuyên kiểm tra đôn đốc công việc và tình hình hợp đồng bán hàng, đôn đốc thanh toán tiền bán hàng, việc thanh toán chính xác kết quả bán hàng. Định kỳ lập báo cáo doanh thu theo yêu cầu của doanh nghiệp
Phản ánh đầy đủ, chính xác, kịp thời toàn bộ doanh thu tiêu thụ, chiết khấu thương mại, giảm giá hàng bán, hàng bán bị trả lại trên cơ sở đó xác định doanh thu thuần để xác định kết quả kinh doanh.
Báo cáo tình hình thực hiện kế hoạch tiêu thụ sản phẩm, hàng hóa, dịch vụ. Cung cấp thông tin kế toán phục vụ cho việc lập Báo cáo Tài Chính và định kì phân tích hoạt động kinh tế có liên quan đến quá trình bán hàng, xác định và phân phối kết quả
1.2.3 Các tài khoản kế toán sử dụng
TK sử dụng: Kế toán bán hàng sẽ lập sổ cái và sổ chi tiết cho các tài khoản
TK 511 – Doanh thu bán hàng và cung cấp dịch vụ TK 5111: Doanh thu bán hàng hóa
TK 5112: Doanh thu bán các thành phẩm
TK 5113: Doanh thu cung cấp dịch vụ
TK 5114: Doanh thu trợ cấp, trợ giá.
TK 5117: Doanh thu kinh doanh bất động sản đầu tư
TK 521 – Các khoản giảm trừ doanh thu
TK 5211: Chiết khấu thương mại
TK 5212: Giảm giá hàng bán
TK 5213: Hàng bán bị trả lại
TK 333 – Thuế và các khoản phải nộp Nhà nước.
TK 3331: Thuế GTGT phải nộp
TK 3332: Thuế tiêu thụ đặc biệt
TK 3333: Thuế xuất nhập khẩu.
+ TK 1551: Thành phẩm nhập kho
+ TK 1552: Thành phẩm bất động sản
TK 1561: Giá mua hàng hoá
TK 1562: Chi phí thu mua hàng hoá
TK 157: Hàng gửi đi bán
TK 632: Giá vốn hàng bán
TK 131: Phải thu của khách hàng
TK 112: Tiền gửi Ngân hàng
( Đối với tài khoản Tiền gửi Ngân hàng có thể mở tài khoản cấp 3 để theo dõi chi tiết cho từng ngân hàng)
1.2.4 Các chứng từ kế toán sử dụng
Các chứng từ kế toán sử dụng để kế toán doanh thu bán hàng bao gồm:
+ Hóa đơn GTGT (mẫu 01GTKT3/001).
+ Phiếu xuất kho bán hàng
+ Phiếu nhập kho hàng bị trả lại
+ Phiếu giảm giá hàng bán
1.2.5 Các hình thức sổ kế toán Áp dụng theo TT200/2014/TT-BTC
Doanh nghiệp áp dụng một trong năm hình thức kế toán có những mẫu sổ tương ứng sau:
Hình thức kế toán Nhật ký chung ghi các sổ: Sổ Nhật kí chung, Sổ Nhật kí đặc biệt.
Hình thức kế toán Nhật ký – Sổ cái ghi các sổ: Chứng từ ghi sổ, Sổ đăng ký chứng từ ghi sổ, Sổ cái, Các sổ, Thẻ kế toán chi tiết
Hình thức kế toán Chứng từ ghi sổ ghi các sổ: Nhật ký - sổ cái, Các sổ, Thẻ kế toán chi tiết
Hình thức kế toán Nhật ký- Chứng từ ghi các sổ: Nhật ký chứng từ,
Bảng kê, Sổ cái, Sổ hoặc thẻ kế toán chi tiết
Hình thức kế toán trên máy vi tính: Công việc kế toán được thực hiện theo một chương trình phần mềm kế toán trên máy vi tính Phần mềm kế toán được thiết kế theo nguyên tắc của một trong bốn hình thức kế toán không hiển thị đầy đủ quy trình ghi sổ kế toán, nhưng phải in được đầy đủ sổ kế toán và các báo cáo tài chính theo quy định Phần mêm kế toán được thiết kế theo hình thức kế toán nào sẽ có các loại sổ của hình thức kế toán đó nhưng không hoàn toàn giống mãu sổ kế toán ghi bằng tay.
1.2.7 Quy trình hạch toán kế toán doanh thu bán hàng
Đá́nh giá́ thực trạng công tá́c kế́ toá́n doanh thu bá́n hàng tại Công ty
đã cũ và sử dụng từ lâu nên hầu như tốc độ xử lý của các máy đều rất chậm.
-Năng lực phục vụ của máy tính chưa thực sự hiệu quả Còn nhiều việc phải làm thủ công.
Con người: Công ty cần tuyển thêm nhân viên có trình độ tin học cao hơn, tổ chức các buổi đào tạo sâu hơn về kiến thức công nghệ thông tin cho toàn thể nhân viên nói chung.
Cơ sở vật chất: Phòng kế toán cần đề xuất với ban lãnh đạo quyết định thay hệ thống máy tính mới, hoạt động tốt hơn.
2.3.2 Hình thức sổ kế toán và chế độ kế toán sử dụng
Các chứng từ liên quan đến bán hàng và xác định doanh thu được lập và luân chuyển theo trình tự hợp lí, cơ sở lập chứng từ chặt chẽ, đảm bảo các yếu tố pháp lí như các chữ kí bắt buộc, họ tên người lập, số hiệu chứng từ, nội dung kinh tế rõ ràng Các chứng từ được đánh số thứ tự liên tục, đầy đủ và được kiểm tra kĩ lưỡng trước khi ghi sổ, đảm bảo các yếu tố cần thiết cũng như hiệu lực của chứng từ. Việc lập các chứng từ có sự độc lập tương đối và có sự kiểm tra, đối chiếu lẫn nhau Các chứng từ luân chuyển nội bộ được thiết kế khá phù hợp và cung cấp được những thông tin cần thiết, đáp ứng yêu cầu quản lí công tác bán hàng của Công ty Sau khi ghi sổ kế toán, các chứng từ được đưa vào lưu trữ và bảo quản cẩn thận.
Tại Công ty TNHH Thương Mại Và Dịch Vụ Dược Phẩm CIC, các tài khoản sử dụng trong kế toán bán hàng và xác định doanh thu chủ yếu là tài khoản tổng hợp nên hệ thống tài khoản khá đơn giản Kết cấu và nội dung của các tài khoản sử dụng được thực hiện theo đúng quy định của Bộ Tài chính.
- Tài khoản 511 mới chỉ mở đến tài khoản cấp 2: TK 5111: Doanh thu bán hàng hóa.
- Công ty chưa mở sổ chi tiết 156 cho từng loại sản phẩm sẽ rất khó để theo dõi tình hình tiêu thụ của mỗi loại hàng hóa.
- Công ty nên chia TK 156, TK 5111 thành các tài khoản con chi tiết cho từng loại hàng hóa để dễ dàng lên báo cáo doanh thu cho từng mặt hàng
2.3.4.Tổ chức bộ sổ kế toán
Với phần hành kế toán doanh thu bán hàng, công ty sử dụng đầy đủ các loại sổ theo quy định của Bộ Tài chính, đáp ứng được yêu cầu quản lí bán hàng, từ các loại sổ chi tiết đến các sổ tổng hợp Cách trình bày sổ dễ hiểu, được ghi chép một cách đầy đủ, rõ ràng và hợp lí Quy trình ghi sổ kế toán bán hàng được thực hiện theo đúng chế độ kế toán do Bộ Tài chính ban hành, đảm bảo thuận tiện trong việc đối chiếu và kiểm tra số liệu.
Tuy nhiên vẫn còn một số hạn chế về tổ chức bộ sổ kế toán mà công ty nên xem xét: ghi chép dễ bị trùng lặp, làm tăng khối lượng ghi chép chung nên ảnh hưởng đến năng suất hoạt động và hiệu quả của công tác kế toán.
Giải phá́p khắc phục Đòi hỏi kế toán viên, kế toán trưởng phải đối chiếu khớp đúng số liệu giữa chứng từ ghi sổ với chứng từ ghi sổ khác do các đồng nghiệp khác ở phần hành kế toán khác lập trước khi ghi vào Sổ nhật ký chung.
2.3.5 Hệ thống báo cáo kế toán
Hệ thống báo cáo kế toán của Công ty TNHH Thương Mại Và Dịch Vụ Dược Phẩm CIC gồm có hệ thống báo cáo tài chính và hệ thống báo cáo quản trị. Khoản mục bán hàng được trình bày rất hợp lí trên hệ thống báo cáo tài chính.
Báo cáo kế toán quản trị chỉ được lập vào cuối quý nên không đáp ứng được yêu cầu quản lý, điều hành công việc của các cấp lãnh đạo Công ty.
Báo cáo kế toán quản trị không những chỉ được lập theo định kỳ từng quý mà còn phải lập được bất cứ khi nào có yêu cầu quản lý hay có những biến động bất thường để ban lãnh đạo kịp thời đưa ra các quyết định sản xuất kinh doanh Do vậy, nên cần thiết lập những hệ thống báo cáo kế toán chuyên biệt để phục vụ cho việc phân tích tình hình công ty
2.3.6 Quy trình hạch toán kế toán
Qui trình hạch toán được tổ chức một cách khoa học, phản ánh đầy đủ các giao dịch kinh tế phát sinh, phù hợp với đặc thù ngành nghề kinh doanh của doanh nghiệp.
Việc hạch toán vẫn còn thực hiện thủ công, máy tính chỉ sử dụng để hỗ trợ trong khâu tính toán, do vậy trong trường hợp số lượng nghiệp vụ phát sinh nhiều sẽ dẫn đến sai sót.
Phát huy tối đa việc ứng dụng công nghệ thông tin vào công tác kế toán Công ty nên sử dụng một phần mềm kế toán chuyên nghiệp thay thế kế toán thủ công, giảm thiểu sai sót trong khâu hạch toán, nâng cao hiệu quả làm việc.
2.3.7 Đánh giá Tình hình ứng dụng công nghệ thông tin tại doanh nghiệp
- Excel là một phần mềm phổ thông thường dùng trong kế toán, được các doanh nghiệp vừa và nhỏ áp dụng rộng rãi, có nhiều tiện ích, công cụ tính toán khá nhanh do vậy việc sử dụng Excel sẽ dễ dàng cho bất cứ nhân viên kế toán nào.
- Doanh nghiệp sử dụng hệ thống tài khoản và các mẫu chứng từ theo chế độ kế toán Việt Nam, tạo điều kiện thuận lợi cho việc lập các báo cáo chi tiết, báo cáo tổng hợp về tình hình doanh thu bán hàng tại doanh nghiệp.
Thiế́t kế́ cơ sở dữ liệu vật lý
3.2.1 Thiế́t kế́ mô hình logic
3.2.1.1 Chuyển mô hình E-R sang mô hình quan hệ
Tài khoản => DMTK (Ma_TK, Ten_TK, Cap_TK,TK_Cap_Tren)
Kho => DMKHO (Ma_Kho, Ten_Kho)
Khách hàng => DMKH (Ma_KH, Ten_KH, Dien_Thoai, Dia_Chi,
Hàng hóa => DMHH (Ma_HH, Ten_HH, Dvt)
CKTM => CKTM (Ma_HH, Ngay_HLuc, Tyle_CK, TT_CK)
Biểu diễn các mối quan hệ:
Nhập (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Ma_HH, Ma_Kho, Dien_Giai, So_Luong, Don_Gia, Thanh_Tien, CTLQ, Tong_Tien,)
Xuất (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Ma_Kho, Ma_HH, So_Luong, Don_gia, Thanh_Tien, Dien_Giai, CTLQ, Tong_Tien)
Bán (So_HD, Ngay_HD, Ma_KH, Thue_Suat, So_Luong, Don_gia, Thanh_Tien, TK_No_Thanh_Toan, TK_Co_Doanh_Thu, TK_Co_Thue, Tien_Thanh_Toan, Tien_Doanh_Thu, Tien_Thue, HTTT, TK_Chiet_Khau, Tyle_CK, Tien_CK)
Giảm giá (So_Phieu, Ngay_Phieu, TK_No,
TK_Co, Ma_HH, So_Luong, Don_Gia, Thanh_Tien)
Trả lại (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH,Ma_HH, Dien_Giai, So_Luong, Don_gia, Thanh_Tien, CTLQ, Tong_Tien,)
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Phieu_Nhap có các thuộc tính lặp là Ma_HH, So_Luong, Don_Gia nên chưa thỏa mãn chuẩn 1 NF Tách Phieu_Nhap ra làm 2 lược đồ quan hệ:
Phieu_Nhap (So_Phieu, Ngay_Phieu, Ma_KH, Ma_Kho, Dien_Giai,
CT_Phieu_Nhap (So_Phieu, Ma_HH, TK_No, TK_Co,
So_Luong, Don_Gia, Thanh_Tien)
Thỏa mãn chuẩn 3 NF. b Chuẩn hóa Phieu_Xuat
Phieu_Xuat (So_Phieu, Ngay_Phieu, Ma_KH, Ma_Kho, Dien_Giai, CTLQ, Tong_Tien)
CT_Phieu_Xuat (So_Phieu, Ma_HH, TK_No, TK_Co, So_Luong, Don_Gia, Thanh_Tien)
Thỏa mãn chuẩn 3 NF. c Chuẩn hóa HDHH
HDHH có các thuộc tính trùng lặp là (Ma_HH, So_Luong, Don_Gia) nên chưa thỏa mãn chuẩn 1 NF Tách HDHH ra làm 2 lược đồ quan hệ:
HDHH (So_HD, Ngay_HD, Ma_KH, Thue_Suat,
TK_No_Thanh_Toan, TK_Co_Doanh_Thu, TK_Co_Thue, TK_Chiet_Khau, Tien_CK, Tien_Thanh_Toan, Tien_Doanh_Thu, Tien_Thue, HTTT)
CT_Hoa_Don (So_HD, Ma_HH, So_Luong, Don_Gia,
Thanh_Tien) d Chuẩn hóa Phieu_GiamGia
Phieu_GiamGia có các thuộc tính lặp là Ma_HH, So_Luong, Don_Gia nên chưa thỏa mãn chuẩn 1 NF Tách PhieuGiamGia ra làm 2 lược đồ quan hệ:
Giam_Gia (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Dien_Giai, CTLQ, Tong_Tien)
CT_GiamGia (So_Phieu, Ma_HH, Ten_HH, Dvt, So_Luong, Don_Gia, Thanh_Tien) e Chuẩn hóa Tra_Lai
Tra_Lai có các thuộc tính lặp là Ma_HH, So_Luong, Don_Gia nên chưa thỏa mãn chuẩn 1 NF Tách Tra_Lai ra làm 2 lược đồ quan hệ:
Tra_Lai (So_Phieu, Ngay_Phieu, TK_No, TK_Co, Ma_KH, Ma_Kho, Dien_Giai, CTLQ, Tong_Tien)
CT_TraLai (So_Phieu, Ma_HH, Ten_HH, So_Luong, Don_Gia,
Tất cả các quan hệ đã thỏa mãn chuẩn BCNF
3.2.1.2 Mô hình dữ liệu quan hệ
Hình 4.0 Mô hình dữ liệu quan hệ
3.2.1.3 Thiết kế cơ sở dữ liệu vật lý
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Sử dụng hệ quản trị cơ sở dữ liệu Microsoft SQL Server Management Mã của các bảng được đặt tên theo quy tắc chung là các kí tự chữ cài sẽ viết tắt cho đối tượng được thể hiện Dựa vào kết quả chuẩn hóa trên và tình hình thực tế yêu cầu.
Ta có cơ sở dẽ liệu vật lý được thiết kế như sau:
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.3: Bảng cơ sở vật lý danh mục tài khoản
- Quy tắc mã hóa: Ma_TK được viết theo số hiệu TK trong Bảng danh mục hệ thống tài khoản kế toán doanh nghiệp ban hành theo thông tư 200 của Bộ Tài Chính
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.4: Bảng cơ sở vật lý danh mục khách hàng DMHH
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.5: Bảng cơ sở vật lý danh mục hàng hóa DMKHO
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.6: Bảng cơ sở vật lý danh mục kho PhieuNhap
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.7: Bảng cơ sở vật lý phiếu nhập
2 ký tự đầu là viết tắt của phiếu nhập:
PN 4 ký tự sau là số thứ tự của phiếu nhập Ví dụ: PN0001
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.8: Bảng cơ sở vật lý phiếu xuất
2 ký tự đầu là viết tắt của phiếu xuất:
PX 4 ký tự sau là số thứ tự của phiếu
Tên trường Kiểu Ràng buộc
Bảng 3.9: Bảng cơ sở vật lý chi tiết phiếu nhập
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.10: Bảng cơ sở vật lý hóa đơn hàng hóa
2 ký tự đầu là viết tắt của hóa đơn: HD
4 ký tự sau là số thứ tự của hóa đơn Ví dụ: HD0001
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.11: Bảng cơ sở vật lý chi tiết hóa đơn CKTM
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.12: Bảng cơ sở vật lý chiết khấu thương mại
3 ký tự đầu là viết tắt của chiết khấu mại: CKM
3 ký tự sau là số thứ tự của bảng chiết khấu
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.13: Bảng cơ sở vật lý giảm giá
3 ký tự đầu là viết tắt của phiếu giảm giá: PGG
3 ký tự sau là số thứ tự của phiếu
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.14: Bảng cơ sở vật lý chi tiết giảm giá
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.15: Bảng cơ sở vật lý hóa đơn trả lại
Tên trường Kiểu dữ liệu Ràng buộc
Bảng 3.16: Bảng cơ sở vật lý chi tiết hóa đơn trả lại
Xây dựng phần mềm kế́ toá́n doanh thu bá́n hàng tại Công ty TNHH Thương Mại Và Dịch Vụ Dược Phẩm CIC
3.1.1 Hệ thống giao diện tương tá́c
Menu số dư đầu kỳ
Giao diện đăng nhập hệ thống
Giao diện chính của chương trình
Giao diện danh mục tài khoản
Giao diện danh mục hàng hóa
Giao diện danh mục khách hàng
Giao diện danh mục kho
Giao diện cập nhật,thêm mới Hóa đơn GTGT
Phiếu giảm giá hàng bán
Hóa đơn trả lại hàng bán
Sổ chi tiết tài khoản
Báo cáo doanh thu khách hàng
Báo cáo doanh thu theo mặt hàng
Báo cáo giảm trừ doanh thu
Báo cáo tổng hợp doanh thu bán hàng
PHẦ̀N KẾ́T LUẬN Đối với nền kinh tê thị trường cạnh tranh như hiện nay thì việc ứng dụng tin học vào công tác quản lý là vấn đề quyết định sự sống còn của mỗi doanh nghiệp, trong đó hệ thống quản lý doanh thu bán hàng là vô cùng quan trọng. Đề tài : Xây dựng phần mềm kế toán doanh thu bán hàng tại Công ty TNHH Thương Mại Và Dịch Vụ Dược Phẩm CIC được thực hiện dựa trên nhu cầu thực tế với mong muốn giảm bớt khó khan trong việc quản lý doanh thu bán hàng Trong quá trình nghiên cứu và hoàn thành đề tài, em đã đạt được một số kết quả sau:
- Khảo sát được hiện trạng hệ thống bán hàng tại Công ty TNHH Thương Mại Và Dịch Vụ Dược Phẩm CIC
- Phân tích chi tiết đề tài
- Xây dựng hoàn thành chỉnh cơ sở dữ liệu về quản lý bán hàng tại Công ty.
- Xây dựng được một số module cơ bản của công tác quản lý doanh thu bán hàng tại công ty.
Do thời gian và lượng kiến thức có hạn, kinh nghiệm còn nhiều hạn chế nên đề tài của em không thể tránh được những thiếu sót Em rất mong nhận được sự góp ý nhiệt tình của các thầy cô và các bạn để em có thể bổ sung, hoàn thiện đề tài hơn.
Một lần nữa em xin chân thành cảm ơn các thầy cô đã giúp đỡ em trong quán trình làm đồ án, cảm ơn các anh chị trong phòng tài chính kế toán của Công tyTNHH Thương Mại Và Dịch Vụ Dược Phẩm CIC đã giúp em hiểu rõ hơn các nghiệp vụ kế toán Đặc biệt, em xin chân thành cảm ơn cô giáo ThS Đồng ThịNgọc Lan đã trực tiếp hướng dẫn em hoàn thành đồ án.
DANH MỤC TÀI LIỆU THAM KHẢO
[1] TS Vũ Bá Anh - Giáo trình Cơ sở dữ liệu II - Học viện Tài Chính
[2] TS Vũ Bá Anh - Giáo trình Phân tích thiết kế Hệ thống thông tin - Học viện Tài Chính
[3] ThS Phan Phước Long – Bài giảng gốc Cơ sở dữ liệu III - Học viện Tài chính
[4] TS Hà Văn Sang – Bài giảng gốc Cơ sở lập trình II - Học viện Tài Chính
[5] TS Nguyễn Hữu Xuân Trường – Bài giảng gốc Cơ sở lập trình III – Học viện Tài Chính
[6] GS.TS Ngô Thế Chi, TS Trương Thị Thủy - Giáo trình Kế Toán Tài
Chính - Nhà xuất bản Tài Chính 2010.
Phụ lục A: Cá́c mẫu chứng từ, mẫu sổ, mẫu bá́o cá́o
Phụ lục B: Một số mẫu chứng từ, mẫu sổ, mẫu bá́o cá́o của Công ty TNHH Thương Mại Và Dịch Vụ Dược Phẩm CIC
Phụ lục C: Một số đoạn code cơ bản
MỘT SỐ ĐOẠN CODE CƠ BẢN
Form Đăng ký using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DevExpress.XtraEditors; using System.Data.SqlClient; namespace KeToan
{ public partial class frmDangKy : DevexpressNVP.frmBase
{ InitializeComponent(); foreach (Control control in this.Controls)
}cboRole.Properties.DataSource = SqlConnect.connect.GetTable("SELECT
1 AS Quyen, N'Toàn quyền' AS TenQuyen UNION ALL SELECT 2, N'Nhập liệu' UNION ALL SELECT 3, N'Xem báo cáo' ORDER BY Quyen"); cboRole.Properties.ValueMember = "Quyen"; cboRole.Properties.DisplayMember = "Quyen";
} public void btnDangKy_Click(object sender, EventArgs e)
{ MessageBox.Show("Tên người dùng không được để trống", "Thông báo"); txtUser.Focus(); return;
{ MessageBox.Show("Mật khẩu không được để trống", "Thông báo"); txtPassword.Focus(); return;
}if (txtPassword2.Text != txtPassword.Text)
{ MessageBox.Show("Xác nhận mật khẩu không đúng", "Thông Báo"); txtPassword2.Refresh(); txtPassword2.Focus(); return;
}if (SqlConnect.connect.CheckPrimary("NguoiDung", "TenDN", txtUser.Text.Trim()) == false)
{ string tentruong = "TenDN, MatKhau, TenNguoiDung, Quyen"; string giatri = "'" + txtUser.Text + "','" + txtPassword.Text + "',N'" + txtFullName.Text + "'," + cboRole.EditValue + "";
SqlConnect.connect.Insert("NguoiDung", tentruong, giatri, "TenDN", txtUser.Text.Trim(), true);
MessageBox.Show("Đăng kí thành công", "Thông báo"); this.Close();
{ MessageBox.Show("Tên người dùng đã tồn tại", "Thông báo"); txtUser.Refresh(); txtPassword.Refresh(); txtPassword2.Refresh();
} } public void btnThoat_Click(object sender, EventArgs e)
Form Phiế́u nhập using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraGrid.Views.Base; namespace KeToan
{ public partial class frmPhieuNhapEdit : DevexpressNVP.frmCatalogBase / { Load dữ liệu khi sửa int isLoadEdit = 0; public frmPhieuNhapEdit() { InitializeComponent();
}public void frmDMTKEdit_Load(object sender, EventArgs e)
/ { Load dữ liệu ngầm định base.LoadData(); isLoadEdit = 1; controls_EditValueChanged(null, null); isLoadEdit = 0;
// Load dữ liệu cho GridLookupEdit
SqlConnect.connect.GridLookUpEditData(cboMaKH, "DMKH",
"MaKH, TenKH, MaSoThue", "MaKH", "MaKH");
"DMKho", "MaKho, TenKho", "MaKho", "MaKho");
SqlConnect.connect.GridLookUpEditData(cboMaTK, "DMTK",
SqlConnect.connect.GridLookUpEditData(cboMaHH, "DMHH",
// Gán mã chứng từ txtMaCT.EditValue = SqlConnect.connect.maCT; txtMaCT.Visible = false;
// Xử lý tự tăng số chứng từ if (SqlConnect.connect.isAdd == 1) txtSoCT.EditValue SqlConnect.connect.CreateColKeyNew("PhieuNhap", "SoCT",
}public override void grv_CellValueChanged(object sender,
{ base.grv_CellValueChanged(sender, e); var editor = sender as DevExpress.XtraGrid.Views.Grid.GridView; if (e.Column.FieldName == "MaHH") { string s = SqlConnect.connect.GetTable("SELECT T1.TenHH
"'").Rows[0][0].ToString(); editor.SetRowCellValue(e.RowHandle, "TenHH",
SqlConnect.connect.GetTable("SELECT T1.TenHH FROM DMHH T1 WHERE MaHH = N'"
+ editor.GetRowCellValue(e.RowHandle,"MaHH") + "'").Rows[0][0].ToString()); editor.SetRowCellValue(e.RowHandle, "DVT",
SqlConnect.connect.GetTable("SELECT T1.DVT FROM DMHHT1 WHERE MaHH = N'"
}if (e.Column.FieldName == "SoLuong" || e.Column.FieldName
Math.Round((Convert.ToDecimal(editor.GetRowCellValue(e.RowHandle,
Convert.ToDecimal(editor.GetRowCellValue(e.RowHandle,
} } public override void controls_EditValueChanged(object sender, EventArgs e) { if(cboMaKH.ContainsFocus || isLoadEdit == 1)
{ txtTenKH.EditValue = SqlConnect.connect.GetValue("SELECT TenKH FROM DMKH WHERE MaKH = N'"
+ cboMaKH.EditValue + "'"); txtDiaChi.EditValue = SqlConnect.connect.GetValue("SELECT DiaChi FROM DMKH WHERE MaKH = N'"
Form HDHH using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraGrid.Views.Base; namespace KeToan
{ public partial class frmHDHHEdit : DevexpressNVP.frmCatalogBase
/ { Load dữ liệu khi sửa int isLoadEdit = 0; public frmHDHHEdit()
}public void frmDMTKEdit_Load(object sender, EventArgs e)
/ { Load dữ liệu ngầm định base.LoadData(); isLoadEdit = 1; controls_EditValueChanged(null, null); isLoadEdit = 0;
/ Load dữ liệu cho GridLookupEdit
SqlConnect.connect.GridLookUpEditData(cboMaKH, "DMKH", "MaKH,
SqlConnect.connect.GridLookUpEditData(cboMaTK, "DMTK", "MaTK, TenTK", "MaTK", "MaTK");
"DMTK", "MaTK, TenTK", "MaTK", "MaTK");
SqlConnect.connect.GridLookUpEditData(cboTKCoDoanhThu, "DMTK",
SqlConnect.connect.GridLookUpEditData(cboTKChietKhau, "DMTK",
SqlConnect.connect.GridLookUpEditData(cboTKCoThue, "DMTK",
SqlConnect.connect.GridLookUpEditData(cboMaHH, "DMHH", "MaHH, TenHH", "MaHH", "MaHH");
// Gán mã chứng từ txtMaCT.EditValue = SqlConnect.connect.maCT; txtMaCT.Visible = false;
// Xử lý tự tăng số chứng từ if (SqlConnect.connect.isAdd == 1) txtSoCT.EditValue = SqlConnect.connect.CreateColKeyNew("HDHH",
}public override void grv_CellValueChanged(object sender,
{ base.grv_CellValueChanged(sender, e); var editor = sender as DevExpress.XtraGrid.Views.Grid.GridView; if (e.Column.FieldName == "MaHH") { string s = SqlConnect.connect.GetTable("SELECT T1.TenHH
"'").Rows[0][0].ToString(); editor.SetRowCellValue(e.RowHandle, "TenHH",
SqlConnect.connect.GetTable("SELECT T1.TenHH FROM DMHH T1 WHERE MaHH = N'"
+ editor.GetRowCellValue(e.RowHandle,"MaHH") + "'").Rows[0][0].ToString()); editor.SetRowCellValue(e.RowHandle, "DVT",
SqlConnect.connect.GetTable("SELECT T1.DVT FROM DMHH T1 WHERE MaHH = N'"
}if (e.Column.FieldName == "SoLuong" || e.Column.FieldName
Math.Round((Convert.ToDecimal(editor.GetRowCellValue(e.RowHandle,
Convert.ToDecimal(editor.GetRowCellValue(e.RowHandle,
}int ktrasua = 0; decimal tongtien = 0; for (int i = 0; i < grview.RowCount - 1; i++)
{ decimal _d1 = Convert.ToDecimal(grview.GetRowCellValue(i,
Convert.ToDecimal(txtThue_Suat.EditValue)/100;
Convert.ToDecimal(txtThue_Suat.EditValue)/100; calTienCK.EditValue = tongtien *
Convert.ToDecimal(calTyLeCK.EditValue) / 100; calTienThue.EditValue = (tongtien - tongtien
Convert.ToDecimal(calThueSuat.EditValue) / 100; calTienThanhToan.EditValue = tongtien + ((tongtien - tongtien *
Convert.ToDecimal(calThueSuat.EditValue) / 100) - (tongtien *
}public override void controls_EditValueChanged(object sender, EventArgs e) { if(cboMaKH.ContainsFocus || isLoadEdit == 1)
{ txtTenKH.EditValue = SqlConnect.connect.GetValue("SELECT TenKH FROM DMKH WHERE MaKH = N'"
+ cboMaKH.EditValue + "'"); txtDiaChi.EditValue = SqlConnect.connect.GetValue("SELECT DiaChi FROM DMKH WHERE MaKH = N'"
+ cboMaKH.EditValue + "'"); txtMaSoThue.EditValue SqlConnect.connect.GetValue("SELECTMaSoThue FROM DMKH WHERE MaKH = N'"