Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

ACCT326 Course Project (Technology Project) Assume you are the owner of a small

ID: 3856772 • Letter: A

Question

ACCT326 Course Project (Technology Project)

Assume you are the owner of a small CPA practice in a major metropolitan area. You have six professional employees, of which 2 are relatively new CPAs (recent graduates from UMUC), and an experienced office manager. In the past, your practice consists primarily of tax and advisory services, but you want to expand the practice. Based upon your desires to expand the practice, you have found a potential new client.

The client has a growing homeowners' association consisting of 1000 homeowners, who is in the process of acquiring with four other homeowner associations within the next 90 days. This acquisition will increase the number of homeowners to 3000. The new client is interested in using a single automated accounting information system that will be able to perform the following functions:

Billing (Invoicing): Each month, the system will generate an itemized bill for each homeowner. The fees will vary from $100 to $200 per month, based upon the location of each home, and the type of home (townhouse or single family homes). Late fees are 20 percent per month of the unpaid balance. The bills are mailed the 25th of each month and payment is due by the 10th of the following month.

Collections (Receipts): Payments can be made in person (at the HOA main office); via mail (via a PO Box); or electronically. Payments will be deposited to the client’s account.

Payments (Checks): It is expected that the system will generate a minimum of 100 checks / payments each month. These payments will cover a variety of services, such as expenses for office supplies; rent; utilities; landscaping; and trash/snow removal.

Payroll: It is expecting that the client will have roughly 20 full-time employees and 30 part-time employees. Employees will be paid on a bi-weekly basis. Payment will be made from the client’s payroll checking account, which is separate from the client’s primary account.

Currently two of the four HOAs (including the client) are using an automated accounting system (Sage and QuickBooks), while the others are using Microsoft Excel to perform its accounting functions. Per this, you can see why the client will want to move to a single system. The client is using QuickBooks, but is open to using another system.

As the owner of the CPA firm, you are excited by this opportunity because it is a way to expand your practice, but this is an opportunity that is very new to you. As the result of this opportunity, you have asked your lead CPA to develop a document that will help you to determine if you should proceed with this opportunity. You have given your resources four weeks to complete this assignment.

Required: Using the methodology developed in this course, document and illustrate the system from an automated function viewpoint. As part of your documentation, you will need to identify the specific system requirements in the areas of inputs, outputs, and controls for each of the service areas. Your finish product will be a paper based upon the following outline:

Section 1. Executive Summary

Section 2. Introduction

Section 3. System Requirements

Section 4. Outsourcing Functions

Section 5. System Selection

Section 6. Challenges to Automation

Listed below is a summary of each section, including projected page lengths.

Section I – Executive Summary: In this section, you will provide an executive summary of the paper. The summary should be limited to 2 pages double-spaced or 1 page single-spaced. NOTE: Develop the summary after you have completed Section II – VI.

Section II – Introduction: In this section, you will provide narrative regarding the current business problem and how automation may or may not address the problem. The introduction should be limited to 2 pages double-spaced or 1 page single-spaced.

Section III – System Requirements: In this section, you will document the specific requirements (input, output, & control) as required for each of the respective functions (billing, collections, payments, & payroll). In order to complete this, you will need to identify the following:

A general description of the process and the necessary data you would need to collect in order to process transactions for the function in question (INPUT)

A description of the information, including data that will need to generated when processing transactions (OUTPUT)

A listing of key controls that needs to be implemented to support & secure the function.

NOTE: This will be your longest section. You can expect to spend at least 2 – 3 pages for each system requirement (e.g., billing, collections). Do not tread lightly in this area.

Section IV – Outsourcing Considerations: In this section, you will identify functions that may be prime candidates for outsourcing. For those functions that are selected for outsourcing, you will need to explain why they are; the possible benefits; and potential concerns. This section should be at least 2 pages double-spaced or 1 page single-spaced.

Section V – System Selection: In this section, you will recommend a PC-based accounting system to support your new system. In developing your recommendation, you should discuss the system’s relative strengths & weaknesses, and why you are recommending it. Also, you will recommend a migration plan (parallel, phase, etc.) for implementing the solution. This section will exceed 2 pages double-spaced or 1 page single-spaced. NOTE: Information from Assignment #2 will be helpful to you as you complete this section. You will not be able to simply "cut & paste" information from Assignment 2, but information from Assignment #2 will help you in determining your system’s relative strengths and weaknesses.

