Baty Returns

Upon joining Baty, one of my main responsibilities was to deal with fault tickets that came in, and to diagnose returned hardware. Most of these two systems were either paper based or were stored in spreadsheets, and make it difficult to update everybody on the status of items, or for multiple people to use the system at once. I discussed the idea of digitizing the paper side of the system, and to replace the spreadsheets with a MySQL database with my manager, which help resolve the issues we were having of people not knowing the status of items. There would also be the added benefit of being able to search, to alert people with automated emails when a task was passed to them, or needed their attention. I was given the go ahead, so we set up a Linux server in our office and started configuring a MySQL database. Shortly after, an early version of my returns system was being used by a few members of the office, with everybody moving to the new system after a few months of features being added and undergoing testing.

Login window
Advanced login window

When launching the application, you’re required to login to connect to the MySQL database in order to get to the main screen. You’re also able to change database / server settings, and test your connection to their server on this screen.


Unfortunately, I don’t have a MySQL server with the correct database layout in order to properly show off all the features of this application and to take better screenshots.

Upon reaching the main windows, you’re then able to view either the Fault tickets, or the returns. A datagrid taking up the bottom half of the window shows all the records for the selected tab. Clicking on an entry would populate the top half of the window with more information. By default, all records were shown in the datagrid, but you can view either all the incomplete tickets, or your own incomplete tickets by using the two buttons on the left side.

From here, you’re able to edit the items by toggling editing with the button on the left, adding a new ticket, or discarding any alterations to a ticket and disabling editing by using the corresponding buttons. At the bottom of the buttons there is a counter showing the amount of tickets for the selected view, with arrows to cycle through them.

The returns tab houses more options than the faults tab, including datagrid where items and parts can be added, and 2 windows with additional information. By hovering over the UPS Tracking # label will change it to red, and will let you know that you can view the tracking webpage by clicking on it.


The final tab allows the user to perform many search functions, ranging from searching a single column, to complex SQL queries. Results for these are displayed in the grid on the right-hand side of the top half of the screen.


  • Items in the File menu at the top give the usual options to open settings, logout and exit the application.
  • The Edit options mirror buttons found on the left-hand side, and offer the ability to add an entry and discard changes, along with being able to unlock an already completed ticket, and the ability to permanently delete an entry.
  • The help option opens the about menu, which shows the software version and gives the option to open the changelog.
  • Notify ticket holder sends the currently assigned ticket holder an email, in order to get their attention if you’ve updated details without changing the status or changing who the ticket is assigned to.
  • The export option saves the data to the word template that was previously used before this system, for when we needed to include printouts with completed repairs.


v 2.3.5080.29061
16:07 PM Thursday 28 November 2013 - Added an Export - Mailmerge function for the old returns document.
16:07 PM Thursday 28 November 2013 - Added in a button which notifies the ticket holder.
16:07 PM Thursday 28 November 2013 - Added in a status for the faults log.
16:07 PM Thursday 28 November 2013 - Revamped the status's for both tables. These can now be changed in the SQL server without having to rebuild the program.

02:59 PM Thursday 29 August 2013 - Fixed issue where items weren't being made read-only upon changing tables.

v 2.2.4981.19721

11:58 AM Wednesday 21 August 2013 - You can now only have 1 Address Info & Completion record window open at once.
11:59 AM Wednesday 21 August 2013 - The address info & completion record windows now show the correct data.

v 2.2.4980.17669

10:46 AM Tuesday 20 August 2013 - Fixed issue with new status's causing the program to crash.
10:47 AM Tuesday 20 August 2013 - Fixed issue with the returns address box not accepting the return key.
10:47 AM Tuesday 20 August 2013 - The telephone box in the address info window now works correctly.
10:48 AM Tuesday 20 August 2013 - Added spellcheck to the returns problem, inspection notes, and returns address.

v 2.2.4976.27427

04:15 PM Friday 16 August 2013 - Fixed issue whereby data pending to be added was removed after selecting no after trying to quit.

v 2.2.4976.27051

03:59 PM Friday 16 August 2013 - Added a caps lock indicator to the login window.
03:59 PM Friday 16 August 2013 - Update button in the Address Infk window is now disabled by default.

v 2.2.4976.22500

01:10 PM Tuesday 13 August 2013 - Fixed search so the right options are now shown.
10:09 AM Tuesday 13 August 2013 - Clicking on the ErrorMsg label now opens the ErrorMsg.txt file for that ticket (saved in N:\Tech\Received ErrorMsgs)
10:30 AM Friday 9 August 2013 - You can now input data into the completion record and returns address info windows when adding a new ticket.
10:29 AM Friday 9 August 2013 - Added more status's.
10:28 AM Friday 9 August 2013 - Locked tickets can be edited by selecting the locked ticket, and click on edit > Unlock Ticket.
10:26 AM Friday 9 August 2013 - Tickets will now become locked once they are completed.
10:26 AM Friday 9 August 2013 - If you are adding a new record or editing, you will be asked if you want to quit, whilst trying to close a window.
10:26 AM Friday 9 August 2013 - Added a new window to store returns address information.
03:38 PM Wednesday 31 July 2013 - Newly created records are now selected by default, rather than the last item.

Known Bugs - The Update button in the Address Info window isn't disabled by default. Pressing will cause program to crash.

v 2.1.4952.27152

09:57 AM Wednesday 17 July 2013 - Fixed Chris's name changing cases
04:05 PM Tuesday 23 July 2013 - New records now appear at the top, rather than the bottom of the table.
04:06 PM Tuesday 23 July 2013 - SQLResults is now nulled when nothing is displayed from My Incomplete.

v 2.0.4945.28345

04:46 PM Tuesday 16 July 2013 - Fixed Returns number getting stuck after adding then discarding.
04:47 PM Tuesday 16 July 2013 - Replaced Enable Editing button with an update button in the completion record window.
04:47 PM Tuesday 16 July 2013 - Changed the output of the Test Connection button in the login window to make it more readable
04:48 PM Tuesday 16 July 2013 - Fixed the appearance of the search window.
04:49 PM Tuesday 16 July 2013 - Your incomplete items will now show by default when swapping between tables.

Known Bugs - Adding a new record adds it to the bottom of the table rather than the top.

v 2.0.4944.27573

04:14 PM Monday 15 July 2013 - Added Returns log.
04:15 PM Monday 15 July 2013 - Added a Settings Window where you can change the startup table and the address book location.
11:28 31/05/2013 - Added in Test Connection button to the login window.
11:28 31/05/2013 - Added in About button to the login window, which shows the About Window.

Known Bugs - Returns number gets stuck after adding, then discarding.
	   - Crashes if you start to add a record, open up the completion record and click Enable Editing

v 1.6.4899.17783

30/05/2013 - Made the Ref Number textbox slightly wider.
30/05/2013 - Fixed an issue whereby the details from the address book weren't being saved correctly.

v 1.6.4897.15374

28/05/13 - A combobox now appears when you select "Assigned To" in the Main search.
29/05/13 - Complete UI Overhaul.

v 1.6.4892.28167

22/05/13 - Added a message in when you try to delete something, without selecting an entry to delete.
24/05/13 - When assigning a ticket back to the creator, they will no longer be CC'd as well as being the recipient.
24/05/13 - A combobox now appears when you select "Assigned To" in either Multiple Search or Advanced Search.

21/05/2013 - v 1.5.4889.22110

Added an Edit button to the address book. This enables you to change the company name, or any contact details.

20/05/2013 - v 1.5.4888.17796

Added an Address Book which can be accessed by clicking on the Company label

14/05/2013 - v 1.4.4882.15644

64bit build.

03/05/2013 - v1.4.4871.15660

Changed date format for "Date Created" to match the completed date's format.

02/05/2013 - v1.4.4870.28085

Email's now send asynchronously.
Added an Open ChangeLog button to the about screen.

02/05/2013 - v1.4.4870.21529

Added an If Statement which changes bsteele to BenSteele.

02/05/2013 - V1.4.4870.20530

Completed & File recieved now use bindings.
The current record is refreshed when you click Enable Editing, so you don't potentially overwrite data put in by other people since the last time you refreshed.
Changed dated format from dd/MM/yyyy to yyyy-MM-dd.

26/04/2013 - v1.4.4864.26365

Fixed the MyIncomplete search to now search via AssignedTo rather than the record creator.

25/04/2013 - v1.4.4863.18711

Fixed AssignedTo field not being saved correctly.

22/04/2013 - v1.4.4860.18877 - Experimental

Username field autofills with your Windows Logon name

22/04/2013 - v1.4.x

Added AssignedTo field.
The record creator, and the new Asignee gets emailed whenever the person the tickets assigned to changes.
Added a function which sends emails using the parameters passed to it (From, list of To's/CC's, subject, body) (can be used for returns, when implemented)

16/04/2013 - V1.3.x

Changed the reference tag format to F00001
Changed basic //Comments to ///Summary so you get more information when calling the functions.
Added a Function which returns the number of records + an Int that you pass to it.
Changed name from "Baty SQL Fault Log" to "Baty Fault Log"
Fixed issue where the next record button wasn't being disabled.


Updated the way the columns are generated.


Removed login error message


Fixed Product field not saving properly.
Clicking the Email label now opens a new email to the contact specified with their reference number.