Tuesday, 11 November 2014

Introducing Colin


I am pleased to announce the first release of Colin, our integrated testing suite for KwaMoja. This software automatically controls KwaMoja using the libcurl libraries, and compares the results against expected results, outputting the results in a nice web viewable format. The tests can be batch run, so hundreds of tests can be automatically run and their results viewed.

Technical Details

The suite contains a a library of functions for automating a complete KwaMoja session. There is a function to login, to choose an appropriate module, to choose an appropriate menu item, to run any number of options within that option, and to logout. Each step of the way, various tests are run for PHP errors/warnings/notices etc and any of these are recorded. All links in a page are verified to make sure they are not broken. When a page carries out some action against the database the result is verified. More verifications will be put in, software of this kind is never complete.


The output from a Colin session can be viewed through your web browser, and looks like this:
If there are any details clicking on the "Details" link will bring up a new page showing these:
This will include any screenshots automatically saved by Colin:

Can I get a Colin of my own?

Yes. Colin is released under the GPL v2.0 license and is obtainable from my github site https://github.com/timschofield/colin

Why Colin?

Why not? It just seemed like a good name to me!

Monday, 3 November 2014


In the world of open source software a lot of emphasis must be placed on honesty and trust. You have to be able to trust that when you submit code to the administrator of a project that the code is released under the correct license and that is correctly accredited to you. This accreditation is not a question of ego but of common decency and of honesty.

Whenever code gets added to KwaMoja I go to great lengths to attribute the code to the correct author as can be seen here

All the work we do in KwaMoja is made available to the webERP project, however recently the project admin +Phil Daintree has been consistently attributing the work to himself rather than to the actual author.

For instance +Fahad Hatib did some considerable work to remove the $db variable throughout the code base, and I personally made that available to +Phil Daintree.

This work was committed to webERP here. Instead of correctly attributing that work to +Fahad Hatib Phil decided to claim the credit for this work to himself:

Unfortunately this seems to be typical of the recent dishonest behaviour of the leadership of the webERP project.

Tuesday, 14 October 2014

New demo for KwaMoja-Medical

Following on from this post regarding our hospital extensions for KwaMoja I have created an online demo for the KwaMoja-Medical branch. This demo can be found here.

This demo has a separate module called "Hospitals" (maybe this should say Medical??) and includes facilities for registering patients, dispensing and billing for pharmaceuticals, billing for Radiology and Laboratory tests any other medical services a hospital needs.

It also now has the facilities write notes on a particular patient, and to review a patients entire history, including notes in one screen.

At the moment the intended audience for this is smaller clinics and hospitals where a fully fledged HIS is not really applicable. However as time goes on and more functionality gets added then who knows......

Monday, 13 October 2014

Upgrading from webERP to KwaMoja

With the still unfixed $AllowAnyone security issue and the recent buggy release of webERP a number of people have asked me how to upgrade from webERP to KwaMoja.

Well it really couldn't be more easy! Thanks in no small part to the hard work of Fahad we have kept an easy upgrade path, despite the numerous improvements and enhancements we have done in KwaMoja.

So if you want to take advantage of the stability, security, and additional features of KwaMoja here is what you do:

1 Backup everything. This includes all your webERP databases, and all of your webERP code.
2 Download the latest KwaMoja code from here: https://github.com/KwaMoja/KwaMoja/archive/develop.zip
3 Extract the files from here and copy them over your current webERP implementation.
4 Make sure that the webserver user has read and write permissions on everything under the companies directory.
5 Login to your new KwaMoja implementation using the same url and the same login credentials that you used for webERP
6 You should now be greeted with a screen telling you that there are database updates to do. Click Continue to do these updates. You may get some error messages telling you that some of these have failed. Do not worry about these, it just means that the data was already there.
7 Once this is completed, log out of KwaMoja.
8 In each of your companies directories you should now have a file called Companies.php. This should contain a line some thing like this:

$CompanyName['weberpdemo'] = 'weberpdemo';

Change this to be the name of your database and the full name of your company/organisation. eg.

$CompanyName['kwamoja'] = 'KwaMoja Demonstration Company';

