1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 08:21:34 +02:00

Merge pull request #911 from haleksandre/invoice-subtotals

Add custom labelling and style to multiple labels and amount in the subtotals table
This commit is contained in:
Hillel Coren 2016-06-09 09:05:57 +03:00
commit 31fc4ad59c
4 changed files with 151 additions and 151 deletions

View File

@ -975,7 +975,7 @@ class AccountController extends BaseController
} }
$labels = []; $labels = [];
foreach (['item', 'description', 'unit_cost', 'quantity', 'line_total', 'terms', 'balance_due', 'partial_due'] as $field) { foreach (['item', 'description', 'unit_cost', 'quantity', 'line_total', 'terms', 'balance_due', 'partial_due', 'subtotal', 'paid_to_date', 'discount'] as $field) {
$labels[$field] = Input::get("labels_{$field}"); $labels[$field] = Input::get("labels_{$field}");
} }
$account->invoice_labels = json_encode($labels); $account->invoice_labels = json_encode($labels);

File diff suppressed because one or more lines are too long

View File

@ -466,62 +466,62 @@ NINJA.subtotals = function(invoice, hideBalance)
var account = invoice.account; var account = invoice.account;
var data = []; var data = [];
data.push([{text: invoiceLabels.subtotal}, {text: formatMoneyInvoice(invoice.subtotal_amount, invoice)}]); data.push([{text: invoiceLabels.subtotal, style: ['subtotalsLabel', 'subtotalLabel']}, {text: formatMoneyInvoice(invoice.subtotal_amount, invoice), style: ['subtotals', 'subtotal']}]);
if (invoice.discount_amount != 0) { if (invoice.discount_amount != 0) {
data.push([{text: invoiceLabels.discount}, {text: formatMoneyInvoice(invoice.discount_amount, invoice)}]); data.push([{text: invoiceLabels.discount , style: ['subtotalsLabel', 'discountLabel']}, {text: formatMoneyInvoice(invoice.discount_amount, invoice), style: ['subtotals', 'discount']}]);
} }
if (NINJA.parseFloat(invoice.custom_value1) && invoice.custom_taxes1 == '1') { if (NINJA.parseFloat(invoice.custom_value1) && invoice.custom_taxes1 == '1') {
data.push([{text: account.custom_invoice_label1}, {text: formatMoneyInvoice(invoice.custom_value1, invoice)}]); data.push([{text: account.custom_invoice_label1, style: ['subtotalsLabel', 'customTax1Label']}, {text: formatMoneyInvoice(invoice.custom_value1, invoice), style: ['subtotals', 'customTax1']}]);
} }
if (NINJA.parseFloat(invoice.custom_value2) && invoice.custom_taxes2 == '1') { if (NINJA.parseFloat(invoice.custom_value2) && invoice.custom_taxes2 == '1') {
data.push([{text: account.custom_invoice_label2}, {text: formatMoneyInvoice(invoice.custom_value2, invoice)}]); data.push([{text: account.custom_invoice_label2, style: ['subtotalsLabel', 'customTax2Label']}, {text: formatMoneyInvoice(invoice.custom_value2, invoice), style: ['subtotals', 'customTax2']}]);
} }
for (var key in invoice.item_taxes) { for (var key in invoice.item_taxes) {
if (invoice.item_taxes.hasOwnProperty(key)) { if (invoice.item_taxes.hasOwnProperty(key)) {
var taxRate = invoice.item_taxes[key]; var taxRate = invoice.item_taxes[key];
var taxStr = taxRate.name + ' ' + (taxRate.rate*1).toString() + '%'; var taxStr = taxRate.name + ' ' + (taxRate.rate*1).toString() + '%';
data.push([{text: taxStr}, {text: formatMoneyInvoice(taxRate.amount, invoice)}]); data.push([{text: taxStr, style: ['subtotalsLabel', 'taxLabel']}, {text: formatMoneyInvoice(taxRate.amount, invoice), style: ['subtotals', 'tax']}]);
} }
} }
if (invoice.tax_amount1) { if (invoice.tax_amount1) {
var taxStr = invoice.tax_name1 + ' ' + (invoice.tax_rate1*1).toString() + '%'; var taxStr = invoice.tax_name1 + ' ' + (invoice.tax_rate1*1).toString() + '%';
data.push([{text: taxStr}, {text: formatMoneyInvoice(invoice.tax_amount1, invoice)}]); data.push([{text: taxStr, style: ['subtotalsLabel', 'tax1Label']}, {text: formatMoneyInvoice(invoice.tax_amount1, invoice), style: ['subtotals', 'tax1']}]);
} }
if (invoice.tax_amount2) { if (invoice.tax_amount2) {
var taxStr = invoice.tax_name2 + ' ' + (invoice.tax_rate2*1).toString() + '%'; var taxStr = invoice.tax_name2 + ' ' + (invoice.tax_rate2*1).toString() + '%';
data.push([{text: taxStr}, {text: formatMoneyInvoice(invoice.tax_amount2, invoice)}]); data.push([{text: taxStr, style: ['subtotalsLabel', 'tax2Label']}, {text: formatMoneyInvoice(invoice.tax_amount2, invoice), style: ['subtotals', 'tax2']}]);
} }
if (NINJA.parseFloat(invoice.custom_value1) && invoice.custom_taxes1 != '1') { if (NINJA.parseFloat(invoice.custom_value1) && invoice.custom_taxes1 != '1') {
data.push([{text: account.custom_invoice_label1}, {text: formatMoneyInvoice(invoice.custom_value1, invoice)}]); data.push([{text: account.custom_invoice_label1, style: ['subtotalsLabel', 'custom1Label']}, {text: formatMoneyInvoice(invoice.custom_value1, invoice), style: ['subtotals', 'custom1']}]);
} }
if (NINJA.parseFloat(invoice.custom_value2) && invoice.custom_taxes2 != '1') { if (NINJA.parseFloat(invoice.custom_value2) && invoice.custom_taxes2 != '1') {
data.push([{text: account.custom_invoice_label2}, {text: formatMoneyInvoice(invoice.custom_value2, invoice)}]); data.push([{text: account.custom_invoice_label2, style: ['subtotalsLabel', 'custom2Label']}, {text: formatMoneyInvoice(invoice.custom_value2, invoice), style: ['subtotals', 'custom2']}]);
} }
var paid = invoice.amount - invoice.balance; var paid = invoice.amount - invoice.balance;
if (invoice.account.hide_paid_to_date != '1' || paid) { if (invoice.account.hide_paid_to_date != '1' || paid) {
data.push([{text:invoiceLabels.paid_to_date}, {text:formatMoneyInvoice(paid, invoice)}]); data.push([{text:invoiceLabels.paid_to_date, style: ['subtotalsLabel', 'paidToDateLabel']}, {text:formatMoneyInvoice(paid, invoice), style: ['subtotals', 'paidToDate']}]);
} }
var isPartial = NINJA.parseFloat(invoice.partial); var isPartial = NINJA.parseFloat(invoice.partial);
if (!hideBalance || isPartial) { if (!hideBalance || isPartial) {
data.push([ data.push([
{ text: invoiceLabels.balance_due, style: [isPartial ? '' : 'balanceDueLabel'] }, { text: invoiceLabels.balance_due, style: ['subtotalsLabel', isPartial ? '' : 'balanceDueLabel'] },
{ text: formatMoneyInvoice(invoice.total_amount, invoice), style: [isPartial ? '' : 'balanceDue'] } { text: formatMoneyInvoice(invoice.total_amount, invoice), style: ['subtotals', isPartial ? '' : 'balanceDue'] }
]); ]);
} }
if (!hideBalance) { if (!hideBalance) {
if (isPartial) { if (isPartial) {
data.push([ data.push([
{ text: invoiceLabels.partial_due, style: ['balanceDueLabel'] }, { text: invoiceLabels.partial_due, style: ['subtotalsLabel', 'balanceDueLabel'] },
{ text: formatMoneyInvoice(invoice.balance_amount, invoice), style: ['balanceDue'] } { text: formatMoneyInvoice(invoice.balance_amount, invoice), style: ['subtotals', 'balanceDue'] }
]); ]);
} }
} }
@ -532,8 +532,8 @@ NINJA.subtotals = function(invoice, hideBalance)
NINJA.subtotalsBalance = function(invoice) { NINJA.subtotalsBalance = function(invoice) {
var isPartial = NINJA.parseFloat(invoice.partial); var isPartial = NINJA.parseFloat(invoice.partial);
return [[ return [[
{text: isPartial ? invoiceLabels.partial_due : invoiceLabels.balance_due, style:['balanceDueLabel']}, {text: isPartial ? invoiceLabels.partial_due : invoiceLabels.balance_due, style:['subtotalsLabel', 'balanceDueLabel']},
{text: formatMoneyInvoice(invoice.balance_amount, invoice), style:['balanceDue']} {text: formatMoneyInvoice(invoice.balance_amount, invoice), style:['subtotals', 'balanceDue']}
]]; ]];
} }
@ -541,11 +541,11 @@ NINJA.accountDetails = function(invoice) {
var account = invoice.account; var account = invoice.account;
var data = [ var data = [
{text:account.name, style: ['accountName']}, {text:account.name, style: ['accountName']},
{text:account.id_number}, {text:account.id_number, style: ['idNumber']},
{text:account.vat_number}, {text:account.vat_number, style: ['vatNumber']},
{text:account.website}, {text:account.website, style: ['website']},
{text:account.work_email}, {text:account.work_email, style: ['email']},
{text:account.work_phone} {text:account.work_phone, style: ['phone']}
]; ];
return NINJA.prepareDataList(data, 'accountDetails'); return NINJA.prepareDataList(data, 'accountDetails');
} }

