* fix: don't reset rate if greater than zero in standalone debit note (cherry picked from commit 5cce522ecdb7f13a001d4abbf6c3682088edb1b6) * fix(test): `test_gl_entries_for_standalone_debit_note` (cherry picked from commit f9fc6c9c9d5faef90f345df6e04ea4d2b8b8b69b) --------- Co-authored-by: s-aga-r <sagarsharma.s312@gmail.com>
This commit is contained in:
parent
7ad08179f2
commit
e156564ea4
@ -1783,9 +1783,14 @@ class TestPurchaseInvoice(FrappeTestCase, StockTestMixin):
|
|||||||
set_advance_flag(company="_Test Company", flag=0, default_account="")
|
set_advance_flag(company="_Test Company", flag=0, default_account="")
|
||||||
|
|
||||||
def test_gl_entries_for_standalone_debit_note(self):
|
def test_gl_entries_for_standalone_debit_note(self):
|
||||||
make_purchase_invoice(qty=5, rate=500, update_stock=True)
|
from erpnext.stock.doctype.item.test_item import make_item
|
||||||
|
|
||||||
returned_inv = make_purchase_invoice(qty=-5, rate=5, update_stock=True, is_return=True)
|
item_code = make_item(properties={"is_stock_item": 1})
|
||||||
|
make_purchase_invoice(item_code=item_code, qty=5, rate=500, update_stock=True)
|
||||||
|
|
||||||
|
returned_inv = make_purchase_invoice(
|
||||||
|
item_code=item_code, qty=-5, rate=5, update_stock=True, is_return=True
|
||||||
|
)
|
||||||
|
|
||||||
# override the rate with valuation rate
|
# override the rate with valuation rate
|
||||||
sle = frappe.get_all(
|
sle = frappe.get_all(
|
||||||
@ -1795,7 +1800,7 @@ class TestPurchaseInvoice(FrappeTestCase, StockTestMixin):
|
|||||||
)[0]
|
)[0]
|
||||||
|
|
||||||
rate = flt(sle.stock_value_difference) / flt(sle.actual_qty)
|
rate = flt(sle.stock_value_difference) / flt(sle.actual_qty)
|
||||||
self.assertAlmostEqual(returned_inv.items[0].rate, rate)
|
self.assertAlmostEqual(rate, 500)
|
||||||
|
|
||||||
def test_payment_allocation_for_payment_terms(self):
|
def test_payment_allocation_for_payment_terms(self):
|
||||||
from erpnext.buying.doctype.purchase_order.test_purchase_order import (
|
from erpnext.buying.doctype.purchase_order.test_purchase_order import (
|
||||||
|
@ -105,26 +105,26 @@ class BuyingController(SubcontractingController):
|
|||||||
def set_rate_for_standalone_debit_note(self):
|
def set_rate_for_standalone_debit_note(self):
|
||||||
if self.get("is_return") and self.get("update_stock") and not self.return_against:
|
if self.get("is_return") and self.get("update_stock") and not self.return_against:
|
||||||
for row in self.items:
|
for row in self.items:
|
||||||
|
if row.rate <= 0:
|
||||||
|
# override the rate with valuation rate
|
||||||
|
row.rate = get_incoming_rate(
|
||||||
|
{
|
||||||
|
"item_code": row.item_code,
|
||||||
|
"warehouse": row.warehouse,
|
||||||
|
"posting_date": self.get("posting_date"),
|
||||||
|
"posting_time": self.get("posting_time"),
|
||||||
|
"qty": row.qty,
|
||||||
|
"serial_and_batch_bundle": row.get("serial_and_batch_bundle"),
|
||||||
|
"company": self.company,
|
||||||
|
"voucher_type": self.doctype,
|
||||||
|
"voucher_no": self.name,
|
||||||
|
},
|
||||||
|
raise_error_if_no_rate=False,
|
||||||
|
)
|
||||||
|
|
||||||
# override the rate with valuation rate
|
row.discount_percentage = 0.0
|
||||||
row.rate = get_incoming_rate(
|
row.discount_amount = 0.0
|
||||||
{
|
row.margin_rate_or_amount = 0.0
|
||||||
"item_code": row.item_code,
|
|
||||||
"warehouse": row.warehouse,
|
|
||||||
"posting_date": self.get("posting_date"),
|
|
||||||
"posting_time": self.get("posting_time"),
|
|
||||||
"qty": row.qty,
|
|
||||||
"serial_and_batch_bundle": row.get("serial_and_batch_bundle"),
|
|
||||||
"company": self.company,
|
|
||||||
"voucher_type": self.doctype,
|
|
||||||
"voucher_no": self.name,
|
|
||||||
},
|
|
||||||
raise_error_if_no_rate=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
row.discount_percentage = 0.0
|
|
||||||
row.discount_amount = 0.0
|
|
||||||
row.margin_rate_or_amount = 0.0
|
|
||||||
|
|
||||||
def set_missing_values(self, for_validate=False):
|
def set_missing_values(self, for_validate=False):
|
||||||
super(BuyingController, self).set_missing_values(for_validate)
|
super(BuyingController, self).set_missing_values(for_validate)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user