fix(api): remove SaleWithLinesViewSet.

This commit is contained in:
Mono Mono 2024-09-08 22:33:41 -05:00
parent 5adf9a9ce7
commit 19a618a671
4 changed files with 6 additions and 25 deletions

View File

@ -2,18 +2,18 @@ from rest_framework import viewsets
from rest_framework.response import Response from rest_framework.response import Response
from .models import Sale, SaleLine, Customer, Product from .models import Sale, SaleLine, Customer, Product
from .serializers import SaleSerializer, SaleWithLinesSerializer, ProductSerializer, CustomerSerializer from .serializers import SaleSerializer, ProductSerializer, CustomerSerializer
class SaleWithLinesViewSet(viewsets.ModelViewSet): class SaleView(viewsets.ModelViewSet):
queryset = Sale.objects.all() queryset = Sale.objects.all()
serializer_class = SaleWithLinesSerializer serializer_class = SaleSerializer
def create(self, request): def create(self, request):
data = request.data data = request.data
customer = Customer.objects.get(pk=data['customer']) customer = Customer.objects.get(pk=data['customer'])
date = data['date'] date = data['date']
lines = data['lines'] lines = data['saleline_set']
sale = Sale.objects.create(customer=customer, date=date) sale = Sale.objects.create(customer=customer, date=date)
for line in lines: for line in lines:
@ -30,11 +30,6 @@ class SaleWithLinesViewSet(viewsets.ModelViewSet):
return Response({'message': 'Venta creada con exito'}, status=201) return Response({'message': 'Venta creada con exito'}, status=201)
class SaleView(viewsets.ModelViewSet):
queryset = Sale.objects.all()
serializer_class = SaleSerializer
class ProductView(viewsets.ModelViewSet): class ProductView(viewsets.ModelViewSet):
queryset = Product.objects.all() queryset = Product.objects.all()
serializer_class = ProductSerializer serializer_class = ProductSerializer

View File

@ -9,23 +9,10 @@ class SaleLineSerializer(serializers.ModelSerializer):
fields = ['id', 'sale', 'product', 'unit_price', 'quantity'] fields = ['id', 'sale', 'product', 'unit_price', 'quantity']
class SaleWithLinesSerializer(serializers.ModelSerializer):
lines = SaleLineSerializer(many=True)
class Meta:
model = Sale
fields = ['id', 'customer', 'date', 'lines']
class SaleSerializer(serializers.ModelSerializer): class SaleSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Sale model = Sale
fields = ['id', 'customer', 'date'] fields = ['id', 'customer', 'date', 'saleline_set']
def to_representation(self, instance):
representation = super().to_representation(instance)
representation['lines'] = [line for line in instance.saleline_set.all().values()]
return representation
class ProductSerializer(serializers.ModelSerializer): class ProductSerializer(serializers.ModelSerializer):

View File

@ -21,7 +21,7 @@ class TestAPI(APITestCase):
data = { data = {
'customer': self.customer.id, 'customer': self.customer.id,
'date': '2024-09-02', 'date': '2024-09-02',
'lines': [ 'saleline_set': [
{'product': self.product.id, 'quantity': 2, 'unit_price': 3000}, {'product': self.product.id, 'quantity': 2, 'unit_price': 3000},
{'product': self.product.id, 'quantity': 3, 'unit_price': 5000} {'product': self.product.id, 'quantity': 3, 'unit_price': 5000}
], ],

View File

@ -22,6 +22,5 @@ urlpatterns = [
path("cuadrar_tarro", views.reconciliate_jar, name="reconciliate_jar"), path("cuadrar_tarro", views.reconciliate_jar, name="reconciliate_jar"),
path("cuadres", views.reconciliate_jar, name="reconciliations"), path("cuadres", views.reconciliate_jar, name="reconciliations"),
path("resumen_compra/<int:id>", views.purchase_summary, name="purchase_summary"), path("resumen_compra/<int:id>", views.purchase_summary, name="purchase_summary"),
path('api/sales_with_lines/', api_views.SaleWithLinesViewSet.as_view({'post': 'create'}), name='sale-create'),
path('api/', include(router.urls)), path('api/', include(router.urls)),
] ]