Section VI –Challenges to Automation: In this section, you will identify and discuss the challenges to migrating to a new automated system. This section should be at least 2 pages double-spaced or 1 page single-spaced.

While here is no recommended page length for the assignment, you can use the recommendations proposed in each section to determine how long your response will be. Your page count does not include such items as cover page and reference page. You will need to include sufficient references to support your analysis, including references from your reading

Explanation / Answer

public class SalariedEmployee extends Employee
5 {
6 private double weeklySalary;
7
8 // four-argument constructor

9 public SalariedEmployee( String first, String last, String ssn,
10 double salary )
11 {
12 super( first, last, ssn ); // pass to Employee constructor
13 setWeeklySalary( salary ); // validate and store salary
14 } // end four-argument SalariedEmployee constructor

15
16 // set salary
17 public void setWeeklySalary( double salary )
18 {
19 weeklySalary = salary < 0.0 ? 0.0 : salary;
20 } // end method setWeeklySalary
21
22 // return salary

23 public double getWeeklySalary()
24 {
25 return weeklySalary;
26 } // end method getWeeklySalary
27
28 // calculate earnings; override abstract method earnings
// in Employee
29 public double earnings()
30 {
31 return getWeeklySalary();
32 } // end method earnings

33
34 // return String representation of SalariedEmployee object
35 public String toString()
36 {
37 return String.format( "salaried employee: %s %s: $%,.2f",
38 super.toString(), "weekly salary", getWeeklySalary() );
39 } // end method toString

40 }

Hide Shrink Copy Code
1 // Figure 10.6: HourlyEmployee.java
2 // HourlyEmployee class extends Employee.
3
4 public class HourlyEmployee extends Employee
5 {
6 private double wage; // wage per hour

7 private double hours; // hours worked for week
8
9 // five-argument constructor
10 public HourlyEmployee( String first, String last, String ssn,
11 double hourlyWage, double hoursWorked )
12 {
13 super( first, last, ssn );
14 setWage( hourlyWage ); // validate hourly wage

15 setHours( hoursWorked ); // validate hours worked
16 } // end five-argument HourlyEmployee constructor
17
18 // set wage
19 public void setWage( double hourlyWage )
20 {
21 wage = ( hourlyWage < 0.0 ) ? 0.0 : hourlyWage;
22 } // end method setWage

23
24 // return wage
25 public double getWage()
26 {
27 return wage;
28 } // end method getWage
29
30 // set hours worked

31 public void setHours( double hoursWorked )
32 {
33 hours = ( ( hoursWorked >= 0.0 ) && (
hoursWorked <= 168.0 ) ) ?
34 hoursWorked : 0.0;
35 } // end method setHours
36
37 // return hours worked

38 public double getHours()
39 {
40 return hours;
41 } // end method getHours
42
43 // calculate earnings; override abstract method
// earnings in Employee
44 public double earnings()
45 {
46 if ( getHours() <= 40 ) // no overtime

47 return getWage() * getHours();
48 else
49 return 40 * getWage() + ( gethours() - 40 ) * getWage() *
1.5;
50 } // end method earnings
51
52 // return String representation of HourlyEmployee object

53 public String toString()
54 {
55 return String.format(
"hourly employee: %s %s: $%,.2f; %s: %,.2f",
56 super.toString(), "hourly wage", getWage(),
57 "hours worked", getHours() );
58 } // end method toString
59 } // end class HourlyEmployee