View File

@ -208,12 +208,15 @@
{!! Former::text('labels_description')->label(trans('texts.description')) !!} {!! Former::text('labels_description')->label(trans('texts.description')) !!}
{!! Former::text('labels_unit_cost')->label(trans('texts.unit_cost')) !!} {!! Former::text('labels_unit_cost')->label(trans('texts.unit_cost')) !!}
{!! Former::text('labels_quantity')->label(trans('texts.quantity')) !!} {!! Former::text('labels_quantity')->label(trans('texts.quantity')) !!}
{!! Former::text('labels_line_total')->label(trans('texts.line_total')) !!}
{!! Former::text('labels_terms')->label(trans('texts.terms')) !!}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{!! Former::text('labels_line_total')->label(trans('texts.line_total')) !!} {!! Former::text('labels_subtotal')->label(trans('texts.subtotal')) !!}
{!! Former::text('labels_terms')->label(trans('texts.terms')) !!} {!! Former::text('labels_discount')->label(trans('texts.discount')) !!}
{!! Former::text('labels_balance_due')->label(trans('texts.balance_due')) !!} {!! Former::text('labels_paid_to_date')->label(trans('texts.paid_to_date')) !!}
{!! Former::text('labels_partial_due')->label(trans('texts.partial_due')) !!} {!! Former::text('labels_balance_due')->label(trans('texts.balance_due')) !!}
{!! Former::text('labels_partial_due')->label(trans('texts.partial_due')) !!}
</div> </div>
</div> </div>