change party model and serializer
This commit is contained in:
@@ -15,20 +15,29 @@ class PartyFilter(django_filters.FilterSet):
|
||||
('last_year', 'oirgi yil'),
|
||||
|
||||
)
|
||||
# delivery date filters
|
||||
delivery_date = django_filters.ChoiceFilter(
|
||||
choices=DATE_CHOICES, method='filter_by_deliveyer_date'
|
||||
)
|
||||
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_start_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="gte")
|
||||
delivery_end_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="lte")
|
||||
# payment date filters
|
||||
payment_date = django_filters.ChoiceFilter(
|
||||
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:
|
||||
model = Party
|
||||
fields = [
|
||||
'delivery_date', 'start_date', 'end_date',
|
||||
|
||||
]
|
||||
|
||||
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)
|
||||
return queryset.filter(payment_date__range=(start_date, end_date))
|
||||
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':
|
||||
...
|
||||
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
|
||||
|
||||
|
||||
|
||||
@@ -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, on_delete=models.CASCADE, related_name='orders'
|
||||
)
|
||||
date = models.DateField()
|
||||
date = models.DateField(null=True, blank=True)
|
||||
quantity = models.PositiveBigIntegerField(default=1)
|
||||
status = models.CharField(max_length=20, choices=STATUS, default="NEW")
|
||||
employee = models.ForeignKey(User, on_delete=models.CASCADE, related_name='orders', null=True)
|
||||
|
||||
@@ -44,8 +44,8 @@ class Party(BaseModel):
|
||||
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)
|
||||
qqs = models.PositiveBigIntegerField(default=0, null=True, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.number)
|
||||
|
||||
@@ -128,7 +128,6 @@ class MultipleOrderAddSerializer(serializers.Serializer):
|
||||
unit_amount = serializers.IntegerField()
|
||||
currency = serializers.ChoiceField(choices=[('uzs', 'uzs'), ('usd', 'usd')])
|
||||
amount = serializers.IntegerField()
|
||||
date = serializers.DateField()
|
||||
total_price = serializers.IntegerField(required=False)
|
||||
qqs_summa = serializers.IntegerField(required=False)
|
||||
|
||||
|
||||
@@ -13,12 +13,12 @@ class PartyCreateSerializer(serializers.Serializer):
|
||||
delivery_date = serializers.DateField()
|
||||
payment_date = serializers.DateField()
|
||||
comment = serializers.CharField(required=False)
|
||||
qqs_price = serializers.IntegerField(required=False)
|
||||
discount = serializers.IntegerField(required=False)
|
||||
audit = serializers.ChoiceField(
|
||||
choices=[('CHECKED', 'tekshirildi'),('PROCESS', 'jarayonda')], required=False
|
||||
)
|
||||
audit_comment = serializers.CharField(required=False)
|
||||
qqs = serializers.IntegerField(required=False)
|
||||
|
||||
def validate(self, data):
|
||||
user = User.objects.filter(id=data['mediator_id']).first()
|
||||
@@ -44,7 +44,6 @@ class PartyCreateSerializer(serializers.Serializer):
|
||||
unit_amount=resource.get('unit_amount'),
|
||||
currency=resource.get('currency'),
|
||||
amount=resource.get('amount'),
|
||||
date=resource.get('date'),
|
||||
employee=self.context.get('user'),
|
||||
qqs_price=resource.get('qqs_price'),
|
||||
total_price=resource.get('total_price'),
|
||||
@@ -58,8 +57,8 @@ class PartyCreateSerializer(serializers.Serializer):
|
||||
comment=validated_data.get('comment'),
|
||||
audit=validated_data.get('audit'),
|
||||
audit_comment=validated_data.get('audit_comment'),
|
||||
qqs_price=validated_data.get('qqs_price'),
|
||||
discount=validated_data.get('discount'),
|
||||
qqs=validated_data.get('qqs'),
|
||||
)
|
||||
party.orders.add(*created_orders)
|
||||
party.save()
|
||||
|
||||
Reference in New Issue
Block a user