Thứ Tư, 23 tháng 11, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Các truy vấn tính lương

James Perry, Richard Newmark


Chương 10
Qui trình nhân sự


Các truy vấn tính lương


Lương trước thuế gross pay gồm hai phần. Phần đầu là tính bình thường. Để tính, bạn chỉ việc nhân lương một giờ của từng nhân viên với số giờ làm việc trong giờ thuộc chu kỳ trả lương của họ. Vì bạn có lương một giờ trong tblEmployee và số giờ làm việc trong giờ theo chu kỳ trả lương ở tblLaborAcquisition, bạn có thể truy vấn hai bảng này để tính lương trong giờ. Việc tính lương ngoài giờ chỉ phức tạp hơn một tí vì lương một giờ phụ trội gấp 1.5 lần lương một giờ của nhân viên đó.

Dữ liệu mẫu của Pipefitters Supply Company sẽ minh họa việc tính lương khi bạn tạo các truy vấn này. Bảng nhân viên Employee của Pipefitters có 50 bản ghi nhân viên, và bảng sử dụng lao động Labor Acquisition của họ chứa dữ liệu của ba chu kỳ trả lương theo tháng. Bạn sẽ dùng chu kỳ trả lương của tháng một để tính trong các bài tập này.

BÀI TẬP 10.19: TÍNH LƯƠNG TRƯỚC THUẾ GROSS PAY

1. Kích Queries Design trong nhóm Queries trên dải lệnh Create. Thêm tblEmployee tblLaborAcquisition vào Table Pane.

2. Liên kết giữa EmployeeID trong tblEmployee và EmployeeSupervisorID trong tblLaborAcquisition phải được xóa để thi hành truy vấn này vì Access sẽ áp đặt đồng thời cả hai qui tắc nối nội. Các bản ghi thỏa các yêu cầu này là các bản ghi sử dụng lao động Labor Acquisition trong đó nhân viên và giám sát viên là cùng một người! Vì ta không cần thông tin giám sát viên trong truy vấn này, hãy kích liên kết rồi nhấn phím Delete. Bây giờ, tblEmployee tblLaborAcquisition chỉ liên kết qua EmployeeID trong truy vấn này.

3. Từ tblLaborAcquisition, thêm EmployeeID, TimeCardID, và LAPayPeriodEnded vào lưới QBE. Đặt ô Sort của EmployeeID là Ascending.

4. Vì lương trước thuế gross pay được dùng trong nhiều tính toán ngoài việc tính số tiền ghi trên chi phiếu cho nhân viên (chẳng hạn, khoản chi lương trên báo cáo thu nhập), tiêu chí cho LAPayPeriodEnded cần chứa chu kỳ thời gian (chẳng hạn tháng, quí, năm). Giống như bạn đã tạo truy vấn cho các hạng mục trong báo cáo thu nhập, bạn sẽ dùng hàm Between với tham biến thời điểm đầu và tham biến thời điểm cuối. Hãy gõ Between [Beginning of Period Date] and [End of Period Date] làm tiêu chí Criteria cho ô LAPayPeriodEnded trong lưới QBE.

5. Hãy thêm dữ liệu để tính lương trong giờ và lương ngoài giờ. Kích kép EmployeePayRate từ tblEmployee. Kích kép LARegularTime LAOvertime từ tblLaborAcquisition. Lưu truy vấn với tên qryGrossPay.

6. Ở cột trống đầu tiên, kích ô Field; kích phải rồi chọn Build… để mở công cụ tạo biểu thức Expression Builder. Tạo biểu thức tính lương trong giờ: RegularPay: [EmployeePayRate] * [LARegularTime]. Nhớ rằng bạn có thể kích kép các tên trường trong danh sách Expression Categories để thêm chúng vào ô biểu thức. Kích OK khi tạo xong.

