change party model and serializer
This commit is contained in:
@@ -15,20 +15,29 @@ class PartyFilter(django_filters.FilterSet):
|
|||||||
('last_year', 'oirgi yil'),
|
('last_year', 'oirgi yil'),
|
||||||
|
|
||||||
)
|
)
|
||||||
|
# delivery date filters
|
||||||
delivery_date = django_filters.ChoiceFilter(
|
delivery_date = django_filters.ChoiceFilter(
|
||||||
choices=DATE_CHOICES, method='filter_by_deliveyer_date'
|
choices=DATE_CHOICES, method='filter_by_deliveyer_date'
|
||||||
)
|
)
|
||||||
start_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="gte")
|
delivery_start_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="gte")
|
||||||
end_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="lte")
|
delivery_end_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="lte")
|
||||||
|
# payment date filters
|
||||||
payment_date = django_filters.ChoiceFilter(
|
payment_date = django_filters.ChoiceFilter(
|
||||||
choices=DATE_CHOICES, method='filter_by_payment_date'
|
choices=DATE_CHOICES, method='filter_by_payment_date'
|
||||||
)
|
)
|
||||||
|
payment_start_date = django_filters.DateFilter(field_name='payment_date', lookup_expr='gte')
|
||||||
|
payment_end_date = django_filters.DateFilter(field_name='payment_date', lookup_expr='lte')
|
||||||
|
# order date filters
|
||||||
|
order_date = django_filters.ChoiceFilter(
|
||||||
|
choices=DATE_CHOICES, method='filter_by_order_date'
|
||||||
|
)
|
||||||
|
order_start_date = django_filters.DateFilter(field_name='order_date', lookup_expr='gte')
|
||||||
|
order_end_date = django_filters.DateFilter(field_name='order_date', lookup_expr='lte')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Party
|
model = Party
|
||||||
fields = [
|
fields = [
|
||||||
'delivery_date', 'start_date', 'end_date',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def filter_by_delivery_date(self, queryset, name, value):
|
def filter_by_delivery_date(self, queryset, name, value):
|
||||||
@@ -72,9 +81,22 @@ class PartyFilter(django_filters.FilterSet):
|
|||||||
end_date = start_date + timedelta(days=6)
|
end_date = start_date + timedelta(days=6)
|
||||||
return queryset.filter(payment_date__range=(start_date, end_date))
|
return queryset.filter(payment_date__range=(start_date, end_date))
|
||||||
elif value == 'last_month':
|
elif value == 'last_month':
|
||||||
...
|
if today.month == 1:
|
||||||
|
last_month_year = today.year - 1
|
||||||
|
last_month = 12
|
||||||
|
else:
|
||||||
|
last_month_year = today.year
|
||||||
|
last_month = today.moth - 1
|
||||||
|
|
||||||
|
start_last_month = today.replace(year=last_month_year, month=last_month, day=1)
|
||||||
|
days_in_last_month = monthrange(last_month_year, last_month)[1]
|
||||||
|
end_last_month = start_last_month.replace(day=days_in_last_month)
|
||||||
|
|
||||||
|
return queryset.filter(payment_date__range=(start_last_month, end_last_month))
|
||||||
elif value == 'last_year':
|
elif value == 'last_year':
|
||||||
...
|
start_year = today.replace(year=today.year - 1, month=1, day=1)
|
||||||
|
end_year = today.replace(year=today.year - 1, month=12, day=31)
|
||||||
|
return queryset.filter(payment_date__range=(start_year, end_year))
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 5.2.4 on 2025-08-22 11:02
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('orders', '0014_order_amount'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RenameField(
|
||||||
|
model_name='party',
|
||||||
|
old_name='qqs_price',
|
||||||
|
new_name='qqs',
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='order',
|
||||||
|
name='date',
|
||||||
|
field=models.DateField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -31,7 +31,7 @@ class Order(BaseModel):
|
|||||||
wherehouse = models.ForeignKey(
|
wherehouse = models.ForeignKey(
|
||||||
WhereHouse, on_delete=models.CASCADE, related_name='orders'
|
WhereHouse, on_delete=models.CASCADE, related_name='orders'
|
||||||
)
|
)
|
||||||
date = models.DateField()
|
date = models.DateField(null=True, blank=True)
|
||||||
quantity = models.PositiveBigIntegerField(default=1)
|
quantity = models.PositiveBigIntegerField(default=1)
|
||||||
status = models.CharField(max_length=20, choices=STATUS, default="NEW")
|
status = models.CharField(max_length=20, choices=STATUS, default="NEW")
|
||||||
employee = models.ForeignKey(User, on_delete=models.CASCADE, related_name='orders', null=True)
|
employee = models.ForeignKey(User, on_delete=models.CASCADE, related_name='orders', null=True)
|
||||||
|
|||||||
@@ -44,8 +44,8 @@ class Party(BaseModel):
|
|||||||
null=True, blank=True
|
null=True, blank=True
|
||||||
)
|
)
|
||||||
audit_comment = models.TextField(null=True, blank=True)
|
audit_comment = models.TextField(null=True, blank=True)
|
||||||
qqs_price = models.PositiveBigIntegerField(default=0, null=True, blank=True)
|
|
||||||
discount = models.PositiveBigIntegerField(default=0, null=True, blank=True)
|
discount = models.PositiveBigIntegerField(default=0, null=True, blank=True)
|
||||||
|
qqs = models.PositiveBigIntegerField(default=0, null=True, blank=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.number)
|
return str(self.number)
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ class MultipleOrderAddSerializer(serializers.Serializer):
|
|||||||
unit_amount = serializers.IntegerField()
|
unit_amount = serializers.IntegerField()
|
||||||
currency = serializers.ChoiceField(choices=[('uzs', 'uzs'), ('usd', 'usd')])
|
currency = serializers.ChoiceField(choices=[('uzs', 'uzs'), ('usd', 'usd')])
|
||||||
amount = serializers.IntegerField()
|
amount = serializers.IntegerField()
|
||||||
date = serializers.DateField()
|
|
||||||
total_price = serializers.IntegerField(required=False)
|
total_price = serializers.IntegerField(required=False)
|
||||||
qqs_summa = serializers.IntegerField(required=False)
|
qqs_summa = serializers.IntegerField(required=False)
|
||||||
|
|
||||||
|
|||||||
@@ -13,12 +13,12 @@ class PartyCreateSerializer(serializers.Serializer):
|
|||||||
delivery_date = serializers.DateField()
|
delivery_date = serializers.DateField()
|
||||||
payment_date = serializers.DateField()
|
payment_date = serializers.DateField()
|
||||||
comment = serializers.CharField(required=False)
|
comment = serializers.CharField(required=False)
|
||||||
qqs_price = serializers.IntegerField(required=False)
|
|
||||||
discount = serializers.IntegerField(required=False)
|
discount = serializers.IntegerField(required=False)
|
||||||
audit = serializers.ChoiceField(
|
audit = serializers.ChoiceField(
|
||||||
choices=[('CHECKED', 'tekshirildi'),('PROCESS', 'jarayonda')], required=False
|
choices=[('CHECKED', 'tekshirildi'),('PROCESS', 'jarayonda')], required=False
|
||||||
)
|
)
|
||||||
audit_comment = serializers.CharField(required=False)
|
audit_comment = serializers.CharField(required=False)
|
||||||
|
qqs = serializers.IntegerField(required=False)
|
||||||
|
|
||||||
def validate(self, data):
|
def validate(self, data):
|
||||||
user = User.objects.filter(id=data['mediator_id']).first()
|
user = User.objects.filter(id=data['mediator_id']).first()
|
||||||
@@ -44,7 +44,6 @@ class PartyCreateSerializer(serializers.Serializer):
|
|||||||
unit_amount=resource.get('unit_amount'),
|
unit_amount=resource.get('unit_amount'),
|
||||||
currency=resource.get('currency'),
|
currency=resource.get('currency'),
|
||||||
amount=resource.get('amount'),
|
amount=resource.get('amount'),
|
||||||
date=resource.get('date'),
|
|
||||||
employee=self.context.get('user'),
|
employee=self.context.get('user'),
|
||||||
qqs_price=resource.get('qqs_price'),
|
qqs_price=resource.get('qqs_price'),
|
||||||
total_price=resource.get('total_price'),
|
total_price=resource.get('total_price'),
|
||||||
@@ -58,8 +57,8 @@ class PartyCreateSerializer(serializers.Serializer):
|
|||||||
comment=validated_data.get('comment'),
|
comment=validated_data.get('comment'),
|
||||||
audit=validated_data.get('audit'),
|
audit=validated_data.get('audit'),
|
||||||
audit_comment=validated_data.get('audit_comment'),
|
audit_comment=validated_data.get('audit_comment'),
|
||||||
qqs_price=validated_data.get('qqs_price'),
|
|
||||||
discount=validated_data.get('discount'),
|
discount=validated_data.get('discount'),
|
||||||
|
qqs=validated_data.get('qqs'),
|
||||||
)
|
)
|
||||||
party.orders.add(*created_orders)
|
party.orders.add(*created_orders)
|
||||||
party.save()
|
party.save()
|
||||||
|
|||||||
Reference in New Issue
Block a user