Hi, just some thoughts and suggestions I have for v5.0.41-C35 as I’m working with it.
Edit + 4: Invoicing and email. It’s really bad.
When I send an invoice email expecting it to look like this - at right (after som basic modifications), visually it seems ok.
Nothing seems to be as I expect. The links seem to stick to the left of the email, and, as in the image above, I’m not sure my customer can figure that out. Looking at the message source, I’m not sure where to start with that. The “Email Invoice” editing window is all over the place too. it’s hard to tell what you’re editing exactly. Copy and paste is the only way to get text into the window in a reasonably controlled way. This interface just does not work (beyond never changing it I guess). I’m using all the defaults provided by IN and simply adding a link to a pdf as well as a bit of additional text.
I get this, mangled up message
Gosh, I sure do hope this improves.
Edit +3 - Suggestion: viewing logs, better troubleshooting
As we know, the laravel.log is crucial to how IN works, and it’s something we refer back to often. Adding a section in “Settings → View Log” to view these log files is something that would save a bunch of time in-app while trying to troubleshoot.
- v4: storage/logs/laravel-error.log
- v5: storage/logs/laravel.log
Edit: +1: Payments to invoices. (this seems to work now)
When adding a payment to an invoice via the right-click on an invoice and saving it - the payment does not then reflect on the invoice itself. I think the invoice should be marked a “Paid” at that moment. Because it isn’t marked “Paid,” the user must go and manually mark the invoice as paid - a redundant process (that could lead to errors).
Edit +2: Logoff - 500: Server Error
So, after adding a bunch of data, logging off and attempting to log back in, I received the dreaded 500: Server Error. Investigating the laravel log showed an error related to the recurring invoice system.:
“[2021-01-02 20:59:52] production.ERROR: Call to a member function copy() on null {“userId”:1,“exception”:”[object] (Error(code: 0): Call to a member function copy() on null at /var/www/app/app/Models/RecurringInvoice.php:376)
[stacktrace] "
Full error here.
Restarted the container and noticed the logs showing a bunch of “chown: /var/www/app/storage/filename: Operation not permitted” errors. Since I couldn’t get to the cli from the container itself (it’s loading at this point), I checked out the volume from the “caddy” container. In the referenced directories, files had permissions of the following:
-rw-rw-r-- 1 0 0 84971 Jan 2 15:29 2585.pdf
User and group 0. Why on earth would the app dump stuff to disk as user 0?
So I fixed all this from the cli with “chown -R 1000:82” commands and managed to get the container running but the “500: Server Error” persists. InvocieNinja 5 is dead at this point
Edit: Deeper I go. Since all this seems to refer to recurring invoices, I went into the database. Table “recurring_invoice_invitations” had four rows. I deleted those 4 rows. Login again, no dice.
Then, I went to the “reccuring_invoices” table. 4 rows there too. I deleted those rows and attempted login. Boom. I’m in. Adding a recurring invoice (a) doesn’t seem to work and (b) completely locks me out. Man, this thing is a hell of a roller-coaster. Can I ever trust it?
Original Message
Thought 1: Taxes and expenses
When taxes are added to expenses, I need to calculate the pre-tax rate and ensure that in (or take it from a receipt). But, often vendors are a penny off in their calculations, throwing off my numbers. It would be more ideal to enter in the FINAL expense amount and auto-calculate backwards a tax amount (as Freshbooks does), or of course, enter in a specific value.
Thought 2: Expense Categories
They have many fields attached, which is great, but something that would save a great deal of time would be to include a default amount (for when the expense is recurring), and a tax amount. As I add expenses, these two clicks could be avoided.
Thought 3: Invoice - Customer
When I’ve created an invoice, it seems the customer can be de-selected, but not changed. I should be able to change the customer.
Thought 4: User Portal
There are several things here. I found it pretty challenging to understand what it took to push a payment through Stripe. Creating an account in this portal also created a new (duplicate) customer and after clicking around, the sent invoice was gone from their portal (although the original invoice still worked). This whole portal is great and useful, but I sense it will be very confusing for customers. I’d like to see more of who’s registered there and what credit cards have been saved. Adding two-factor support to portal logins would be far more secure.
Thought 5: Import - Export
Hopefully, this works at some point and specifically supports what V4 spits out.
Thought 6: Localization
In V5, the Canadian localization label is still C$ - I’d consider changing that default to just $
I’ll have more thoughts in time. I didn’t want to put this in Slack because the stuff goes behind a paywall - Github being better for issues. There might be too many places to discuss IN at this point