else:
rett="over"
return rett
+def count_schedule(btime,etime):
+ """
+ return rec num (int return[0]:TE /int return[1]:BS/CS)
+ """
+ #typet,bctypet, chtxtt,titlet,btime,etime
+ def rectime_count(btimeb,etimee,liststemp):
+ ##btimeからetimeまでの中に入る数を数えるとともに
+ #リストのbtime,etimeを変更する
+ #[[tenum,bscsnum],retlists]
+ #typet,bctypet, chtxtt,titlet,btime,etime
+ bt=datetime.datetime(*time.strptime(btimeb,"%Y-%m-%d %H:%M:%S")[:-3])
+ et=datetime.datetime(*time.strptime(etimee,"%Y-%m-%d %H:%M:%S")[:-3])
+ lists=liststemp
+ count=[0,0]#te,bscs
+ bttemp
+ retlists=[]
+ for list in lists:
+ btt=datetime.datetime(*time.strptime(list[4],"%Y-%m-%d %H:%M:%S")[:-3])
+ ett=datetime.datetime(*time.strptime(list[5],"%Y-%m-%d %H:%M:%S")[:-3])
+ #NOT( ( rectime.etime <= ? ) OR ( rectime.btime >= ? )
+ if not ((ett<= bt) or (btt >= et)):
+ if list[1].find("cs")>-1:
+ count[1]=count[1]+1
+ elif list[1].find("bs")>-1:
+ count[1]=count[1]+1
+ elif list[1].find("te")>-1:
+ count[0]=count[0]+1
+ """if ettemp>ett:
+ ettemp=et"""
+ if btt<et and ett>et:
+ btt=et
+ if btt>=et:
+ btimett=btt.strftime("%Y-%m-%d %H:%M:%S")
+ etimett=ett.strftime("%Y-%m-%d %H:%M:%S")
+ retlists.append([list[0],list[1],list[2],list[3],btimett,etimett])
+ return [count,retlists]
+ #btime=dbt.strftime("%Y-%m-%d %H:%M:%S")
+ #etime=det.strftime("%Y-%m-%d %H:%M:%S")
+ dls=database.schedule_rectime(btime,etime)
+ btemp=datetime.datetime(*time.strptime(dis[0][4],"%Y-%m-%d %H:%M:%S")[:-3])
+ etemp=datetime.datetime(*time.strptime(dis[0][5],"%Y-%m-%d %H:%M:%S")[:-3])
+ retcount=[0,0]
+ while retend==0:
+ btemp=datetime.datetime(*time.strptime(dis[0][4],"%Y-%m-%d %H:%M:%S")[:-3])
+ etemp=datetime.datetime(*time.strptime(dis[0][5],"%Y-%m-%d %H:%M:%S")[:-3])
+ for dl in dls:
+ btemptt=datetime.datetime(*time.strptime(dl[4],"%Y-%m-%d %H:%M:%S")[:-3])
+ etemptt=datetime.datetime(*time.strptime(dl[5],"%Y-%m-%d %H:%M:%S")[:-3])
+ if btemp>btemptt:
+ btemp=btemptt
+ etemp=etemptt
+ elif btemp==btemptt:
+ if etemp>etemptt:
+ etemp=etemptt
+ bt2=btemp.strftime("%Y-%m-%d %H:%M:%S")
+ et2=etemp.strftime("%Y-%m-%d %H:%M:%S")
+ ret2=rectime_count(bt2,et2,dls)
+ if retcount[0]<ret2[0][0]:
+ retcount[0]=ret2[0][0]
+ if retcount[1]<ret2[0][1]:
+ retcount[1]=ret2[0][1]
+ dls=ret2[1]
+ if len(dis)==0:
+ break
+ elif dis[0][4]==btime:
+ break
+ return retcount
def change_reserv(id,type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
"""
idはテキスト
"""
MaxT=2
MaxS=2
- tsnum=database.count_schedule_rectime(btime,etime)
+ tsnum=count_schedule(btime, etime)
MaxT=MaxT-tsnum[0]
MaxS=MaxS-tsnum[1]
bctype=""
dd=d2-d1
et=et+dd
etime=et.strftime("%Y-%m-%d %H:%M:%S")
-
size="S"
if f.getfirst('size'):
size=f.getfirst('size')
exect=""
if f.getfirst('exec',""):
exect=f.getfirst('exec',"")
-
-
htmdate= readHtmlSrcSimple()
htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
htmdate=htmdate.replace("<!--btime-value//-->",btime)
htmdate=htmdate.replace("<!--title-value//-->",title)
htmdate=htmdate.replace("<!--size-value//-->",size)
htmdate=htmdate.replace("<!--opts-value//-->",opts)
-
-
#ここから曜日検索の設定
if f.getfirst('type')=="keyday":
rett=""
dayt=f.getfirst('day_Sun')
if dayt:
rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
-
if rett=="":
htmdate=readRecFinisSimple()
else:
htmdate=readRecFinisOver()
chtxt=""
exect=""
-
-
-
if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(exect=="yes"):
restxt=reserv(type, title, chtxt, btime, etime, deltahour, opts, deltaday)
if restxt=="":
db[1].execute('INSERT IGNORE INTO rectime (type,chtxt,title,btime,etime,deltatime,deltaday,opt) values (%s,%s,%s,%s,%s,%s,%s,%s)', (type, chtxt, title, btime, etime, deltatime, deltaday, opt))
#db.commit()
self.close_db(db)
+ def schedule_rectime(self,btime,etime):
+ db=self.connect_db()
+ dbexe="SELECT type,chdata.bctype,rectime.chtxt,rectime.title,rectime.btime,rectime.etime FROM rectime INNER JOIN chdata ON rectime.chtxt=chdata.chtxt"
+ dbexe=dbexe+" WHERE NOT( ( rectime.etime <= %s ) OR ( rectime.btime >= %s ) )"
+ db[1].execute(dbexe,(btime,etime))
+ rets=[]
+ for typet,bctypet, chtxtt, titlet,btimet,etimet in db[1].fetchall():
+ ret=[typet,bctypet,chtxtt,titlet,btimet,etimet]
+ rets.append(ret)
+ self.close_db(db)
+ return rets
def count_schedule_rectime(self,btime,etime):
"""
count rectasknum
db.execute('INSERT OR IGNORE INTO rectime (type,chtxt,title,btime,etime,deltatime,deltaday,opt) values (?,?,?,datetime(?),datetime(?),?,?,?)', (type, chtxt, title, btime, etime, deltatime, deltaday, opt))
db.commit()
self.close_db(db)
+ def schedule_rectime(self,btime,etime):
+ db=self.connect_db(120)
+ dbexe="SELECT type,chdata.bctype,rectime.chtxt,rectime.title,rectime.btime,rectime.etime FROM rectime INNER JOIN chdata ON rectime.chtxt=chdata.chtxt"
+ dbexe=dbexe+" WHERE NOT( ( rectime.etime <= ? ) OR ( rectime.btime >= ? ) )"
+ rets=[]
+ for typet,bctypet, chtxtt, titlet,btimet,etimet in db.execute(dbexe,(btime,etime)):
+ ret=[typet,bctypet,chtxtt,titlet,btimet,etimet]
+ rets.append(ret)
+ self.close_db(db)
+ return rets
def count_schedule_rectime(self,btime,etime):
"""
count rectasknum