Initial commit
This commit is contained in:
124
gestion_pedidos/serializers.py
Normal file
124
gestion_pedidos/serializers.py
Normal file
@@ -0,0 +1,124 @@
|
||||
from rest_framework import serializers
|
||||
from .models import (
|
||||
Cliente, PedidoCliente, ReferenciaPedidoCliente,
|
||||
Proveedor, PedidoProveedor, ReferenciaPedidoProveedor,
|
||||
Albaran, ReferenciaAlbaran, Devolucion, StockReferencia
|
||||
)
|
||||
|
||||
|
||||
class ClienteSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Cliente
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class ReferenciaPedidoClienteSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ReferenciaPedidoCliente
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class PedidoClienteSerializer(serializers.ModelSerializer):
|
||||
cliente = ClienteSerializer(read_only=True)
|
||||
cliente_id = serializers.PrimaryKeyRelatedField(
|
||||
queryset=Cliente.objects.all(),
|
||||
source='cliente',
|
||||
write_only=True,
|
||||
required=False
|
||||
)
|
||||
referencias = ReferenciaPedidoClienteSerializer(many=True, read_only=True)
|
||||
es_urgente = serializers.ReadOnlyField()
|
||||
|
||||
class Meta:
|
||||
model = PedidoCliente
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class ProveedorSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Proveedor
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class ReferenciaPedidoProveedorSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ReferenciaPedidoProveedor
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class PedidoProveedorSerializer(serializers.ModelSerializer):
|
||||
proveedor = ProveedorSerializer(read_only=True)
|
||||
proveedor_id = serializers.PrimaryKeyRelatedField(
|
||||
queryset=Proveedor.objects.all(),
|
||||
source='proveedor',
|
||||
write_only=True
|
||||
)
|
||||
referencias = ReferenciaPedidoProveedorSerializer(many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = PedidoProveedor
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class ReferenciaAlbaranSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ReferenciaAlbaran
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class AlbaranSerializer(serializers.ModelSerializer):
|
||||
proveedor = ProveedorSerializer(read_only=True)
|
||||
proveedor_id = serializers.PrimaryKeyRelatedField(
|
||||
queryset=Proveedor.objects.all(),
|
||||
source='proveedor',
|
||||
write_only=True,
|
||||
required=False,
|
||||
allow_null=True
|
||||
)
|
||||
referencias = ReferenciaAlbaranSerializer(many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Albaran
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class DevolucionSerializer(serializers.ModelSerializer):
|
||||
proveedor = ProveedorSerializer(read_only=True)
|
||||
proveedor_id = serializers.PrimaryKeyRelatedField(
|
||||
queryset=Proveedor.objects.all(),
|
||||
source='proveedor',
|
||||
write_only=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Devolucion
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class StockReferenciaSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = StockReferencia
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
# Serializers para actualización de stock
|
||||
class UpdateStockSerializer(serializers.Serializer):
|
||||
referencia_id = serializers.IntegerField()
|
||||
unidades_en_stock = serializers.IntegerField(min_value=0)
|
||||
|
||||
|
||||
class BulkUpdateStockSerializer(serializers.Serializer):
|
||||
updates = UpdateStockSerializer(many=True)
|
||||
|
||||
|
||||
# Serializer para crear pedido a proveedor manualmente
|
||||
class CrearPedidoProveedorSerializer(serializers.Serializer):
|
||||
proveedor_id = serializers.IntegerField()
|
||||
numero_pedido = serializers.CharField(required=False, allow_blank=True)
|
||||
tipo = serializers.ChoiceField(choices=['web', 'manual'], default='manual')
|
||||
referencias = serializers.ListField(
|
||||
child=serializers.DictField(
|
||||
child=serializers.CharField()
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user