def initData(request): if not request: xls = '../static/data.xls' else: from FTknowledge.settings import STATIC_ROOT from models import Group, TaxKind, TaxTicket, BBField, BBFieldValue, KJKM, KJKMTicket xls = '%s/data.xls'%STATIC_ROOT bbdict = {} s=u'关联增值税报表主表 关联增值税报表主表一 关联增值税报表主表二 固定资产抵扣 关联企业所得税主表 关联税收优惠明细表 关联所得税与流转税对比表 关联财务报表利润表' for ss in s.split(' '): if not bbdict.has_key(ss): bbdict[ss]=BBField.objects.get(fieldname=ss) bk = xlrd.open_workbook(xls) for sheetname in bk.sheet_names(): if 'Sheet3' == sheetname: continue if request: if Group.objects.filter(name=sheetname).count()==0: group = Group() group.name = sheetname group.is_active = True group.save() else: group = Group.objects.get(name=sheetname) startrow = 2 # if u'商业类' != sheetname: # continue print sheetname sh = bk.sheet_by_name(sheetname) nrows = sh.nrows nclos = sh.ncols l = countRows(2,nrows,0,sh) for s,e in l: print '(%s,%s):%s'%(s,0,sh.cell_value(s,0)) if request: sname=sh.cell_value(s,0) if TaxKind.objects.filter(name=sname).count()==0: tax = TaxKind() tax.name = sname tax.fatherKind = None tax.is_active = True tax.save() else: tax = TaxKind.objects.get(name=sname) zl = countRows(s,e+1,1,sh) for ss,ee in zl: print '(%s,%s):%s'%(ss,1,sh.cell_value(ss,1)) if request: ssname = sh.cell_value(ss,1) if TaxKind.objects.filter(name=ssname,fatherKind=tax).count()==0: sstax = TaxKind() sstax.name = ssname sstax.fatherKind = tax sstax.is_active = True sstax.save() else: sstax = TaxKind.objects.get(name =ssname,fatherKind=tax) pl = countRows(ss,ee+1,2,sh) for ps,pe in pl: print '(%s,%s):%s'%(ps,2,sh.cell_value(ps,2)) if request: psname = sh.cell_value(ps,2) if TaxTicket.objects.filter(name=psname,group=group,taxkind=sstax).count()==0: ticket = TaxTicket() ticket.name = psname ticket.group = group ticket.taxkind = sstax ticket.save() else: ticket = TaxTicket.objects.get(name=psname,group=group,taxkind=sstax) try: t = Ticket() t.name = psname t.save() except: pass print '(%s,%s):%s'%(ps,3,sh.cell_value(ps,3)) if request: kjkmname = sh.cell_value(ps,3) if KJKM.objects.filter(name = kjkmname).count()==0: kjkm = KJKM() kjkm.name = kjkmname kjkm.save() else: kjkm = KJKM.objects.get(name=kjkmname) if KJKMTicket.objects.filter(kjkm=kjkm,tickets=ticket).count()==0: kjkmticket = KJKMTicket() kjkmticket.kjkm = kjkm kjkmticket.tickets = ticket kjkmticket.save() else: kjkmticket = KJKMTicket.objects.get(kjkm=kjkm,tickets=ticket) for j in range(nclos): if bbdict.has_key(sh.cell_value(1,j)): v = sh.cell_value(ps,j) if BBFieldValue.objects.filter(kjkmticket=kjkmticket,bbfield=bbdict[sh.cell_value(1,j)]).count()==0: bbv = BBFieldValue() else: bbv = BBFieldValue.objects.get(kjkmticket=kjkmticket,bbfield=bbdict[sh.cell_value(1,j)]) if v and v!=u'无': bbv.value = v bbv.kjkmticket = kjkmticket bbv.bbfield = bbdict[sh.cell_value(1,j)] bbv.save() elif bbv.pk: bbv.delete() # print sh.cell_value(11,0) if request: return getResult(True,u'success')