44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
from rest_framework import viewsets
|
|
from rest_framework.response import Response
|
|
|
|
from .models import Sale, SaleLine, Customer, Product
|
|
from .serializers import SaleSerializer, ProductSerializer, CustomerSerializer
|
|
|
|
|
|
class SaleView(viewsets.ModelViewSet):
|
|
queryset = Sale.objects.all()
|
|
serializer_class = SaleSerializer
|
|
|
|
def create(self, request):
|
|
data = request.data
|
|
customer = Customer.objects.get(pk=data['customer'])
|
|
date = data['date']
|
|
lines = data['saleline_set']
|
|
sale = Sale.objects.create(customer=customer, date=date)
|
|
|
|
for line in lines:
|
|
product = Product.objects.get(pk=line['product'])
|
|
quantity = line['quantity']
|
|
unit_price = line['unit_price']
|
|
SaleLine.objects.create(
|
|
sale=sale,
|
|
product=product,
|
|
quantity=quantity,
|
|
unit_price=unit_price
|
|
)
|
|
|
|
return Response(
|
|
{'id': sale.id, 'message': 'Venta creada con exito'},
|
|
status=201
|
|
)
|
|
|
|
|
|
class ProductView(viewsets.ModelViewSet):
|
|
queryset = Product.objects.all()
|
|
serializer_class = ProductSerializer
|
|
|
|
|
|
class CustomerView(viewsets.ModelViewSet):
|
|
queryset = Customer.objects.all()
|
|
serializer_class = CustomerSerializer
|