From 3eba00f525eabf537f7540d2bb97136cf119ec6a Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Wed, 12 Nov 2025 16:15:32 +0500 Subject: [PATCH] fix --- .../management/commands/import_expence.py | 44 ++++++++++--------- .../finance/migrations/0034_expence_number.py | 18 ++++++++ core/apps/finance/models/expence.py | 1 + 3 files changed, 43 insertions(+), 20 deletions(-) create mode 100644 core/apps/finance/migrations/0034_expence_number.py diff --git a/core/apps/finance/management/commands/import_expence.py b/core/apps/finance/management/commands/import_expence.py index 4c9d631..0255484 100644 --- a/core/apps/finance/management/commands/import_expence.py +++ b/core/apps/finance/management/commands/import_expence.py @@ -23,8 +23,8 @@ headers = { } -def get_data(): - url = f"https://backend.app.uyqur.uz/main/company-person/payment?size=469&company_person_id=118&page=1&type=expense" +def get_data(page): + url = f"https://backend.app.uyqur.uz/main/payment/view?type=expense&size=100&page={page}" response = requests.get(url, headers=headers) if response.status_code == 200: @@ -55,26 +55,30 @@ def create_expense(data): party_number = data.get('order_ids')[0] party = Party.objects.filter(number=party_number).first() Expence.objects.update_or_create( - user=user, - cash_transaction=cash_transaction, - expence_type=expence_type, - price=data['amount'], - currency=data['currency']['symbol'].lower(), - payment_type=payment_type, - project_folder= project_folder, - counterparty= counterparty, - exchange_rate= data['currency_amount'], - date=datetime.strptime(data['date'], "%d.%m.%Y").date(), - comment=data['description'], - status=statuses.get(data['status']), - party=party, + number=data.get('id'), + defaults=dict( + user=user, + cash_transaction=cash_transaction, + expence_type=expence_type, + price=data['amount'], + currency=data['currency']['symbol'].lower(), + payment_type=payment_type, + project_folder= project_folder, + counterparty= counterparty, + exchange_rate= data['currency_amount'], + date=datetime.strptime(data['date'], "%d.%m.%Y").date(), + comment=data['description'], + status=statuses.get(data['status']), + party=party, + ) ) + class Command(BaseCommand): def handle(self, *args, **options): - # for page in range(1,13): - data = get_data() - for item in data['data']['data']: - create_expense(item) - # print(f"{page} is done") + for page in range(1,235): + data = get_data(page) + for item in data['data']['data']: + create_expense(item) + print(page) self.stdout.write(self.style.SUCCESS("Expenselar qo'shildi")) diff --git a/core/apps/finance/migrations/0034_expence_number.py b/core/apps/finance/migrations/0034_expence_number.py new file mode 100644 index 0000000..5ee4eea --- /dev/null +++ b/core/apps/finance/migrations/0034_expence_number.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.4 on 2025-11-12 15:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('finance', '0033_deletedexpence_user'), + ] + + operations = [ + migrations.AddField( + model_name='expence', + name='number', + field=models.BigIntegerField(default=0), + ), + ] diff --git a/core/apps/finance/models/expence.py b/core/apps/finance/models/expence.py index 6d25426..a9d5705 100644 --- a/core/apps/finance/models/expence.py +++ b/core/apps/finance/models/expence.py @@ -12,6 +12,7 @@ class Expence(BaseModel): ('PENDING', 'kutilmoqda'), ('CONFIRMED', 'tasdiqlangan'), ) + number = models.BigIntegerField(default=0) user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='expences', null=True) cash_transaction = models.ForeignKey(CashTransaction, on_delete=models.CASCADE, related_name='expences') payment_type = models.ForeignKey(PaymentType, on_delete=models.CASCADE, related_name='expences')