diff --git a/erpnext/accounts/page/financial_analytics/financial_analytics.js b/erpnext/accounts/page/financial_analytics/financial_analytics.js index 52298bbf18..4574390ce1 100644 --- a/erpnext/accounts/page/financial_analytics/financial_analytics.js +++ b/erpnext/accounts/page/financial_analytics/financial_analytics.js @@ -206,11 +206,11 @@ erpnext.FinancialAnalytics = erpnext.AccountTreeGrid.extend({ if(me.pl_or_bs=='Balance Sheet') { $.each(me.data, function(i, ac) { if((ac.rgt - ac.lft)==1 && ac.report_type=='Balance Sheet') { - var opening = 0; + var opening = flt(ac["opening_dr"]) - flt(ac["opening_cr"]); //if(opening) throw opening; $.each(me.columns, function(i, col) { if(col.formatter==me.currency_formatter) { - if(col.balance_type=="Dr") { + if(col.balance_type=="Dr" && !in_list(["opening_dr", "opening_cr"], col.field)) { opening = opening + flt(ac[col.date + "_dr"]) - flt(ac[col.date + "_cr"]); me.set_debit_or_credit(ac, col.date, opening); diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index 1600950fc5..bbc9f81ff4 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -68,13 +68,14 @@ class DeliveryNote(SellingController): self.validate_for_items() self.validate_warehouse() self.validate_uom_is_integer("stock_uom", "qty") - self.update_current_stock() self.validate_with_previous_doc() from erpnext.stock.doctype.packed_item.packed_item import make_packing_list make_packing_list(self, 'delivery_note_details') - self.status = 'Draft' + self.update_current_stock() + + if not self.status: self.status = 'Draft' if not self.installation_status: self.installation_status = 'Not Installed' def validate_with_previous_doc(self): @@ -133,14 +134,17 @@ class DeliveryNote(SellingController): def update_current_stock(self): - for d in self.get('delivery_note_details'): - bin = frappe.db.sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1) - d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0 + if self._action != "update_after_submit": + for d in self.get('delivery_note_details'): + d.actual_qty = frappe.db.get_value("Bin", {"item_code": d.item_code, + "warehouse": d.warehouse}, "actual_qty") - for d in self.get('packing_details'): - bin = frappe.db.sql("select actual_qty, projected_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1) - d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0 - d.projected_qty = bin and flt(bin[0]['projected_qty']) or 0 + for d in self.get('packing_details'): + bin_qty = frappe.db.get_value("Bin", {"item_code": d.item_code, + "warehouse": d.warehouse}, ["actual_qty", "projected_qty"], as_dict=True) + if bin_qty: + d.actual_qty = flt(bin_qty.actual_qty) + d.projected_qty = flt(bin_qty.projected_qty) def on_submit(self): self.validate_packed_qty()