def _createResData(var,new): service = var["roomservice"] if cutil.emptyS(service) : return None pricelist = var["roompricelist"] if cutil.emptyS(pricelist) : return None roomname = var["name"] date = var["datecol"] resdays = var["resdays"] dl = datetime.timedelta(1) dt = date sum = util.SUMBDECIMAL() if new : list = [] else : list = var["JLIST_MAP"][RESLIST] sum.add(var["JFOOTER_reslist_rlist_pricetotal"]) resnop = var["resnop"] perperson = var["serviceperperson"] priceroom = var["respriceperroom"] priceperson = var["respriceperson"] pricechildren = None priceextra = None resnoc = var["resnochildren"] if resnoc : pricechildren = var["respricechildren"] resextra = var["resnoextrabeds"] if resextra : priceextra = var["respriceextrabeds"] price = rutil.calculatePrice(perperson,resnop,resnoc,resextra,priceperson,pricechildren,priceextra,priceroom) query = cutil.createArrayList() RES = util.RESOP(var) qelem = rutil.createResQueryElem(roomname,date,con.incDays(date,resdays)) query.add(qelem) rList = RES.queryReservation(query) allavail = True resename = rutil.getReseName(var) for i in range(resdays) : # price = pPrice.getPrice() avail = True for re in rList : rdata = re.getResDate() if con.eqDate(dt,rdata) : if resename == None or resename != re.getResId() : avail = allavail = False map = { "avail" : avail, "resroomname" : roomname, "resday" : dt, "rlist_pricetotal" : price, "rline_nop" : resnop,"rlist_priceperson" : priceperson, "rlist_noc" : resnoc, "rlist_pricechildren" : pricechildren, "rlist_noe" : resextra, "rlist_priceextra" : priceextra, "rlist_serviceperperson" : perperson, "rlist_roomservice" : service, "rlist_roompricelist" : pricelist} list.append(map) dt = dt + dl sum.add(price) return [list,sum.sum,allavail]
def dialogaction(action, var): cutil.printVar("search", action, var) if action == "testsearch": dfrom = datetime.date(2014, 2, 1) dto = datetime.date(2014, 2, 5) l = rutil.searchForRooms(var, dfrom, dto) for r in l: assert r != None print r assert len(l) == 2 dto = con.incDays(dfrom) l = rutil.searchForRooms(var, dfrom, dto) print l assert len(l) == 3 dto = con.incDays(dfrom, 2) l = rutil.searchForRooms(var, dfrom, dto) print l assert len(l) == 2 var["OK"] = True
def _calculatePaymentBy(var,li) : nodays = D.getDataHI(41) if nodays == None : return arrival = None departure = None for l in li : (arrival,departure) = calculateJDates(arrival,departure,l["resday"]) paymentby = con.incDays(arrival,0-nodays) if paymentby <= con.today() : paymentby = None var["advance_duedate"] = paymentby cutil.setCopy(var,"advance_duedate")
def _validate(var): if var["searchby_days"]: if cutil.checkEmpty(var, "search_days"): return False if not cutil.checkGreaterZero(var, "search_days"): return False var["search_to"] = con.incDays(var["search_from"], var["search_days"]) cutil.setCopy(var, "search_to") return True if cutil.checkEmpty(var, "search_to"): return False da = con.nofDays(var["search_from"], var["search_to"]) if da <= 0: cutil.setErrorField(var, "search_to", "@datefromlessto") return False var["search_days"] = da cutil.setCopy(var, "search_days") return True
def _createReseLine(var,map,rname) : R = util.RESFORM(var) r = R.findElem(rname) assert r != None map["resename"] = r.getName() map["custinfo"] = rutil.rescustInfo(var,r) sta = util.resStatus(r) if sta == 1 : n = M("statusstay") elif sta == 2: n = M("statusopen") else : n = M("statuscanceled") map["rstatus"] = n (dfrom,dto,room,rate,nofnights) = rutil.getReseDate(var,r) map["rfrom"] = dfrom map["rto"] = con.incDays(dto) map["room"] = room
def getReseDateS(var, sym): """ Gather data related to reservation Args: var sym : reservation symbol Returns: (arrival,departure,roomname,rate,numberofnigts) arrival : arrival date, checkin departure : departure date, checkout, next day after last reservation date roomname : room reserved rate : daily rate numberofnights : quantity, number of nights """ li = getPayments(var, sym) roomname = li[0].getRoomName() rate = li[0].getPrice() arrival = None departure = None for l in li: (arrival, departure) = calculateDates(arrival, departure, l) return (arrival, con.incDays(departure), roomname, rate, len(li))