diff --git a/README.md b/README.md index afdd77e15c..161fd00982 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## [Hosted](https://www.invoiceninja.com) | [Self-Hosted](https://www.invoiceninja.org) ### We're on Slack, join us at [slack.invoiceninja.com](http://slack.invoiceninja.com) or if you like [StackOverflow](https://stackoverflow.com/tags/invoice-ninja/) - + Just make sure to add the `invoice-ninja` tag to your question. #### Note: v5 is now in beta. To upgrade from v4 you need to [install v5](https://invoiceninja.github.io/selfhost.html) as a separate app and then use the migration tool in the latest version of v4 on Settings > Account Management. @@ -56,6 +56,7 @@ The self-host zip includes all third party libraries whereas downloading the cod * [Event Scheduler](https://github.com/cytech/Scheduler-InvoiceNinja) * [Manufacturer Module](https://github.com/dicarlosystems/manufacturer-invoiceninja) * [Point of Sale](https://github.com/dicarlosystems/pointofsale-invoiceninja) +* [Invoice Design Import/Export](https://github.com/feyst/invoicedesignexport) > Feel free to email us for help if you're working on a module, we're happy to provide developer support. diff --git a/app/Console/Commands/SendRecurringInvoices.php b/app/Console/Commands/SendRecurringInvoices.php index 34bdfe14d5..55815f3277 100644 --- a/app/Console/Commands/SendRecurringInvoices.php +++ b/app/Console/Commands/SendRecurringInvoices.php @@ -81,8 +81,8 @@ class SendRecurringInvoices extends Command $invoices = Invoice::with('account.timezone', 'invoice_items', 'client', 'user') ->whereRaw('is_deleted IS FALSE AND deleted_at IS NULL AND is_recurring IS TRUE AND is_public IS TRUE AND frequency_id > 0 AND start_date <= ? AND (end_date IS NULL OR end_date >= ?)', [$today, $today]) ->orderBy('id', 'asc') - ->get(); - $this->info(date('r ') . $invoices->count() . ' recurring invoice(s) found'); + ->cursor(); + $this->info(date('r ') . ' Recurring invoice(s) found'); foreach ($invoices as $recurInvoice) { $shouldSendToday = $recurInvoice->shouldSendToday(); diff --git a/app/Http/Controllers/AccountApiController.php b/app/Http/Controllers/AccountApiController.php index d43b1dc261..7d86ea0f72 100644 --- a/app/Http/Controllers/AccountApiController.php +++ b/app/Http/Controllers/AccountApiController.php @@ -298,8 +298,8 @@ class AccountApiController extends BaseAPIController $timestamp = $request->timestamp; $productId = $request->product_id; - if (Carbon::createFromTimestamp($timestamp) < Carbon::now()->subYear()) { - return '{"message":"The order is expired"}'; + if ($company->app_store_order_id) { + return '{"message":"error"}'; } if ($productId == 'v1_pro_yearly') { @@ -328,7 +328,7 @@ class AccountApiController extends BaseAPIController $company->plan_term = PLAN_TERM_YEARLY; $company->plan_started = $company->plan_started ?: date('Y-m-d'); $company->plan_paid = date('Y-m-d'); - $company->plan_expires = Carbon::createFromTimestamp($timestamp)->addYear()->format('Y-m-d'); + $company->plan_expires = Carbon::now()->addYear()->format('Y-m-d'); $company->trial_plan = null; $company->save(); diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 0be9a89b3e..2bb7e46c04 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -157,7 +157,7 @@ class Expense extends EntityModel */ public function recurring_expense() { - return $this->belongsTo('App\Models\RecurringExpense'); + return $this->belongsTo('App\Models\RecurringExpense')->withTrashed(); } diff --git a/resources/views/accounts/client_portal.blade.php b/resources/views/accounts/client_portal.blade.php index c805e71f39..205ecbdaf9 100644 --- a/resources/views/accounts/client_portal.blade.php +++ b/resources/views/accounts/client_portal.blade.php @@ -383,7 +383,10 @@ iframe.src = '{{ rtrim(SITE_URL ,'/') }}/' + parts[1] + '/' + parts[0].substring diff --git a/resources/views/header.blade.php b/resources/views/header.blade.php index d4ddd45768..9e14395d44 100644 --- a/resources/views/header.blade.php +++ b/resources/views/header.blade.php @@ -352,7 +352,7 @@ - {!! Former::open('/handle_command')->id('search-form')->addClass('navbar-form navbar-right')->role('search') !!} + {!! Former::open(env('SPEECH_ENABLED') ? '/handle_command' : '/#')->id('search-form')->addClass('navbar-form navbar-right')->role('search') !!}
@@ -533,7 +533,9 @@ @include('partials.contact_us') @include('partials.sign_up') -@include('partials.keyboard_shortcuts') +@if (!request()->is('*proposals*')) + @include('partials.keyboard_shortcuts') +@endif @if (auth()->check() && auth()->user()->registered && ! auth()->user()->hasAcceptedLatestTerms()) @include('partials.accept_terms') diff --git a/resources/views/partials/variables_help.blade.php b/resources/views/partials/variables_help.blade.php index bf9be36876..bdb8db4377 100644 --- a/resources/views/partials/variables_help.blade.php +++ b/resources/views/partials/variables_help.blade.php @@ -61,7 +61,7 @@
  • $client.state
  • $client.postalCode
  • $client.country.name
  • -
  • $client.phone
  • +
  • $client.workPhone
  • $client.balance
  • @if ($account->customLabel('client1'))
  • $client.customValue1