It works on PHP 8.2!
Michael Dale
Upgrading the OS this site (and a few others including https://www.vogonswiki.com) runs on was one of my goals for the Christmas break this year.
Unfortunately there is a lot of old scripts running on it; making it difficult to move past PHP 7.0.
I've finally fixed a lot, most were pretty easy (including this site), mediawiki was the worst so far.
I've been able to switch over to PHP 7.3 now which is great. Hopefully I can get to 7.4 this year?
Also had to rebuild the raspberry pi zero running our gate recently. That was a pain. The SD card died so I replaced that and upgraded to Raspbian/Debian 12, that broke all the GPIO libraries I was using :/
Isn't upgrading fun? Actually I'm pretty happy how well things are working considering I ignore them for years at a time.
Next I'm actually thinking of upgrading this blog to replace the theme with something new, although not sure yet.
Bootstrap on Bluetrait!
Michael Dale
About time is all I can say!
Still needs some work but yeah it works :D
Responsive too.
Tickets
Michael Dale
I've been working on it for the last few months and it is now pretty awesome.
Password Manager
Michael Dale
I've never found a password manager that I like (the story of my life)!
I've never been a fan of hosting my personal data with other companies.
So I spent two days writing my own.
Mr Password is awesome. It does almost everything a Password Manager should do. I'm selling it cheap on codecanyon and once purchased you get free upgrades and access to the code.
Features include:
Go get it, only $US8-10 (depending on the way you purchase it).
Link: http://codecanyon.net/item/password-manager/2145518
Demo
URL : http://www.onlinecompanyportal.com/mrp/
Username: admin
Password: 1234
IPManager Invoicing
Michael Dale
Invoicing is just about complete! There are two more things that are not finished yet, PDF invoices and emailing the invoicing. Both will be pretty easy.
There were a few complex SQL queries to handle the tax calculations (and to have the total on the view all invoices page).
Here is what it looks like (click to see full size).
Fun with JQuery
Michael Dale
I am in the process of writing in invoicing support for IPManager (need to change the name of this app!). I've looked at Xero and Saasu but I'd still need to work out their API, and I don't like the idea of companies having access to my data, so I'm doing it myself :)
To do it nicely I need to use a bunch of JQuery so that you can easily add new line items on the fly (and calculate tax etc).
I've got it working just the way I want it, using a very long JQuery command!
Here are a couple of screen shots:
And here is the basic design that the clients will see:
I am pretty happy with it so far, lots of work to go though.
New IPManager Design
Michael Dale
This theme will be out for version 2.6 (no time frame for this release yet).
Bluetrait Money
Michael Dale
New version of Bluetrait Money is finally out!
You can purchase it from here:
codecanyon.net/item/bluetrait-money/458252
IPManager 2.2 tickets sql improvements.
Michael Dale
Primary tickets query in IPManager, working very nicely (110,000 tickets in a slow VM).
SQL result
Host: localhost
Database: ipm_test
Generation Time: Jun 21, 2011 at 01:10 AM
Generated by: phpMyAdmin 3.2.0.1 / MySQL 5.1.36-community-log
SQL query: EXPLAIN SELECT tickets.* , c.id AS `source_client_id`, c.client_name AS `source_client_name`, c.email AS `source_client_email`, c2.client_name AS `assigned_user_name`, c2.email AS `assigned_user_email`, comp.name AS `source_company_name`, p.name AS `priority_name`, t.name AS `ticket_state_name` FROM tickets LEFT JOIN clients c ON c.id = tickets.source_client_id LEFT JOIN clients c2 ON c2.id = tickets.assigned_user_id LEFT JOIN priorities p ON p.id = tickets.priority_id LEFT JOIN ticket_state t ON t.id = tickets.ticket_state_id LEFT JOIN companies comp ON comp.id = tickets.source_company_id WHERE 1 = 1 AND tickets.ticket_state_id = 1 ORDER BY last_modified DESC LIMIT 50 OFFSET 0;
Rows: 6
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | tickets | index | ticket_state_id | last_modified | 8 | NULL | 50 | Using where |
1 | SIMPLE | c | eq_ref | PRIMARY | PRIMARY | 4 | ipm_test.tickets.source_client_id | 1 | |
1 | SIMPLE | c2 | eq_ref | PRIMARY | PRIMARY | 4 | ipm_test.tickets.assigned_user_id | 1 | |
1 | SIMPLE | p | eq_ref | PRIMARY | PRIMARY | 4 | ipm_test.tickets.priority_id | 1 | |
1 | SIMPLE | t | const | PRIMARY | PRIMARY | 4 | const | 1 | |
1 | SIMPLE | comp | eq_ref | PRIMARY | PRIMARY | 4 | ipm_test.tickets.source_company_id | 1 |