mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-09 12:42:36 +01:00
Fix for #1228
This commit is contained in:
parent
ac705a8739
commit
cc2a64acac
@ -1726,11 +1726,26 @@ class Account extends Eloquent
|
|||||||
return $this->enable_email_markup;
|
return $this->enable_email_markup;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function defaultDueDate()
|
public function defaultDaysDue($client = false)
|
||||||
{
|
{
|
||||||
$numDays = $this->payment_terms == -1 ? 0 : $this->payment_terms;
|
if ($client && $client->payment_terms != 0) {
|
||||||
|
return $client->defaultDaysDue();
|
||||||
|
}
|
||||||
|
|
||||||
return Carbon::now($this->getTimezone())->addDays($numDays)->format('Y-m-d');
|
return $this->payment_terms == -1 ? 0 : $this->payment_terms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function defaultDueDate($client = false)
|
||||||
|
{
|
||||||
|
if ($client && $client->payment_terms != 0) {
|
||||||
|
$numDays = $client->defaultDaysDue();
|
||||||
|
} elseif ($this->payment_terms != 0) {
|
||||||
|
$numDays = $this->defaultDaysDue();
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Carbon::now()->addDays($numDays)->format('Y-m-d');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function hasMultipleAccounts()
|
public function hasMultipleAccounts()
|
||||||
|
@ -531,6 +531,11 @@ class Client extends EntityModel
|
|||||||
public function hasAutoBillConfigurableInvoices(){
|
public function hasAutoBillConfigurableInvoices(){
|
||||||
return $this->invoices()->whereIn('auto_bill', [AUTO_BILL_OPT_IN, AUTO_BILL_OPT_OUT])->count() > 0;
|
return $this->invoices()->whereIn('auto_bill', [AUTO_BILL_OPT_IN, AUTO_BILL_OPT_OUT])->count() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function defaultDaysDue()
|
||||||
|
{
|
||||||
|
return $this->payment_terms == -1 ? 0 : $this->payment_terms;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Client::creating(function ($client) {
|
Client::creating(function ($client) {
|
||||||
|
@ -1031,13 +1031,12 @@ class Invoice extends EntityModel implements BalanceAffecting
|
|||||||
if($dueDate) {
|
if($dueDate) {
|
||||||
return date('Y-m-d', $dueDate);// SQL format
|
return date('Y-m-d', $dueDate);// SQL format
|
||||||
}
|
}
|
||||||
}
|
} else if ($this->client->payment_terms != 0) {
|
||||||
else if ($this->client->payment_terms != 0) {
|
|
||||||
// No custom due date set for this invoice; use the client's payment terms
|
// No custom due date set for this invoice; use the client's payment terms
|
||||||
$days = $this->client->payment_terms;
|
$days = $this->client->defaultDaysDue();
|
||||||
if ($days == -1) {
|
return date('Y-m-d', strtotime('+'.$days.' day', $now));
|
||||||
$days = 0;
|
} else if ($this->account->payment_terms != 0) {
|
||||||
}
|
$days = $this->account->defaultDaysDue();
|
||||||
return date('Y-m-d', strtotime('+'.$days.' day', $now));
|
return date('Y-m-d', strtotime('+'.$days.' day', $now));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ use DB;
|
|||||||
use Utils;
|
use Utils;
|
||||||
use Auth;
|
use Auth;
|
||||||
use Carbon;
|
use Carbon;
|
||||||
|
use App\Models\Client;
|
||||||
use App\Models\Invoice;
|
use App\Models\Invoice;
|
||||||
use App\Models\InvoiceItem;
|
use App\Models\InvoiceItem;
|
||||||
use App\Models\Invitation;
|
use App\Models\Invitation;
|
||||||
@ -308,8 +309,11 @@ class InvoiceRepository extends BaseRepository
|
|||||||
if (isset($data['has_expenses']) && filter_var($data['has_expenses'], FILTER_VALIDATE_BOOLEAN)) {
|
if (isset($data['has_expenses']) && filter_var($data['has_expenses'], FILTER_VALIDATE_BOOLEAN)) {
|
||||||
$invoice->has_expenses = true;
|
$invoice->has_expenses = true;
|
||||||
}
|
}
|
||||||
if ($account->payment_terms != 0) {
|
|
||||||
$invoice->due_date = $account->defaultDueDate();
|
// set the default due date
|
||||||
|
if ($entityType == ENTITY_INVOICE) {
|
||||||
|
$client = Client::scope()->whereId($data['client_id'])->first();
|
||||||
|
$invoice->due_date = $account->defaultDueDate($client);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$invoice = Invoice::scope($publicId)->firstOrFail();
|
$invoice = Invoice::scope($publicId)->firstOrFail();
|
||||||
@ -667,6 +671,7 @@ class InvoiceRepository extends BaseRepository
|
|||||||
}
|
}
|
||||||
$clone->invoice_number = $invoiceNumber ?: $account->getNextNumber($clone);
|
$clone->invoice_number = $invoiceNumber ?: $account->getNextNumber($clone);
|
||||||
$clone->invoice_date = Utils::today(false)->format('Y-m-d');
|
$clone->invoice_date = Utils::today(false)->format('Y-m-d');
|
||||||
|
$clone->due_date = $account->defaultDueDate($invoice->client);
|
||||||
|
|
||||||
foreach ([
|
foreach ([
|
||||||
'client_id',
|
'client_id',
|
||||||
|
@ -149,7 +149,7 @@
|
|||||||
{!! Former::text('invoice_date')->data_bind("datePicker: invoice_date, valueUpdate: 'afterkeydown'")->label(trans("texts.{$entityType}_date"))
|
{!! Former::text('invoice_date')->data_bind("datePicker: invoice_date, valueUpdate: 'afterkeydown'")->label(trans("texts.{$entityType}_date"))
|
||||||
->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT, DEFAULT_DATE_PICKER_FORMAT))->appendIcon('calendar')->addGroupClass('invoice_date') !!}
|
->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT, DEFAULT_DATE_PICKER_FORMAT))->appendIcon('calendar')->addGroupClass('invoice_date') !!}
|
||||||
{!! Former::text('due_date')->data_bind("datePicker: due_date, valueUpdate: 'afterkeydown'")->label(trans("texts.{$entityType}_due_date"))
|
{!! Former::text('due_date')->data_bind("datePicker: due_date, valueUpdate: 'afterkeydown'")->label(trans("texts.{$entityType}_due_date"))
|
||||||
->placeholder($invoice->exists ? ' ' : $account->present()->dueDatePlaceholder())
|
->placeholder($invoice->exists || $invoice->isQuote() ? ' ' : $account->present()->dueDatePlaceholder())
|
||||||
->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT, DEFAULT_DATE_PICKER_FORMAT))->appendIcon('calendar')->addGroupClass('due_date') !!}
|
->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT, DEFAULT_DATE_PICKER_FORMAT))->appendIcon('calendar')->addGroupClass('due_date') !!}
|
||||||
|
|
||||||
{!! Former::text('partial')->data_bind("value: partial, valueUpdate: 'afterkeydown'")->onkeyup('onPartialChange()')
|
{!! Former::text('partial')->data_bind("value: partial, valueUpdate: 'afterkeydown'")->onkeyup('onPartialChange()')
|
||||||
|
Loading…
Reference in New Issue
Block a user