Month: November 2019

Development

Business Audit Software

The freight forwarding management system software we developed has a company audit module. This program runs every night and checks for any possible error in the business. In total it checks around 50 different situations that indicate a problem in the company from loss on a file to a missing number.

This week I added a function that checks if there is any missing invoice number. For example if invoice 2 is followed by 4 this is a problem because you might not ask for payment for this missing invoice 3.

The application checks all companies. Within each companies it checks if any invoice or credit note is missing and reports that in an email. As the invoice formats are very different and a combination of letters and numbers like A1900000171B we have to work with Regular expressions in the online PHP / Mysql application.

The software found a long list of mistakes in 2 seconds by scanning 4 companies over 10 years and right now our financial staff is following up on all the problems the system detected. It finds problems that no human could possibly find because the information is simply too vast and we can never foresee the errors that employees make like naming the PDF file of the invoice Invoice 1000.pdf and inside the PDF the invoice number is 495.

The app also checks that a higher invoice number has the same or a higher issue date compared to the previous invoice number.

Together with the other 50 business auditing modules this software allows you to have total control over your business without spending any time investigating. The application does everything for you and in the morning you just have to read the report it produced during the night.

Development

PHP Application to find duplicate customer names in a…

For the past days we first figured out how to recognise duplicate client names. The php script takes each companyname and removes any “dust” first like dots and kommas
in the name as well as “words” of 1 letter only. Like this A.M.F. Inc becomes AMF Inc and Starship,S.R.L. becomes Starship SRL.
Then he measures the frequency of each origin word in the database and selects the subset with the less frequent word. In that subset he looks for more matching origin
words and then decides that the MYSQL base contains a duplicate and warns the operator. The operator can accept or reject the proposed replacements by the php application.

If the operator accepts then all tables in a database are searched that contain “entityid” and a list of all tables with entity is then updated with the new entityid like
invoice , booking , rates , quotations. After doing the updates the duplicate row is then removed from the entity table.

As a joke we decided to introduce a machine learning part into the php script that records all decisions made by the operator. Then when the next replacement proposal
is made the Artificial Intelligence Unit searches for the nearest situation in the recorded data and advises if it would replace or not if the AI had been given that autonomy.

If it advised wrong this is also recorded and the AI has then to analyse why it made a wrong decision and increase or decrease the weight factor of the variable that had
been over or underrated. Easier said than done. At the moment we are struggling with recording all the decision results. Then we will write the database search for the AI
to find the most similar past recorded situation , and then we will design the calculations that have to produce the Machine’s advice. Challenging !