from rest_framework.views import APIView from rest_framework.response import Response import pandas as pd from apps.shop.models import Product as ProductModel, ProductCategory as ProductCategoryModel from apps.workspace.models import Workspace as WorkspaceModel, City as CityModel from apps.customer.models import Customer as CustomerModel from apps.customer.models import ResponsibleGroup as ResponsibleGroupModel import os class ImportExcelView(APIView): def get(self, request): df = pd.read_excel('pe.xlsx') for index, row in df.iterrows(): cate_name = row['cate_name'] #order_cat = row['order_cat'] acc_code = row['acc_code'] prd_name = row['name'] order_prd = row['size'] vahed = row['vahed'] workspace = WorkspaceModel.objects.get(id=2) try: prd_ct = ProductCategoryModel.objects.get(name=cate_name, sys_ws=workspace) except ProductCategoryModel.DoesNotExist as exp: prd_ct = ProductCategoryModel.objects.create(name=cate_name, sys_ws=workspace) if ProductModel.objects.filter(acc_code=acc_code).exists() == False: new_product = ProductModel() new_product.name = prd_name new_product.price = 0 new_product.category = ProductCategoryModel.objects.get(id=prd_ct.id) new_product.acc_code = acc_code new_product.order_prd = order_prd new_product.view_only = True new_product.attr = {"acc_vahed": vahed} new_product.sys_ws = workspace new_product.save() else: up_product = ProductModel.objects.get(acc_code=acc_code) up_product.name = prd_name up_product.save() return Response(data={"result": 'ok'}) class ImportExcelCitysView(APIView): def get(self, request): df = pd.read_excel('cities.xlsx') for index, row in df.iterrows(): city_name = row['name'] pv_id = row['province_id'] try: ostan = CityModel.objects.get(pv_id=pv_id, is_ostan=True) except Exception as exp: print(city_name) print(pv_id) city_obj = CityModel() city_obj.name = city_name city_obj.is_ostan = False city_obj.ostan = ostan city_obj.save() return Response(data={"result": 'ok'}) class ImportExcelCustomersView(APIView): def get(self, request): df = pd.read_excel('customersData.xlsx') for index, row in df.iterrows(): name = row['name'] mobile = row['mobile'] if name and mobile: phone = row['phone'] address = row['address'] ostan = row['ostan'] shahr = row['shar'] mantaghe = row['id_mantaghe'] try: ostan_obj = CityModel.objects.get(name=ostan, is_ostan=True) shahr_obj = CityModel.objects.get(name=shahr, ostan=ostan_obj) except Exception as exp: shahr_obj = CityModel.objects.get(id=1229) try: cs = CustomerModel() cs.name_family = name cs.mobile = mobile if phone: cs.phone = phone cs.city = shahr_obj if address: cs.address = address cs.responsible_group = ResponsibleGroupModel.objects.get(id=mantaghe) cs.sys_ws = WorkspaceModel.objects.get(id=2) cs.save() except Exception as exp: print(name) return Response(data={"result": 'ok'})