forked from erp-dev/erp
feat: statement for supplier and customer
This commit is contained in:
@@ -276,6 +276,27 @@ class PurchaseOrderServiceTestCase(TestCase):
|
||||
created_by_id=self.user.id,
|
||||
)
|
||||
|
||||
def test_purchase_order_relaxed_mode_even_split(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=[{'product_id': self.product.id, 'quantity': 99, 'num_of_rolls': 2, 'price': '10.0', 'unit': '米'}],
|
||||
created_by=self.user,
|
||||
)
|
||||
stock_flow_items = services._build_stock_flow_items_from_order(purchase_order)
|
||||
payload = services.create_purchase_order_stock_entries_sync(
|
||||
purchase_order_id=purchase_order.id,
|
||||
warehouse_id=self.warehouse_relaxed.id,
|
||||
items=stock_flow_items,
|
||||
created_by_id=self.user.id,
|
||||
)
|
||||
record = stock_models.StockChangeRecord.objects.get(id=payload['stock_change_record_id'])
|
||||
quantities = sorted([detail.quantity for detail in record.details.order_by('id')], reverse=True)
|
||||
self.assertEqual(quantities, [Decimal('49.50'), Decimal('49.50')])
|
||||
|
||||
|
||||
class SalesOrderServiceTestCase(TestCase):
|
||||
def setUp(self):
|
||||
@@ -633,6 +654,40 @@ class SalesReturnServiceTestCase(TestCase):
|
||||
target_status=business_models.SalesReturnStatusEnum.CANCELLED,
|
||||
)
|
||||
|
||||
def test_sales_return_relaxed_mode_stock_payload_preserves_rolls(self):
|
||||
order = services.create_sales_return_order(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
return_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_relaxed,
|
||||
operator=self.operator,
|
||||
items=[{'product_id': self.product.id, 'quantity': 100, 'num_of_rolls': 1, 'price': '22.0'}],
|
||||
)
|
||||
stock_flow_items = services._build_stock_flow_items_from_order(order)
|
||||
self.assertEqual(len(stock_flow_items), 1)
|
||||
self.assertEqual(stock_flow_items[0]['num_of_rolls'], 1)
|
||||
|
||||
def test_sales_return_relaxed_mode_even_split(self):
|
||||
order = services.create_sales_return_order(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
return_date=timezone.now().date(),
|
||||
warehouse=self.warehouse_relaxed,
|
||||
operator=self.operator,
|
||||
items=[{'product_id': self.product.id, 'quantity': 100, 'num_of_rolls': 3, 'price': '22.0'}],
|
||||
created_by=self.user,
|
||||
)
|
||||
stock_flow_items = services._build_stock_flow_items_from_order(order)
|
||||
payload = services.create_sales_return_order_stock_entries_sync(
|
||||
sales_return_order_id=order.id,
|
||||
warehouse_id=self.warehouse_relaxed.id,
|
||||
items=stock_flow_items,
|
||||
created_by_id=self.user.id,
|
||||
)
|
||||
record = stock_models.StockChangeRecord.objects.get(id=payload['stock_change_record_id'])
|
||||
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')])
|
||||
|
||||
class PaymentReceiptServiceTestCase(TestCase):
|
||||
def setUp(self):
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user