If product key is blank remove column from PDF

This commit is contained in:
Hillel Coren 2016-02-28 10:13:58 +02:00
parent f2d7a01f94
commit 1c47f4e03f
3 changed files with 52 additions and 14 deletions

View File

@ -30461,6 +30461,7 @@ function calculateAmounts(invoice) {
var total = 0; var total = 0;
var hasTaxes = false; var hasTaxes = false;
var taxes = {}; var taxes = {};
invoice.has_product_key = false;
// sum line item // sum line item
for (var i=0; i<invoice.invoice_items.length; i++) { for (var i=0; i<invoice.invoice_items.length; i++) {
@ -30476,6 +30477,12 @@ function calculateAmounts(invoice) {
var taxRate = 0; var taxRate = 0;
var taxName = ''; var taxName = '';
if (item.product_key) {
invoice.has_product_key = true;
} else if (invoice.invoice_items.length == 1 && !item.qty) {
invoice.has_product_key = true;
}
// the object structure differs if it's read from the db or created by knockoutJS // the object structure differs if it's read from the db or created by knockoutJS
if (item.tax && parseFloat(item.tax.rate)) { if (item.tax && parseFloat(item.tax.rate)) {
taxRate = parseFloat(item.tax.rate); taxRate = parseFloat(item.tax.rate);
@ -31201,7 +31208,14 @@ NINJA.notesAndTerms = function(invoice)
NINJA.invoiceColumns = function(invoice) NINJA.invoiceColumns = function(invoice)
{ {
var account = invoice.account; var account = invoice.account;
var columns = ["15%", "*"]; var columns = [];
if (invoice.has_product_key) {
columns.push("15%");
}
columns.push("*")
var count = 3; var count = 3;
if (account.hide_quantity == '1') { if (account.hide_quantity == '1') {
count--; count--;
@ -31240,11 +31254,14 @@ NINJA.invoiceLines = function(invoice) {
var hideQuantity = invoice.account.hide_quantity == '1'; var hideQuantity = invoice.account.hide_quantity == '1';
var showItemTaxes = invoice.account.show_item_taxes == '1'; var showItemTaxes = invoice.account.show_item_taxes == '1';
var grid = [[ var grid = [[]];
{text: invoiceLabels.item, style: ['tableHeader', 'itemTableHeader']},
{text: invoiceLabels.description, style: ['tableHeader', 'descriptionTableHeader']}, if (invoice.has_product_key) {
{text: invoiceLabels.unit_cost, style: ['tableHeader', 'costTableHeader']} grid[0].push({text: invoiceLabels.item, style: ['tableHeader', 'itemTableHeader']});
]]; }
grid[0].push({text: invoiceLabels.description, style: ['tableHeader', 'descriptionTableHeader']});
grid[0].push({text: invoiceLabels.unit_cost, style: ['tableHeader', 'costTableHeader']});
if (!hideQuantity) { if (!hideQuantity) {
grid[0].push({text: invoiceLabels.quantity, style: ['tableHeader', 'qtyTableHeader']}); grid[0].push({text: invoiceLabels.quantity, style: ['tableHeader', 'qtyTableHeader']});
@ -31291,7 +31308,9 @@ NINJA.invoiceLines = function(invoice) {
rowStyle = (i % 2 == 0) ? 'odd' : 'even'; rowStyle = (i % 2 == 0) ? 'odd' : 'even';
if (invoice.has_product_key) {
row.push({style:["productKey", rowStyle], text:productKey || ' '}); // product key can be blank when selecting from a datalist row.push({style:["productKey", rowStyle], text:productKey || ' '}); // product key can be blank when selecting from a datalist
}
row.push({style:["notes", rowStyle], stack:[{text:notes || ' '}]}); row.push({style:["notes", rowStyle], stack:[{text:notes || ' '}]});
row.push({style:["cost", rowStyle], text:cost}); row.push({style:["cost", rowStyle], text:cost});
if (!hideQuantity) { if (!hideQuantity) {

View File

@ -259,7 +259,14 @@ NINJA.notesAndTerms = function(invoice)
NINJA.invoiceColumns = function(invoice) NINJA.invoiceColumns = function(invoice)
{ {
var account = invoice.account; var account = invoice.account;
var columns = ["15%", "*"]; var columns = [];
if (invoice.has_product_key) {
columns.push("15%");
}
columns.push("*")
var count = 3; var count = 3;
if (account.hide_quantity == '1') { if (account.hide_quantity == '1') {
count--; count--;
@ -298,11 +305,14 @@ NINJA.invoiceLines = function(invoice) {
var hideQuantity = invoice.account.hide_quantity == '1'; var hideQuantity = invoice.account.hide_quantity == '1';
var showItemTaxes = invoice.account.show_item_taxes == '1'; var showItemTaxes = invoice.account.show_item_taxes == '1';
var grid = [[ var grid = [[]];
{text: invoiceLabels.item, style: ['tableHeader', 'itemTableHeader']},
{text: invoiceLabels.description, style: ['tableHeader', 'descriptionTableHeader']}, if (invoice.has_product_key) {
{text: invoiceLabels.unit_cost, style: ['tableHeader', 'costTableHeader']} grid[0].push({text: invoiceLabels.item, style: ['tableHeader', 'itemTableHeader']});
]]; }
grid[0].push({text: invoiceLabels.description, style: ['tableHeader', 'descriptionTableHeader']});
grid[0].push({text: invoiceLabels.unit_cost, style: ['tableHeader', 'costTableHeader']});
if (!hideQuantity) { if (!hideQuantity) {
grid[0].push({text: invoiceLabels.quantity, style: ['tableHeader', 'qtyTableHeader']}); grid[0].push({text: invoiceLabels.quantity, style: ['tableHeader', 'qtyTableHeader']});
@ -349,7 +359,9 @@ NINJA.invoiceLines = function(invoice) {
rowStyle = (i % 2 == 0) ? 'odd' : 'even'; rowStyle = (i % 2 == 0) ? 'odd' : 'even';
if (invoice.has_product_key) {
row.push({style:["productKey", rowStyle], text:productKey || ' '}); // product key can be blank when selecting from a datalist row.push({style:["productKey", rowStyle], text:productKey || ' '}); // product key can be blank when selecting from a datalist
}
row.push({style:["notes", rowStyle], stack:[{text:notes || ' '}]}); row.push({style:["notes", rowStyle], stack:[{text:notes || ' '}]});
row.push({style:["cost", rowStyle], text:cost}); row.push({style:["cost", rowStyle], text:cost});
if (!hideQuantity) { if (!hideQuantity) {

View File

@ -589,6 +589,7 @@ function calculateAmounts(invoice) {
var total = 0; var total = 0;
var hasTaxes = false; var hasTaxes = false;
var taxes = {}; var taxes = {};
invoice.has_product_key = false;
// sum line item // sum line item
for (var i=0; i<invoice.invoice_items.length; i++) { for (var i=0; i<invoice.invoice_items.length; i++) {
@ -604,6 +605,12 @@ function calculateAmounts(invoice) {
var taxRate = 0; var taxRate = 0;
var taxName = ''; var taxName = '';
if (item.product_key) {
invoice.has_product_key = true;
} else if (invoice.invoice_items.length == 1 && !item.qty) {
invoice.has_product_key = true;
}
// the object structure differs if it's read from the db or created by knockoutJS // the object structure differs if it's read from the db or created by knockoutJS
if (item.tax && parseFloat(item.tax.rate)) { if (item.tax && parseFloat(item.tax.rate)) {
taxRate = parseFloat(item.tax.rate); taxRate = parseFloat(item.tax.rate);