Once you have done this refresh the login screen and the full company names should appear.
9 Log back in to KwaMoja. Some themes work better than others in KwaMoja. We recommend that you use the "aguapop" theme for the best interface.

And thats it, you have now upgraded. Any problems log them onto the kwamoja.com forums!!

Saturday, 11 October 2014

New KwaMoja demo site

There is a new demo for KwaMoja here: http://demo.kwamoja.com
The demo includes a lot of new features such as a new Quality Assurance module, updated Order acknowledgements/Picking Lists functionality, a bridge to synchronise data with OpenCart, the facility to import bank transactions in many formats, a job scheduler to run certain KwaMoja scripts automatically, new levels of security for bank accounts and locations, many speed improvements to the code, and much much more

Monday, 1 September 2014

Bizarre behaviour of LinkedIn and other social media thoughts.

I recently received an email from LinkedIn that told me that user Phil Daintree had complained that I was using a logo supporting  the work I do in Africa instead of a photo of a person and that they had removed that logo.

Now this got me thinking. Not just about how +Phil Daintree  ought to find more constructive uses for his time, but also about the fact that LinkedIn have no idea of what I actually look like, so would have no way of knowing whether the picture I put on was me, or a picture of any of you who are reading this. All of the information about me on my profile is accurate and there was never any prospect of anybody accidentally believing tricked into believing that logo was actually a picture of my face!

So LinkedIn are happy for me to use a photo of a random person, but not happy for me to use a logo of an open source project supporting Africa. Come on LinkedIn that is a nonsense.

Social media should be about empowering me to share information about me that I want to share.

Friday, 11 July 2014

KwaMoja / webERP hospital extensions

I am pleased to announce that we have brought our hospital extensions in line with the latest code, and that it is now available for testing. It can be downloaded from my github site at https://github.com/timschofield/KwaMoja/tree/KwaMoja-Medical.

This code by itself can be used in small clinics where it is just necessary to track what treatment a patient has had, and do the financials, or it can be used together with Care2x (http://www.care2x.org).

On installation you should find that you have another module called "Hospitals" installed. 

This module contains all the options for billing patients, dealing with the insurance companies, and reporting on the hospitals activities.

Using these extensions will provide a great help in tightening up a hospitals financial activities, and considerably help to reduce fraud. A brief description of how this works is given below.

Each cashier has a petty cash account that is just for their use, and which can be restricted to just them and a senior accountant/cashier to use. 

The Hospitals module contains options to bill from various hospital departments.

When a patient presents themselves at the cashier for say, the Laboratory, the cashier just has to select the option for "Billing For Laboratory Tests". They will then see a screen for helping them find the patient:
This is the same for whichever billing option the cashier chooses. As can be seen the cashier can search on many different ways, including the name, address, phone number to establish the right patient. Once the patient has been selected the cashier will see the billing screen:
If the link to Care2x is active then all the unbilled laboratory tests for that patient
will be shown, together with the total amount to be paid, so that all the cashier has to do is to collect the cash from the patient, and click on "Make Payment".
If the Care2x link is not activated then the patient should present the cashier with a document to show what Laboratory test they have been prescribed. The cashier then selects this as follows.
When the lab test is selected the price for that test is automatically pulled from the system. This depends on what price list was selected for that patient. Any number of price lists can be setup and selected for the patient. The cashier can select as many tests as needed, and the total amount payable is automatically entered in the "Amount Received" box.

When the cashier clicks on the "Make Payment" button all accounting and stock transactions related to this payment are automatically done using pre determined parameters.

At the end of the shift the cashier prints out a transactions report for their cash account, and the total of that list must agree with the total amount of cash that the cashier has collected. This list together with the cash is then taken to the chief accountant/cashier who verifies that the cash agrees with the report, and then does a transfer of cash from the cashiers account to the main account, which makes the balance of the cashiers account zero, in preparation for their next shift.

The chief accountant, or other authorised person then produces a report of any laboratory tests that were prescribed but have not been billed, and any items shown on this report need to be analysed to see why they have not been billed.

 There are various other reports and configuration options available which there isn't space to go into right now, and I will try to publish another article on these.