XÂY DỰNG PHẦN MỀM QUẢN LÝ KHO TẠI CÔNG TY CỔ PHẦN Y DƯỢC ĐÔNG A

108 450 6
XÂY DỰNG PHẦN MỀM QUẢN LÝ KHO TẠI CÔNG TY CỔ PHẦN Y DƯỢC ĐÔNG A

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1)Lý do lựa chọn đề tài Thế giới đang chuyển mình và vận động không ngừng trong thế giới công nghệ thông tin. Đây không còn là lĩnh vực mới mẻ với nhiều quốc gia nhưng sức hấp dẫn của nó vẫn không hề giảm đối với cả các nước phát triển và đang phát triển như Việt Nam. Năm 2007, một mốc quan trọng đánh dấu sự kiện nổi bật về kinh tế, chính trị của Việt Nam, khi chúng ta chính thức gia nhập tổ chức thương mại thế giới WTO. Với những cơ hội và thách thức mới, chúng ta cần làm gì để có thể sánh vai với các nước trên con đường hội nhập? Công nghệ thông tin từ lâu đã là tài nguyên không thể thiếu góp phần và sự phát triển nền kinh tế hiện đại của nhiều nước trên thế giới. Ngành CNTT từ một tiềm năng thông tin đã ngày càng có những bước phát triển đột phát để trở thành hàng hóa trong xã hội hiện đại. Nó đã tạo ra sự thay đổi to lớn trong lĩnh vực sản xuất, cơ sở hạ tầng, kiến trúc thượng tầng, và cả cách thức quản lý trong xã hội. Vậy làm sao để có được thông tin? Thời đại CNTT bùng nổ tạo ra khả năng thu thập và xử lý thông tin rộng khắp trong mọi mặt của cuộc sống và của nền kinh tế. Các công ty là đối tượng nhanh nhạy trong việc áp dụng CNTT để phục vụ hoạt động quản lý, sản xuất, phát triển công ty. Một trong những quá trình ứng dụng CNTT đó là xây dựng một hệ thống thông tin ổn định, và lựa chọn những phần mềm tốt. Đối với một công ty chuyên sản xuất, xuất nhập khẩu, cung ứng mặt hàng đặc biệt là dược phẩm cho thị trường trong nước và một số đối tác nước ngoài như công ty cổ phần y dược Đông A, công việc đòi hỏi yêu cầu chính xác về số lượng, chủng loại thuốc, và dược liệu để đáp ứng kịp thời nhu cầu thị trường. Tuy công việc không phức tạp nhưng lại dễ gay nhầm lẫn, không đảm bảo độ tin cậy do ghi chép nhiều, thao tác chủ yếu là thủ công, giấy tờ dễ bị thất lạc. Do đó cần thiết phải xây dựng một hệ thống thông tin trong công tác quản lý kho để đảm bảo công tác quản lý được chính xác và nhanh chóng. Công việc theo dõi lượng thuốc xuất nhập – tồn tốn rất nhiều thời gian, công sức khi phải quản lý thông qua sổ sách, báo cáo, phiếu viết tay, bảng biểu. Sau đó cử cán bộ chuyên trách thống kê xử lý số liệu. Điều này không những ảnh hưởng đến sai sót trong việc quản lý mà còn dẫn đến lãng phí về sử dụng cán bộ. Với những lý do trên, việc xây dựng một Phần mềm quản lý kho cho công ty là rất cần thiết. Tin học hóa trong quản lý kho dược phải được phát triển, khi tin học hóa được tiến hành đồng bộ sẽ đem lại những hiệu quả, những lợi ích thiết thực góp phần nâng cao chất lượng thuốc và dược phẩm. Tin học hóa trong quản lý được thành công đảm bảo luôn đáp ứng tốt nhu cầu xuất – nhập thuốc với mục tiêu hiệu quả an toàn và hợp lý. 2)Phương pháp nghiên cứu Đề tài chủ yếu sử dụng các phương pháp nghiên cứu:Phương pháp phân tích và tổng hợp lý thuyết: sử dụng các lý thuyết đã học và áp dụng nó vào vào trong công việc hoàn thành chuyên đề một cách có chọn lọc.Các phương pháp thu thập thông tin: nghiên cứu tài liệu. Các tài liệu được sử dụng bao gồm: thông tin về quá trình hình thành và phát triển, hoạt động cũng như cơ cấu tổ chức của công ty CP y dược Đông A, các form, các biểu mẫu thường dùng trong toàn bộ hệ thống…; phỏng vấn các cán bộ liên quan đế từng quy trình nghiệp vụ cụ thể, cũng như những yêu cầu chi tiết về đánh giá hiệu quả sản phẩm. Phương pháp tiếp cận hệ thống: xây dựng theo phương pháp hướng đối tượng, cụ thể là nhân viên kho, quỹ, kế toán….3)Đối tượng và phạm vi nghiên cứuĐối tượng nghiên cứu là hệ thống thông tin quản lý kho tại công ty cổ phần y dược Đông A, các hoạt động xuất nhập tồn tại công ty.Phạm vi nghiên cứu của đề tài: được ứng dụng trong nội bộ công ty, bao gồm các vấn đề liên quan đến thông tin quản lý kho như: việc nhập xuất tồn; các giấy tờ liên quan đến việc xuất báo cáo định kỳ, báo cáo tổng hợp,…4)Mục đích của đề tài Nghiên cứu tổng quan về công ty cổ phần Y dược Đông A và thực trạng ứng dụng công nghệ thông tin tại công ty để từ đó phát hiện vấn đề, nghiên cứu giải pháp nâng cao hiệu quả ứng dụng tin học trong hoạt động quản lý cũng như kinh doanh của công ty. Nghiên cứu và sử dụng các phương pháp luận vào việc phân tích, thiết kế và xây dựng phần mềm quản lý kho tại công ty. Phân tích thiết kế xây dựng phần mềm quản lý kho với các chức năng đáp ứng công tác quản lý tại công ty cổ phần Y dược Đông A.5)Kết cấu của đề tàiNgoài lời nói đầu, kết luận, phụ lục, danh mục tài liệu tham khảo thì đề tài được kết cấu thành 3 nội dung chínhChương 1: Tổng quan về công ty CP y dược Đông A. Chương 2: Cơ sở phương pháp luận về phân tích thiết kế hệ thống thông tin, xây dựng phần mềm.Chương 3: Phân tích thiết kế, xây dựng phần mềm quản lý kho tại công ty cổ phần y dược Đông A.

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN KHOA TIN HỌC KINH TẾ - - CHUYÊN ĐỀ THỰC TẬP Đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ KHO TẠI CÔNG TY CỔ PHẦN Y DƯỢC ĐÔNG A Họ tên sinh viên Giảng viên hướng dẫn : LÊ THỊ NGỌC LINH : Th.s Phùng Tiến Hải HÀ NỘI, NĂM 2016 TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN KHOA TIN HỌC KINH TẾ CHUYÊN ĐỀ THỰC TẬP Đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ KHO TẠI CÔNG TY CỔ PHẦN Y DƯỢC ĐÔNG A Họ tên sinh viên: Chuyên ngành: Lớp: Khóa: Hệ: Giảng viên hướng dẫn: LÊ THỊ NGỌC LINH Tin học kinh tế Tin học kinh tế 54 54 Chính quy Th.s Phùng Tiến Hải HÀ NỘI, NĂM 2016 MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC HÌNH VẼ, SƠ ĐỒ CHƯƠNG .6 TỔNG QUAN VỀ CÔNG TY CỔ PHẦN Y DƯỢC ĐÔNG A .6 VÀ ĐỀ TÀI THỰC TẬP CHƯƠNG 26 CƠ SỞ PHƯƠNG PHÁP LUẬN VỀ PHÂN TÍCH, THIẾT KẾ 26 XÂY DỰNG PHẦN MỀM 26 Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt tiếng việt Từ viết tắt ĐKKD CP BGĐ SXKD CNTT HTTTQL CSDL BGĐ Ý nghĩa Đăng ký kinh doanh Cổ phần Ban giám đốc Sản xuất kinh doanh Công nghệ thông tin Hệ thống thông tin quản lý Cơ sở liệu Ban giám đốc Từ viết tắt tiếng Anh Từ viết tắt MIS DSS WTO WHO EU GMP GLP GSP GDP Lê Thị Ngọc Linh Ý nghĩa Management Information system Decision Support System World Trade Organization World Health Organization European Union Good manufacturing Practice Good Laboratory Practice Good Storage Practice Good Distribution Practice Chuyên đề thực tập tốt nghiệp DANH MỤC HÌNH VẼ, SƠ ĐỒ DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC HÌNH VẼ, SƠ ĐỒ CHƯƠNG .6 TỔNG QUAN VỀ CÔNG TY CỔ PHẦN Y DƯỢC ĐÔNG A .6 VÀ ĐỀ TÀI THỰC TẬP CHƯƠNG 26 CƠ SỞ PHƯƠNG PHÁP LUẬN VỀ PHÂN TÍCH, THIẾT KẾ 26 XÂY DỰNG PHẦN MỀM 26 LỜI MỞ ĐẦU 1) Lý lựa chọn đề tài Thế giới chuyển vận động không ngừng giới công nghệ thông tin Đây không lĩnh vực mẻ với nhiều quốc gia sức hấp dẫn không giảm nước phát triển phát triển Việt Nam Năm 2007, mốc quan trọng đánh dấu kiện bật kinh tế, trị Việt Nam, thức gia nhập tổ chức thương mại giới WTO Với hội thách thức mới, cần làm để sánh vai với nước đường hội nhập? Công nghệ thông tin từ lâu tài nguyên thiếu góp phần phát triển kinh tế đại nhiều nước giới Ngành CNTT từ tiềm thông tin ngày có bước phát triển đột phát để trở thành hàng hóa xã hội đại Nó tạo thay đổi to lớn lĩnh vực sản xuất, sở hạ tầng, kiến trúc thượng tầng, cách thức quản lý xã hội Vậy để có thông tin? Thời đại CNTT bùng nổ tạo khả thu thập xử lý thông tin rộng khắp mặt sống kinh tế Các công ty đối tượng nhanh nhạy việc áp dụng CNTT để phục vụ hoạt động quản lý, sản xuất, phát triển công ty Một trình ứng dụng CNTT xây dựng hệ thống thông tin ổn định, lựa chọn phần mềm tốt Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp Đối với công ty chuyên sản xuất, xuất nhập khẩu, cung ứng mặt hàng đặc biệt dược phẩm cho thị trường nước số đối tác nước công ty cổ phần y dược Đông A, công việc đòi hỏi yêu cầu xác số lượng, chủng loại thuốc, dược liệu để đáp ứng kịp thời nhu cầu thị trường Tuy công việc không phức tạp lại dễ gay nhầm lẫn, không đảm bảo độ tin cậy ghi chép nhiều, thao tác chủ yếu thủ công, giấy tờ dễ bị thất lạc Do cần thiết phải xây dựng hệ thống thông tin công tác quản lý kho để đảm bảo công tác quản lý xác nhanh chóng Công việc theo dõi lượng thuốc xuất - nhập – tồn tốn nhiều thời gian, công sức phải quản lý thông qua sổ sách, báo cáo, phiếu viết tay, bảng biểu Sau cử cán chuyên trách thống kê xử lý số liệu Điều ảnh hưởng đến sai sót việc quản lý mà dẫn đến lãng phí sử dụng cán Với lý trên, việc xây dựng Phần mềm quản lý kho cho công ty cần thiết Tin học hóa quản lý kho dược phải phát triển, tin học hóa tiến hành đồng đem lại hiệu quả, lợi ích thiết thực góp phần nâng cao chất lượng thuốc dược phẩm Tin học hóa quản lý thành công đảm bảo đáp ứng tốt nhu cầu xuất – nhập thuốc với mục tiêu hiệu quả- an toàn hợp lý 2) Phương pháp nghiên cứu Đề tài chủ yếu sử dụng phương pháp nghiên cứu: - Phương pháp phân tích tổng hợp lý thuyết: sử dụng lý thuyết học áp dụng vào vào công việc hoàn thành chuyên đề cách có chọn lọc - Các phương pháp thu thập thông tin: nghiên cứu tài liệu Các tài liệu sử dụng bao gồm: thông tin trình hình thành phát triển, hoạt động cấu tổ chức công ty CP y dược Đông A, form, biểu mẫu thường dùng toàn hệ thống…; vấn cán liên quan đế quy trình nghiệp vụ cụ thể, yêu cầu chi tiết đánh giá hiệu sản phẩm - Phương pháp tiếp cận hệ thống: xây dựng theo phương pháp hướng đối tượng, cụ thể nhân viên kho, quỹ, kế toán… 3) Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu hệ thống thông tin quản lý kho công ty cổ phần y dược Đông A, hoạt động xuất - nhập - tồn công ty Phạm vi nghiên cứu đề tài: ứng dụng nội công ty, bao gồm vấn đề liên quan đến thông tin quản lý kho như: việc nhập - xuất - tồn; giấy tờ liên quan đến việc xuất báo cáo định kỳ, báo cáo tổng hợp,… 4) Mục đích đề tài Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp - Nghiên cứu tổng quan công ty cổ phần Y dược Đông A thực trạng ứng dụng công nghệ thông tin công ty để từ phát vấn đề, nghiên cứu giải pháp nâng cao hiệu ứng dụng tin học hoạt động quản lý kinh doanh công ty - Nghiên cứu sử dụng phương pháp luận vào việc phân tích, thiết kế xây dựng phần mềm quản lý kho công ty - Phân tích thiết kế xây dựng phần mềm quản lý kho với chức đáp ứng công tác quản lý công ty cổ phần Y dược Đông A 5) Kết cấu đề tài Ngoài lời nói đầu, kết luận, phụ lục, danh mục tài liệu tham khảo đề tài kết cấu thành nội dung - Chương 1: Tổng quan công ty CP y dược Đông A - Chương 2: Cơ sở phương pháp luận phân tích thiết kế hệ thống thông tin, xây dựng phần mềm - Chương 3: Phân tích thiết kế, xây dựng phần mềm quản lý kho công ty cổ phần y dược Đông A Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp CHƯƠNG TỔNG QUAN VỀ CÔNG TY CỔ PHẦN Y DƯỢC ĐÔNG A VÀ ĐỀ TÀI THỰC TẬP 1.1) Giới thiệu thông tin chung Công ty cổ phần y dược Đông A đơn vị kinh tế hạch toán độc lập, có đầy đủ tư cách pháp nhân, có dấu riêng Công ty bình đẳng kinh doanh với doanh nghiệp thuộc thành phần kinh tế khác Công ty phép mở tài khoản giao dịch ngân hàng theo quy định pháp luật - Tên công ty: CÔNG TY CỔ PHẦN Y DƯỢC ĐÔNG A - Tên công ty viết tiếng nước ngoài: DONG A MEDICAL PHARMACY JOINT STOCK COMPANY - Tên công ty viết tắt: DONG A MEDIPHARMA.,JSC - Người đại diện theo pháp luật công ty: Chức danh: giám đốc Họ tên: Lê Minh Vượng - Logo công ty: - Tài khoản số: 75326059 - Mở tại: ngân hàng ACB chi nhánh Nam Hà Nội - Mã số thuế: 0104280111 - Trụ sở giao dịch chính: 209, văn phòng Hồng Hà, Ngõ 109 Trường Chinh, quận Thanh Xuân, Hà Nội - Điện thoại trụ sở chính: (04)62606868 - Số Fax: (04)62606688 - Ngành nghề kinh doanh chính: Buôn bán dược phẩm Ngoài kinh doanh lĩnh vực khác như: • Vận tải hàng hóa đường thủy nội địa • Vận tải hàng hóa ven biển • Vận tải hàng hóa đường Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp • Vận tải hàng hóa đường sắt • Bán buôn máy móc, thiết bị y tế • Bán lẻ đồ điện gia dụng, giường, tủ, bàn ghế, đồ nội thất tương tự, đèn đèn điện, đồ dùng gia đình cửa hàng chuyên doanh; bán lẻ thảm, đệm, chăn, màn, rèm • Bán buôn vật liệu, thiết bị lắp đặt khác xây dựng; thiết bị vệ sinh ống, ống dẫn, khớp nối, vòi, cút chữ T, ống cao su • Hoạt động thiết kế chuyên dụng, trang trí nội thất, (không bao gồm thiết kế nội ngoại thất công trình) • Xây dựng công trình kỹ thuật dân dụng, hoàn thiện công trình xây dựng • Phòng chấn trị y học cổ truyền: xem mạch, kê đơn, bốc thuốc, sản xuất mua bán thực phẩm chức • Xuất nhập mặt hàng công ty kinh doanh 1.2) Lịch sử hình thành phát triển Giai đoạn 1: Từ ngày 26/01/2009 đến ngày 27/02/2013 Đông A thành lập ngày 26/01/2009 theo giấy chứng nhận đăng ký kinh doanh số 0103042419 phòng ĐKKD - sở kế hoạch đầu tư thành phố Hà Nội cấp Là công ty cổ phần với - Vốn điều lệ là: 5.000.000 đồng - Mệnh giá cổ phần: 10.000 đồng - Tổng số cổ phần: 500000 - Với cổ đông sáng lập là: Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp End With grdDetail.Refresh() grdDetail.Focus() Dim method As New SetColumnSelected(AddressOf Column_Selected) Me.grdDetail.BeginInvoke(method, 4) End If End Sub Private Sub Column_Selected(ByVal ColumnIndex As Integer) grdDetail.CurrentRow.Cells(ColumnIndex).Selected = True End Sub Private Sub grdDetail_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdDetail.CellEndEdit If e.ColumnIndex = Or e.ColumnIndex = Or e.ColumnIndex = Then 'Số lượng,giá tiền If Not IsDBNull(grdDetail.CurrentRow.Cells("don_gia")) And Not IsDBNull(grdDetail.CurrentRow.Cells("so_luong")) Then Try grdDetail.CurrentRow.Cells("thanh_tien").Value = Math.Round(grdDetail.CurrentRow.Cells("don_gia").Value * grdDetail.CurrentRow.Cells("so_luong").Value, 0) Dim t_so_luong As Decimal = Dim t_tien As Decimal = For i As Integer = To grdDetail.Rows.Count - If Not IsDBNull(grdDetail.Rows(i).Cells("so_luong").Value) Then t_so_luong += grdDetail.Rows(i).Cells("so_luong").Value End If If Not IsDBNull(grdDetail.Rows(i).Cells("thanh_tien").Value) Then t_tien += grdDetail.Rows(i).Cells("thanh_tien").Value End If Next txtT_so_luong.Text = t_so_luong txtT_tien.Text = t_tien Catch ex As Exception End Try End If End If End Sub Private Sub grdDetail_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) If IsDBNull(bsDetail.Current("ma_thuoc")) Then bsDetail.Current("so_phieu_xuat") = "" bsDetail.Current("dong") = bsDetail.Current("so_luong") = bsDetail.Current("don_gia") = Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp bsDetail.Current("thanh_tien") = End If End Sub Private Sub MenuAddItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuAddItem.Click bsDetail.AddNew() End Sub Private Sub MenuDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuDeleteItem.Click Try bsDetail.RemoveCurrent() Catch ex As Exception End Try End Sub Private Sub txtMa_khach_hang_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) If txtMa_khach_hang.Text "" Then Return End If Dim frmLookup As New frmLookup With frmLookup Text = "Chọn nhà cung cấp" Dim dtLookup As DataTable = DataProvider.GetDataTable("Select ma_khach_hang,ten_khach_hang from dm_khach_hang where loai_kh'2' order by ma_khach_hang") grdLookup.DataSource = dtLookup grdLookup.Columns("ma_khach_hang").HeaderText = "Mã khách" grdLookup.Columns("ma_khach_hang").Width = 100 grdLookup.Columns("ten_khach_hang").HeaderText = "Tên khách hàng" grdLookup.Columns("ten_khach_hang").Width = 250 Width = 380 Height = grdLookup.Rows.Count * 23 + 80 If ShowDialog() = DialogResult.OK Then txtMa_khach_hang.Text = Value(0) lblTen_khach_hang.Text = Value(1) End If End With End Sub Private Sub txtMa_nhan_vien_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) If txtMa_nhan_vien.Text "" Then Return End If Dim frmLookup As New frmLookup Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp With frmLookup Text = "Chọn nhân viên nhập kho" Dim dtLookup As DataTable = DataProvider.GetDataTable("Select ma_nhan_vien,ten_nhan_vien from dm_nhan_vien order by ma_nhan_vien") grdLookup.DataSource = dtLookup grdLookup.Columns("ma_nhan_vien").HeaderText = "Mã nhân viên" grdLookup.Columns("ma_nhan_vien").Width = 120 grdLookup.Columns("ten_nhan_vien").HeaderText = "Tên nhân viên" grdLookup.Columns("ten_nhan_vien").Width = 250 Width = 400 Height = grdLookup.Rows.Count * 23 + 80 If ShowDialog() = DialogResult.OK Then txtMa_nhan_vien.Text = Value(0) lblTen_nhan_vien.Text = Value(1) End If End With End Sub Private Sub txtMa_khach_hang_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMa_khach_hang.Leave Dim values() As Object = DataProvider.GetValue("dm_khach_hang", "ma_khach_hang,ten_khach_hang", "ma_khach_hang = '" + txtMa_khach_hang.Text.Trim + "'") txtMa_khach_hang.Text = values(0) lblTen_khach_hang.Text = values(1) End Sub Private Sub txtMa_nhan_vien_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMa_nhan_vien.Leave Dim values() As Object = DataProvider.GetValue("dm_nhan_vien", "ma_nhan_vien,ten_nhan_vien", "ma_nhan_vien = '" + txtMa_nhan_vien.Text.Trim + "'") txtMa_nhan_vien.Text = values(0) lblTen_nhan_vien.Text = values(1) End Sub End Class • Phiếu nhập Imports System.Data.SqlClient Public Class ucPhieuNhap Dim DataProvider As New DataProvider Dim strSQL As String Dim tblMaster, tblDetail, tblKhach_hang, tblNhan_vien, tblThuoc As DataTable Dim WithEvents bsMaster As BindingSource Dim WithEvents bsDetail As New BindingSource Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp Dim editstatus As Boolean Dim sOldSo_phieu_nhap As String Public Sub ucPhieuNhap_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load loadDataPhieuNhap() AddDataBindings() SetStatusEditing(False) End Sub Private Function CheckForm() As Boolean If txtSo_phieu_nhap.Text = "" Then MsgBox("Chưa nhập Số phiếu nhập!", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "") txtSo_phieu_nhap.Focus() Return False ElseIf txtNgay_lap.Text = "" Then MsgBox("Chưa nhập Ngày lập phiếu!", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "") txtNgay_lap.Focus() Return False ElseIf grdDetail.Rows.Count = Then MsgBox("Chưa nhập thông tin chi tiết!", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "") Return False Else Return True End If End Function Private Sub ResetForm() txtSo_phieu_nhap.Text = "" txtNgay_lap.Text = "" txtMa_nhan_vien.Text = "" txtMa_khach_hang.Text = "" lblTen_khach_hang.Text = "" lblTen_nhan_vien.Text = "" txtGhi_chu.Text = "" txtT_tien.Text = txtT_so_luong.Text = End Sub Private Sub SetStatusEditing(ByVal Status As Boolean) txtSo_phieu_nhap.ReadOnly = Not Status txtNgay_lap.Enabled = Status txtGhi_chu.ReadOnly = Not Status txtMa_khach_hang.ReadOnly = Not Status txtMa_nhan_vien.ReadOnly = Not Status btnThem.Enabled = Not Status btnSua.Enabled = Not Status Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp btnXoa.Enabled = Not Status btnLuu.Enabled = Status DetailAddNewItem.Visible = Status DetailDeleteItem.Visible = Status ContextMenuStrip.Enabled = Status grdDetail.ReadOnly = Not Status If Status Then AddHandler txtMa_khach_hang.Enter, AddressOf txtMa_khach_hang_Enter AddHandler txtMa_nhan_vien.Enter, AddressOf txtMa_nhan_vien_Enter AddHandler grdDetail.CellEnter, AddressOf grdDetail_CellEnter AddHandler grdDetail.RowEnter, AddressOf grdDetail_RowEnter btnRefresh.Text = "Hủy" txtSo_phieu_nhap.Focus() sOldSo_phieu_nhap = txtSo_phieu_nhap.Text.Trim Else RemoveHandler txtMa_khach_hang.Enter, AddressOf txtMa_khach_hang_Enter RemoveHandler txtMa_nhan_vien.Enter, AddressOf txtMa_nhan_vien_Enter RemoveHandler grdDetail.CellEnter, AddressOf grdDetail_CellEnter RemoveHandler grdDetail.RowEnter, AddressOf grdDetail_RowEnter btnRefresh.Text = "Làm tươi" End If End Sub Private Sub loadDataPhieuNhap() 'Master strSQL = "Select * from vph_nhap_kho" tblMaster = DataProvider.GetDataTable(strSQL) bsMaster = New BindingSource(tblMaster, Nothing) NavigatorMaster.BindingSource = bsMaster 'Detail strSQL = String.Format("Select * from vct_nhap_kho") tblDetail = DataProvider.GetDataTable(strSQL) bsDetail.DataSource = tblDetail grdDetail.DataSource = bsDetail NavigatorDetail.BindingSource = bsDetail Try bsDetail.Filter = "so_phieu_nhap ='" + bsMaster.Current("so_phieu_nhap") + "'" Catch ex As Exception End Try 'InitDetail() End Sub Private Sub InitDetail(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bsMaster.CurrentChanged Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp Try bsDetail.Filter = "so_phieu_nhap ='" + bsMaster.Current("so_phieu_nhap") + "'" Catch ex As Exception End Try End Sub Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click If MsgBox("Bạn có muốn xóa phiếu không?", vbCritical + vbYesNo, "") = MsgBoxResult.No Then Return End If If Xoa() = True Then For i As Integer = grdDetail.Rows.Count - To Step -1 With grdDetail.Rows(i) grdDetail.Rows.RemoveAt(i) End With Next bsMaster.RemoveCurrent() End If End Sub Private Function Xoa() As Boolean strSQL = String.Format("DELETE FROM ct_nhap_kho WHERE so_phieu_nhap ='{0}'", txtSo_phieu_nhap.Text.Trim) strSQL = strSQL + ChrW(13) + String.Format("DELETE FROM ct_nhap_xuat WHERE ma_phieu ='PN' and so_phieu ='{0}'", txtSo_phieu_nhap.Text.Trim) strSQL = strSQL + ChrW(13) + String.Format("DELETE FROM ph_nhap_kho WHERE so_phieu_nhap ='{0}'", txtSo_phieu_nhap.Text.Trim) Try dataprovider.ExcecuteNonQuery(strSQL) Return True Catch ex As SqlException MsgBox("Không thể xóa vào lúc này!", vbInformation + vbOKOnly, "") Return False End Try End Function Private Sub ClearDataBindings() txtSo_phieu_nhap.DataBindings.Clear() txtMa_nhan_vien.DataBindings.Clear() txtMa_khach_hang.DataBindings.Clear() lblTen_khach_hang.DataBindings.Clear() lblTen_nhan_vien.DataBindings.Clear() txtGhi_chu.DataBindings.Clear() txtT_tien.DataBindings.Clear() txtT_so_luong.DataBindings.Clear() txtNgay_lap.DataBindings.Clear() Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp End Sub Private Sub AddDataBindings() Try txtSo_phieu_nhap.DataBindings.Add("Text", bsMaster, "so_phieu_nhap") txtMa_khach_hang.DataBindings.Add("Text", bsMaster, "ma_khach_hang") txtMa_nhan_vien.DataBindings.Add("Text", bsMaster, "ma_nhan_vien") lblTen_khach_hang.DataBindings.Add("Text", bsMaster, "ten_khach_hang") lblTen_nhan_vien.DataBindings.Add("Text", bsMaster, "ten_nhan_vien") txtGhi_chu.DataBindings.Add("Text", bsMaster, "ghi_chu") txtT_so_luong.DataBindings.Add("Text", bsMaster, "t_so_luong") txtT_tien.DataBindings.Add("Text", bsMaster, "t_tien") txtNgay_lap.DataBindings.Add("Value", bsMaster, "ngay_lap") Catch ex As Exception End Try End Sub Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click ClearDataBindings() bsMaster.AddNew() AddDataBindings() SetStatusEditing(True) editstatus = True ResetForm() End Sub Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click SetStatusEditing(True) editstatus = True End Sub Private Sub btnLuu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLuu.Click If CheckForm() = False Then Return End If bsDetail.RemoveFilter() Dim j As Integer = For i As Integer = To grdDetail.Rows.Count - With grdDetail.Rows(i) If Cells(0).Value = sOldSo_phieu_nhap Or Cells(0).Value = "" Then j=j+1 Cells("dong").Value = j Cells("so_phieu_nhap").Value = txtSo_phieu_nhap.Text.Trim End If End With Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp Next bsDetail.EndEdit() bsMaster.EndEdit() bsDetail.Filter = "so_phieu_nhap ='" + txtSo_phieu_nhap.Text.Trim + "'" Dim t_so_luong As Decimal = Dim t_tien As Decimal = For i As Integer = To grdDetail.Rows.Count - If Not IsDBNull(grdDetail.Rows(i).Cells("so_luong").Value) Then t_so_luong += grdDetail.Rows(i).Cells("so_luong").Value End If If Not IsDBNull(grdDetail.Rows(i).Cells("thanh_tien").Value) Then t_tien += grdDetail.Rows(i).Cells("thanh_tien").Value End If Next txtT_so_luong.Text = t_so_luong txtT_tien.Text = t_tien Dim key As String = String.Format(" and so_phieu_nhap='{0}'", sOldSo_phieu_nhap) If POST(key) = False Then Return End If bsDetail.EndEdit() bsMaster.EndEdit() bsMaster.ResetBindings(False) bsDetail.ResetBindings(False) SetStatusEditing(False) editstatus = False End Sub Private Function POST(ByVal Key As String) As Boolean strSQL = "BEGIN TRY" strSQL = strSQL + ChrW(13) + "BEGIN TRANSACTION" strSQL = strSQL + ChrW(13) + "DELETE FROM ct_nhap_kho WHERE ( 1=1" + Key + ")" strSQL = strSQL + ChrW(13) + "DELETE from ph_nhap_kho WHERE ( 1=1" + Key + ")" strSQL = strSQL + ChrW(13) + String.Format("DELETE from ct_nhap_xuat WHERE ma_phieu='PN' and so_phieu ='{0}'", sOldSo_phieu_nhap) strSQL = strSQL + ChrW(13) + String.Format("INSERT INTO ph_nhap_kho SELECT N'{0}',N'{1}',N'{2}',N'{3}',{4},{5},N'{6}'", txtSo_phieu_nhap.Text.Trim, txtNgay_lap.Value.ToString("yyyyMMdd"), txtMa_khach_hang.Text, txtMa_nhan_vien.Text, txtT_so_luong.Text, txtT_tien.Text, txtGhi_chu.Text) For i As Integer = To grdDetail.Rows.Count - With grdDetail.Rows(i) strSQL += ChrW(13) + String.Format("INSERT INTO ct_nhap_kho SELECT N'{0}',N'{1}',N'{2}',N'{3}',{4},{5},{6},{7}", Cells("so_phieu_nhap").Value, Cells("ma_thuoc").Value, Cells("ma_kho").Value, Cells("ma_lo").Value, Cells("so_luong").Value, Cells("don_gia").Value, Cells("thanh_tien").Value, Cells("dong").Value) Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp strSQL += ChrW(13) + String.Format("INSERT INTO ct_nhap_xuat SELECT N'{0}',N'{1}',N'{2}',N'{3}',N'{4}',N'{5}',N'{6}',N'{7}',{8},{9},{10},N'{11}',{12}", "PN", txtSo_phieu_nhap.Text.Trim, txtNgay_lap.Value.ToString("yyyyMMdd"), txtMa_khach_hang.Text, txtMa_nhan_vien.Text, Cells("ma_thuoc").Value, Cells("ma_kho").Value, Cells("ma_lo").Value, Cells("so_luong").Value, Cells("don_gia").Value, Cells("thanh_tien").Value, txtGhi_chu.Text, Cells("dong").Value) End With Next strSQL = strSQL + ChrW(13) + "COMMIT TRAN" strSQL = strSQL + ChrW(13) + "END TRY" strSQL = strSQL + ChrW(13) + "BEGIN CATCH" strSQL = strSQL + ChrW(13) + "IF @@ERROR 0 ROLLBACK TRAN" strSQL = strSQL + ChrW(13) + "END CATCH" Try DataProvider.ExcecuteNonQuery(strSQL) Return True Catch ex As Exception Return False End Try End Function Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click If editstatus = True Then bsMaster.CancelEdit() SetStatusEditing(False) btnRefresh.Text = "Làm tươi" editstatus = False Return End If loadDataPhieuNhap() End Sub Private Sub btnTimKiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTimKiem.Click AddDataBindings() End Sub Private Sub txtTimKiem_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) btnTimKiem_Click(sender, e) End Sub Delegate Sub SetColumnSelected(ByVal i As Integer) Private Sub grdDetail_CellEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) If e.ColumnIndex = And IsDBNull(grdDetail.CurrentRow.Cells(1).Value) Then ' Mã thuốc Dim frmLookup As New frmLookup Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp With frmLookup Text = "Chọn thuốc" Dim dtLookup As DataTable = DataProvider.GetDataTable("Select ma_thuoc,ten_thuoc,dvt from dm_thuoc") grdLookup.DataSource = dtLookup grdLookup.Columns("ma_thuoc").HeaderText = "Mã thuốc" grdLookup.Columns("ma_thuoc").Width = 100 grdLookup.Columns("ten_thuoc").HeaderText = "Tên thuốc" grdLookup.Columns("ten_thuoc").Width = 250 grdLookup.Columns("dvt").HeaderText = "Đơn vị tính" grdLookup.Columns("dvt").Width = 100 Width = 480 Height = grdLookup.Rows.Count * 23 + 80 If ShowDialog() = DialogResult.OK Then bsDetail.Current("ma_thuoc") = Value(0) bsDetail.Current("ten_thuoc") = Value(1) bsDetail.Current("dvt") = Value(2) Else bsDetail.RemoveCurrent() Return End If End With grdDetail.Refresh() grdDetail.Focus() ElseIf e.ColumnIndex = 10 And IsDBNull(grdDetail.CurrentRow.Cells(10).Value) Then 'Tên kho Dim frmLookup As New frmLookup With frmLookup Text = "Chọn kho" Dim dtLookup As DataTable = DataProvider.GetDataTable("Select ma_kho,ten_kho from dm_kho") grdLookup.DataSource = dtLookup grdLookup.Columns("ma_kho").HeaderText = "Mã kho" grdLookup.Columns("ma_kho").Width = 100 grdLookup.Columns("ten_kho").HeaderText = "Tên kho" grdLookup.Columns("ten_kho").Width = 250 Width = 380 Height = grdLookup.Rows.Count * 23 + 80 If ShowDialog() = DialogResult.OK Then bsDetail.Current("ma_kho") = Value(0) bsDetail.Current("ten_kho") = Value(1) End If End With grdDetail.Refresh() grdDetail.Focus() Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp ElseIf e.ColumnIndex = 11 And IsDBNull(grdDetail.CurrentRow.Cells(11).Value) Then 'Tên lô Dim frmLookup As New frmLookup With frmLookup Text = "Chọn lô" Dim dtLookup As DataTable = DataProvider.GetDataTable("Select ma_lo,ten_lo,ngay_het_han from dm_lo WHERE ma_thuoc = '" + bsDetail.Current("ma_thuoc") + "' and ngay_het_han > '" + txtNgay_lap.Value.ToString("yyyyMMdd") + "'") grdLookup.DataSource = dtLookup grdLookup.Columns("ma_lo").HeaderText = "Mã lô" grdLookup.Columns("ma_lo").Width = 100 grdLookup.Columns("ten_lo").HeaderText = "Tên lô" grdLookup.Columns("ten_lo").Width = 250 grdLookup.Columns("ngay_het_han").HeaderText = "Ngày hết hạn" grdLookup.Columns("ngay_het_han").Width = 120 Width = 500 Height = grdLookup.Rows.Count * 23 + 80 If ShowDialog() = DialogResult.OK Then bsDetail.Current("ma_lo") = Value(0) bsDetail.Current("ten_lo") = Value(1) End If End With grdDetail.Refresh() grdDetail.Focus() Dim method As New SetColumnSelected(AddressOf Column_Selected) Me.grdDetail.BeginInvoke(method, 4) End If End Sub Private Sub Column_Selected(ByVal ColumnIndex As Integer) grdDetail.CurrentRow.Cells(ColumnIndex).Selected = True End Sub Private Sub grdDetail_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdDetail.CellEndEdit If e.ColumnIndex = Or e.ColumnIndex = Or e.ColumnIndex = Then 'Số lượng,giá tiền If Not IsDBNull(grdDetail.CurrentRow.Cells("don_gia")) And Not IsDBNull(grdDetail.CurrentRow.Cells("so_luong")) Then Try grdDetail.CurrentRow.Cells("thanh_tien").Value = Math.Round(grdDetail.CurrentRow.Cells("don_gia").Value * grdDetail.CurrentRow.Cells("so_luong").Value, 0) Dim t_so_luong As Decimal = Dim t_tien As Decimal = For i As Integer = To grdDetail.Rows.Count - Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp If Not IsDBNull(grdDetail.Rows(i).Cells("so_luong").Value) Then t_so_luong += grdDetail.Rows(i).Cells("so_luong").Value End If If Not IsDBNull(grdDetail.Rows(i).Cells("thanh_tien").Value) Then t_tien += grdDetail.Rows(i).Cells("thanh_tien").Value End If Next txtT_so_luong.Text = t_so_luong txtT_tien.Text = t_tien Catch ex As Exception End Try End If End If End Sub Private Sub grdDetail_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) If IsDBNull(bsDetail.Current("ma_thuoc")) Then bsDetail.Current("so_phieu_nhap") = "" bsDetail.Current("dong") = bsDetail.Current("so_luong") = bsDetail.Current("don_gia") = bsDetail.Current("thanh_tien") = End If End Sub Private Sub MenuAddItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuAddItem.Click bsDetail.AddNew() End Sub Private Sub MenuDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuDeleteItem.Click Try bsDetail.RemoveCurrent() Catch ex As Exception End Try End Sub Private Sub txtMa_khach_hang_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) If txtMa_khach_hang.Text "" Then Return End If Dim frmLookup As New frmLookup With frmLookup Text = "Chọn nhà cung cấp" Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp Dim dtLookup As DataTable = DataProvider.GetDataTable("Select ma_khach_hang,ten_khach_hang from dm_khach_hang where loai_kh='2' order by ma_khach_hang") grdLookup.DataSource = dtLookup grdLookup.Columns("ma_khach_hang").HeaderText = "Mã NCC" grdLookup.Columns("ma_khach_hang").Width = 100 grdLookup.Columns("ten_khach_hang").HeaderText = "Tên nhà cung cấp" grdLookup.Columns("ten_khach_hang").Width = 250 Width = 380 Height = grdLookup.Rows.Count * 23 + 80 If ShowDialog() = DialogResult.OK Then txtMa_khach_hang.Text = Value(0) lblTen_khach_hang.Text = Value(1) End If End With End Sub Private Sub txtMa_nhan_vien_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) If txtMa_nhan_vien.Text "" Then Return End If Dim frmLookup As New frmLookup With frmLookup Text = "Chọn nhân viên nhập kho" Dim dtLookup As DataTable = DataProvider.GetDataTable("Select ma_nhan_vien,ten_nhan_vien from dm_nhan_vien order by ma_nhan_vien") grdLookup.DataSource = dtLookup grdLookup.Columns("ma_nhan_vien").HeaderText = "Mã nhân viên" grdLookup.Columns("ma_nhan_vien").Width = 120 grdLookup.Columns("ten_nhan_vien").HeaderText = "Tên nhân viên" grdLookup.Columns("ten_nhan_vien").Width = 250 Width = 400 Height = grdLookup.Rows.Count * 23 + 80 If ShowDialog() = DialogResult.OK Then txtMa_nhan_vien.Text = Value(0) lblTen_nhan_vien.Text = Value(1) End If End With End Sub Private Sub txtMa_khach_hang_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMa_khach_hang.Leave Dim values() As Object = DataProvider.GetValue("dm_khach_hang", "ma_khach_hang,ten_khach_hang", "ma_khach_hang = '" + txtMa_khach_hang.Text.Trim + "'") txtMa_khach_hang.Text = values(0) Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp lblTen_khach_hang.Text = values(1) End Sub Private Sub txtMa_nhan_vien_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMa_nhan_vien.Leave Dim values() As Object = DataProvider.GetValue("dm_nhan_vien", "ma_nhan_vien,ten_nhan_vien", "ma_nhan_vien = '" + txtMa_nhan_vien.Text.Trim + "'") txtMa_nhan_vien.Text = values(0) lblTen_nhan_vien.Text = values(1) End Sub End Class • Báo cáo Public Class frmBaoCao Dim DataProvider As New DataProvider Private Sub btnHuy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHuy.Click Me.Dispose() DialogResult = DialogResult.Cancel End Sub Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click Return Dim name() As String = {"@tu_ngay,@den_ngay,@ma_thuoc,@ma_kho,@ma_lo,@ma_bc"} Dim value() As Object = {txtTu_Ngay.Value, txtDen_Ngay.Value, txtMa_thuoc.Text, txtMa_kho.Text, txtMa_lo.Text, txtMa_bc.Text} Dim dtReport As DataTable = DataProvider.GetDataTable("sp_StockSummaryReport", name, value, 6) 'Dim frm As New frmBaoCao 'If txtTu_Ngay.Text = "" Then ' Dim rpt As New BCLapTrinh_Full ' rpt.SetDataSource(dtReport) ' frm.CrystalReportViewer1.ReportSource = rpt 'Else ' Dim rpt As New BCLapTrinh_ThoiGian ' rpt.SetDataSource(dtReport) ' rpt.SetParameterValue("_tungay", txtTuNgay.Text) ' rpt.SetParameterValue("_denngay", txtDenNgay.Text) ' frm.CrystalReportViewer1.ReportSource = rpt 'End If 'frm.CrystalReportViewer1.Refresh() 'frm.Show() Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp 'Me.Dispose() End Sub Private Sub txtMa_thuoc_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMa_thuoc.Enter Using frmLookup With frmLookup Text = "Chọn thuốc" Dim dtLookup As DataTable = DataProvider.GetDataTable("Select ma_thuoc,ten_thuoc from dm_thuoc order by ma_thuoc") grdLookup.DataSource = dtLookup grdLookup.Columns("ma_thuoc").HeaderText = "Mã thuốc" grdLookup.Columns("ma_thuoc").Width = 120 grdLookup.Columns("ten_thuoc").HeaderText = "Tên thuốc" grdLookup.Columns("ten_thuoc").Width = 250 Width = 400 Height = grdLookup.Rows.Count * 23 + 80 If ShowDialog() = DialogResult.OK Then txtMa_thuoc.Text = Value(0) lblTen_thuoc.Text = Value(1) End If End With End Using End Sub End Class Lê Thị Ngọc Linh Chuyên đề thực tập tốt nghiệp

Ngày đăng: 17/10/2016, 14:56

Từ khóa liên quan

Mục lục

  • 1.8.1 ) Thực trạng quản lý hoạt động xuất nhập kho hàng

  • 1.8.2) Đề xuất giải pháp

  • 1.8.3) công cụ thực hiện đề tài

  • 2.1.1 Khái niệm phần mềm

  • 2.1.3 Phân loại phần mềm

    • 2.1.4.1 Cấu trúc phần mềm

    • 2.1.4.2 Giải pháp kiến trúc phần mềm

    • 2.2.1 Vai trò của quy trình thiết kế

    • 2.2.2 Tiến trình thiết kế phần mềm

    • 2.2.3 Các phương pháp thiết kế phần mềm

    • 2.3 Quy trình phát triển phần mềm

      • 2.3.1 Vòng đời phát triển của phần mềm

      • 2.3.2 Quy trình phát triển phần mềm quản lý kho

      • 2.4 Công cụ phát triển phần mềm

        • 2.4.1 Công cụ mô hình hóa

          • 3.2.4.4) Thiết kế giao diện

Tài liệu cùng người dùng

Tài liệu liên quan