7. Để ý là biểu thức RegularPay được làm nổi bật. Hãy nhấn Ctrl+C; kích ô Field trống kế rồi nhấn Ctrl+V. Hãy sửa biểu thức RegularPay để tính lương ngoài giờ. Nhấn Shift+F2 để mở cửa sổ Zoom. Vì ngoài giờ được tính bằng 1.5 lần lương trong giờ, lương ngoài giờ có thể là kết quả có nhiều hơn hai chữ số thập phân. Lỗi làm tròn có thể mất nhiều giờ sửa chữa trong các hệ thống kế toán, và tính lương có thể là nơi dễ xảy ra lỗi làm tròn nhất. Một cách khử lỗi làm tròn tại thời điểm tính toán là làm tròn kết quả về hai chữ số thập phân. Hãy sửa biểu thức trong cửa sổ Zoom thành OvertimePay: Round([EmployeePayRate] * 1.5 * [LAOvertime],2), rồi kích OK. Lưu truy vấn. Xem Chương 4, Bài tập 4.6 để có diễn giải chi tiết hơn.

8. Hãy dùng công cụ tạo biểu thức Expression Builder để tạo biểu thức lương trước thuế gross pay trong ô Field kế: GrossPay: [RegularPay] + [OvertimePay]. Kích OK khi tạo xong.

9. Hãy sửa định dạng và phụ đề cho ba biểu thức bạn đã tạo. Kích RegularPay; mở Property Sheet; đặt Format là Currency và đặt Caption là Regular Pay. Hãy dùng định dạng tương tự cho hai biểu thức kia. Đặt Caption cho OvertimePay là Overtime Pay, và Caption cho GrossPay là Gross Pay. Lưu truy vấn.

10. Hãy kiểm chứng việc tính lương là đúng bằng cách thi hành truy vấn và tính lương trước thuế gross pay bằng tay cho một hay hai nhân viên đã làm ngoài giờ trong tháng một năm 2012. Khi bạn thi hành truy vấn, gõ 1/1/2012 cho thời điểm đầu kỳ và 1/31/2012 cho thời điểm cuối kỳ và bạn cần có 45 bản ghi (xem Hình 10.23). Mặc dù bạn có thể gõ 1/31/2012 cho cả hai thời điểm, việc chỉ định toàn bộ tháng một sẽ báo động lỗi cho người dùng nếu thời điểm khác 1/31/2012 xuất hiện trong tập động dynaset. Nếu một số nhãn không thấy được hết bạn có thể điều chỉnh độ rộng của tất cả các cột cùng lúc bằng cách kích nút chọn Datasheet, chọn Column Width từ More menu trong nhóm Records, rồi kích Best Fit. Lưu rồi đóng truy vấn.

Hình 10.23 Tập động dynaset của truy vấn tính lương trước thuế gross pay.

Dĩ nhiên, việc tính lương trước thuế gross pay chỉ là phần đầu của việc tính lương. Phần thứ hai và phức tạp hơn là tính các khấu trừ khỏi lương trước thuế gross pay để tính lương sau thuế net pay. Bước kế tiếp là sửa qryGrossPay để tính các khấu trừ và lương sau thuế net pay. Các khấu trừ lương gồm thuế, bảo hiểm, đóng góp, và nhiều hạng mục khác. Qui tắc tính các khấu trừ nói chung rơi vào một trong bốn phân loại sau:

1. Khấu trừ khoản cố định. Dễ tính các khấu trừ này vì chúng là khoản cố định trong từng chu kỳ trả lương. Ví dụ về các khấu trừ này là phí bảo hiểm y tế, phí bảo hiểm nhân thọ, và đóng góp từ thiện được nhân viên đồng ý chẳng hạn United Way.

2. Khấu trừ phần trăm cố định. Các khấu trừ này là phần trăm cố định của thu nhập trước thuế ở từng chu kỳ trả lương. Ví dụ về các khấu trừ này là thuế chăm sóc y tế Medicare, và các khoản thuế thu tại nguồn withholding tax trong nhiều thành phố và địa hạt của Hoa Kỳ được nhà tuyển dụng giữ lại. Một số thuế thu nhập của bang cũng là phần trăm cố định của toàn bộ thu nhập.

