1
0
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:
David Bomba 2016-05-08 18:48:31 +10:00
commit b16ab9058f
13 changed files with 121 additions and 36 deletions

View File

@ -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>";
}
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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
];
}

View 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');
}
}

View 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');
}
}

View 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');
}
}

View File

@ -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');
}
}

View File

@ -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');
}
}

View 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');
}
}

View File

@ -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

View File

@ -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}
])
}