Merge pull request #2300 from nabinhait/stock_reco
Minor fixes
diff --git a/erpnext/accounts/doctype/payment_tool/test_payment_tool.py b/erpnext/accounts/doctype/payment_tool/test_payment_tool.py
index c91a5de..2192aeb 100644
--- a/erpnext/accounts/doctype/payment_tool/test_payment_tool.py
+++ b/erpnext/accounts/doctype/payment_tool/test_payment_tool.py
@@ -31,9 +31,10 @@
"customer": "_Test Customer 3"
})
- jv_against_so1 = self.create_against_jv(jv_test_records[0], {
+ jv_against_so1 = self.create_against_jv(jv_test_records[0], {
"account": "_Test Customer 3 - _TC",
- "against_sales_order": so1.name
+ "against_sales_order": so1.name,
+ "is_advance": "Yes"
})
@@ -42,10 +43,11 @@
"customer": "_Test Customer 3"
})
- jv_against_so2 = self.create_against_jv(jv_test_records[0], {
+ jv_against_so2 = self.create_against_jv(jv_test_records[0], {
"account": "_Test Customer 3 - _TC",
"against_sales_order": so2.name,
- "credit": 1000
+ "credit": 1000,
+ "is_advance": "Yes"
})
po = self.create_voucher(po_test_records[1], {
"supplier": "_Test Supplier 1"
@@ -54,20 +56,20 @@
#Create SI with partial outstanding
si1 = self.create_voucher(si_test_records[0], {
"customer": "_Test Customer 3",
- "debit_to": "_Test Customer 3 - _TC"
+ "debit_to": "_Test Customer 3 - _TC"
})
-
- jv_against_si1 = self.create_against_jv(jv_test_records[0], {
+
+ jv_against_si1 = self.create_against_jv(jv_test_records[0], {
"account": "_Test Customer 3 - _TC",
"against_invoice": si1.name
})
#Create SI with no outstanding
si2 = self.create_voucher(si_test_records[0], {
"customer": "_Test Customer 3",
- "debit_to": "_Test Customer 3 - _TC"
+ "debit_to": "_Test Customer 3 - _TC"
})
-
- jv_against_si2 = self.create_against_jv(jv_test_records[0], {
+
+ jv_against_si2 = self.create_against_jv(jv_test_records[0], {
"account": "_Test Customer 3 - _TC",
"against_invoice": si2.name,
"credit": 561.80
@@ -75,7 +77,7 @@
pi = self.create_voucher(pi_test_records[0], {
"supplier": "_Test Supplier 1",
- "credit_to": "_Test Supplier 1 - _TC"
+ "credit_to": "_Test Supplier 1 - _TC"
})
#Create a dict containing properties and expected values
@@ -137,7 +139,7 @@
payment_tool_doc.set(k, v)
self.check_outstanding_vouchers(payment_tool_doc, args, expected_outstanding)
-
+
def check_outstanding_vouchers(self, doc, args, expected_outstanding):
from erpnext.accounts.doctype.payment_tool.payment_tool import get_outstanding_vouchers
@@ -161,7 +163,7 @@
new_jv = paytool.make_journal_voucher()
- #Create a list of expected values as [party account, payment against, against_jv, against_invoice,
+ #Create a list of expected values as [party account, payment against, against_jv, against_invoice,
#against_voucher, against_sales_order, against_purchase_order]
expected_values = [
[paytool.party_account, 100.00, expected_outstanding.get("Journal Voucher")[0], None, None, None, None],
@@ -171,7 +173,7 @@
[paytool.party_account, 100.00, None, None, None, None, expected_outstanding.get("Purchase Order")[0]]
]
- for jv_entry in new_jv.get("entries"):
+ for jv_entry in new_jv.get("entries"):
if paytool.party_account == jv_entry.get("account"):
row = [
jv_entry.get("account"),
@@ -183,11 +185,11 @@
jv_entry.get("against_purchase_order"),
]
self.assertTrue(row in expected_values)
-
+
self.assertEquals(new_jv.get("cheque_no"), paytool.reference_no)
self.assertEquals(new_jv.get("cheque_date"), paytool.reference_date)
def clear_table_entries(self):
frappe.db.sql("""delete from `tabGL Entry` where (account = "_Test Customer 3 - _TC" or account = "_Test Supplier 1 - _TC")""")
frappe.db.sql("""delete from `tabSales Order` where customer_name = "_Test Customer 3" """)
- frappe.db.sql("""delete from `tabPurchase Order` where supplier_name = "_Test Supplier 1" """)
+ frappe.db.sql("""delete from `tabPurchase Order` where supplier_name = "_Test Supplier 1" """)
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 9a62fc2..af0a96e 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -387,7 +387,7 @@
res = frappe.db.sql("""
select
- t1.name as jv_no, t1.remark, t2.%s as amount, t2.name as jv_detail_no
+ t1.name as jv_no, t1.remark, t2.%s as amount, t2.name as jv_detail_no, `against_%s` as against_order
from
`tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
where
@@ -400,7 +400,7 @@
and ifnull(t2.against_purchase_order, '') = ''
) %s)
order by t1.posting_date""" %
- (dr_or_cr, '%s', cond),
+ (dr_or_cr, against_order_field, '%s', cond),
tuple([account_head] + so_list), as_dict= True)
self.set(parentfield, [])
@@ -411,7 +411,7 @@
"jv_detail_no": d.jv_detail_no,
"remarks": d.remark,
"advance_amount": flt(d.amount),
- "allocate_amount": 0
+ "allocated_amount": flt(d.amount) if d.against_order else 0
})
def validate_advance_jv(self, advance_table_fieldname, against_order_field):
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py
index d3942e4..bf643dd 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.py
@@ -78,9 +78,10 @@
frappe.db.commit()
except:
- traceback = frappe.get_traceback()
- for hook in frappe.get_hooks("setup_wizard_exception"):
- frappe.get_attr(hook)(traceback, args)
+ if args:
+ traceback = frappe.get_traceback()
+ for hook in frappe.get_hooks("setup_wizard_exception"):
+ frappe.get_attr(hook)(traceback, args)
raise
diff --git a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
index 9b94ee6..3679457 100644
--- a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
+++ b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
@@ -4,7 +4,7 @@
from __future__ import unicode_literals
import frappe
from frappe import _
-from frappe.utils import flt
+from frappe.utils import flt, cint
def execute(filters=None):
if not filters: filters = {}
@@ -57,6 +57,7 @@
conditions, as_dict=1)
def get_item_warehouse_batch_map(filters):
+ float_precision = cint(frappe.db.get_default("float_precision")) or 3
sle = get_stock_ledger_entries(filters)
iwb_map = {}
@@ -67,14 +68,14 @@
}))
qty_dict = iwb_map[d.item_code][d.warehouse][d.batch_no]
if d.posting_date < filters["from_date"]:
- qty_dict.opening_qty += flt(d.actual_qty)
+ qty_dict.opening_qty += flt(d.actual_qty, float_precision)
elif d.posting_date >= filters["from_date"] and d.posting_date <= filters["to_date"]:
if flt(d.actual_qty) > 0:
- qty_dict.in_qty += flt(d.actual_qty)
+ qty_dict.in_qty += flt(d.actual_qty, float_precision)
else:
- qty_dict.out_qty += abs(flt(d.actual_qty))
+ qty_dict.out_qty += abs(flt(d.actual_qty, float_precision))
- qty_dict.bal_qty += flt(d.actual_qty)
+ qty_dict.bal_qty += flt(d.actual_qty, float_precision)
return iwb_map