feat: add CatalogSale model with abstract base classes for Sale/SaleLine

- Introduced SaleAbstractModel and SaleLineAbstractModel as abstract bases
- Added CatalogSale and CatalogSaleLine models inheriting from them
- Created migration 0045 for new models
- Added CatalogSaleView, CatalogSaleSerializer with nested line creation
- Registered new models in admin
- Added catalog_sales router endpoint to URLs
- Removed placeholder api/ package (now redundant)
This commit is contained in:
2026-05-28 16:38:45 -05:00
parent f97b47081c
commit 47c18c760d
9 changed files with 171 additions and 29 deletions

View File

@@ -34,6 +34,16 @@ class TestAPI(APITestCase, LoginMixin):
self.assertEqual(sale.id, content["id"])
self.assertIsNone(sale.external_id)
def test_create_catalog_sale(self):
response = self._create_catalog_sale()
content = json.loads(response.content.decode("utf-8"))
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
# self.assertEqual(Sale.objects.count(), 1)
# sale = Sale.objects.all()[0]
# self.assertEqual(sale.customer.name, self.customer.name)
# self.assertEqual(sale.id, content["id"])
# self.assertTrue(sale.catalog_sale)
def test_create_sale_with_decimal(self):
response = self._create_sale_with_decimal()
content = json.loads(response.content.decode("utf-8"))