3. Khấu trừ phần trăm biến thiên. Các khấu trừ này tương tự khấu trừ phần trăm cố định ngoại trừ phần trăm thay đổi theo mức thu nhập, tình trạng lập gia đình, và số khoản miễn trừ đã khai. Thuế thu nhập liên bang Hoa Kỳ mà nhà tuyển dụng phải khấu trừ từ lương nhân viên là ví dụ điển hình của loại thuế này. Nhiều bang có qui định thuế thu tại nguồn tương tự qui định của liên bang, nên cũng rơi vào loại này.

4. Khấu trừ phần trăm cố định bị chặn trên. Các khấu trừ này là phần trăm cố định trên thu nhập trước thuế cho đến khi chạm trần. Ví dụ điển hình của loại khấu trừ này là thuế an sinh xã hội FICA tax. Nhà tuyển dụng sẽ khấu trừ một phần trăm cố định trên thu nhập trước thuế cho đến khi đạt đến hạn mức FICA trong năm đó. Một số bang, chẳng hạn California, yêu cầu nhân viên đóng quĩ bảo hiểm thất nghiệp cũng theo cách này.

Kiểu khấu trừ đầu tiên, khoản cố định trong từng chu kỳ trả lương, thì dễ mô hình. Bạn chỉ cần thêm một trường vào bảng nhân viên Employee –chỉ dấu cho biết nhân viên đó có bị khấu trừ không – để kích hoạt tính toán. Kiểu khấu trừ thứ hai, phần trăm cố định, còn dễ thi triển hơn nữa. Bạn chỉ cần đưa phần trăm cố định vào truy vấn tính lương. Kiểu khấu trừ thứ ba, phần trăm biến thiên, có thể khó thi triển vì cần thêm một hay nhiều bảng. Các bảng này chứa nhiều giá trị phần trăm khác nhau và các điểm tại đó chúng chuyển từ phần trăm này sang phần trăm khác. Kiểu khấu trừ thứ tư, phần trăm cố định bị chặn trên, thậm chí còn khó thi triển hơn. Nó cần thêm một truy vấn để tính tổng từ đầu năm đến nay rồi so tổng đó với giá trị trần. Giá trị trần có thể được lưu vào một bảng riêng hay đưa vào truy vấn.

Việc tính lương của Pipefitters Supply Company sẽ gồm các kiểu khấu trừ thứ hai và thứ ba. Các tính toán phần trăm cố định là thuế chăm sóc y tế Medicare và thuế an sinh xã hội FICA tax. Khấu trừ thuế an sinh xã hội FICA tax thật ra là kiểu thứ tư, vì đó là phần trăm cố định cho đến khi chạm trần hàng năm. Tuy nhiên, dữ liệu mẫu của Pipefitters Supply Company đã được thiết kế để không có nhân viên nào vượt trần FICA. Vì thế, bạn có thể mô hình thuế an sinh xã hội FICA tax cho Pipefitters là khấu trừ phần trăm cố định. Khấu trừ thuế thu nhập liên bang mà Pipefitters phải giữ lại từ lương nhân viên sẽ minh họa một số vấn đề phức tạp khi mô hình kiểu khấu trừ thứ ba. Khấu trừ này thường được gọi là thuế liên bang thu tại nguồn federal withholding tax FWT hay thuế thu nhập liên bang thu tại nguồn federal income tax FIT.

Làm ơn để ý rằng các tính toán khấu trừ thuế được mô hình trong chương này không có ý thực hiện đầu đủ và chính xác. Luật thuế doanh nghiệp thường xuyên thay đổi và tùy thuộc bang. Mục đích ở đây là để bạn thực hành việc tạo bảng và truy vấn để bạn có thể áp dụng vào các nhu cầu người dùng cụ thể và xử lý các yêu cầu biến thiên của chính phủ.

