115 lines
3.8 KiB
Python
115 lines
3.8 KiB
Python
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'})
|