This solution was delivered in late 2010 for an independent auto parts store in Baytown, Texas. It consists of a multi-threaded C# application, with a SQL database in a client/server setup and nightly backups.
Priority of Focus:
(1) [High] Reliability and Backup
(2) [High] Functionality / features
(3) [High] Reporting
(4) [Medium] Workflow / Usability
(5) [Low] Aesthetics
The C# application contains the following features:
Inventory System
- Add / Edit / Delete Product Lines
- Add / Edit / Delete Products within a Product Line
- Tree-list view of all Lines and Products
Client Accounts
- Add / Edit / Delete Accounts
- Invoice History for accounts
- Payment submissions (Accounts Receivable)
- Account Statements (Accounts Payable)
- Generate new monthly reports quickly
- Create historical reports by simply changing reporting parameters
- Review Payments
- View a list of all payments
- See invoices reconciled by those payments
Invoices
- Create new Invoices
- Choose customer type (walk-in vs. client account)
- Look up parts according to Product Line and Number
- Customize List Price and Sales Price for each item on each invoice
- Quick-Add of new Products from Invoice
- Select from numerous account payment types: Account Charge, Cash, Check, Credit Card
- Allows multiple payments per transaction
- Print Invoice
- Review existing Invoices
- See list of Products (line, item #, description), along with list price, sale price, qty sold, subtotal
- View all payments applied
- Print Invoice
- Return Products per Invoice (also available via look-up)
- Select Products to return
- Select Products to return Cores (such as for starters, alternators, etc)
- Specify quantity to return if multiple purchased
- Use the same options as listed above for Invoice Payments
Reports
- Generate reports based on custom dates or time spans
- Filter report based on a single account, charge accounts, over-the-counter transactions, or all invoices
Printing
- All reports, statements and invoices are generated via Excel and automatically present the print-preview
- All reports use templates customizable by the customer
Technical notes regarding the Database:
- The DB was stored on a local server and backed up nightly on the web.
- The client application connects to the DB remotely, and all operations are processed through transactions.
- Security for the DB was set to mixed mode to allow both Windows Authentication integration, as well as custom users.
- Security for the DB was set to mixed mode to allow both Windows Authentication integration, as well as custom users.
Technical notes regarding the C# application:
- Events and delegates to handle updates to the UI based on database look-ups.
- UI controls were created for all forms, status indicators, grids, etc. to maximize reusability.
- UI components were created to extend functionality for input items, such as a FinancialTextBox, PhoneNumberTextBox, etc, using masks and keypress events to control input.
- Reports are generated in Excel via a COM interface