This commit is contained in:
behruz-dev
2025-10-31 19:20:07 +05:00
parent cac1baeac1
commit f49a446c71

View File

@@ -0,0 +1,78 @@
from datetime import datetime
import json, requests
from django.core.management import BaseCommand
from core.apps.wherehouse.models import WhereHouse, StockMovemend, StockMovmendProduct, Inventory
from core.apps.products.models import Product, Unity
from core.apps.accounts.models import User
from core.apps.projects.models import ProjectFolder
headers = {
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2JhY2tlbmQuYXBwLnV5cXVyLnV6L21haW4vYXV0aC9sb2dpbiIsImlhdCI6MTc2MTkyMDM2MSwiZXhwIjoxNzYyMDA2NzYxLCJuYmYiOjE3NjE5MjAzNjEsImp0aSI6Inhqak81azJLc2pSaEJJOGUiLCJzdWIiOiIxMDQiLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.ZcREfvT21qpd9eK_-zBumKBtaKKJ-l9QoudSLZ3IpP4"
}
def get_data():
url = f'https://backend.app.uyqur.uz/main/warehouse-transfer/view?size=524'
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
return response.json()
def get_product(stock_movement_id):
url = f"https://backend.app.uyqur.uz/main/warehouse-transfer/view?id={stock_movement_id}"
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
return response.json()
class Command(BaseCommand):
def handle(self, *args, **options):
data = get_data()
movemend_types = {
"pending": "EXPECTED",
"recieved": "ACCEPTED",
"rejected": "CANCELLED"
}
for item in data['data']['data']:
sender_warehouse = WhereHouse.objects.filter(name=item['sender_warehouse']['name']).first()
recieved_warehouse = WhereHouse.objects.filter(name=item['recieved_warehouse']['name']).first()
project_folder = None
if item.get('project'):
project_folder = ProjectFolder.objects.filter(name=item['project']['name']).first()
user = None
if item.get('recieved_user'):
user = User.objects.filter(full_name=item['recieved_user']['full_name']).first()
stock_movemend, created = StockMovemend.objects.get_or_create(
number=item['id'],
defaults={
"wherehouse_to": recieved_warehouse,
"wherehouse_from": sender_warehouse,
"recipient": user,
"project_folder": project_folder,
"movemend_type": movemend_types.get(item['status']),
"date": datetime.strptime(item['date'], "%d.%m.%Y"),
"comment": item['description'],
}
)
data = get_product(item['id'])
if data.get('data'):
for product in data['data']['warehouse_products']:
product_obj = Product.objects.filter(name=product['product']['name']['uz']).first()
unit = Unity.objects.filter(value=product['unit']['name']['uz']).first()
wherehouse = WhereHouse.objects.filter(name=product['warehouse']['name']).first()
inventory = Inventory.objects.filter(
product=product_obj,
unity=unit,
wherehouse=wherehouse
).first()
StockMovmendProduct.objects.get_or_create(
inventory=inventory,
quantity=product['initial_quantity'],
stock_movemend=stock_movemend
)
self.stdout.write("Stock Movemend qo'shildi")