Trước khi tạo truy vấn để tính lương sau thuế net pay, bạn sẽ tạo hai bảng chứa dữ liệu cần thiết để tính thuế liên bang thu tại nguồn withholding tax FWT: một bảng lưu phần trăm thuế thu tại nguồn withholding tax FWT và bảng thứ hai lưu các khoản miễn trừ. Bạn đã có thể đưa các phần trăm và khoản miễn trừ vào qryNetPay, nhưng việc đặt chúng vào bảng riêng sẽ giúp việc cập nhật dễ dàng hơn rất nhiều.

BÀI TẬP 10.20: TẠO BẢNG MIỄN TRỪ EXEMPTION

Phần trăm thuế liên bang thu tại nguồn withholding tax FWT phụ thuộc một phần vào lương trước thuế gross pay trừ khoản miễn thuế. Trong bài tập này bạn tạo bảng tra cứu để tìm khoản miễn thuế của nhân viên dựa trên số khoản miễn thuế mà họ khai, được lưu trong trường EmployeeExemptions thuộc tblEmployee.

1. Kích Create tab; kích Table Design trong nhóm Tables. Đặt tên trường đầu tiên là ExemptionNumber rồi kích Primary Key trong nhóm Tools. Đặt Data Type là Number. Đặt các thuộc tính trường sau: Field Size – Byte; Decimal Places – 0; Input Mask – 9;;_ Caption – Num. of Exempts; Required – Yes; Indexed – Yes (No Duplicates). Điều này cho phép Pipefitters sửa chính sách của họ để cho phép không nhiều hơn chín khoản miễn thuế (xem Bài tập 10.5, Bước 14) mà không thay đổi cấu trúc bảng.

2. Field Name thứ hai là ExemptionAmount. Đặt Data Type là Currency. Đặt các thuộc tính trường sau: Format – Currency; Decimal Places – 2; Caption – Exemption Amt.; Required – Yes; Indexed – No.

3. Lưu bảng với tên tblExemption. Hãy nhập liệu. Bạn có thể nhập liệu từ Ch10.xlsx file như đã làm cho tblLaborAcquisition ở Bài tập 10.11 hay chuyển sang góc nhìn Datasheet rồi sao chép và dán nó từ tblExemption worksheet trong Ch10.xlsx.

4. Lưu rồi đóng bảng.

Để ý rằng các khoản miễn thuế đều là bội số của $304.17. Bạn đã có thể dễ dàng tính khoản miễn thuế bên trong truy vấn lương sau thuế net pay bằng cách nhân số khoản miễn thuế của nhân viên với $304.17. Tuy nhiên, nhiều cơ quan thuế sẽ giảm thuế nếu lương vượt quá một giá trị nào đó, đôi khi giảm về $0. Đây là một lý do nữa tại sao bạn cần biết cách mô hình các khoản miễn thuế bằng bảng tra cứu.

BÀI TẬP 10.21: TẠO BẢNG THUẾ THU TẠI NGUỒN WITHHOLDING

Một bảng bạn cần xác định phần trăm để tính thuế liên bang thu tại nguồn federal withholding tax FWT là bảng Withholding. Đây là bảng tra cứu phức tạp hơn. Thông tin nhóm thuế được dùng để tính thuế liên bang thu tại nguồn federal withholding tax FWT của từng nhân viên được dựa trên tình trạng lập gia đình của họ (lưu trong bảng tblEmployee) và lương trước thuế gross pay trừ khoản miễn thuế.

1. Tạo bảng mới bằng cách dùng Table Design trong nhóm Tables. Gõ MaritalStatus vào dòng đầu tiên cột Field Name. Ở dòng thứ hai, gõ FWTBracket (nhóm thuế liên bang thu tại nguồn) vào cột Field Name.

