Hi.
About the years, i added some features to InvoicePlane which i needed and some of my customers. I now succeeded to merge everything in an recent invoice plane github fork and i think everything works. Maybe it does not meet current code guidelines, but can you check if some feature can be merged into mainline? My Features are:
- For PDF stamp of invoices via another pdf for nice looking of invoices
- added sorting of clients ascending / descending
- added upload documents for clients
- added ip_atac(), ip_xtra() and ip_hbk(), added atac quote/invoice templates
- added invoice copy with invoice watermark
- added extra invoice footer “you view invoice page … of …”
- page size, font, …, see helpers/mpdf_helper.php
The github repository is here
github/chris-x-tra/InvoicePlaneXtra
→ GitHub - chris-x-tra/InvoicePlaneXtra: A self-hosted open source application for managing your invoices, clients and payments. Fork by chrissie ^ x-tra-designs with PHP 8.3 Compatibility and other nice features
Have fun, you can use the code under any license.
chrissie.
PS this is not all i created, further stuff will follow…
1 Like
Hey Chris!
Thank you very much, man!
I’ve made a pull-request out of it and if course i’ve invited you to the repository.
Can you explain a bit more about that PDF-Stamping? Is that like a watermark?
The Pdf Staming which uses Mike Haertls PDFTK-Library ist for a better Design of the Invoices. My customers want a nice designed invoice. This Implementation also supports Multi-Stamping. You can have a 2 Page “Stamp-PDF” with the design for the first page and all further pages.
1 Like
Added Generation of Pdf/3A via horstoeko/zugferd (see mpdf_helper.pdf). Added first try of a zugferd xml in application/libraries/ZugferdXml-2.php. <-not ready yet!!!
PDF/3A 1.7 and extended Zugferd profile ist mandatory for some businesses maybe after 2025. also changed sorting of customers to be more intuitive.
1 Like
i forgot to mention. i know you have zugferd/xrechnung included. but these might not be enought in germany after 2025.
see: https://www.heise.de/ratgeber/FAQ-Was-unterscheiden-sich-die-E-Rechnung-und-PDF-technisch-10020051.html
fortunately, horstoeko has stuff complient to new german ideas.
1 Like
Can you explain how your version of Zugferd 2 is working?
Juat turn on Zugferd in the settings and then generate the PDF?
Some users are working on https://github.com/InvoicePlane/InvoicePlane/pull/1103 which also tries to generate Zugferd version 2.
Maybe you can help them?
I’ve got Discord available to chat: InvoicePlane
well, at the moment i can you tell the following:
It is really necessary to have a fully compliant pdf3a/1.7. it is not correct just to set the version to 1.7. This means, you have at first to strip all xml, copy page for page to a new format via the horstoeko library and then add the xml. We have checked that via several free available pdf 3a checkers.
The XML in Xrechnung/Zugferd ist just a xml. that ist true. but there are several special stuff in extended library which the germans want. horst oeko does fortunately impelemnt all this, but i do not know why he does this.
I have not convertet your Zugferd to Horstoekos, but this is just coding. and a switch in ipconfig.php.
And no, at the moment i cannot join your discord, because i have really to implement other stuff in invoiceplane for another customer of me, this will be very big stuff, so maybe we can talk next year in january. but be prepared for very heavy commits on my fork then.
regards, chris.
2 Likes
Yeeha, i added now the client_extended_table with much used custom fields. also there ist delivery_terms and payment_terms to make it compliant to INCOTERMS.
No, i do not expect this to get integrated soon. There is much to improve in my hacky code. But keep that in mind. I need this feature really for 3 of my customers so i hacked in quickly a year ago, now cleaned up code a bit and commited in my fork.
For information: i have need to heavy change invoice plane further to satisfy my customer needs. for example i have to add different addresses: billing address and delivery address. And Marina wants to have a preselection of delivery addresses defined somewhere, just to click, because the addresses are always the same. This is a german thing - not to worry about you freelancers out there.
Just keep in mind i have to do things, sometimes we can discuss if you integrate some features into main, where i ofcourse helt you. See you all in 2025!
committed first version with client_extended_table which my other user at-ac did modifications. this is the version i use at my customers. ofcourse, the code is still very hacky. but we (at-ac and chris-x-tra) discussed the following:
the customer fields in invoice plane are a mess. the code is not optimal and takes much time and is error-prone. i want the follwoing which you can sie: a extended database table with the most common used fields [from all over the world]. then we can create a backend module where user can select: this field will i have, this field not. the fields have clear names, you can also have a translation on them . in a backend, you can easy manage this and also make positions to clients form if you want, i can extend code to this. and we can have a converter, not every person wiil adopt this ofcurse, but with a database migrator this is possible.
it runs very more stable, marina tested this extended code for me(du) for over an year, no issues.
regards
chrissie.
1 Like
just to be prepared. as next i will make extended addredss table because my client want: address, delivery address, paymant address. and the case is: the payment address is often the same, so i will create another table with common used payment address. so you can select easily from them and do not have typos always entering the same adress.
Added spearate billing and delivery addres urgently needed for my customer this year. using this invoice template
hbk-invoice.php (6.5 KB)
you can generate now invoices like this including stamping. address is fantasy, no other real personal information there.
Happy Hacking, regards, chrissie
.
1 Like
In the newest commits from me, you can see first implementation of infinite scroll of customers. This wants Marina from me, no idea why, just implemented it with help from chatgpt. This is a first draft, DO NOT MERGE IT. Just discuss about.
And i did a separate branch called expenses, the final Goal for me is not to have invoices, but also expenses and have a German EÜR. This is ways bevor being released to the public!
In the holidays i will code much on my features - keep informed.
I will also change much - no need to do separate pull requests for inclusion in IP main. I will contact the ip team if i think something is ready for mergin.
Happy hacking.
1 Like