1
0
forked from erp-dev/erp

feat: added filter param for stock record list api. Support purchase order bind stock change record that is already exists

This commit is contained in:
2026-02-03 18:48:44 +08:00
parent b2d252875e
commit f2243a02f4
9 changed files with 379 additions and 2 deletions

View File

@@ -17,6 +17,8 @@ from basic_info.models import (
EmployeeStatusEnum,
Merchant,
MerchantTypeEnum,
MerchantSetting,
MerchantSettingKeyEnum,
Product,
ProductCategory,
ProductUnitEnum,
@@ -228,6 +230,30 @@ class PurchaseOrderAPITestCase(TestCase):
self.assertEqual(response.data['human_id'], expected_human_id)
mock_delay.assert_not_called()
def test_bind_purchase_order_stock_change_record(self):
MerchantSetting.objects.filter(
merchant=self.merchant,
key=MerchantSettingKeyEnum.AUTO_CREATE_STOCK_CHANGE_TASKS,
).update(val_bool=False)
order_id = self._create_purchase_order(self.strict_payload)
record = stock_models.StockChangeRecord.objects.create(
merchant=self.merchant,
type=stock_models.StockChangeTypeEnum.ADD,
warehouse=self.warehouse_strict,
source_type=stock_models.StockChangeSourceEnum.PURCHASE,
created_by=self.user,
)
resp = self.client.post(
f'/api/v1/purchase-orders/{order_id}/bind-stock-change/',
{'stock_change_record_id': record.id},
format='json',
)
self.assertEqual(resp.status_code, status.HTTP_200_OK)
record.refresh_from_db()
self.assertEqual(record.source_id, order_id)
def test_create_purchase_order_invalid_supplier(self):
payload = {**self.strict_payload, 'supplier': 999}
response = self.client.post('/api/v1/purchase-orders/', payload, format='json')