2. Tạo khóa chính phức hợp. Kích nút chọn bản ghi của MaritalStatus, nhấn và giữ phím Ctrl rồi kích nút chọn bản ghi của FWTBracket. Sau đó kích Primary Key trong nhóm Tools.

3. Dùng Hình 10.24 để đặt kiểu dữ liệu và thuộc tính trường cho MaritalStatus FWTBracket. Thêm các thuộc tính ở phần cuối của Hình 10.24. Tại sao Input Mask cho MaritalStatus >L?

Hình 10.24 Các khóa chính và thuộc tính cho tblWithholding.

4. Lưu bảng với tên tblWithholding.

5. Nhập liệu. Bạn có thể chuyển sang góc nhìn Datasheet rồi nhập bằng tay dữ liệu ở Hình 10.25, hay sao chép và dán nó từ Ch10.xlsx file.

Hình 10.25 Dữ liệu cho tblWithholding được hiển thị ở góc nhìn Datasheet.

6. Đóng bảng.

Để ý ở Hình 10.25 rằng ta thật sự lưu hai bảng, mỗi bảng cho từng tình trạng hồ sơ. Đây là một trong những lợi ích của việc dùng khóa chính phức hợp. Bạn thậm chí có thể có nhiều hơn hai tình trạng lập gia đình hay các trạng thái khác. Chẳng hạn, Bộ luật Thuế Hoa Kỳ U.S. Tax Code chứa bốn nhóm thuế dựa trên tình trạng lập gia đình: có gia đình và cùng khai thuế, có gia đình nhưng khai thuế riêng, chủ hộ, và độc thân. Hơn nữa, bạn có thể thêm nhiều nhóm thuế cho từng tình trạng lập gia đình bằng cách thêm dòng vào bảng. Khả năng có thể dễ dàng mở rộng bảng (chẳng hạn không phải sửa cấu trúc bảng hay thêm bảng mới) được gọi là khả năng mở rộng scalability.

BÀI TẬP 10.22: LIÊN KẾT TBLEXEMPTION VÀ TBLWITHHOLDING VỚI TBLEMPLOYEE

1. Đóng tất cả các bảng đang mở. Kích Relationships trên dải lệnh Database Tools rồi thu gọn Navigation Pane.

2. Thêm tblExemption tblWithholding vào cửa sổ Relationships dùng công cụ Show Table trong nhóm Relationships.

3. Thu gọn dải lệnh để hiển thị toàn bộ các danh sách trường. Kích phải thanh Menu rồi kích Minimize the Ribbon.

4. Định cỡ lại các bảng mới để chỉ hiển thị các khóa chính rồi dời chúng đến gần danh sách trường bảng Employee.

5. Tạo liên kết Exemption-Employee. Kéo từ khóa chính trong tblExemption, ExemptionNumber, đến khóa ngoại tương ứng, EmployeeExemptions, trong tblEmployee.

6. Đảm bảo là các thuộc tính đúng xuất hiện trong các bảng bạn kéo từ và kéo đến. Kiểu quan hệ ở đáy hộp thoại cần là one-to-many. Đánh dấu Enforce Referential IntegrityCascade Update Related Fields. Kích nút Create.

7. Tạo liên kết Withholding-Employee. Kéo từ khóa chính bộ phận MaritalStatus trong tblWithholding đến khóa ngoại tương ứng, EmployeeMaritalStatus, trong tblEmployee. Đảm bảo là các thuộc tính đúng xuất hiện trong các bảng bạn kéo từ và kéo đến. MaritalStatus trong tblWithholding không duy nhất vì nó là một phần của khóa chính phức hợp. EmployeeMaritalStatus trong tblEmployee không duy nhất vì nó là khóa ngoại. Vì thế, kiểu quan hệ là many-to-many, Access hiển thị là Indeterminate ở đáy hộp thoại. Bạn không thể áp đặt tính toàn vẹn tham chiếu cho quan hệ indeterminate. Kích nút Create để kết thúc.

