From a1b747c3f3c863e659d834a9ae653223f494e66e Mon Sep 17 00:00:00 2001 From: Rohan Bansal Date: Tue, 14 Apr 2020 14:05:14 +0530 Subject: [PATCH 1/2] fix: show stock UOM in POS --- .../page/point_of_sale/point_of_sale.js | 2 +- .../page/point_of_sale/point_of_sale.py | 29 ++++++++++++++----- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js index df487833a8..f175687f26 100644 --- a/erpnext/selling/page/point_of_sale/point_of_sale.js +++ b/erpnext/selling/page/point_of_sale/point_of_sale.js @@ -1176,7 +1176,7 @@ class POSCart { return `
+ data-batch-no="${batch_no}" title="Item: ${item.item_name} Available Qty: ${item.actual_qty} ${item.stock_uom}">
${item.item_name}
diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.py b/erpnext/selling/page/point_of_sale/point_of_sale.py index 17136e0472..dfa0f7f2db 100644 --- a/erpnext/selling/page/point_of_sale/point_of_sale.py +++ b/erpnext/selling/page/point_of_sale/point_of_sale.py @@ -37,20 +37,33 @@ def get_items(start, page_length, price_list, item_group, search_value="", pos_p lft, rgt = frappe.db.get_value('Item Group', item_group, ['lft', 'rgt']) # locate function is used to sort by closest match from the beginning of the value - result = [] - items_data = frappe.db.sql(""" SELECT name as item_code, - item_name, image as item_image, idx as idx,is_stock_item + items_data = frappe.db.sql(""" + SELECT + name AS item_code, + item_name, + stock_uom, + image AS item_image, + idx AS idx, + is_stock_item FROM `tabItem` WHERE - disabled = 0 and has_variants = 0 and is_sales_item = 1 - and item_group in (select name from `tabItem Group` where lft >= {lft} and rgt <= {rgt}) - and {condition} order by idx desc limit {start}, {page_length}""" + disabled = 0 + AND has_variants = 0 + AND is_sales_item = 1 + AND item_group in (SELECT name FROM `tabItem Group` WHERE lft >= {lft} AND rgt <= {rgt}) + AND {condition} + ORDER BY + idx desc + LIMIT + {start}, {page_length}""" .format( - start=start, page_length=page_length, - lft=lft, rgt=rgt, + start=start, + page_length=page_length, + lft=lft, + rgt=rgt, condition=condition ), as_dict=1) From 9e9d44d1392c765739025c7f273974005d08c12d Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Wed, 15 Apr 2020 11:20:24 +0530 Subject: [PATCH 2/2] fix: Loan topup test --- .../loan_disbursement/test_loan_disbursement.py | 14 ++++++-------- .../doctype/loan_type/loan_type.json | 3 ++- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/erpnext/loan_management/doctype/loan_disbursement/test_loan_disbursement.py b/erpnext/loan_management/doctype/loan_disbursement/test_loan_disbursement.py index 189b2f5aff..0c1578ffef 100644 --- a/erpnext/loan_management/doctype/loan_disbursement/test_loan_disbursement.py +++ b/erpnext/loan_management/doctype/loan_disbursement/test_loan_disbursement.py @@ -58,18 +58,16 @@ class TestLoanDisbursement(unittest.TestCase): process_loan_interest_accrual_for_demand_loans(posting_date=add_days(last_date, 1)) - # Paid 511095.89 amount includes 5,00,000 principal amount and 11095.89 interest amount + # Should not be able to create loan disbursement entry before repayment + self.assertRaises(frappe.ValidationError, make_loan_disbursement_entry, loan.name, + 500000, first_date) + repayment_entry = create_repayment_entry(loan.name, self.applicant, add_days(get_last_day(nowdate()), 5), "Regular Payment", 611095.89) - repayment_entry.submit() + repayment_entry.submit() loan.reload() + # After repayment loan disbursement entry should go through make_loan_disbursement_entry(loan.name, 500000, disbursement_date=add_days(last_date, 16)) - total_principal_paid = loan.total_principal_paid - - loan.reload() - - # Loan Topup will result in decreasing the Total Principal Paid - self.assertEqual(flt(loan.total_principal_paid, 2), flt(total_principal_paid - 500000, 2)) diff --git a/erpnext/loan_management/doctype/loan_type/loan_type.json b/erpnext/loan_management/doctype/loan_type/loan_type.json index a3525db9a5..51c5cb98a6 100644 --- a/erpnext/loan_management/doctype/loan_type/loan_type.json +++ b/erpnext/loan_management/doctype/loan_type/loan_type.json @@ -119,6 +119,7 @@ "label": "Penalty Interest Rate (%) Per Day" }, { + "description": "No. of days from due date until which penalty won't be charged in case of delay in loan repayment", "fieldname": "grace_period_in_days", "fieldtype": "Int", "label": "Grace Period in Days" @@ -142,7 +143,7 @@ ], "is_submittable": 1, "links": [], - "modified": "2020-02-03 05:03:00.334813", + "modified": "2020-04-15 00:24:43.259963", "modified_by": "Administrator", "module": "Loan Management", "name": "Loan Type",