Hide Shrink Copy Code
1 // Figure 10.7: CommissionEmployee.java
2 // CommissionEmployee class extends Employee.
3
4 public class CommissionEmployee extends Employee
5 {
6 private double grossSales; // gross weekly sales

7 private double commissionRate; // commission percentage
8
9 // five-argument constructor
10 public CommissionEmployee( String first, String last,
String ssn,
11 double sales, double rate )
12 {
13 super( first, last, ssn );
14 setGrossSales( sales );
15 setCommissionRate( rate );
16 } // end five-argument CommissionEmployee constructor

17
18 // set commission rate
19 public void setCommissionRate( double rate )
20 {
21 commissionRate = ( rate > 0.0 && rate < 1.0 ) ? rate : 0.0;
22 } // end method setCommissionRate

23
24 // return commission rate
25 public double getCommissionRate()
26 {
27 return commissionRate;
28 } // end method getCommissionRate
29
30 // set gross sales amount

31 public void setGrossSales( double sales )
32 {
33 grossSales = ( sales < 0.0 ) ? 0.0 : sales;
34 } // end method setGrossSales
35
36 // return gross sales amount
37 public double getGrossSales()
38 {
39 return grossSales;
40 } // end method getGrossSales

41
42 // calculate earnings; override abstract method earnings
// in Employee
43 public double earnings()
44 {
45 return getCommissionRate() * getGrossSales();
46 } // end method earnings
47
48 // return String representation of CommissionEmployee object

49 public String toString()
50 {
51 return String.format( "%s: %s %s: $%,.2f; %s: %.2f",
52 "commission employee", super.toString(),
53 "gross sales", getGrossSales(),
54 "commission rate", getCommissionRate() );
55 } // end method toString
56 } // end class CommissionEmployee


public class PayrollSystemTest
5 {
6 public static void main( String args[] )
7 {
8 // create subclass objects
9 SalariedEmployee salariedEmployee =
10 new SalariedEmployee( "John", "Smith", "111-11-1111",
800.00 );
11 HourlyEmployee hourlyEmployee =
12 new HourlyEmployee( "Karen", "Price", "222-22-2222", 16.75,
40 );
13 CommissionEmployee commissionEmployee =
14 new CommissionEmployee(
15 "Sue", "Jones", "333-33-3333", 10000, .06 );
16 BasePlusCommissionEmployee basePlusCommissionEmployee =
17 new BasePlusCommissionEmployee(
18 "Bob", "Lewis", "444-44-4444", 5000, .04, 300 );
19
20 System.out.println( "Employees processed individually: " );
21
22 System.out.printf( "%s %s: $%,.2f ",
23 salariedEmployee, "earned", salariedEmployee.earnings() );
24 System.out.printf( "%s %s: $%,.2f ",
25 hourlyEmployee, "earned", hourlyEmployee.earnings() );
26 System.out.printf( "%s %s: $%,.2f ",
27 commissionEmployee, "earned",
commissionEmployee.earnings() );
28 System.out.printf( "%s %s: $%,.2f ",
29 basePlusCommissionEmployee,
30 "earned", basePlusCommissionEmployee.earnings() );
31
32 // create four-element Employee array

33 Employee employees[] = new Employee[ 4 ];
34
35 // initialize array with Employees
36 employees[ 0 ] = salariedEmployee;
37 employees[ 1 ] = hourlyEmployee;
38 employees[ 2 ] = commissionEmployee;
39 employees[ 3 ] = basePlusCommissionEmployee;
40
41 System.out.println(
"Employees processed polymorphically: " );
42
43 // generically process each element in array employees
44 for ( Employee currentEmployee : employees )
45 {
46 System.out.println( currentEmployee ); // invokes toString

47
48 // determine whether element is a BasePlusCommissionEmployee
49 if (
currentEmployee instanceof BasePlusCommissionEmployee )
50 {
51 // downcast Employee reference to
52 // BasePlusCommissionEmployee reference

53 BasePlusCommissionEmployee employee =
54 ( BasePlusCommissionEmployee ) currentEmployee;
55
56 double oldBaseSalary = employee.getBaseSalary();
57 employee.setBaseSalary( 1.10 * oldBaseSalary );
58 System.out.printf(
59 "new base salary with 10%% increase is: $%,.2f ",
60 employee.getBaseSalary() );
61 } // end if
62
63 System.out.printf(
64 "earned $%,.2f ", currentEmployee.earnings() );
65 } // end for
66
67 // get type name of each object in employees array
68 for ( int j = 0; j < employees.length; j++ )
69 System.out.printf( "Employee %d is a %s ", j,
70 employees[ j ].getClass().getName() );
71 } // end main

72 } // end class PayrollSystemTest

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote