I have ported the Bar Code Scanning System from Kylix to Free Pascal.
It is still a console application that runs on Linux via Telnet/SSH.
The interface remains the same as the Kylix version for compatibility and training.
It does fix a number of issues with the design and logic flows.
The Kylix version is 1.5.
The FreePascal version is 1.6.
The biggest change is user logon requests.
The Kylix version only had a logon when the app was started.
The FreePascal version requires a logon before any function that makes an update.
This means that starting with version 1.6 a user will need to remember their ID/Password or carry a badge they can scan.
When shipping a manifest the user will be prompted to sign in before scanning the manifest number.
Look ups are done using a Read-Only transaction.
With the manifest shipping both a read-only and a read-write transaction are used.
Also with the Shipping a Manifest, the 1.6 version now adds checks for Quarantine and Customer Status.
If a customer account is On Hold, the scanner will now tell the user and not allow shipping unless there is an override applied or the hold status removed. The same for Is Dead, Never Again, and Is Bankrupt checks.
As part of the porting, the code has been cleaned up and refactored.
The Kylix version had a single file. The FreePascal version is now split into multiple files based on functional area.
Lookup routines have been refactored and standardized across functional areas.