minor fix: child table length
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index c2632bf..95bfad5 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -109,7 +109,7 @@
},
on_submit: function() {
- $.each(this.frm.doc["items"], function(i, row) {
+ $.each(this.frm.doc["items"] || [], function(i, row) {
if(row.purchase_receipt) frappe.model.clear_doc("Purchase Receipt", row.purchase_receipt)
})
}
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js
index 1651e15..544a17a 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.js
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.js
@@ -154,7 +154,7 @@
project_name: function(doc, cdt, cdn) {
var item = frappe.get_doc(cdt, cdn);
if(item.project_name) {
- $.each(this.frm.doc["items"],
+ $.each(this.frm.doc["items"] || [],
function(i, other_item) {
if(!other_item.project_name) {
other_item.project_name = item.project_name;
@@ -180,7 +180,7 @@
calculate_item_values: function() {
var me = this;
- $.each(this.frm.doc["items"], function(i, item) {
+ $.each(this.frm.doc["items"] || [], function(i, item) {
frappe.model.round_floats_in(item);
item.amount = flt(item.rate * item.qty, precision("amount", item));
item.item_tax_amount = 0.0;
@@ -196,7 +196,7 @@
var me = this;
this.frm.doc.net_total = this.frm.doc.net_total_import = 0.0;
- $.each(this.frm.doc["items"], function(i, item) {
+ $.each(this.frm.doc["items"] || [], function(i, item) {
me.frm.doc.net_total += item.base_amount;
me.frm.doc.net_total_import += item.amount;
});
@@ -205,7 +205,7 @@
},
calculate_totals: function() {
- var tax_count = this.frm.doc["taxes"].length;
+ var tax_count = this.frm.doc["taxes"] ? this.frm.doc["taxes"].length : 0;
this.frm.doc.grand_total = flt(tax_count ?
this.frm.doc["taxes"][tax_count - 1].total : this.frm.doc.net_total);
this.frm.doc.grand_total_import = flt(tax_count ?
@@ -255,7 +255,7 @@
if(this.frm.doc["items"].length) {
if(!frappe.meta.get_docfield(this.frm.doc["items"][0].doctype, "item_tax_amount", this.frm.doctype)) {
- $.each(this.frm.doc["items"], function(i, item) {
+ $.each(this.frm.doc["items"] || [], function(i, item) {
delete item["item_tax_amount"];
});
}
@@ -263,7 +263,7 @@
if(this.frm.doc["taxes"].length) {
if(!frappe.meta.get_docfield(this.frm.doc["taxes"][0].doctype, "tax_amount_after_discount_amount", this.frm.doctype)) {
- $.each(this.frm.doc["taxes"], function(i, tax) {
+ $.each(this.frm.doc["taxes"] || [], function(i, tax) {
delete tax["tax_amount_after_discount_amount"];
});
}
diff --git a/erpnext/public/js/transaction.js b/erpnext/public/js/transaction.js
index e5fef9c..f202fb7 100644
--- a/erpnext/public/js/transaction.js
+++ b/erpnext/public/js/transaction.js
@@ -363,7 +363,7 @@
if (item) {
append_item(item);
} else {
- $.each(this.frm.doc["items"], function(i, d) {
+ $.each(this.frm.doc["items"] || [], function(i, d) {
append_item(d);
});
}
@@ -478,7 +478,7 @@
var tax_accounts = [];
var company_currency = this.get_company_currency();
- $.each(this.frm.doc["taxes"], function(i, tax) {
+ $.each(this.frm.doc["taxes"] || [], function(i, tax) {
var tax_amount_precision = precision("tax_amount", tax);
var tax_rate_precision = precision("rate", tax);
$.each(JSON.parse(tax.item_wise_tax_detail || '{}'),
@@ -507,7 +507,7 @@
var distinct_item_names = [];
var distinct_items = [];
- $.each(this.frm.doc["items"], function(i, item) {
+ $.each(this.frm.doc["items"] || [], function(i, item) {
if(distinct_item_names.indexOf(item.item_code || item.item_name)===-1) {
distinct_item_names.push(item.item_code || item.item_name);
distinct_items.push(item);
@@ -592,7 +592,7 @@
initialize_taxes: function() {
var me = this;
- $.each(this.frm.doc["taxes"], function(i, tax) {
+ $.each(this.frm.doc["taxes"] || [], function(i, tax) {
tax.item_wise_tax_detail = {};
tax_fields = ["total", "tax_amount_after_discount_amount",
"tax_amount_for_current_item", "grand_total_for_current_item",
@@ -614,16 +614,16 @@
var actual_tax_dict = {};
// maintain actual tax rate based on idx
- $.each(this.frm.doc["taxes"], function(i, tax) {
+ $.each(this.frm.doc["taxes"] || [], function(i, tax) {
if (tax.charge_type == "Actual") {
actual_tax_dict[tax.idx] = flt(tax.rate, precision("tax_amount", tax));
}
});
- $.each(this.frm.doc["items"], function(n, item) {
+ $.each(this.frm.doc["items"] || [], function(n, item) {
var item_tax_map = me._load_item_tax_rate(item.item_tax_rate);
- $.each(me.frm.doc["taxes"], function(i, tax) {
+ $.each(me.frm.doc["taxes"] || [], function(i, tax) {
// tax_amount represents the amount of tax for the current step
var current_tax_amount = me.get_current_tax_amount(item, tax, item_tax_map);
@@ -726,7 +726,7 @@
},
_cleanup: function() {
- $.each(this.frm.doc["taxes"], function(i, tax) {
+ $.each(this.frm.doc["taxes"] || [], function(i, tax) {
$.each(["tax_amount_for_current_item", "grand_total_for_current_item",
"tax_fraction_for_current_item", "grand_total_fraction_for_current_item"],
function(i, fieldname) { delete tax[fieldname]; });
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index 48c378f..3c04874 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -248,7 +248,7 @@
var me = this;
if (!this.discount_amount_applied) {
- $.each(this.frm.doc["items"], function(i, item) {
+ $.each(this.frm.doc["items"] || [], function(i, item) {
frappe.model.round_floats_in(item);
item.amount = flt(item.rate * item.qty, precision("amount", item));
@@ -261,11 +261,11 @@
determine_exclusive_rate: function() {
var me = this;
- $.each(me.frm.doc["items"], function(n, item) {
+ $.each(me.frm.doc["items"] || [], function(n, item) {
var item_tax_map = me._load_item_tax_rate(item.item_tax_rate);
var cumulated_tax_fraction = 0.0;
- $.each(me.frm.doc["taxes"], function(i, tax) {
+ $.each(me.frm.doc["taxes"] || [], function(i, tax) {
tax.tax_fraction_for_current_item = me.get_current_tax_fraction(tax, item_tax_map);
if(i==0) {
@@ -325,7 +325,7 @@
var me = this;
this.frm.doc.net_total = this.frm.doc.net_total_export = 0.0;
- $.each(this.frm.doc["items"], function(i, item) {
+ $.each(this.frm.doc["items"] || [], function(i, item) {
me.frm.doc.net_total += item.base_amount;
me.frm.doc.net_total_export += item.amount;
});
@@ -335,7 +335,7 @@
calculate_totals: function() {
var me = this;
- var tax_count = this.frm.doc["taxes"].length;
+ var tax_count = this.frm.doc["taxes"] ? this.frm.doc["taxes"].length: 0;
this.frm.doc.grand_total = flt(tax_count ? this.frm.doc["taxes"][tax_count - 1].total : this.frm.doc.net_total);
this.frm.doc.grand_total_export = flt(this.frm.doc.grand_total / this.frm.doc.conversion_rate);
@@ -364,7 +364,7 @@
var grand_total_for_discount_amount = this.get_grand_total_for_discount_amount();
// calculate item amount after Discount Amount
if (grand_total_for_discount_amount) {
- $.each(this.frm.doc["items"], function(i, item) {
+ $.each(this.frm.doc["items"] || [], function(i, item) {
distributed_amount = flt(me.frm.doc.base_discount_amount) * item.base_amount / grand_total_for_discount_amount;
item.base_amount = flt(item.base_amount - distributed_amount, precision("base_amount", item));
});
@@ -382,7 +382,7 @@
var total_actual_tax = 0.0;
var actual_taxes_dict = {};
- $.each(this.frm.doc["taxes"], function(i, tax) {
+ $.each(this.frm.doc["taxes"] || [], function(i, tax) {
if (tax.charge_type == "Actual")
actual_taxes_dict[tax.idx] = tax.tax_amount;
else if (actual_taxes_dict[tax.row_id] !== null) {
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
index e29dde0..6cc68e7 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
@@ -73,7 +73,7 @@
set_total_taxes_and_charges: function() {
total_taxes_and_charges = 0.0;
- $.each(this.frm.doc.taxes, function(i, d) {
+ $.each(this.frm.doc.taxes || [], function(i, d) {
total_taxes_and_charges += flt(d.amount)
});
cur_frm.set_value("total_taxes_and_charges", total_taxes_and_charges);
@@ -83,11 +83,11 @@
var me = this;
if(this.frm.doc.taxes.length) {
var total_item_cost = 0.0;
- $.each(this.frm.doc.items, function(i, d) {
+ $.each(this.frm.doc.items || [], function(i, d) {
total_item_cost += flt(d.amount)
});
- $.each(this.frm.doc.items, function(i, item) {
+ $.each(this.frm.doc.items || [], function(i, item) {
item.applicable_charges = flt(item.amount) * flt(me.frm.doc.total_taxes_and_charges) / flt(total_item_cost)
});
refresh_field("items");