ISPConfig 3.05 RC1 & Billing Module (Debian Squeeze)

After installing a clean install of (in this order) Debian Squeeze, ISPConfig 3.0.4.6, billing module and then updated ISPConfig 3.05, I am getting this code below when I select the billing module:

DB::query(SELECT * FROM invoice_settings WHERE invoice_settings_id = 1) -> mysqli_query Table 'dbispconfig.invoice_settings' doesn't exist#0 db->query(SELECT * FROM invoice_settings WHERE invoice_settings_id = 1) called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT * FROM invoice_settings WHERE invoice_settings_id = 1) called at [/usr/local/ispconfig/interface/lib/classes/billing_functions.inc.php:15] #2 billing_functions->get_invoice_settings() called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:14] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-12-01' AND '2012-12-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-12-01' AND '2012-12-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-12-01' AND '2012-12-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:20] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-11-01' AND '2012-11-30') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-11-01' AND '2012-11-30') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-11-01' AND '2012-11-30') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:28] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-01-01' AND '2012-12-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-01-01' AND '2012-12-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-01-01' AND '2012-12-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:36] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2011-01-01' AND '2011-12-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2011-01-01' AND '2011-12-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2011-01-01' AND '2011-12-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:44] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-01-01' AND '2012-01-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-01-01' AND '2012-01-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-01-01' AND '2012-01-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-02-01' AND '2012-02-29') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-02-01' AND '2012-02-29') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-02-01' AND '2012-02-29') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-03-01' AND '2012-03-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-03-01' AND '2012-03-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-03-01' AND '2012-03-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-04-01' AND '2012-04-30') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-04-01' AND '2012-04-30') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-04-01' AND '2012-04-30') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-05-01' AND '2012-05-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-05-01' AND '2012-05-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-05-01' AND '2012-05-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-06-01' AND '2012-06-30') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-06-01' AND '2012-06-30') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-06-01' AND '2012-06-30') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-07-01' AND '2012-07-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-07-01' AND '2012-07-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-07-01' AND '2012-07-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-08-01' AND '2012-08-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-08-01' AND '2012-08-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-08-01' AND '2012-08-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-09-01' AND '2012-09-30') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-09-01' AND '2012-09-30') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-09-01' AND '2012-09-30') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-10-01' AND '2012-10-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-10-01' AND '2012-10-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-10-01' AND '2012-10-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-11-01' AND '2012-11-30') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-11-01' AND '2012-11-30') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-11-01' AND '2012-11-30') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-12-01' AND '2012-12-31') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-12-01' AND '2012-12-31') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:126] #1 db->queryOneRecord(SELECT sum(invoice_amount) as income FROM invoice WHERE (invoice_type = 'invoice' or invoice_type = 'refund') AND status_printed = 'y' AND invoice_date BETWEEN '2012-12-01' AND '2012-12-31') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:53] DB::query(SELECT * FROM invoice WHERE status_printed = 'y' ORDER BY invoice_date DESC LIMIT 0,5) -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT * FROM invoice WHERE status_printed = 'y' ORDER BY invoice_date DESC LIMIT 0,5) called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:112] #1 db->queryAllRecords(SELECT * FROM invoice WHERE status_printed = 'y' ORDER BY invoice_date DESC LIMIT 0,5) called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:68] DB::query(SELECT invoice_payment_term_id AS id,due_days FROM invoice_payment_term) -> mysqli_query Table 'dbispconfig.invoice_payment_term' doesn't exist#0 db->query(SELECT invoice_payment_term_id AS id,due_days FROM invoice_payment_term) called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:112] #1 db->queryAllRecords(SELECT invoice_payment_term_id AS id,due_days FROM invoice_payment_term) called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:86] DB::query(SELECT * FROM client, invoice WHERE client.client_id = invoice.client_id AND invoice.status_printed = 'y' AND invoice.status_paid = 'n') -> mysqli_query Table 'dbispconfig.invoice' doesn't exist#0 db->query(SELECT * FROM client, invoice WHERE client.client_id = invoice.client_id AND invoice.status_printed = 'y' AND invoice.status_paid = 'n') called at [/usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:112] #1 db->queryAllRecords(SELECT * FROM client, invoice WHERE client.client_id = invoice.client_id AND invoice.status_printed = 'y' AND invoice.status_paid = 'n') called at [/usr/local/ispconfig/interface/web/billing/billing_dashboard.php:97]

Seems as if the billing module was not installed correcly under 3.0.4.6 befaor you updated beacuse one of the tables is missing. You can try to fix this by deleting all tables starting with "invoice" in their table name in the ispconfig mysql database, then load the file sql/ispconfig3_billing.sql from the ispconfig billing module zip file with phpmyadmin into the dbispconfig mysql database.

The billing module 1.2 is for ISPConfg 3.0.4 but should work on 3.0.5 with some minor issues, a billing module for 3.0.5 will be released togehter with ISPConfig 3.0.5 final.

If you need a prerelease of the billing module for 3.0.5 RC1, please contact us by email to the address you received the billing module from.