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: 3856770 • 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

protected int id;
protected String name;
protected double price;
protected double vat;
// getters and setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getVat() {
return vat;
}
public void setVat(double vat) {
this.vat = vat;
}

public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(" (").append(id).append(") ").append(name).append(" ")
.append(price).append("u20ac vat ").append(vat).append("%");
return sb.toString();
}

protected Connection connection;
protected HashMap<Integer, Customer> customerCache
= new HashMap<Integer, Customer>();
protected HashMap<Integer, Product> productCache
= new HashMap<Integer, Product>();
protected PreparedStatement getCustomer;
protected PreparedStatement getProduct;
protected PreparedStatement getItems;
// constructor
private PojoFactory() throws ClassNotFoundException, SQLException {
Class.forName("org.hsqldb.jdbcDriver");
connection = DriverManager.getConnection(
"jdbc:hsqldb:resources/zugferd/db/invoices", "SA", "");
getCustomer = connection.prepareStatement(
"SELECT * FROM Customer WHERE id = ?");
getProduct = connection.prepareStatement(
"SELECT * FROM Product WHERE id = ?");
getItems = connection.prepareStatement(
"SELECT * FROM Item WHERE invoiceid = ?");
}

public Invoice getInvoice(ResultSet rs) throws SQLException {
Invoice invoice = new Invoice();
invoice.setId(rs.getInt("id"));
invoice.setCustomer(getCustomer(rs.getInt("customerid")));
List<Item> items = getItems(rs.getInt("id"));
invoice.setItems(items);
double total = 0;
for (Item item : items)
total += item.getCost();
invoice.setTotal(total);
invoice.setInvoiceDate(rs.getDate("invoicedate"));
return invoice;
}
public Customer getCustomer(int id) throws SQLException {
if (customerCache.containsKey(id))
return customerCache.get(id);
getCustomer.setInt(1, id);
ResultSet rs = getCustomer.executeQuery();
if (rs.next()) {
Customer customer = new Customer();
customer.setId(id);
customer.setFirstName(rs.getString("FirstName"));
customer.setLastName(rs.getString("LastName"));
customer.setStreet(rs.getString("Street"));
customer.setPostalcode(rs.getString("Postalcode"));
customer.setCity(rs.getString("City"));
customer.setCountryId(rs.getString("CountryID"));
customerCache.put(id, customer);
return customer;
}
return null;
}
public List<Item> getItems(int invoiceid) throws SQLException {
List items = new ArrayList<Item>();
getItems.setInt(1, invoiceid);
ResultSet rs = getItems.executeQuery();
while (rs.next()) {
items.add(getItem(rs));
}
return items;
}
public Item getItem(ResultSet rs) throws SQLException {
Item item = new Item();
item.setItem(rs.getInt("Item"));
Product product = getProduct(rs.getInt("ProductId"));
item.setProduct(product);
item.setQuantity(rs.getInt("Quantity"));
item.setCost(item.getQuantity() * product.getPrice());
return item;
}
public Product getProduct(int id) throws SQLException {
if (productCache.containsKey(id))
return productCache.get(id);
getProduct.setInt(1, id);
ResultSet rs = getProduct.executeQuery();
if (rs.next()) {
Product product = new Product();
product.setId(id);
product.setName(rs.getString("Name"));
product.setPrice(rs.getDouble("Price"));
product.setVat(rs.getDouble("Vat"));
productCache.put(id, product);
return product;
}
return null;
}
public static void main(String[] args) throws SQLException {
PojoFactory factory = PojoFactory.getInstance();
List<Invoice> invoices = factory.getInvoices();
for (Invoice invoice : invoices)
System.out.println(invoice.toString());
factory.close();
}

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