InvoicePlane 1.5.1 released

A new release of the InvoicePlane application is available: v1.5.1
You can download the latest version from the InvoicePlane website.

Update Guide | Changelog


This is the largest release ever for the InvoicePlane project. 88,955 removed and 44,288 added lines of code in more than 571 commits. We moved many third-party code out of the application, cleaned up the whole user interface and updated every library we use. I’m very proud to present many new, awesome features many user will find very helpful. After a long time without larger updates he project is now more active than before.

Please spread the word on social networks if you like InvoicePlane. Like our page on Facebook or follow us on Twitter.

Special thanks to @denysvitali for his work on this release and all Beta testers that helped us testing the new version.

And now, more about version InvoicePlane 1.5.0.


:warning: Update instructions for 1.5.0 and 1.5.1

It is very important that you follow the update instructions that were added to the wiki. If you used InvoicePlane before there are some steps to follow to migrate all data and configuration.

:rotating_light:
If you upgrade InvoicePlane from version 1.5.0 to 1.5.1 open the ipconfig.php file with a text editor and remove the hash (#) in the first line so the first characters of the file are <?php. Also, change your database password just to make sure that it is safe. Sorry for the inconveniences.


:rocket: New features

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 like PayPal, Stripe or Coinbase. A complete list of all available drivers can be found in the wiki.

Support for Themes

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

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.

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

They are also placeable at specific locations. Please notice that PDF templates need updates if you used custom fields before.

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

Configuration is now saved in the ipconfig.php file

This is a very important change to separate all configuration data from the application itself. It also improves security as it adds an unique encryption key.

Disable the setup without .htaccess

The setup can now be disabled completely without the need for the .htaccess file. Just open the ipconfig.php file and change DISABLE_SETUP=false to DISABLE_SETUP=true.


Other notable changes

  • Overhauled UI for better usability
  • Enhanched select fields
  • 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
  • Update to CodeIgniter 3 for better performance and security
  • Updates for the mPDf and PHPMailer libraries for better performance and security
  • Password inputs have a meter to indicate the password strength

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
  • Some smaller issues within version 1.5.0

Still it does not pull through the custom fields in the email body as was mentioned in the 1.5 beta version.

Hi Kovah. I just migrated my production 1.4.10 to 1.5 and have a problem that I did not see before with the beta tests. I cannot print PDF invoices and get the following errors;

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 2

Filename: src/Tag.php

Line Number: 1806

Backtrace:

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Tag.php
Line: 1806
Function: _error_handler

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 14967
Function: OpenTag

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 9350
Function: WriteHTML

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 11032
Function: _puthtmlheaders

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 1912
Function: _enddoc

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 9050
Function: Close

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/helpers/mpdf_helper.php
Line: 95
Function: Output

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/helpers/pdf_helper.php
Line: 101
Function: pdf_create

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/modules/invoices/controllers/Invoices.php
Line: 282
Function: generate_invoice_pdf

File: /home/prod/domains/mydomain.nl/public_html/factuur/index.php
Line: 333
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: s

Filename: src/Tag.php

Line Number: 1639

Backtrace:

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Tag.php
Line: 1639
Function: _error_handler

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 14967
Function: OpenTag

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 9350
Function: WriteHTML

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 11032
Function: _puthtmlheaders

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 1912
Function: _enddoc

File: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php
Line: 9050
Function: Close

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/helpers/mpdf_helper.php
Line: 95
Function: Output

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/helpers/pdf_helper.php
Line: 101
Function: pdf_create

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/modules/invoices/controllers/Invoices.php
Line: 282
Function: generate_invoice_pdf

File: /home/prod/domains/mydomain.nl/public_html/factuur/index.php
Line: 333
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/prod/domains/mydomain.nl/public_html/factuur/vendor/codeigniter/framework/system/core/Exceptions.php:271)

Filename: core/Common.php

Line Number: 570

Backtrace:

An uncaught Exception was encountered

Type: Mpdf\MpdfException

Message: Data has already been sent to output, unable to output PDF file

Filename: /home/prod/domains/mydomain.nl/public_html/factuur/vendor/mpdf/mpdf/src/Mpdf.php

Line Number: 9115

Backtrace:

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/helpers/mpdf_helper.php
Line: 98
Function: Output

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/helpers/pdf_helper.php
Line: 101
Function: pdf_create

File: /home/prod/domains/mydomain.nl/public_html/factuur/application/modules/invoices/controllers/Invoices.php
Line: 282
Function: generate_invoice_pdf

File: /home/prod/domains/mydomain.nl/public_html/factuur/index.php
Line: 333
Function: require_once

Such errors occur if your HTML is broken somewhere, e.g. due to a missing variable. Please check your templates. It is stated in the wiki, that some things have changed for PDF templates.

PS: I added more information about how to properly check your templates for PHP errors: https://wiki.invoiceplane.com/en/1.5/templates/customize-templates#debugging

