InvoicePlane 1.5.0 Beta 4 - Please help testing!

Dear community,

I just released a first beta for the upcoming new release of version 1.5.0. I would like to ask you to help testing the app as it contains a lot of new features and some major parts of the application were rewritten or changed.

:package: Download the 1.5.0 Beta 4 package

If you used Beta 2 or 3 before you can update directly by replacing all files. If this is your first Beta you can upgrade from version 1.4.10 or make a completely fresh install.
Please read these additional upgrade notes.


Please report any issues in this thread only. Please do not open new threads for issues with this beta version.

:warning: Warning

Do not use this beta version in your production environment! We cannot promise that everything is working as expected and may also lead to major data loss.


:rocket: New features

Configuration is now saved in the ipconfig.php file (IP-484)

This is a very important change to separate all important configuration from the application itself. If you upgrade an existing setup, follow these steps:

  • Make a copy of the ipconfig.php.example file and rename it to ipconfig.php
  • Note your database credentials and overwrite the application/config/database.php file with the new one.
  • Set your domain in the ipconfig.php file. There is a setting for this on top of the file.
  • Start the setup. The setup will ask for your database credentials and automatically save them. After that the database is upgraded for 1.5.0.

26 new Online Payment providers

You want your customers to pay their invoices via PayPal, credit card or even Bitcoin? InvoicePlane now features 26 new online payment providers from PayPal or Stripe to Coinbase.
If you used PayPal before: please re-enter your credentials as they can’t be migrated automatically.

Warning: always use the test mode to test the online payment feature. We can’t be hold liable if you lose any money or get in problems with your payment provider.

Themes (IP-338)

InvoicePlane now supports third-party themes and ships with two different themes. Take a look at the themes repository for more information.

Please notice that the files for custom CSS (custom.css and custom-pdf.css) moved to the assets/core/css folder. Make sure you transfer your custom styles to these files.

Projects and Tasks (IP-162)

We finalized the projects and tasks module. Users can now create tasks and organize them into projects. Tasks can be added to invoices to directly bill them. Projects and tasks were added to the dashboard.

New custom field types (IP-46)

User can now select one of four types for custom fields:

  • simple text
  • a date picker
  • yes / no checkbox
  • single choice
  • multiple choice

Product Units (IP-475)

Users can now add and assign custom units to their products which will show up in the PDF.

Sumex Invoices (IP-499)

@denysvitali implemented support for Sumex invoices. Please contact him if you want to use the feature as additional requirements must be fulfilled and an advanced setup is needed.

Filter products by family (IP-219)

Users can now filter products by their product family


Other notable changes

  • Enhanched select fields everywhere
  • Support for non-standard MySQL ports
  • Quote data is now available in invoice PDFs if applicable
  • Two digit year number is now available in quote and invoice numbers

Fixed bugs

  • Recurring invoices should now work correctly
  • Assignment of clients to users was fixed
  • Calculation and read-only was fixed for invoices
  • Payment of credit invoices was fixed

:beetle: List of known Beta Issues

  • Import seems to be broken
  • undefined function get_country_name(), please see this post for a fix
  • An unknown bug leads to 404 errors if guests want to pay invoices
1 Like

Tax rate with 3 decimal places are now being stored correctly in the database by default however, the tax rate is still being displayed incorrectly in the invoices (only 2 decimal places). Same thing when downloading the PDF.

Good news is that tax is being calculated correctly so it’s only a display bug.

Import function doesn’t work:

A PHP Error was encountered

Severity: Warning

Message: array_keys() expects parameter 1 to be array, null given

Filename: models/Mdl_import.php

Line Number: 136

At the end of setup after it says database is successfully configured :

Fatal error: Call to undefined function random_bytes() in /invoices/application/modules/setup/controllers/Setup.php on line 350
A PHP Error was encountered
Severity: Error
Message: Call to undefined function random_bytes()
Filename: controllers/Setup.php
Line Number: 350
Backtrace:

Apparently random_bytes is native to PHP 7, and im running 5.6 , is there a workaround ?

Ah, thanks for the hint. Will fix that as soon as possible. You may replace the function with openssl_random_pseudo_bytes() in the meantime if you server has OpenSSL installed.

You may change the tax rate decimal places in the system settings:

openssl_random_pseudo_bytes() worked, but now with remove index.php from url set to true, I get 404 (which before was solved by using RewriteRule .* /index.php [L] in .htaccess

The .htaccess is still needed.

–yes but its not working with remove index.php set to true, when set to false, I get login just fine–

Got it :
Correct = RewriteRule .* index.php [L]
Incorrect = RewriteRule .* /index.php [L]

Also, in ipconfig.php
If installed in a subfolder, IP_URL= needs to include subfolder without trailing slash
e.g. http://your-domain.com/subfolder

i’ve been away for approximately how long and the awaited feature has just become available? gotta try it out by chance.

Testing reoccurring invoices would be quicker if they could be set to daily rather than weekly as the minimum period – what is the best way to do this, a MySQL command would be fine…

Just set the starting date to today, make a database backup, run the cron and after that re-import the database backup. That’s how I tested the feature.

Thanks that works for me, but not for the less technical users I hoped to enlist to test it, is there no way to allow daily recurring invoices?

No, but it may be added if needed. Don’t know why daily invoices would be needed but who knows…

Daily invoices is only needed to allow people without access to the MySQL database to test the recurring invoices without having a wait a week to see if they work…

Is there an issue with saving settings, for example if I set “Send all outgoing emails as BCC to the admin account” to “Yes” and then click “Save” I get “Settings successfully saved” at the top of the page and the setting displays “No”…

First thank you for new version and finishing task module (I have no time to develop it)!

Bugs found:

  • At “client detail”, “custom fields” does not show its values.
  • Im unable to translate strings around tasks (“Add task” at invoice, info at task detail “Task is already invoiced…” etc.)
  • Im unable to translate strings at “Projects” page at “global settings”.
  • When click to “Cancel” button at just invoiced task, it goes to error page.
  • Language list (at installer, at global settings, at user settings) shows for every language at the ends backslash (Im running Apache 2.4 + PHP 7 on Windows server). Im unable to change language, backslash is written to database with language name.
  • When creating new quote, number “1” is shown as default password (at global settings is nothing set). When I set at global settings password for quotes, system respect it.

Features I dont understand:

  • Task without project cannot be added to any invoice.
  • Situation around product units singular/plural is for me more complicated. We (in Czech republic) have 2 plurals for sepcific amout. I think better solution would be to use unit name and abbrevation(s). Now (as quick and dirty solution) I fill abbrevation to both fields (singular and plural).
  • Im able to add payment to fully paid invoice (trought invoice detail->options->add payment).
  • Im able to add payment with amount <= 0 (trough all ways). Does it make sense?
1 Like

Thanks for the input!

By the way what exactly do you mean that you are not able to translate some strings?