forked from erp-dev/erp
feat: added put/patch api to main oobject of business module
This commit is contained in:
@@ -279,6 +279,44 @@ class PurchaseOrderServiceTestCase(TestCase):
|
||||
created_by_id=self.user.id,
|
||||
)
|
||||
|
||||
def test_update_purchase_order_success(self):
|
||||
purchase_order = services.create_purchase_order(
|
||||
merchant=self.merchant,
|
||||
supplier=self.supplier,
|
||||
order_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_relaxed,
|
||||
operator=self.operator,
|
||||
items=self.relaxed_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
updated = services.update_purchase_order(
|
||||
purchase_order=purchase_order,
|
||||
warehouse=self.warehouse_strict,
|
||||
items=self.strict_items,
|
||||
remarks='updated',
|
||||
)
|
||||
self.assertEqual(updated.remarks, 'updated')
|
||||
self.assertEqual(updated.items.count(), 1)
|
||||
self.assertEqual(updated.items.first().split_quantity_of_rolls(), [10, 5])
|
||||
|
||||
def test_update_purchase_order_rejects_non_pending(self):
|
||||
purchase_order = services.create_purchase_order(
|
||||
merchant=self.merchant,
|
||||
supplier=self.supplier,
|
||||
order_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_relaxed,
|
||||
operator=self.operator,
|
||||
items=self.relaxed_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
purchase_order.status = business_models.PurchaseOrderStatusEnum.APPROVED
|
||||
purchase_order.save(update_fields=['status'])
|
||||
with self.assertRaises(ValueError):
|
||||
services.update_purchase_order(
|
||||
purchase_order=purchase_order,
|
||||
items=self.relaxed_items,
|
||||
)
|
||||
|
||||
def test_purchase_order_relaxed_mode_even_split(self):
|
||||
purchase_order = services.create_purchase_order(
|
||||
merchant=self.merchant,
|
||||
@@ -463,6 +501,45 @@ class SalesOrderServiceTestCase(TestCase):
|
||||
created_by=self.user,
|
||||
)
|
||||
|
||||
def test_update_sales_order_success(self):
|
||||
sales_order = services.create_sales_order(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
order_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_strict,
|
||||
operator=self.operator,
|
||||
items=self.strict_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
updated = services.update_sales_order(
|
||||
sales_order=sales_order,
|
||||
warehouse=self.warehouse_relaxed,
|
||||
items=self.relaxed_items,
|
||||
remarks='updated',
|
||||
)
|
||||
self.assertEqual(updated.remarks, 'updated')
|
||||
self.assertEqual(updated.items.count(), 1)
|
||||
item = updated.items.first()
|
||||
self.assertEqual(item.split_quantity_of_rolls(), [])
|
||||
|
||||
def test_update_sales_order_rejects_non_pending(self):
|
||||
sales_order = services.create_sales_order(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
order_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_strict,
|
||||
operator=self.operator,
|
||||
items=self.strict_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
sales_order.status = business_models.SalesOrderStatusEnum.APPROVED
|
||||
sales_order.save(update_fields=['status'])
|
||||
with self.assertRaises(ValueError):
|
||||
services.update_sales_order(
|
||||
sales_order=sales_order,
|
||||
items=self.strict_items,
|
||||
)
|
||||
|
||||
|
||||
class PurchaseReturnServiceTestCase(TestCase):
|
||||
def setUp(self):
|
||||
@@ -581,6 +658,43 @@ class PurchaseReturnServiceTestCase(TestCase):
|
||||
items=payload,
|
||||
)
|
||||
|
||||
def test_update_purchase_return_order_success(self):
|
||||
order = services.create_purchase_return_order(
|
||||
merchant=self.merchant,
|
||||
supplier=self.supplier,
|
||||
return_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_strict,
|
||||
operator=self.operator,
|
||||
items=self.strict_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
updated = services.update_purchase_return_order(
|
||||
purchase_return_order=order,
|
||||
items=self.strict_items,
|
||||
remarks='updated',
|
||||
)
|
||||
self.assertEqual(updated.remarks, 'updated')
|
||||
self.assertEqual(updated.items.count(), 1)
|
||||
self.assertEqual(updated.items.first().split_quantity_of_rolls(), [4, 2])
|
||||
|
||||
def test_update_purchase_return_order_rejects_non_pending(self):
|
||||
order = services.create_purchase_return_order(
|
||||
merchant=self.merchant,
|
||||
supplier=self.supplier,
|
||||
return_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_strict,
|
||||
operator=self.operator,
|
||||
items=self.strict_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
order.status = business_models.PurchaseReturnStatusEnum.APPROVED
|
||||
order.save(update_fields=['status'])
|
||||
with self.assertRaises(ValueError):
|
||||
services.update_purchase_return_order(
|
||||
purchase_return_order=order,
|
||||
items=self.strict_items,
|
||||
)
|
||||
|
||||
|
||||
class SalesReturnServiceTestCase(TestCase):
|
||||
def setUp(self):
|
||||
@@ -699,6 +813,43 @@ class SalesReturnServiceTestCase(TestCase):
|
||||
quantities = sorted([detail.quantity for detail in record.details.order_by('id')], reverse=True)
|
||||
self.assertEqual(quantities, [Decimal('33.34'), Decimal('33.33'), Decimal('33.33')])
|
||||
|
||||
def test_update_sales_return_order_success(self):
|
||||
order = services.create_sales_return_order(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
return_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_strict,
|
||||
operator=self.operator,
|
||||
items=self.strict_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
updated = services.update_sales_return_order(
|
||||
sales_return_order=order,
|
||||
items=self.strict_items,
|
||||
remarks='updated',
|
||||
)
|
||||
self.assertEqual(updated.remarks, 'updated')
|
||||
self.assertEqual(updated.items.count(), 1)
|
||||
self.assertEqual(updated.items.first().split_quantity_of_rolls(), [6, 2])
|
||||
|
||||
def test_update_sales_return_order_rejects_non_pending(self):
|
||||
order = services.create_sales_return_order(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
return_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_strict,
|
||||
operator=self.operator,
|
||||
items=self.strict_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
order.status = business_models.SalesReturnStatusEnum.APPROVED
|
||||
order.save(update_fields=['status'])
|
||||
with self.assertRaises(ValueError):
|
||||
services.update_sales_return_order(
|
||||
sales_return_order=order,
|
||||
items=self.strict_items,
|
||||
)
|
||||
|
||||
class PaymentReceiptServiceTestCase(TestCase):
|
||||
def setUp(self):
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user