mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-17 00:18:39 +00:00
chore: resolve conflict
This commit is contained in:
@@ -158,9 +158,6 @@ def validate_returned_items(doc):
|
||||
):
|
||||
frappe.throw(_("Warehouse is mandatory"))
|
||||
|
||||
<<<<<<< HEAD
|
||||
items_returned = True
|
||||
=======
|
||||
if doc.doctype in (
|
||||
"Purchase Invoice",
|
||||
"Purchase Receipt",
|
||||
@@ -173,7 +170,6 @@ def validate_returned_items(doc):
|
||||
items_returned = True
|
||||
else:
|
||||
items_returned = True
|
||||
>>>>>>> a3e9d13da3 (fix(sales): reject sales returns where every item has zero quantity)
|
||||
|
||||
elif d.item_name:
|
||||
items_returned = True
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
# See license.txt
|
||||
|
||||
import frappe
|
||||
|
||||
from erpnext.tests.utils import ERPNextTestSuite
|
||||
from frappe.tests.utils import FrappeTestCase
|
||||
|
||||
|
||||
class TestSalesAndPurchaseReturn(ERPNextTestSuite):
|
||||
class TestSalesAndPurchaseReturn(FrappeTestCase):
|
||||
@staticmethod
|
||||
def _cancel_and_delete(doctype, name):
|
||||
if not frappe.db.exists(doctype, name):
|
||||
@@ -16,28 +15,6 @@ class TestSalesAndPurchaseReturn(ERPNextTestSuite):
|
||||
doc.cancel()
|
||||
frappe.delete_doc(doctype, name, force=1)
|
||||
|
||||
def test_sales_return_validates_against_original(self):
|
||||
# Submitting a return Delivery Note runs validate_returned_items (Item / Packed Item lookups
|
||||
# via frappe.get_all) and get_already_returned_items (qb GROUP BY of the returned qty) -- both
|
||||
# converted from raw SQL here. Exercises them on both engines.
|
||||
from erpnext.stock.doctype.delivery_note.mapper import make_sales_return
|
||||
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
|
||||
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
|
||||
|
||||
se = make_stock_entry(item_code="_Test Item", target="_Test Warehouse - _TC", qty=20, basic_rate=100)
|
||||
self.addCleanup(self._cancel_and_delete, "Stock Entry", se.name)
|
||||
|
||||
dn = create_delivery_note(qty=5)
|
||||
self.addCleanup(self._cancel_and_delete, "Delivery Note", dn.name)
|
||||
|
||||
return_dn = make_sales_return(dn.name)
|
||||
return_dn.insert()
|
||||
return_dn.submit()
|
||||
self.addCleanup(self._cancel_and_delete, "Delivery Note", return_dn.name)
|
||||
|
||||
self.assertEqual(return_dn.is_return, 1)
|
||||
self.assertEqual(return_dn.items[0].qty, -5)
|
||||
|
||||
def test_purchase_invoice_zero_qty_return_is_rejected(self):
|
||||
# A return with every item at qty 0 moves no stock and no value, so it must be
|
||||
# rejected the same way a return with no items at all would be.
|
||||
@@ -82,7 +59,7 @@ class TestSalesAndPurchaseReturn(ERPNextTestSuite):
|
||||
def test_delivery_note_zero_qty_return_is_rejected(self):
|
||||
# A return with every item at qty 0 moves no stock and no value, so it must be
|
||||
# rejected the same way a return with no items at all would be.
|
||||
from erpnext.stock.doctype.delivery_note.mapper import make_sales_return
|
||||
from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_return
|
||||
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
|
||||
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
|
||||
|
||||
|
||||
Reference in New Issue
Block a user