forked from erp-dev/erp
feat: mission replied calling task
This commit is contained in:
@@ -1968,7 +1968,49 @@ class ShipmentStatusServiceTestCase(TestCase):
|
||||
self.assertEqual(self.shipment.approved_by, self.user)
|
||||
self.assertIsNotNone(self.shipment.status_modified_at)
|
||||
|
||||
def test_modify_status_allows_rejected_to_approved(self):
|
||||
def test_modify_status_rejected_unbinds_sales_items_and_snapshots_ids(self):
|
||||
from shipment.services import modify_status
|
||||
|
||||
sales_item_1 = shipment_models.SalesItem.objects.create(
|
||||
merchant=self.merchant,
|
||||
shipment=self.shipment,
|
||||
name="驳回销售品1",
|
||||
quantity=Decimal("10.00"),
|
||||
unit=shipment_models.UnitChoices.METER,
|
||||
created_by=self.user,
|
||||
)
|
||||
sales_item_2 = shipment_models.SalesItem.objects.create(
|
||||
merchant=self.merchant,
|
||||
shipment=self.shipment,
|
||||
name="驳回销售品2",
|
||||
quantity=Decimal("20.00"),
|
||||
unit=shipment_models.UnitChoices.METER,
|
||||
created_by=self.user,
|
||||
)
|
||||
|
||||
modify_status(
|
||||
self.shipment,
|
||||
target_status=shipment_models.ShipmentStatus.PUBLISHED,
|
||||
operator=self.user,
|
||||
)
|
||||
modify_status(
|
||||
self.shipment,
|
||||
target_status=shipment_models.ShipmentStatus.REJECTED,
|
||||
operator=self.user,
|
||||
)
|
||||
|
||||
self.shipment.refresh_from_db()
|
||||
sales_item_1.refresh_from_db()
|
||||
sales_item_2.refresh_from_db()
|
||||
self.assertEqual(self.shipment.status, shipment_models.ShipmentStatus.REJECTED)
|
||||
self.assertEqual(
|
||||
self.shipment.rejected_sales_item_ids,
|
||||
[sales_item_1.id, sales_item_2.id],
|
||||
)
|
||||
self.assertIsNone(sales_item_1.shipment_id)
|
||||
self.assertIsNone(sales_item_2.shipment_id)
|
||||
|
||||
def test_modify_status_rejects_rejected_to_approved(self):
|
||||
from shipment.services import modify_status
|
||||
|
||||
modify_status(
|
||||
@@ -1981,16 +2023,14 @@ class ShipmentStatusServiceTestCase(TestCase):
|
||||
target_status=shipment_models.ShipmentStatus.REJECTED,
|
||||
operator=self.user,
|
||||
)
|
||||
modify_status(
|
||||
self.shipment,
|
||||
target_status=shipment_models.ShipmentStatus.APPROVED,
|
||||
operator=self.user,
|
||||
approved_by=self.user,
|
||||
)
|
||||
|
||||
self.shipment.refresh_from_db()
|
||||
self.assertEqual(self.shipment.status, shipment_models.ShipmentStatus.APPROVED)
|
||||
self.assertEqual(self.shipment.approved_by, self.user)
|
||||
with self.assertRaisesMessage(ValueError, "不允许将出货单状态从 已驳回 修改为 已审核"):
|
||||
modify_status(
|
||||
self.shipment,
|
||||
target_status=shipment_models.ShipmentStatus.APPROVED,
|
||||
operator=self.user,
|
||||
approved_by=self.user,
|
||||
)
|
||||
|
||||
def test_modify_status_rejects_rejected_to_published(self):
|
||||
from shipment.services import modify_status
|
||||
@@ -2146,6 +2186,15 @@ class ShipmentStatusAPITestCase(APITestCase):
|
||||
def test_patch_status_published_to_rejected_success(self):
|
||||
from shipment.services import modify_status
|
||||
|
||||
sales_item = shipment_models.SalesItem.objects.create(
|
||||
merchant=self.merchant,
|
||||
shipment=self.shipment,
|
||||
name="状态API驳回销售品",
|
||||
quantity=Decimal("15.00"),
|
||||
unit=shipment_models.UnitChoices.METER,
|
||||
created_by=self.user,
|
||||
)
|
||||
|
||||
modify_status(
|
||||
self.shipment,
|
||||
target_status=shipment_models.ShipmentStatus.PUBLISHED,
|
||||
@@ -2160,7 +2209,10 @@ class ShipmentStatusAPITestCase(APITestCase):
|
||||
|
||||
self.assertEqual(resp.status_code, status.HTTP_200_OK)
|
||||
self.shipment.refresh_from_db()
|
||||
sales_item.refresh_from_db()
|
||||
self.assertEqual(self.shipment.status, shipment_models.ShipmentStatus.REJECTED)
|
||||
self.assertEqual(self.shipment.rejected_sales_item_ids, [sales_item.id])
|
||||
self.assertIsNone(sales_item.shipment_id)
|
||||
|
||||
def test_patch_status_to_cancelled_sets_cancelled_by(self):
|
||||
from shipment.services import modify_status
|
||||
|
||||
Reference in New Issue
Block a user