示例#1
0
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
示例#3
0
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
示例#6
0
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))