They have to hit cancel at end of term before they are given a invoice. We check every invoice in the billing tab and monitor if they are paid. if they aren't paid we then check to see if they have a service and void it.
Looks like something doesn't have a value for a client_id. unless the client was removed and the data was still stored. The guys will know more about that.
2. Yes however you just use the patch zip unless it's a new build like 3.4.x 3.5.x etc. Sorry missed that .
3. It's included in Blesta please go to Settings > Plugins > Import Manager > Click on 5.3 you can find out more about it here: http://docs.blesta.com/display/user/Import+Manager and for the WHMCS stuff: http://docs.blesta.com/display/user/WHMCS+5.2
1. Yes you can trial it by downloading the files and on installation select 30 day trial.
2. It depends you can see how often they are updated here: http://www.blesta.com/forums/index.php?/forum/16-news/?sort_key=start_date&sort_by=Z-A
3. Yes it should be able to do all of them.
This appears to be resolved in CORE-1390, fixed in 3.3.2 and 3.4.0 and is a duplicate of this thread http://www.blesta.com/forums/index.php?/topic/3550-incorrect-date-in-invoices/. So I will close this thread.
PayFast not that I know of. You could ask them to see if they could do one for Blesta as they seem to provide the other integrations for other systems. "[snip]...which is provided by PayFast."
Otherwise you can open a feature request on the forum and it might be done by the Blesta development team however they are done by demand.
I'm not sure sorry, but Paul might be on in a few minutes to help you here however unless you mean can you accept Bank Transfer as a payment type on Blesta itself, yes you can we use the Offline payment gateway for that.
Template parse error: elseif tag doesn't exist
This is good if you want to do this:
{% if package.name == "Product A" %}
Whatever goes here.
{% elseif package.name == "Product B" %}
Whatever goes here.
{% else %}
This is for packages not listed above.
{% endif %}