Commit Graph

37 Commits

Author SHA1 Message Date
5e811c802a 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
2026-05-30 21:01:29 -05:00
d4a61b8340 Add catalog sale purchase summary endpoint
- Add CatalogSaleSummarySerializer and CatalogSummarySaleLineSerializer
- Add CatalogSaleSummary API view for GET requests
- Register endpoint at /don_confiao/resumen_compra_catalogo_json/<id>
- Add comprehensive test for catalog sale summary
- Include nested customer and product details in response
- Endpoint returns id, date, customer, and lines with products
2026-05-30 20:32:20 -05:00
47e87e4204 refactor: organize code by domain-driven design
Refactoriza la estructura del proyecto siguiendo principios de Domain-Driven Design,
organizando serializers, API views y servicios por dominios de negocio.

Cambios principales:

## Serializers (serializers/)
- Dividido serializers.py en módulos por dominio:
  * products.py: ProductSerializer, ListProductSerializer
  * customers.py: CustomerSerializer, ListCustomerSerializer
  * sales.py: SaleSerializer, SaleLineSerializer, CatalogSaleSerializer, etc.
  * payments.py: ReconciliationJarSerializer, PaymentMethodSerializer
  * __init__.py: Exporta todos los serializers para mantener compatibilidad

## API Views (api/)
- Dividido api_views.py en módulos por dominio:
  * products.py: ProductView, ProductsFromTrytonView
  * customers.py: CustomerView, CustomersFromTrytonView
  * sales.py: SaleView, CatalogSaleView, SaleSummary, SalesForTrytonView, SalesToTrytonView
  * payments.py: ReconciliateJarView, ReconciliateJarModelView, PaymentMethodView, SalesForReconciliationView
  * admin.py: AdminCodeValidateView
  * __init__.py: Exporta todas las vistas para facilitar importaciones

## Services Layer (services/tryton/)
- Nueva capa de servicios para lógica de negocio Tryton:
  * client.py: get_tryton_client(), TrytonSale, TrytonLineSale, configuración
  * products.py: ProductTrytonService - sincronización de productos
  * customers.py: CustomerTrytonService - sincronización de clientes
  * sales.py: SaleTrytonService - sincronización de ventas
  * __init__.py: Exporta servicios y utilidades

## Actualización de URLs
- Actualizado urls.py para importar desde nuevos módulos
- Mantiene todas las rutas existentes sin cambios

## Eliminación de archivos antiguos
- Eliminado serializers.py (refactorizado a serializers/)
- Eliminado api_views.py (refactorizado a api/)

## Beneficios
 Cohesión: Código organizado por dominio de negocio
 Separación de responsabilidades: API, Serializers y Services separados
 Mantenibilidad: Archivos más pequeños y enfocados
 Escalabilidad: Fácil agregar nuevos dominios
 Testabilidad: Mejor organización para pruebas por dominio
 Reutilización: Servicios Tryton pueden usarse desde cualquier vista

## Estructura final:
- models/ (ya existía organizado por dominio)
- serializers/ (nuevo, organizado por dominio)
- api/ (nuevo, organizado por dominio)
- services/tryton/ (nuevo, capa de servicios)

Tests: 46 tests pasando ✓
2026-05-29 00:16:18 -05:00
47c18c760d 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)
2026-05-28 16:38:45 -05:00
f97b47081c refactor: split models into modules, remove template-based views, and clean up code style
- Split monolithic models.py into models/ package (customers, products, sales, payments, admin)
- Removed forms.py, all HTML templates, and associated template-based views
- Added api/ package with CatalogSaleView placeholder
- Updated all imports across project to use new model paths
- Removed obsolete tests (form, export, purchase, summary tests)
- Removed template-based URL patterns, kept only API endpoints
- Standardized string quotes (single to double) and reformatted code
2026-05-28 15:25:27 -05:00
4734636b4f feat (Tryton): get customers from tryton. 2025-08-09 14:12:31 -05:00
76e525735d #9 feat(Tryton): create products from tryton. 2025-07-27 22:57:44 -05:00
cf0f6dc4b5 #9 feat(Tryton): enviar_ventas_a_tryton 2025-07-19 19:00:33 -05:00
5ecf0f4bf5 feat(Api): export sales for tryton from api. 2025-03-02 23:33:26 -05:00
c9cfc7f873 #90 feat(ReconcilaitionJar): create api view with pagination. 2025-01-12 00:24:30 -05:00
0caa6fbb56 #88 feat(AdminCode): create model and api view. 2025-01-11 19:08:05 -05:00
69d8b1d2ad #84 refactor(SaleSummary): move to apiview. 2024-12-31 13:51:11 -05:00
8b7c2efcb3 #84 refactor(SalesForReconciliation): move to apiview. 2024-12-31 13:26:47 -05:00
5dff7565f4 #84 refactor(paymentMethods): move to apiview. 2024-12-31 13:09:16 -05:00
8ab7903a0a #69 test(ReconciliationJar): fix tests. 2024-12-14 21:37:24 -05:00
1b425542b3 #69 feat(ReconciliationJar): send reconciliation jar from frontend 2024-12-14 19:42:59 -05:00
f0201a86b2 #69 feat(ReconciliationJar): accept post creation. 2024-12-02 22:52:04 -05:00
0d61e457c7 #69 refactor(ReconciliationJar): remove old view. 2024-12-02 21:43:48 -05:00
a6b4c1c5b6 #69 feat(Reconciliation):get purchases for reconciliation endpoint. 2024-11-17 23:15:21 -05:00
9d602c8ddc feat(PaymentMethods): create endpoint. 2024-11-11 16:09:16 -05:00
ac5c962ca7 Merge pull request 'Habilitando Resumen de compra' (#63) from enable_summary_purchase_#55 into main
Reviewed-on: OneTeam/don_confiao#63
2024-11-02 15:31:23 -05:00
1519b3c8bb django(View): add purchase summary json endpoint. 2024-11-02 12:51:26 -05:00
cosmos
5910c0c227 Import Customers 2024-10-26 17:16:27 -05:00
86b231a828 Merge branch 'main' into implement_api 2024-09-08 22:36:36 -05:00
19a618a671 fix(api): remove SaleWithLinesViewSet. 2024-09-08 22:33:41 -05:00
5adf9a9ce7 feat(api): implement endpoints to products, customer and sales. 2024-09-08 21:42:35 -05:00
eaa856e9da feat(api): implemented create sale as api endpoint. 2024-09-07 21:33:49 -05:00
a83cd970e6 Feat: Export Ventas Para Tryton 2024-09-07 14:58:11 -05:00
cosmos
108d983d74 Add Summary View Purchase 2024-08-03 12:37:21 -05:00
c6ca0feb11 view: add product_list. 2024-07-27 14:58:16 -05:00
a3c8189d8c feat: create a correct reconciliation jar. 2024-07-20 11:44:49 -05:00
a8f8820a55 feat: implementing form to reconciliation jar. 2024-07-13 17:13:17 -05:00
8ed13347d4 fix: eliminando vista que no se usa. 2024-06-29 18:23:32 -05:00
ef0c0c52db Feat: importando productos desde csv. 2024-06-29 14:29:22 -05:00
cosmos
2039a19b16 Add products in urls and views 2024-06-29 09:42:00 -05:00
c2755e1adc views: explorando plantillas. 2024-06-22 16:09:38 -05:00
70a70f6620 ejercicio: entendiendo las urls y las vistas. 2024-06-22 15:24:05 -05:00