Merge branch 'develop' into internal_trasfer_precision_loss
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index feec42f..e90a4f6 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -166,7 +166,7 @@
"against": warehouse_account[sle.warehouse]["account"],
"cost_center": item_row.cost_center,
"remarks": self.get("remarks") or _("Accounting Entry for Stock"),
- "credit": flt(sle.stock_value_difference, precision),
+ "debit": -1 * flt(sle.stock_value_difference, precision),
"project": item_row.get("project") or self.get("project"),
"is_opening": item_row.get("is_opening") or self.get("is_opening") or "No",
},
diff --git a/erpnext/selling/doctype/customer/test_customer.py b/erpnext/selling/doctype/customer/test_customer.py
index 2458756..7dc3fab 100644
--- a/erpnext/selling/doctype/customer/test_customer.py
+++ b/erpnext/selling/doctype/customer/test_customer.py
@@ -375,6 +375,12 @@
if not allowed_to_interact_with:
allowed_to_interact_with = represents_company
+ exisiting_representative = frappe.db.get_value(
+ "Customer", {"represents_company": represents_company}
+ )
+ if exisiting_representative:
+ return exisiting_representative
+
if not frappe.db.exists("Customer", customer_name):
customer = frappe.get_doc(
{
diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py
index fffcdca..6bcab73 100644
--- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py
@@ -1064,6 +1064,33 @@
self.assertEqual(dn.items[0].rate, rate)
+ def test_internal_transfer_precision_gle(self):
+ from erpnext.selling.doctype.customer.test_customer import create_internal_customer
+
+ item = make_item(properties={"valuation_method": "Moving Average"}).name
+ company = "_Test Company with perpetual inventory"
+ warehouse = "Stores - TCP1"
+ target = "Finished Goods - TCP1"
+ customer = create_internal_customer(represents_company=company)
+
+ # average rate = 128.015
+ rates = [101.45, 150.46, 138.25, 121.9]
+
+ for rate in rates:
+ make_stock_entry(item_code=item, target=warehouse, qty=1, rate=rate)
+
+ dn = create_delivery_note(
+ item_code=item,
+ company=company,
+ customer=customer,
+ qty=4,
+ warehouse=warehouse,
+ target_warehouse=target,
+ )
+ self.assertFalse(
+ frappe.db.exists("GL Entry", {"voucher_no": dn.name, "voucher_type": dn.doctype})
+ )
+
def create_delivery_note(**args):
dn = frappe.new_doc("Delivery Note")