8. Bạn có thể cô lập qui trình nhân sự HR bằng cách loại các bảng và quan hệ không liên quan đến nó. Kích danh sách trường tblPurchase rồi nhấn phím Delete. tblPurchase và các quan hệ của nó không còn được hiển thị, nhưng các liên kết bạn đã tạo vẫn tồn tại. Hãy xóa tblVendor bằng cách tương tự. Đừng thử kích các quan hệ rồi xóa chúng. Việc xóa quan hệ trong cửa sổ Relationships sẽ xóa mất quan hệ đó thay vì che dấu nó.

9. Khi làm xong, cửa sổ Relationships của bạn cần giống Hình 10.26.

Hình 10.26 Cửa sổ Relationships hoàn tất cho qui trình nhân sự HR.

10. Đóng cửa sổ Relationships và kích Yes trong hộp thoại để lưu các thay đổi.

Trong ba bài tập tới bạn sẽ thêm lương trước thuế gross pay trừ khoản miễn thuế vào qryGrossPay, tạo truy vấn tính thuế liên bang thu tại nguồn federal withholding tax FWT, và tạo truy vấn lương sau thuế net pay.

BÀI TẬP 10.23: THÊM PHÉP TÍNH LƯƠNG TRƯỚC THUẾ GROSS PAY TRỪ KHOẢN MIỄN THUẾ VÀO QRYGROSSPAY.

1. Phục hồi Navigation Pane và dải lệnh nếu bạn chưa làm. Mở qryGrossPay ở góc nhìn Design. Nó nằm ở phần Unassigned Objects thuộc Navigation Pane.

2. Thêm danh sách trường tblExemption vào Table Pane. Dùng thanh cuộn thuộc Criteria Pane (lưới QBE) để cuộn sang phải cho đến khi thấy cột trường GrossPay và ít nhất hai cột trống. Kích kép ExemptionAmount để thêm nó vào cột trống đầu tiên trong Criteria Pane. Lưu truy vấn.

3. Tạo biểu thức để trừ ExemptionAmount khỏi GrossPay. Tuy nhiên, kết quả không được bé hơn 0. Nếu không, kết quả sẽ không rơi vào khoảng chặn dưới và chặn trên của bất kỳ nhóm thuế nào thuộc tblWithholding (xem Hình 10.25). Vì thế, bạn sẽ thêm hàm IIf để biểu thức không cho phép số âm. Hàm IIf trông như sau: IIf(biểu-thức, phần-đúng, phần-sai). IIF sẽ ước lượng biểu-thức. Nếu đúng, giá trị của biểu thức trong phần-đúng được trả về. Nếu sai, giá trị của biểu thức trong phần-sai được trả về. Hãy kích ô Field ở cột trống đầu tiên trên lưới QBE rồi kích Builder trong nhóm Query Setup. Thêm vào biểu thức sau: GrossLessExempt: IIf([GrossPay] - [ExemptionAmount] > 0, [GrossPay] - [ExemptionAmount], 0). Bạn có thể tận dụng khả năng của công cụ tạo biểu thức Expression Builder bằng cách thực hiện các bước sau nhằm giúp bạn tránh lỗi và tiết kiệm thời gian nhập các biểu thức phức tạp.

a. Gõ GrossLessExempt: vào cửa sổ Expression.

b. Kích dấu + cạnh Functions trong cột Expression Elements rồi kích Built-In Functions.

c. Trong cột Expression Values, cuộn đến IIf rồi kích kép nó để thêm nó vào cửa sổ Expression.

d. Kích <<Expr>> rồi nhấn phím Delete. Access đã chèn phần này vì nó dự kiến có một toán tử (chẳng hạn +, -) giữa hai thành phần của một biểu thức.

e. Kích qryGrossPay trong cột Expression Elements để hiển thị các trường truy vấn trong cột Expression Categories.

