def _createServicesList(var): S = util.SERVICES(var) R = util.ROOMLIST(var) slist = [] if var["JCRUD_DIALOG"] == "crud_change" : getN = None slist = R.getRoomServices(var["name"]) else : ss = D.getDataH(20) if ss == None : slist = [] else : slist = ss.split(',') getN = lambda s : s var["noperson"] = D.getDataHI(21) var["nochildren"] = D.getDataHI(22) var["noextrabeds"] = D.getDataHI(23) cutil.setCopy(var,["noperson","nochildren","noextrabeds"]) seq = S.getRoomServices() list = [] for s in seq : check = util.findElemInSeq(s.getName(),slist, getN) != None map = {"check" : check ,"service" : s.getName(), "servdescr" : s.getDescription(), "perperson" : s.isPerperson()} _setNumb(map,s) list.append( map ) cutil.setJMapList(var,SERVLIST,list)
def _setAfterService(var): _setPriceAfterRating(var) service = var["service"] if service == None: _setDescr(var) return serv = util.SERVICES(var).findElem(service) _setDescr(var, serv.getDescription()) cutil.setCopy(var, ["vat"]) var["var"] = serv.getVat()
def _createList(var): serv = util.SERVICES(var) seq = serv.getOtherServices() list = [] for s in seq : list.append({"name" : s.getName(), "descr" : s.getDescription(), "vat" : s.getAttr("vat"), "vatname" : util.getVatName(s.getAttr("vat"))} ) var["JLIST_MAP"] = { "services" : list}
def elemroomaction(action,var) : cutil.printVar("elemroomaction",action, var) R = util.ROOMLIST(var) if action == "columnchangeaction" : if not var["check"] : return serv = util.SERVICES(var).findElem(var["service"]) assert serv != None _setNumb(var,serv) cutil.setCopy(var,["noperson","nochildren","noextrabeds"]) if action == "before" : _createServicesList(var) if var["JCRUD_DIALOG"] == "crud_add" or var["JCRUD_DIALOG"] == "crud_change" : cutil.setChangeEditMode(var,SERVLIST,"check") if action == "crud_add" and not var["JCRUD_AFTERCONF"] : if _duplicatedRoomName(var) or _notValidRoomDesc(var): return var["JYESNO_MESSAGE"] = M("ADDNEWROOMASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_add" and var["JCRUD_AFTERCONF"] : a = _getServiceList(var) R.addElem(_createRoom(var,a)) R.setRoomServices(var["name"],a) var["JCLOSE_DIALOG"] = True return if action == "crud_change" and not var["JCRUD_AFTERCONF"] : if _notValidRoomDesc(var): return var["JYESNO_MESSAGE"] = M("CHANGEROOMASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_change" and var["JCRUD_AFTERCONF"] : a = _getServiceList(var) R.changeElem(_createRoom(var,a)) R.setRoomServices(var["name"],a) var["JCLOSE_DIALOG"] = True if action == "crud_remove" and not var["JCRUD_AFTERCONF"] : l = util.RESOP(var).getReseForRoom(var["name"]) if len(l) > 0 : var["JERROR_MESSAGE"] = M("cannotremoveroom").format(len(l)) return var["JYESNO_MESSAGE"] = M("REMOVEROOMASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_remove" and var["JCRUD_AFTERCONF"] : R.deleteElem(_createRoom(var)) var["JCLOSE_DIALOG"] = True
def _createPriceElemListForType(var, hotel): P = util.PRICEELEM(var) displayname = M("pricelistprice") columns = [{"id": _PRICE, "displayname": displayname}] if hotel: columns.append({ "id": _PRICECHILDREN, "displayname": M("pricelistchildren") }) columns.append({ "id": _PRICEEXTRABDEDS, "displayname": M("pricelistextraprice") }) S = util.SERVICES(var) if hotel: seq = S.getRoomServices() else: seq = S.getOtherServices() if hotel: displayname = lambda (s): s.getName() + M( "serviceperperson") if S.findElem(s.getName()).isPerperson( ) else s.getName() + M("serviceperroom") lines = util.createSeq(seq, False, displayname) else: lines = util.createSeq(seq) defmap = {"lines": lines, "columns": columns} prices = [] if var["name"]: prices = P.getPricesForPriceList(var["name"]) for s in seq: id = s.getName() for p in prices: service = p.getService() if id == service: defmap[id] = [{"id": _PRICE, "val": p.getPrice()}] if hotel: defmap[id].append({ "id": _PRICECHILDREN, "val": p.getChildrenPrice() }) defmap[id].append({ "id": _PRICEEXTRABDEDS, "val": p.getExtrabedsPrice() }) return defmap
def elemserviceaction(action,var): cutil.printVar("elem service action",action,var) serv = util.SERVICES(var) if action == "before" and var["JCRUD_DIALOG"] == "crud_add" : var["vat"] = D.getDataH(15) cutil.setCopy(var,"vat") if action == "crud_add" and not var["JCRUD_AFTERCONF"] : if util.duplicateService(var) : return var["JYESNO_MESSAGE"] = M("ADDNEWSERVICEASK"); var["JMESSAGE_TITLE"] = "" return if action == "crud_add" and var["JCRUD_AFTERCONF"] : se = _createService(var) serv.addElem(se) var["JCLOSE_DIALOG"] = True return if action == "crud_change" and not var["JCRUD_AFTERCONF"] : var["JYESNO_MESSAGE"] = M("CHANGESERVICEASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_change" and var["JCRUD_AFTERCONF"] : se = _createService(var) serv.changeElem(se) var["JCLOSE_DIALOG"] = True if action == "crud_remove" and not var["JCRUD_AFTERCONF"] : l1 = util.RESOP(var).getReseForService(var["name"]) l2 = util.listOfPriceListForService(var,var["name"]) if len(l1) > 0 or len(l2) > 0 : var["JERROR_MESSAGE"] = M("cannotremoveotherservice").format(len(l1),len(l2)) return var["JYESNO_MESSAGE"] = M("DELETESERVICEASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_remove" and var["JCRUD_AFTERCONF"] : se = _createService(var) serv.deleteElem(se) var["JCLOSE_DIALOG"] = True
def _createList(var): serv = util.SERVICES(var) seq = serv.getRoomServices() list = [] for s in seq: list.append({ "name": s.getName(), "descr": s.getDescription(), "vat": s.getAttr("vat"), "noperson": s.getNoPersons(), "noextrabeds": util.getIntField(s.getNoExtraBeds()), "nochildren": util.getIntField(s.getNoChildren()), "perperson": s.isPerperson(), "vatname": util.getVatName(s.getAttr("vat")) }) var["JLIST_MAP"] = {"services": list}
def _constructPriceElemList(var): if var["JCHECK_MAP"].has_key(PRICEOTHERS): values = cutil.concatDict(var["JCHECK_MAP"][_PRICES], var["JCHECK_MAP"][PRICEOTHERS]) else: values = var["JCHECK_MAP"][_PRICES] seq = util.SERVICES(var).getList() a = cutil.createArrayList() for s in seq: id = s.getName() if values.has_key(id): p = HotelPriceElem() p.setService(id) notnull = False for v in values[id]: if v["val"] == None: continue if v["id"] == _PRICE: p.setPrice(con.toB(v["val"])) if v["id"] == _PRICECHILDREN: p.setChildrenPrice(con.toB(v["val"])) if v["id"] == _PRICEEXTRABDEDS: p.setExtrabedsPrice(con.toB(v["val"])) notnull = True if notnull: a.add(p) return a
def setvarBefore(var,custo=RCUST): xml = var["JUPDIALOG_START"] (roomname,resday,resdays,nop,roomservice,roompricelist) = rparam.XMLtoresquery(xml) if roomservice != None and roompricelist != None : rutil.setServicePriceList(var,roomservice,roompricelist) R = util.ROOMLIST(var) room = R.findElem(roomname) assert room != None if nop == None : nop = room.getNoPersons() var["name"] = roomname var["desc"] = room.getDescription() var["nop"] = nop var["noextrabeds"] = util.getIntField(room.getNoExtraBeds()) var["nochildren"] = util.getIntField(room.getNoChildren()) var["resnop"] = util.getIntField(nop) util.setCopy(var,["resename","name","datecol","desc","resdays","noextrabeds","nochildren","nop","serviceperperson","resnop"]) # util.setCopy(var,["resnochildren","respricechildren","resnoextrabeds","respriceextrabeds","respriceperroom","resnop"]) res = rutil.getReservForDay(var,roomname,resday) if len(res) == 0 : var["datecol"] = resday var["resdays"] = resdays var["resename"] = None cust.setDefaCustomer(var,custo) return assert len(res) == 1 resname = res[0].getResId() assert resname != None RFORM = util.RESFORM(var) reservation = RFORM.findElem(resname) assert reservation != None custname = reservation.getCustomerName() assert custname != None rutil.setReseName(var,resname) cust.setCustData(var,custname,custo) perperson = True list = [] S = util.SERVICES(var) mindate = None for r in reservation.getResDetail() : map = { "avail" : True, "resroomname" : r.getRoomName(), "resday" : r.getResDate(), "rlist_pricetotal" : con.BigDecimalToDecimal(r.getPriceTotal()), "rline_nop" : r.getNoP(),"rlist_priceperson" : con.BigDecimalToDecimal(r.getPrice()), "rlist_noc" : util.getIntField(r.getNoChildren()), "rlist_pricechildren" : con.BigDecimalToDecimal(r.getPriceChildren()), "rlist_noe" : util.getIntField(r.getNoExtraBeds()), "rlist_priceextra" : con.BigDecimalToDecimal(r.getPriceExtraBeds()), "rlist_serviceperperson" : r.isPerperson(), "rlist_roomservice" : r.getService(), "rlist_roompricelist" : r.getPriceListName()} if not r.isPerperson() : perperson = False if mindate == None : mindate = r.getResDate() elif mindate > r.getResDate() : mindate = r.getResDate() roomservice = cutil.ifnull(roomservice,r.getService()) roompricelist = cutil.ifnull(roompricelist,r.getPriceListName()) list.append(map) var["serviceperperson"] = perperson # restores default data previously saved reseparam.RESPARAM(resname).setParam(var) rutil.setServicePriceList(var,roomservice,roompricelist) var["datecol"] = mindate var["resdays"] = len(reservation.getResDetail()) # advance payment SUM = advarese.CALCULATE() SUM.calc(reservation) A = advarese.createAdvaRese(var) A.setVal(reservation,SUM.getTotal()) A.setCopy() confirm.createC(var).setReservationToVar(reservation) cutil.setJMapList(var,RLIST,list) cutil.setFooter(var,RLIST,"rlist_pricetotal",SUM.getTotal())
def checkinaction(action,var): cutil.printVar("checkinaction",action,var) R = util.RESFORM(var) ROOM = util.ROOMLIST(var) SE = util.SERVICES(var) ROP = util.RESOP(var) resName = var["resename"] CUST = util.CUSTOMERLIST(var) if action == "makecheckin" and var["JYESANSWER"] : TRANS = MAKECHECKIN(var) TRANS.doTrans() if action == "guestdetails" and var[CHECKINLIST+"_lineset"] : var["JAFTERDIALOG_ACTION"] = "acceptdetails" cust.customerDetailsActive(var,None) if action == "acceptdetails" and var["JUPDIALOG_BUTTON"] == "accept" : xml = var["JUPDIALOG_RES"] util.xmlToVar(var,xml,CUSTF) cutil.setCopy(var,CUSTF,CHECKINLIST) if action == "selectguestfromlist" : custid =var["JUPDIALOG_RES"] if custid == None : return __toMap(var,custid,CUST) li = ["guestselect"] + CUSTF cutil.setCopy(var,li,CHECKINLIST) if action == "selectguest" : var["JUP_DIALOG"] = "?customerselection.xml" var['JAFTERDIALOG_ACTION'] = "selectguestfromlist" if action == "before" : roomRes = {} reservation = R.findElem(resName) # list of guests gList = ROP.getResGuestList(resName) for r in reservation.getResDetail() : rname = r.getRoomName() room = ROOM.findElem(rname) servicename = r.getService() serv = SE.findElem(servicename) nop = serv.getNoPersons() if roomRes.has_key(rname) : no = roomRes[rname][0] if nop > no : roomRes[rname][0] = nop else : roomRes[rname] = (nop,room) list = [] wasGuest = False for roomname in roomRes.keys() : for i in range(roomRes[roomname][0]) : map = { "roomid" : roomname, "roomdesc" : roomRes[roomname][1].getDescription()} # add guest details no = -1 found = False for g in gList : if g.getRoomName() == roomname : no = no + 1 if no == i : found = True custid = g.getGuestName() __toMap(map,custid,CUST) found = True wasGuest = True break if not found : map["guestselect"] = "<select>" cust.setDefaCustomerNotCopy(map) list.append(map) var["JLIST_MAP"] = { CHECKINLIST : list} cutil.setChangeEditMode(var,CHECKINLIST,["surname","firstname","title","country"]) resform = R.findElem(resName) assert resform != None status = util.resStatus(resform) var["isstay"] = (status == 1) cutil.setCopy(var,"isstay") if status == 2 : cutil.hideButton(var,"acceptchange") else : cutil.hideButton(var,"accept") if status == 2 and not wasGuest : custid = resform.getCustomerName() map = list[0] __toMap(map,custid,CUST)
def elemserviceaction(action, var): cutil.printVar("elemserviceaction", action, var) serv = util.SERVICES(var) if action == "before": if var["JCRUD_DIALOG"] == "crud_add": var["noperson"] = D.getDataHI(10) var["noextrabeds"] = D.getDataHI(11) var["nochildren"] = D.getDataHI(12) var["vat"] = D.getDataH(14) var["perperson"] = D.getDataHB(13) cutil.setCopy( var, ["noperson", "noextrabeds", "nochildren", "vat", "perperson"]) else: cutil.hideButton(var, "showrooms", False) if action == "showrooms": l = util.listOfRoomsForService(var, var["name"]) print l for s in l: print s var["JUPDIALOG_START"] = xmlutil.listNumberToCVS(l, "-1") var["JUP_DIALOG"] = "?roomslist.xml" if action == "crud_add" and not var["JCRUD_AFTERCONF"]: if util.duplicateService(var) or _notverifyService(var): return var["JYESNO_MESSAGE"] = M("ADDNEWSERVICEASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_add" and var["JCRUD_AFTERCONF"]: se = _createService(var) serv.addElem(se) var["JCLOSE_DIALOG"] = True return if action == "crud_change" and not var["JCRUD_AFTERCONF"]: if _notverifyService(var): return var["JYESNO_MESSAGE"] = M("CHANGESERVICEASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_change" and var["JCRUD_AFTERCONF"]: se = _createService(var) serv.changeElem(se) var["JCLOSE_DIALOG"] = True if action == "crud_remove" and not var["JCRUD_AFTERCONF"]: l = util.listOfRoomsForService(var, var["name"]) l1 = util.RESOP(var).getReseForService(var["name"]) l2 = util.listOfPriceListForService(var, var["name"]) if len(l) > 0 or len(l1) > 0 or len(l2) > 0: var["JERROR_MESSAGE"] = M("cannotremoveservice").format( len(l), len(l2), len(l1)) return var["JYESNO_MESSAGE"] = M("DELETESERVICEASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_remove" and var["JCRUD_AFTERCONF"]: se = _createService(var) serv.deleteElem(se) var["JCLOSE_DIALOG"] = True
def otherserviceenum(action, var): li = util.SERVICES(var).getOtherServices() var["JLIST_MAP"] = {"otherservice": util.createEnumFromList(li)}
def allserviceenum(action, var): li = util.SERVICES(var).getRoomServices() cutil.setJMapList(var, "allroomservices", util.createEnumFromList(li))
def dialogaction(action, var): cutil.printVar("test48", action, var) if action == "test1": resename = var["resename"] R = util.RESFORM(var) ROP = util.RESOP(var) RR = R.findElem(resename) print RR lg = ROP.getResGuestList(resename) for g in lg: print g.getGuestName() gName = lg[0].getGuestName() print gName dli = RR.getResDetail() for l in dli: print g.getRoomName() roomName = dli[0].getRoomName() print roomName S = util.SERVICES(var) se = util.newOtherService(var) se.setName("addse") se.setVat("free") ase = S.addElem(se) rpa = util.newResAddPayment() rpa.setGuestName(gName) rpa.setRoomName(roomName) rpa.setResDate(con.javaDate(2015, 12, 23)) rpa.setPriceList(con.toB(100.56)) rpa.setPrice(con.toB(50)) rpa.setPriceTotal(con.toB(200)) rpa.setService(ase.getName()) arpa = ROP.addResAddPayment(resename, rpa) print arpa.getName(), arpa.getId(), " ", arpa.getResDate() assert arpa.getId() != None li = cutil.JOURNAL(var).getList() for l in li: print l.getId() J = li[0] print J.getName(), J.getJournalType(), J.getJournalTypeSpec( ), J.getJournalElem1(), J.getJournalElem2() assert "ADDPAYMENT" == J.getJournalType() assert resename == J.getJournalElem1() assert arpa.getId() == int(J.getJournalElem2()) var["OK"] = True if action == "test2": bname = var["bname"] p = util.newBillPayment() p.setBillName(bname) p.setPaymentMethod("Cache") p.setDateOfPayment(cutil.toDate(cutil.today())) p.setPaymentTotal(con.toB(1000)) addP = util.PAYMENTOP(var).addPaymentForBill(bname, p) li = cutil.JOURNAL(var).getList() for l in li: print l.getId(), l.getJournalType(), l.getJournalElem1( ), l.getJournalElem2(), l.getCreationDate() J = li[0] print J.getName(), J.getJournalType(), J.getJournalTypeSpec( ), J.getJournalElem1(), J.getJournalElem2(), assert "ADDBILLPAYMENT" == J.getJournalType() assert addP.getId() == int(J.getJournalElem1()) assert bname == J.getJournalElem2() # now remove util.PAYMENTOP(var).removePaymentForBill(bname, addP.getId()) li = cutil.JOURNAL(var).getList() for l in li: print l.getId(), l.getJournalType(), l.getJournalElem1( ), l.getJournalElem2(), l.getCreationDate() J = li[0] print J.getName(), J.getJournalType(), J.getJournalTypeSpec( ), J.getJournalElem1(), J.getJournalElem2() assert "REMOVEBILLPAYMENT" == J.getJournalType() assert addP.getId() == int(J.getJournalElem1()) assert bname == J.getJournalElem2() var["OK"] = True if action == "test3": li = cutil.JOURNAL(var).getList() JM = journalmess.JournalMess(var) for l in li: print l.getId(), l.getJournalType(), l.getJournalElem1( ), l.getJournalElem2(), l.getCreationDate() print "mess=", JM.getJournalDescr(l) assert None != JM.getJournalDescr(l) J = li[1] print J.getName(), J.getJournalType(), J.getJournalTypeSpec( ), J.getJournalElem1(), J.getJournalElem2() billname = J.getJournalElem2() print billname # remove bill and test message with removed bill util.BILLLIST(var).deleteElemByName(billname) li = cutil.JOURNAL(var).getList() JM = journalmess.JournalMess(var) for l in li: print l.getId(), l.getJournalType(), l.getJournalElem1( ), l.getJournalElem2(), l.getCreationDate() print "mess=", JM.getJournalDescr(l) assert None != JM.getJournalDescr(l) var["OK"] = True if action == "test4": li = cutil.JOURNAL(var).getList() JM = journalmess.JournalMess(var) for l in li: print l.getId(), l.getJournalType(), l.getJournalElem1( ), l.getJournalElem2(), l.getCreationDate() print "mess=", JM.getJournalDescr(l) assert None != JM.getJournalDescr(l) var["OK"] = True
def dialogaction(action, var): cutil.printVar("test47", action, var) if action == "test1": S = util.SERVICES(var) print S se = util.newHotelService(var) se.setName("SERV") se.setDescription("Usluga hotelowe") se.setVat("vat22") S.addElem(se) li = cutil.JOURNAL(var).getList() found = False for l in li: print l.getJournalType(), l.getJournalTypeSpec( ), l.getJournalElem1() if l.getJournalType() == "SERVICE": found = True assert l.getJournalTypeSpec() == "ADD" assert l.getJournalElem1() == "SERV" assert found var["OK"] = True if action == "test2": S = util.SERVICES(var) print S se = util.newHotelService(var) se.setName("SERV") se.setDescription("Usluga hotelowe") se.setVat("vat22") S.addElem(se) se.setDescription("Wow") S.changeElem(se) li = cutil.JOURNAL(var).getList() for l in li: print l.getJournalType(), l.getJournalTypeSpec( ), l.getJournalElem1() l = li[0] assert l.getJournalTypeSpec() == "MODIF" assert l.getJournalElem1() == "SERV" assert l.getJournalType() == "SERVICE" var["OK"] = True if action == "test3": S = util.SERVICES(var) print S se = util.newHotelService(var) se.setName("SERV") se.setDescription("Usluga hotelowe") se.setVat("vat22") se = S.addElem(se) S.deleteElem(se) li = cutil.JOURNAL(var).getList() for l in li: print l.getJournalType(), l.getJournalTypeSpec( ), l.getJournalElem1() l = li[0] assert l.getJournalTypeSpec() == "REMOVE" assert l.getJournalElem1() == "SERV" assert l.getJournalType() == "SERVICE" var["OK"] = True if action == "test4": dialogaction("test2", var) li = cutil.JOURNAL(var).getList() JM = journalmess.JournalMess(var) var["OK"] = False for l in li: print l.getJournalType(), l.getJournalTypeSpec( ), l.getJournalElem1() print "mess=", JM.getJournalDescr(l) assert JM.getJournalDescr(l) != None print JM.getListOfType() var["OK"] = True if action == "test5": dialogaction("test3", var) li = cutil.JOURNAL(var).getList() JM = journalmess.JournalMess(var) var["OK"] = False for l in li: print l.getJournalType(), l.getJournalTypeSpec( ), l.getJournalElem1() print "mess=", JM.getJournalDescr(l) assert JM.getJournalDescr(l) != None print JM.getListOfType() var["OK"] = True
def _setAfterServiceName(var) : S = util.SERVICES(var) serv = S.findElem(var["roomservice"]) if serv == None : return var["serviceperperson"] = serv.isPerperson() cutil.setCopy(var,"serviceperperson")