A while ago, I purchased a promising project management script called Freelancer Office, at the time it looked great and I only had a few minor issues - which the developer happily sorted.

However, recently when using the software I've noticed a fair few issues and a whole bunch of comments on the software page on CodeCanyon that relate to a number of problems with some areas, thankfully, I'm in a position where I have the knowledge to resolve these issues but I know many people out there may not. I've put together this set of instructions to resolve a few of the issues that I've solved so anyone can resolve them and have a fully functioning script.

Issue #1 - Messages Screen Database Error:

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘web218_db7.fx_messages.msg_id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

SELECT * FROM fx_messages WHERE user_to = ‘1’ AND deleted = ‘No’ GROUP BY user_from

This is one of several issues with the Inbox, Sent and Favourites links on the messages page.
Thankfully, these are easily resolved.

In the application/models/Message.php file, there are three functions:
get_inbox($user) - Line 36, get_sent($user) - Line 42 and get_favourite($user) - Line 49.

Each function contains a line (x is replaced with to/from)

To resolve this issue, on each of these three functions, change this lime to:
->(group_by(array('user_x', 'msg_id')->get('messages')->result();
Replacing the x with the value that the old line was set to.

Issue #2 - Reports Screen Database Error:

The error message will be similar to the above but reference either line 104 or 118 in the Report.php file.

On line 104, replace ->group_by("paid_by") with ->group_by(array("paid_by", "p_id"));

On line 118, replace ->group_by("client"); with ->group_by(array("client", "id"));

Both pages should now be fully functional.
I hope this helps resolve some issues with the script. I'll continue to update this post with any further that I find.


Making these changes is at your own risk, I am in no way responsible if anything goes wrong as a result of changes made based on the advice given in this post. This includes breaking the script further, summoning an alien invasion, raising an Egyptian God, unplanned downtime or server errors.