f. Thay các chỗ trống trong lệnh IIf bằng cách kích để làm nổi bật chỗ đó rồi gõ hay kích kép các trường trong Expression Categories. Chẳng hạn, kích <<expression>> trong cửa sổ Expression để làm nổi bật nó. Kích kép GrossPay thời gian cột Expression Categories để thay, trong cửa sổ Expression gõ dấu -; kích kép ExemptionAmount để chèn nó vào biểu thức tại vị trí con trỏ; rồi gõ >0 để kết thúc phần đầu của hàm. Hãy hoàn thành phần còn lại của hàm theo cách tương tự.

Bạn còn có thể sao chép và dán bên trong biểu thức để tiết kiệm thời gian và tránh lỗi.

4. Thi hành truy vấn cho tháng 01/2012 rồi kiểm chứng xem truy vấn có tính đúng GrossLessExempt hay không. Chẳng hạn, các khoản được làm nổi bật ở Hình 10.27 cho thấy các khoản miễn thuế vượt quá lương trước thuế gross pay. Vì thế, lệnh IIf trả về $0.00 thay vì giá trị âm. Đóng truy vấn.

Hình 10.27 Một phần của tập động dynaset qryGrossPay.

BÀI TẬP 10.24: TẠO TRUY VẤN ĐỂ TÍNH THUẾ LIÊN BANG THU TẠI NGUỒN FEDERAL WITHHOLDING TAX FWT

Trong bài tập này bạn tạo truy vấn để bắt chước hàm tra cứu Lookup trong Excel. Bạn sẽ dùng tổ hợp tình trạng lập gia đình MaritalStatus của nhân viên và khoản GrossLessExempt để xác định nhóm FWT thích hợp, rồi thực hiện hàng loạt tính toán dùng giá trị từ các trường bên trong nhóm FWT đó.

1. Kích Create tab rồi kích Query Design trong nhóm Queries. Thêm tblEmployee, tblWithholding, và qryGrossPay vào Table Pane. Định cỡ lại và dời các danh sách trường để bạn có thể thấy toàn bộ các trường trong danh sách trường. Bạn có thể mở rộng Table Pane bằng cách nắm lấy thanh giữa nó và Criteria Pane rồi kéo xuống dưới.

2. Từ danh sách trường qryGrossPay, thêm EmployeeID, TimeCardID, và LAPeriodEnded, vào Criteria Pane. Sắp EmployeeID theo thứ tự tăng Ascending.

3. Thêm EmployeeMaritalStatus từ danh sách trường tblEmployee để giới hạn nhóm FWT theo tình trạng lập gia đình của nhân viên.

4. Dựa trên tình trạng lập gia đình của nhân viên, hãy chọn nhóm thuế FWT ở đó GrossLessExempt rơi vào khoảng từ chặn dưới FWT đến chặn trên FWT. Thêm GrossLessExempt từ qryGrossPay FWTBracket từ tblWithholding vào Criteria Pane. Lưu truy vấn và đặt tên là qryFWTax. Để chỉ định đúng nhóm thuế FWT, hãy thêm vào ô Criteria của GrossLessExempt biểu thức sau: Between [FWTLowerLimit] And [FWTUpperLimit]. Bạn có thể gõ biểu thức vào ô Zoom bằng cách nhấn Shift+F2, hay bạn có thể dùng công cụ tạo biểu thức Expression Builder (kích Builder trong nhóm Query Setup).

5. Chọn dữ liệu thích hợp từ nhóm thuế FWT để tính khoản thuế FWT. Thêm FWTLowerLimit, FWTRate, và FWTBracketAmt từ danh sách trường tblWithholding vào Criteria Pane.

6. Lưu các thay đổi. Thi hành truy vấn cho tháng 01/2012. Dùng Hình 10.26 để kiểm tra độ chính xác của nhóm thuế Tax Bracket, chặn dưới Lower Limit, và khoản thuế cơ bản FWT Base Amt. cho năm nhân viên đầu tiên.

