Merge pull request #846 from Rayvw/feature/improve-dynamic-dates

Improved dynamic dates of recurring invoices
This commit is contained in:
Hillel Coren 2016-05-08 11:20:18 +03:00
commit eff9ba5ac0
3 changed files with 51 additions and 30 deletions

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->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; $invoice->public_notes = isset($data['public_notes']) ? trim($data['public_notes']) : null;
// process date variables // process date variables if not recurring
$invoice->terms = Utils::processVariables($invoice->terms); if(!$invoice->is_recurring) {
$invoice->invoice_footer = Utils::processVariables($invoice->invoice_footer); $invoice->terms = Utils::processVariables($invoice->terms);
$invoice->public_notes = Utils::processVariables($invoice->public_notes); $invoice->invoice_footer = Utils::processVariables($invoice->invoice_footer);
$invoice->public_notes = Utils::processVariables($invoice->public_notes);
}
if (isset($data['po_number'])) { if (isset($data['po_number'])) {
$invoice->po_number = trim($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_value2 = $recurInvoice->custom_value2 ?: 0;
$invoice->custom_taxes1 = $recurInvoice->custom_taxes1 ?: 0; $invoice->custom_taxes1 = $recurInvoice->custom_taxes1 ?: 0;
$invoice->custom_taxes2 = $recurInvoice->custom_taxes2 ?: 0; $invoice->custom_taxes2 = $recurInvoice->custom_taxes2 ?: 0;
$invoice->custom_text_value1 = $recurInvoice->custom_text_value1; $invoice->custom_text_value1 = Utils::processVariables($recurInvoice->custom_text_value1);
$invoice->custom_text_value2 = $recurInvoice->custom_text_value2; $invoice->custom_text_value2 = Utils::processVariables($recurInvoice->custom_text_value2);
$invoice->is_amount_discount = $recurInvoice->is_amount_discount; $invoice->is_amount_discount = $recurInvoice->is_amount_discount;
$invoice->due_date = $recurInvoice->getDueDate(); $invoice->due_date = $recurInvoice->getDueDate();
$invoice->save(); $invoice->save();
@ -741,6 +743,8 @@ class InvoiceRepository extends BaseRepository
$item->tax_rate1 = $recurItem->tax_rate1; $item->tax_rate1 = $recurItem->tax_rate1;
$item->tax_name2 = $recurItem->tax_name2; $item->tax_name2 = $recurItem->tax_name2;
$item->tax_rate2 = $recurItem->tax_rate2; $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); $invoice->invoice_items()->save($item);
} }

File diff suppressed because one or more lines are too long

View File

@ -247,13 +247,13 @@ NINJA.notesAndTerms = function(invoice)
var data = []; var data = [];
if (invoice.public_notes) { 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:' '}); data.push({text:' '});
} }
if (invoice.terms) { if (invoice.terms) {
data.push({text:invoiceLabels.terms, style: ['termsLabel']}); 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'); return NINJA.prepareDataList(data, 'notesAndTerms');
@ -293,10 +293,16 @@ NINJA.invoiceColumns = function(invoice)
NINJA.invoiceFooter = 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) { 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 { } else {
return invoice.invoice_footer || ' '; return footer || ' ';
} }
} }
@ -352,7 +358,9 @@ NINJA.invoiceLines = function(invoice) {
var notes = item.notes; var notes = item.notes;
var productKey = item.product_key; var productKey = item.product_key;
var tax1 = ''; var tax1 = '';
var tax2 = ''; var tax2 = '';
var custom_value1 = item.custom_value1;
var custom_value2 = item.custom_value2;
if (showItemTaxes) { if (showItemTaxes) {
if (item.tax_name1) { if (item.tax_name1) {
@ -374,6 +382,8 @@ NINJA.invoiceLines = function(invoice) {
if (invoice.is_recurring) { if (invoice.is_recurring) {
notes = processVariables(notes); notes = processVariables(notes);
productKey = processVariables(productKey); 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)); 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 || ' '}]}); row.push({style:["notes", rowStyle], stack:[{text:notes || ' '}]});
if (invoice.features.invoice_settings && account.custom_invoice_item_label1) { 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) { 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}); row.push({style:["cost", rowStyle], text:cost});
if (!hideQuantity) { if (!hideQuantity) {
@ -587,13 +597,13 @@ NINJA.invoiceDetails = function(invoice) {
if (invoice.custom_text_value1) { if (invoice.custom_text_value1) {
data.push([ data.push([
{text: invoice.account.custom_invoice_text_label1}, {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) { if (invoice.custom_text_value2) {
data.push([ data.push([
{text: invoice.account.custom_invoice_text_label2}, {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}
]) ])
} }