mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-09-20 08:21:34 +02:00
Merge remote-tracking branch 'upstream/develop' into develop
This commit is contained in:
commit
b16ab9058f
@ -470,10 +470,10 @@ class Account extends Eloquent
|
||||
return Document::getDirectFileUrl($this->logo, $this->getLogoDisk());
|
||||
}
|
||||
|
||||
public function getToken($name)
|
||||
public function getToken($userId, $name)
|
||||
{
|
||||
foreach ($this->account_tokens as $token) {
|
||||
if ($token->name === $name) {
|
||||
if ($token->user_id == $userId && $token->name === $name) {
|
||||
return $token->token;
|
||||
}
|
||||
}
|
||||
@ -1180,7 +1180,7 @@ class Account extends Eloquent
|
||||
// Add line breaks if HTML isn't already being used
|
||||
return strip_tags($this->email_footer) == $this->email_footer ? nl2br($this->email_footer) : $this->email_footer;
|
||||
} else {
|
||||
return "<p>" . trans('texts.email_signature') . "\n<br>\$account</p>";
|
||||
return "<p><div>" . trans('texts.email_signature') . "\n<br>\$account</div></p>";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -644,7 +644,7 @@ class AccountRepository
|
||||
{
|
||||
$name = trim($name) ?: 'TOKEN';
|
||||
$users = $this->findUsers($user);
|
||||
|
||||
|
||||
foreach ($users as $user) {
|
||||
if ($token = AccountToken::whereUserId($user->id)->whereName($name)->first()) {
|
||||
continue;
|
||||
|
@ -303,10 +303,12 @@ class InvoiceRepository extends BaseRepository
|
||||
$invoice->invoice_footer = (isset($data['invoice_footer']) && trim($data['invoice_footer'])) ? trim($data['invoice_footer']) : (!$publicId && $account->invoice_footer ? $account->invoice_footer : '');
|
||||
$invoice->public_notes = isset($data['public_notes']) ? trim($data['public_notes']) : null;
|
||||
|
||||
// process date variables
|
||||
$invoice->terms = Utils::processVariables($invoice->terms);
|
||||
$invoice->invoice_footer = Utils::processVariables($invoice->invoice_footer);
|
||||
$invoice->public_notes = Utils::processVariables($invoice->public_notes);
|
||||
// process date variables if not recurring
|
||||
if(!$invoice->is_recurring) {
|
||||
$invoice->terms = Utils::processVariables($invoice->terms);
|
||||
$invoice->invoice_footer = Utils::processVariables($invoice->invoice_footer);
|
||||
$invoice->public_notes = Utils::processVariables($invoice->public_notes);
|
||||
}
|
||||
|
||||
if (isset($data['po_number'])) {
|
||||
$invoice->po_number = trim($data['po_number']);
|
||||
@ -724,8 +726,8 @@ class InvoiceRepository extends BaseRepository
|
||||
$invoice->custom_value2 = $recurInvoice->custom_value2 ?: 0;
|
||||
$invoice->custom_taxes1 = $recurInvoice->custom_taxes1 ?: 0;
|
||||
$invoice->custom_taxes2 = $recurInvoice->custom_taxes2 ?: 0;
|
||||
$invoice->custom_text_value1 = $recurInvoice->custom_text_value1;
|
||||
$invoice->custom_text_value2 = $recurInvoice->custom_text_value2;
|
||||
$invoice->custom_text_value1 = Utils::processVariables($recurInvoice->custom_text_value1);
|
||||
$invoice->custom_text_value2 = Utils::processVariables($recurInvoice->custom_text_value2);
|
||||
$invoice->is_amount_discount = $recurInvoice->is_amount_discount;
|
||||
$invoice->due_date = $recurInvoice->getDueDate();
|
||||
$invoice->save();
|
||||
@ -741,6 +743,8 @@ class InvoiceRepository extends BaseRepository
|
||||
$item->tax_rate1 = $recurItem->tax_rate1;
|
||||
$item->tax_name2 = $recurItem->tax_name2;
|
||||
$item->tax_rate2 = $recurItem->tax_rate2;
|
||||
$item->custom_value1 = Utils::processVariables($recurItem->custom_value1);
|
||||
$item->custom_value2 = Utils::processVariables($recurItem->custom_value2);
|
||||
$invoice->invoice_items()->save($item);
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ class UserAccountTransformer extends EntityTransformer
|
||||
return [
|
||||
'account_key' => $user->account->account_key,
|
||||
'name' => $user->account->present()->name,
|
||||
'token' => $user->account->getToken($this->tokenName),
|
||||
'token' => $user->account->getToken($user->id, $this->tokenName),
|
||||
'default_url' => SITE_URL
|
||||
];
|
||||
}
|
||||
|
13
app/Policies/AccountGatewayPolicy.php
Normal file
13
app/Policies/AccountGatewayPolicy.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
class AccountGatewayPolicy extends EntityPolicy {
|
||||
public static function edit($user, $item) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
|
||||
public static function create($user) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
}
|
13
app/Policies/BankAccountPolicy.php
Normal file
13
app/Policies/BankAccountPolicy.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
class BankAccountPolicy extends EntityPolicy {
|
||||
public static function edit($user, $item) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
|
||||
public static function create($user) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
}
|
13
app/Policies/PaymentTermPolicy.php
Normal file
13
app/Policies/PaymentTermPolicy.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
class PaymentTermPolicy extends EntityPolicy {
|
||||
public static function edit($user, $item) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
|
||||
public static function create($user) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
}
|
@ -6,4 +6,8 @@ class ProductPolicy extends EntityPolicy {
|
||||
public static function edit($user, $item) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
|
||||
public static function create($user) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
}
|
@ -6,4 +6,8 @@ class TaxRatePolicy extends EntityPolicy {
|
||||
public static function edit($user, $item) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
|
||||
public static function create($user) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
}
|
13
app/Policies/TokenPolicy.php
Normal file
13
app/Policies/TokenPolicy.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
class TokenPolicy extends EntityPolicy {
|
||||
public static function edit($user, $item) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
|
||||
public static function create($user) {
|
||||
return $user->hasPermission('admin');
|
||||
}
|
||||
}
|
@ -23,8 +23,12 @@ class AuthServiceProvider extends ServiceProvider
|
||||
\App\Models\Vendor::class => \App\Policies\VendorPolicy::class,
|
||||
\App\Models\Product::class => \App\Policies\ProductPolicy::class,
|
||||
\App\Models\TaxRate::class => \App\Policies\TaxRatePolicy::class,
|
||||
\App\Models\AccountGateway::class => \App\Policies\AccountGatewayPolicy::class,
|
||||
\App\Models\Token::class => \App\Policies\TokenPolicy::class,
|
||||
\App\Models\BankAccount::class => \App\Policies\BankAccountPolicy::class,
|
||||
\App\Models\PaymentTerm::class => \App\Policies\PaymentTermPolicy::class,
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* Register any application authentication / authorization services.
|
||||
*
|
||||
|
File diff suppressed because one or more lines are too long
@ -247,13 +247,13 @@ NINJA.notesAndTerms = function(invoice)
|
||||
var data = [];
|
||||
|
||||
if (invoice.public_notes) {
|
||||
data.push({stack:[{text: invoice.public_notes, style: ['notes']}]});
|
||||
data.push({stack:[{text: invoice.is_recurring ? processVariables(invoice.public_notes) : invoice.public_notes, style: ['notes']}]});
|
||||
data.push({text:' '});
|
||||
}
|
||||
|
||||
if (invoice.terms) {
|
||||
data.push({text:invoiceLabels.terms, style: ['termsLabel']});
|
||||
data.push({stack:[{text: invoice.terms, style: ['terms']}]});
|
||||
data.push({stack:[{text: invoice.is_recurring ? processVariables(invoice.terms) : invoice.terms, style: ['terms']}]});
|
||||
}
|
||||
|
||||
return NINJA.prepareDataList(data, 'notesAndTerms');
|
||||
@ -293,10 +293,16 @@ NINJA.invoiceColumns = function(invoice)
|
||||
|
||||
NINJA.invoiceFooter = function(invoice)
|
||||
{
|
||||
var footer = invoice.invoice_footer;
|
||||
|
||||
if (invoice.is_recurring) {
|
||||
footer = processVariables(footer);
|
||||
}
|
||||
|
||||
if (!invoice.features.invoice_settings && invoice.invoice_design_id == 3) {
|
||||
return invoice.invoice_footer ? invoice.invoice_footer.substring(0, 200) : ' ';
|
||||
return footer ? footer.substring(0, 200) : ' ';
|
||||
} else {
|
||||
return invoice.invoice_footer || ' ';
|
||||
return footer || ' ';
|
||||
}
|
||||
}
|
||||
|
||||
@ -352,7 +358,9 @@ NINJA.invoiceLines = function(invoice) {
|
||||
var notes = item.notes;
|
||||
var productKey = item.product_key;
|
||||
var tax1 = '';
|
||||
var tax2 = '';
|
||||
var tax2 = '';
|
||||
var custom_value1 = item.custom_value1;
|
||||
var custom_value2 = item.custom_value2;
|
||||
|
||||
if (showItemTaxes) {
|
||||
if (item.tax_name1) {
|
||||
@ -374,6 +382,8 @@ NINJA.invoiceLines = function(invoice) {
|
||||
if (invoice.is_recurring) {
|
||||
notes = processVariables(notes);
|
||||
productKey = processVariables(productKey);
|
||||
custom_value1 = processVariables(item.custom_value1);
|
||||
custom_value2 = processVariables(item.custom_value2);
|
||||
}
|
||||
|
||||
var lineTotal = roundToTwo(NINJA.parseFloat(item.cost)) * roundToTwo(NINJA.parseFloat(item.qty));
|
||||
@ -386,10 +396,10 @@ NINJA.invoiceLines = function(invoice) {
|
||||
}
|
||||
row.push({style:["notes", rowStyle], stack:[{text:notes || ' '}]});
|
||||
if (invoice.features.invoice_settings && account.custom_invoice_item_label1) {
|
||||
row.push({style:["customValue1", rowStyle], text:item.custom_value1 || ' '});
|
||||
row.push({style:["customValue1", rowStyle], text:custom_value1 || ' '});
|
||||
}
|
||||
if (invoice.features.invoice_settings && account.custom_invoice_item_label2) {
|
||||
row.push({style:["customValue2", rowStyle], text:item.custom_value2 || ' '});
|
||||
row.push({style:["customValue2", rowStyle], text:custom_value2 || ' '});
|
||||
}
|
||||
row.push({style:["cost", rowStyle], text:cost});
|
||||
if (!hideQuantity) {
|
||||
@ -587,13 +597,13 @@ NINJA.invoiceDetails = function(invoice) {
|
||||
if (invoice.custom_text_value1) {
|
||||
data.push([
|
||||
{text: invoice.account.custom_invoice_text_label1},
|
||||
{text: invoice.custom_text_value1}
|
||||
{text: invoice.is_recurring ? processVariables(invoice.custom_text_value1) : invoice.custom_text_value1}
|
||||
])
|
||||
}
|
||||
if (invoice.custom_text_value2) {
|
||||
data.push([
|
||||
{text: invoice.account.custom_invoice_text_label2},
|
||||
{text: invoice.custom_text_value2}
|
||||
{text: invoice.is_recurring ? processVariables(invoice.custom_text_value2) : invoice.custom_text_value2}
|
||||
])
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user