Not sending recurring invoices

I have installed Ninja invoice on my own server, and it’s V1.7.1. For some reason it’s not sending recurring invoices.
Almost year ago when i installed it, everything worked fine, some invoices that i had recurring were sent before but now i checked and it won’t send invoice again.

I have checked the logs and there is nothing in the logs on my server.
I have tested if cron jobs is running correctly and it seems that it works no problem.
And at last i checked manually php artisan command and i get output like

Proccessing Invoice 15 - Should Send NO

And in invoice #15 i setup to be recursive

With Payment option Annually
Start Date October 2, 2014
End Date Empty

And for that client i set
Payment Terms: Net 30

So shouldn’t invoice be sent annually for every October? Since now it’s 12th the invoice should be sent already i think? But the invoice is not sent.

You can run the following SQL query to check the last_sent_date of the invoice which is used to determine if the invoice should be sent.

select last_sent_date from invoices where public_id = 15;

The last sent date is

2015-03-30 07:00:03

And this is because i setup invoice ninja few days before that and created invoice for that client on

2015-03-28

but recurring should happen every

2014-10-02

As i understood if i setup on client

Payment Terms: Net 30

And setup invoice to be recurring with start date like

Start Date October 2, 2014

And without

End Date

The client should receive invoice 30 days upfront from the Start Date?

The payment terms are separate from recurring invoices.

If a value is set for payment terms we use it to set the due date for all invoices created for the client. The payment terms will not affect the recurring schedule.

Ok the payment terms have nothing to do with recurring invoices, but this still doesn’t explain why invoice was not sent for October 2, 2014.

Shouldn’t invoice be checked for start date and Payment terms, in my case Annually and send invoice in October every year?

The start date is only used to determine when to send the first invoice, for future invoices the last_sent_date is used.

In more recent versions updating the start_date to a new value clears the last_sent_date to enable changing when the next invoice should be sent.

So basically if i modify manually last_sent_date and run cron it will send the invoice, what if i delete last_sent_date? will it than check for start_date which is on October 2nd and send the invoice? Or if i change last_sent_date to october 2014 and run cronjob to sent invoice again?

Which should i choose to make the invoices sent on correct date ?

If (for example) you want the invoice sent today you can either:

  • Set the last_sent_date to a year ago today
  • Clear the last_sent_date and set the start date to today