|
# -*- coding: utf-8 -*-
from __future__ import division
import xlrd
from django.conf import settings
from pysnippets.strsnippets import strip
from mch.models import BrandInfo, DistributorInfo, ModelInfo
from statistic.models import (ConsumeDistributorSaleStatisticInfo, ConsumeModelSaleStatisticInfo,
ConsumeProvinceSaleStatisticInfo, DistributorSaleStatisticInfo, ModelSaleStatisticInfo,
ProvinceSaleStatisticInfo)
PROVINCE_LIST = {
"110000": "北京市",
"120000": "天津市",
"130000": "河北省",
"140000": "山西省",
"150000": "内蒙古自治区",
"210000": "辽宁省",
"220000": "吉林省",
"230000": "黑龙江省",
"310000": "上海市",
"320000": "江苏省",
"330000": "浙江省",
"340000": "安徽省",
"350000": "福建省",
"360000": "江西省",
"370000": "山东省",
"410000": "河南省",
"420000": "湖北省",
"430000": "湖南省",
"440000": "广东省",
"450000": "广西壮族自治区",
"460000": "海南省",
"500000": "重庆市",
"510000": "四川省",
"520000": "贵州省",
"530000": "云南省",
"540000": "西藏自治区",
"610000": "陕西省",
"620000": "甘肃省",
"630000": "青海省",
"640000": "宁夏回族自治区",
"650000": "新疆维吾尔自治区",
"710000": "台湾省",
"810000": "香港特别行政区",
"820000": "澳门特别行政区"
}
def pre_provinces():
brands = BrandInfo.objects.filter(status=True)
for brand in brands:
for pcode, pname in PROVINCE_LIST.items():
pssi, created = ProvinceSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, province_code=pcode, ymd=0)
pssi.province_name = pname
pssi.save()
cpssi, created = ConsumeProvinceSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, province_code=pcode, ymd=0)
cpssi.province_name = pname
cpssi.save()
def pre_models():
brands = BrandInfo.objects.filter(status=True)
for brand in brands:
models = ModelInfo.objects.filter(brand_id=brand.brand_id, status=True)
for mdl in models:
mssi, created = ModelSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, model_id=mdl.model_id, ymd=0)
mssi.model_name = mdl.model_name
mssi.save()
cmssi, created = ConsumeModelSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, model_id=mdl.model_id, ymd=0)
cmssi.model_name = mdl.model_name
cmssi.save()
def pre_distributors():
brands = BrandInfo.objects.filter(status=True)
for brand in brands:
distributors = DistributorInfo.objects.filter(brand_id=brand.brand_id, status=True)
for dtbt in distributors:
dssi, created = DistributorSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, distributor_id=dtbt.distributor_id, ymd=0)
dssi.distributor_name = dtbt.distributor_name
dssi.save()
cdssi, created = ConsumeDistributorSaleStatisticInfo.objects.get_or_create(brand_id=brand.brand_id, distributor_id=dtbt.distributor_id, ymd=0)
cdssi.distributor_name = dtbt.distributor_name
cdssi.save()
def pre_all():
pre_provinces()
pre_models()
pre_distributors()
# In [55]: cv
# Out[55]: 991000295147.0
#
# In [56]: str(cv)
# Out[56]: '9.91000295147e+11'
#
# In [57]: repr(cv)
# Out[57]: '991000295147.0'
def convert_to_str(cv):
if isinstance(cv, (int, float)):
cv = repr(cv)[:-2] if repr(cv).endswith('.0') else repr(cv)
if isinstance(cv, str):
cv = cv.strip()
return cv
def pre_new_models(fpath='./pre/static/models_20180816.xls'):
workbook = xlrd.open_workbook(fpath)
# sheet = workbook.sheet_by_name('SMR')
sheets = workbook.sheets()
sheet = sheets[0]
nrows = sheet.nrows
for idx in range(1, nrows):
rvals = sheet.row_values(idx)
print rvals
jancode = strip(rvals[0])
if not jancode:
continue
mdl, _ = ModelInfo.objects.get_or_create(jancode=jancode)
mdl.brand_id = settings.KODO_DEFAULT_BRAND_ID
mdl.brand_name = settings.KODO_DEFAULT_BRAND_NAME
mdl.model_name = strip(rvals[1])
mdl.model_uni_name = strip(rvals[2])
mdl.category = strip(rvals[3])
mdl.model_full_name = strip(rvals[4])
mdl.warehouse = strip(rvals[5])
mdl.save()
|