Hi Kovah, any idea how i can fix this? The error with the custom fields not pulling through in the email body?

No, not at the moment. I may take a look at it and the fix will be included in 1.5.1. Need to fix some other problems so the version may be released next week.

Thanks appreciate it. Also the payment settings in Paypal shows Signature field but typing in it is masked like a password field.

HI Kovah
Thanks for all your great work and dedication to this great package.

Installed 1.5.0 and things appear to be running fine except CRON job for recurring.
Getting 404 error page
Any thoughts?
running the command http://www.domain.com/invoices/cron/recur/key

tried in Easy cron and in my cpanel

Greg

This problem seems to be related to the 404 errors after clicking the “Pay now” button for invoices. Cron is working perfectly fine for me.

Issue link: https://development.invoiceplane.com/browse/IP-506

Please post as many information as possible for your environment.

Many thanks Kovah! The custom fields were the problem. I replaced these with standard available user-fields in the template. Works great.Thanks again. Regards, Benny.

Thanks again
I changed PHP back to 7.0.18 from 7.1
Running Appache 2.4.25

same result on both the server cron system and on easycron

regards
Greg

Email template for quotes is not working properly. Apparently it is correct when the template is created, but at the time of making use of it, all fields of the sending of the email appear blank.

Recurring invoices is working fine for me, instead, I have the same problem that is discussed with online payments.

My installation is made on:

Apache 2.2
PHP 7.0

Regards.

Hello,

I just found a little bug on the new version 1.5. When you want to use the “filter quotes” function, it does not work.

By enabling the console to detect where the error comes from, I have this:

…/Index.php / filter / ajax / filter_quotes 500 (Internal Server Error)
Send @ dependencies.min.js: 3
Ajax @ dependencies.min.js: 3
Ma. (Anonymous function) @ dependencies.min.js: 3
(Anonymous) @all: 230

An idea of the problem? For info the filter client works

Regards

Regarding the 404 error when making an online payment. The 404 error page I receive references url’s that don’t have my /billing/ directory in them see below:

My 404 error url is: http://tldomain.com/billing/index.php/guest/payment_information/form/

However the /assets/core/img/logo_400x200.png"/ image is not displayed.

Not sure if this helps, but thought I would throw it out there. Thought it’s possible the problem is only related to installations that are not in the domain’s root directory.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>404 Page Not Found</title>
    <link rel="stylesheet"
          href="/assets/invoiceplane/css/style.css">
</head>
<body class="error">
<div id="ip-logo">
  <img src="/assets/core/img/logo_400x200.png"/>
</div>

<div class="error-container">
  <h1>404 Page Not Found</h1>
  <p class="error-text"><p>The page you requested was not found.</p></p>
</div>
</body>
</html>

Version 1.5.1 is now available with a security fix. Unfortunately I didn’t recognized that the ipconfig.php file may be accessible for certain web servers / php versions. Please update your ipconfig.php file accordingly to the update guide.

The problem with the 404 errors for some actions is still unresolved and I’m not able to track down the cause for the problem without having a working environment where the error occurs.

If you are a PHP developer using InvoicePlane and you have this problem, please contact me! You may help a lot of users. :muscle:

Hi Kovah, many thanks for the new IP version that you released. I read the wiki but for me it is not clear what I should do except for the security fix.
Do I have to run the setup again so the databasetables are migrated as I did with the upgarde from 1.4.10 to 1.5.0 or is it enough to backup the files and copy the 1.5.1 files?

No, the general upgrade guide stays the same and the setup needs to be run again.

I updated the wiki to make it more clear. Please notify me if anything is not that clear and I will fix it as soon as possible. :slight_smile:

1 Like

My upgrade from 1.5.0 to 1.5.1 went without any problem although it would be good to think also about the following during and after the upgrade;

  • Files that also should better not be overwritten during the upgrade are the css-files in assets/core/css. This is only important is the custom css files have been edited in a previous version.
  • To be able to run the setup again, the setup redirect in .htaccess must be commented out and re-enabled afterwards.
  • To be able to send e-mails when SMTP is configured, after the upgrade the SMTP password should be re-entered in Settings > System settings > E-mail

General remarks about my 1.5.1 configuration

  • Generated reports are opened in the same browser window as where InvoicePlane is running. Opening these reports in a new window, like invoices do, would be nice.
  • I have two payment options; Bank and Cash where Bank is the default. When a payment is done, I would like to be able to change the payment method from from Bank to Cash but this option is blocked / greyed out.

Thanks for your input!
I will update the wiki accordingly.

By the way: the htaccess rule for the setup can be removed, there now is a setting in the ipconfig.php file for that (see the example file).
Why do the SMTP password need to be entered again? Was it changed somehow?

That you can’t change the payment method is intentionally to prevent any changes after the payment was processed. A security measurement. But I may add an option to disable it.