Add Tryton synchronization for CatalogSale
- Add external_id field to CatalogSale model for tracking synced sales - Create migration 0047 for external_id field - Add TrytonCatalogSale and TrytonCatalogSaleLine classes for Tryton RPC format - Add send_catalog_sales_to_tryton() method to SaleTrytonService - Create CatalogSalesToTrytonView API endpoint (POST) - Register endpoint at /don_confiao/api/enviar_catalog_sales_a_tryton - Add test for external_id field functionality - Catalog sales sync to same Tryton model as Sale (model.sale.sale.create) - Differentiated by reference 'don_confiao_catalog X' and description 'Venta de catálogo' - Filters only catalog sales without external_id to avoid duplicates
This commit is contained in:
@@ -129,6 +129,24 @@ class TestAPI(APITestCase, LoginMixin):
|
||||
self.assertEqual(line2["quantity"], "3.00")
|
||||
self.assertEqual(line2["unit_price"], "5000.00")
|
||||
|
||||
def test_catalog_sale_has_external_id_field(self):
|
||||
"""Verifica que CatalogSale tiene el campo external_id"""
|
||||
response = self._create_catalog_sale()
|
||||
content = json.loads(response.content.decode("utf-8"))
|
||||
catalog_sale_id = content["id"]
|
||||
|
||||
catalog_sale = CatalogSale.objects.get(pk=catalog_sale_id)
|
||||
# Debe tener el campo external_id
|
||||
self.assertIsNone(catalog_sale.external_id)
|
||||
|
||||
# Se puede asignar un valor
|
||||
catalog_sale.external_id = "123"
|
||||
catalog_sale.save()
|
||||
|
||||
# Verificar que se guardó
|
||||
catalog_sale.refresh_from_db()
|
||||
self.assertEqual(catalog_sale.external_id, "123")
|
||||
|
||||
def test_csv_structure_in_sales_for_tryton(self):
|
||||
url = "/don_confiao/api/sales/for_tryton"
|
||||
self._create_sale()
|
||||
|
||||
Reference in New Issue
Block a user