7. Dùng công cụ tạo biểu thức Expression Builder để tính khoản thuế FWT. Vì tính toán FWT có thể cho giá trị với nhiều hơn hai vị trí thập phân, bạn sẽ thêm hàm Round vào tính toán của mình. Trở về góc nhìn Design. Kích ô Field trong cột trống đầu tiên trên Criteria Pane rồi kích Builder trong nhóm Query Setup. Nhập FWT: Round((([GrossLessExempt] - [FWTLowerLimit]) * [FWTRate]) + [FWTBracketBaseAmt],2). Kích OK khi nhập xong.

8. Lưu truy vấn rồi thi hành nó cho tháng 01/2012 để kiểm chứng độ chính xác của các khoản thuế FWT. Hình 10.28 trình bày một phần tập động dynaset. Đóng truy vấn.

Hình 10.28 Tập động dynaset qryFWTax.

Công thức tính lương sau thuế net pay bằng lương trước thuế Gross Pay - FWT - FICA - Medicare. Bạn đã tính lương trước thuế gross pay ở Bài tập 10.18 và FWT ở Bài tập 10.23. Vì thuế an sinh xã hội FICA tax và thuế chăm sóc y tế Medicare dựa trên phần trăm cố định của lương trước thuế gross pay – phần trăm thuế an sinh xã hội FICA tax là 6.2% và Medicare là 1.45% - bạn có tất cả thông tin cần để tính lương sau thuế net pay. Nhớ rằng ta đang lờ đi chặn trên FICA để đơn giản hóa tính toán.

BÀI TẬP 10.25: TẠO TRUY VẤN ĐỂ TÍNH LƯƠNG SAU THUẾ NET PAY

1. Kích Create tab rồi kích Query Design trong nhóm Queries.

2. Thêm qryFWTax qryGrossPay vào Table Pane. Định cỡ lại và dời các danh sách trường để bạn có thể thấy tất cả các trường trong từng danh sách trường.

3. Tạo liên kết giữa hai truy vấn bằng cách kích và kéo TimeCardID từ danh sách trường này đến TimeCardID ở danh sách trường kia. Bạn cần thấy liên kết giữa qryFWTax qryGrossPay. Tại sao lại cần liên kết này?

4. Kích kép EmployeeID, TimeCardID, LAPayPeriodEnded, và GrossPay từ danh sách trường qryGrossPay để thêm chúng vào Criteria Pane. Sắp EmployeeID theo thứ tự tăng Ascending. Thêm FWT từ danh sách trường qryFWTax vào Criteria Pane rồi lưu truy vấn với tên qryNetPay.

5. Nhập biểu thức FICA vào ô Field trống trong lưới QBE dùng hàm Round: FICA: Round([GrossPay] * 0.062,2). Thi hành truy vấn dùng 1/1/201231/1/2012 làm thời điểm đầu và thời điểm cuối để kiểm tra biểu thức. Các giá trị ở cột FICA trong tập động dynaset kết quả phải không được có nhiều hơn hai vị trí thập phân (xem Hình 10.29).

Hình 10.29 Tập động dynaset qryNetPay.

6. Nhập biểu thức Medicare vào ô Field kế FICA: Medicare: Round([GrossPay] * 0.0145,2). Lưu truy vấn.

7. Mở Property Sheet rồi đặt Format là Currency và Decimal Places bằng 2 cho cả FICA và Medicare. Lưu truy vấn.

8. Dùng công cụ tạo biểu thức Expression Builder để nhập biểu thức lương sau thuế net pay: NetPay: [GrossPay] - [FWT] - [FICA] - [Medicare]. Kích OK để dòng công cụ tạo biểu thức Expression Builder. Đặt Format là Currency và Decimal Places bằng 2; đặt Caption là Net Pay.

9. Lưu truy vấn rồi thi hành với tháng 01/2012. Tập động dynaset của bạn cần giống Hình 10.29. Đóng truy vấn.

Không có nhận xét nào:

Đăng nhận xét