def dialinfo(action,var) : cutil.printVar("customer stat",action,var) if action == "before" : custid = var["JUPDIALOG_START"] custR = util.CUSTOMERLIST(var).findElem(custid) cust.customerToVar(var,custR,CUST) cust.setCustVarCopy(var,CUST) l = util.RESOP(var).getReseForCustomer(custid) l1 = util.RESOP(var).getReseForGuest(custid) l2 = util.RESOP(var).getReseForPayer(custid) _createListOfRes(var,l,CLIST) _createListOfRes(var,l1,GLIST) _createListOfRes(var,l2,PLIST) l3 = _createListOfMail(var) m = {"nofcustomer" : len(l), "nofguest" : len(l1), "nofpayer" : len(l2), "nomails" : len(l3) } s = util.transformXMLFromMap("custinfo.xslt",m) var["i_custinfo"] = s # var["i_custinfo"] = M("custinfo").format(len(l),len(l1),len(l2)) cutil.setCopy(var,"i_custinfo") if action == "shownote" : diallaunch.showmailnote(var,var["mailname"])
def dialogaction(action, var): cutil.printVar("modif rese", action, var) if action == "before": (rename, resroom, resday) = rparam.XMLtoroomday(var["JUPDIALOG_START"]) cutil.setCopy(var, "resename") rutil.setReseName(var, rename) rparam.setStartParam(var) if action == "modifrese" or action == "modifstay": xml = rparam.getStartParam(var) (resname, resroom, resday) = rparam.XMLtoroomday(xml) if action == "modifrese": diallaunch.modifreservationroom(var, resroom, resday) else: diallaunch.staydetails(var, resroom, resday) if action == "aftercheckin": rutil.afterCheckIn(var) if action == "staybalance": diallaunch.staycalculation(var, rutil.getReseName(var)) if action == "disclosurechange" and var["disclosureopen"] and var[ "disclosureid"] == "adddvancepayment": A = Ad(var) A.setValReseName(rutil.getReseName(var)) if action == "disclosurechange" and var["disclosureopen"] and var[ "disclosureid"] == "confirmnotconfirmed": confirm.createC(var, P).setResNameToVar(rutil.getReseName(var)) if action == "signalchange" and var[ "changefield"] == "p_advance_percent" and var["changeafterfocus"]: A = Ad(var) A.calculateAdvanceAmount() if action == "saveconfirm" and var["JYESANSWER"]: confirm.createC(var, P).changeReservation(rutil.getReseName(var)) rutil.refreshPanel(var) if action == "saveadva": A = Ad(var) if not A.validate(): return var["JYESNO_MESSAGE"] = "@saveadva" var["JAFTERDIALOG_ACTION"] = "saveadvaafterquestion" if action == "saveadvaafterquestion" and var["JYESANSWER"]: A = Ad(var) A.modifyAdvaData() rutil.refreshPanel(var) if action == "sendmail": rese = rutil.getReseName(var) diallaunch.confirmationmail(var, rese) if action == "cancelres" and var["JYESANSWER"]: util.RESOP(var).changeStatusToCancel(rutil.getReseName(var)) var["JCLOSE_DIALOG"] = True rutil.refreshPanel(var)
def _addPayment(var): ROP = util.RESOP(var) r = util.newResAddPayment() quantity = var["quantity"] da = con.toDate(var["paymentdate"]) descr = var["descr"] price = con.toB(var["price"]) # price = toB(1.00) pricelist = con.toB(var["pricefromlist"]) total = con.toB(var["total"]) # total = toB(1.01) room = None guest = None rese = var["resename"] vat = var["vat"] serv = var["service"] if var[RLIST + "_lineset"]: room = var["roomid"] guest = var["guest_name"] if room == None: room = var["JDATELINE_LINE"] if guest == None: guest = util.RESFORM(var).findElem(rese).getCustomerName() r.setQuantity(quantity) r.setPrice(price) r.setPriceList(pricelist) r.setPriceTotal(total) r.setServDate(da) r.setDescription(descr) r.setService(serv) r.setGuestName(guest) r.setRoomName(room) if serv == None: r.setVat(vat) ROP.addResAddPayment(rese, r)
def run(self,var) : # double check (under semaphore) that reservation is not already changed to STAY resName = var["resename"] R = util.RESFORM(var) ROP = util.RESOP(var) CUST = util.CUSTOMERLIST(var) r = R.findElem(resName) if not var["isstay"] and util.resStatus(r) == 1 : var["JERROR_MESSAGE"] = M("ALREADYCHECKEDINMESS") var["JMESSAGE_TITLE"] = M("ALREADYCHECKEDINTITLE") return a = cutil.createArrayList() for custo in var["JLIST_MAP"][CHECKINLIST] : if cutil.allEmpty(custo,cust.getCustFieldIdWithout()) : continue cid = custo["name"] if cid == None : c = cust.newCustomer(var) else : c = CUST.findElem(cid) cust.customerDataFromVar(c,custo) if cid == None : cid = CUST.addElem(c).getName() else : CUST.changeElem(c) cust.saveDefaCustomer(custo) rGuest = util.newResGuest(var) rGuest.setGuestName(cid) rid = custo["roomid"] rGuest.setRoomName(rid) a.add(rGuest) ROP.setResGuestList(resName,a) if var["isstay"] : cutil.JOURNAL(var).addJournalElem(util.JOURNAL_CHANGELISTOFGUEST,None,resName) var["JCLOSE_DIALOG"] = True
def elemcustomeraction(action, var): cutil.printVar("elemcustomeraction", action, var) R = util.CUSTOMERLIST(var) if action == "before" and var["JCRUD_DIALOG"] == "crud_add": cust.setDefaCustomer(var) if action == "crud_add" and not var["JCRUD_AFTERCONF"]: if _duplicatedCustomerName(var): return var["JYESNO_MESSAGE"] = M("ADDNEWCUSTOMERASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_add" and var["JCRUD_AFTERCONF"]: R.addElem(cust.customerFromVar(var)) cust.saveDefaCustomer(var) var["JCLOSE_DIALOG"] = True return if action == "crud_change" and not var["JCRUD_AFTERCONF"]: var["JYESNO_MESSAGE"] = M("CHANGECUSTOMERASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_change" and var["JCRUD_AFTERCONF"]: R.changeElem(cust.customerFromVar(var)) cust.saveDefaCustomer(var) var["JCLOSE_DIALOG"] = True if action == "crud_remove" and not var["JCRUD_AFTERCONF"]: l = util.RESOP(var).getReseForCustomer(var["name"]) l1 = util.RESOP(var).getReseForGuest(var["name"]) l2 = util.RESOP(var).getReseForPayer(var["name"]) if len(l) > 0 or len(l1) > 0 or len(l2) > 0: var["JERROR_MESSAGE"] = M("cannotremovecustomer").format( len(l), len(l1), len(l2)) return var["JYESNO_MESSAGE"] = M("REMOVECUSTOMERASK") var["JMESSAGE_TITLE"] = "" return if action == "crud_remove" and var["JCRUD_AFTERCONF"]: R.deleteElem(cust.customerFromVar(var)) var["JCLOSE_DIALOG"] = True
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 __init__(self, var, rese): """Constructor : create a list of services already billed Args: var : rese : reservation name """ bli = util.RESOP(var).findBillsForReservation(rese) self._se = Set() for b in bli: for l in b.getPayList(): self._se.add(con.toL(l))
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 elempricelistaction(action, var): cutil.printVar("elem price action", action, var) P = util.PRICELIST(var) if action == "before": _createPriceElemList(var) if var["JCRUD_DIALOG"] == "crud_remove": var["JSETATTR_CHECKLIST_prices_readonly"] = True var["JVALATTR_CHECKLIST_prices_readonly"] = "" return if action == "crud_add" and not var["JCRUD_AFTERCONF"]: if _duplicatedPriceList(var): return if _notValidPriceElemList(var): return var["JYESNO_MESSAGE"] = M("ADDNEWPRICELIST") var["JMESSAGE_TITLE"] = "" return if action == "crud_add" and var["JCRUD_AFTERCONF"]: pr = _createPriceList(var) P.addElem(pr) _savePriceElemList(var) var["JCLOSE_DIALOG"] = True return if action == "crud_change" and not var["JCRUD_AFTERCONF"]: if _notValidPriceElemList(var): return var["JYESNO_MESSAGE"] = M("MODIFYPRICELIST") var["JMESSAGE_TITLE"] = "" return if action == "crud_change" and var["JCRUD_AFTERCONF"]: pr = _createPriceList(var) P.changeElem(pr) _savePriceElemList(var) var["JCLOSE_DIALOG"] = True if action == "crud_remove" and not var["JCRUD_AFTERCONF"]: # getReseForPriceList l = util.RESOP(var).getReseForPriceList(var["name"]) if len(l) > 0: var["JERROR_MESSAGE"] = M("cannotremovepricelist").format(len(l)) return var["JYESNO_MESSAGE"] = M("REMOVEPRICELIST") var["JMESSAGE_TITLE"] = "" return if action == "crud_remove" and var["JCRUD_AFTERCONF"]: pr = _createPriceList(var) P.deleteElem(pr) var["JCLOSE_DIALOG"] = True
def _createX(var, rese_name, paymentmethod=None): print rese_name cu = cust.newCustomer(var) # cu.setGensymbol(True); cu = util.CUSTOMERLIST(var).addElem(cu) cust_name = cu.getName() print cust_name bli = util.RESOP(var).findBillsForReservation(rese_name) print bli for l in bli: print l assert len(bli) == 0 R = util.RESFORM(var).findElem(rese_name) li = [] for l in R.getResDetail(): li.append(l.getId()) print li assert len(li) > 0 xml = rpdf.buildXMLForStay(var, rese_name, cust_name, li) print xml S = cbill.HOTELBILLSAVE(var, rese_name, cust_name, xml, paymentmethod) res = S.doTransRes() print res if not res: print var["JERROR_MESSAGE"] assert res bli = util.RESOP(var).findBillsForReservation(rese_name) assert len(bli) == 1 print S.getB().getName() print S.getTotal() xml = cbill.getXMLForBill(var, S.getB().getName()) print xml assert xml != None return (S.getB(), xml)
def _createList(var): resName = var["resename"] ROOM = util.ROOMLIST(var) ROP = util.RESOP(var) CU = util.CUSTOMERLIST(var) list = [] gList = ROP.getResGuestList(resName) for g in gList: room = g.getRoomName() guest = g.getGuestName() rdescr = ROOM.findElem(room).getDescription() c = CU.findElem(guest) map = {"roomid": room, "roomdesc": rdescr} cust.toCustomerVar(map, c, "guest_") list.append(map) var["JLIST_MAP"] = {RLIST: list}
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 _listOfPayments(var): rese = rutil.getReseName(var) li = util.RESOP(var).getResAddPaymentList(rese) seq = [] sum = util.SUMBDECIMAL() CU = util.CUSTOMERLIST(var) for e in li: g = e.getGuestName() customer = CU.findElem(g) assert customer != None map = { "roomid": e.getRoomName(), "total": e.getPriceTotal(), "price": e.getPrice(), "servdescr": e.getDescription(), "quantity": e.getQuantity() } cust.toCustomerVar(map, customer, "guest_") seq.append(map) sum.add(e.getPriceTotal()) cutil.setJMapList(var, "paymentlist", seq) cutil.setFooter(var, "paymentlist", "total", sum.sum)
def _ListOfBills(var): rese = rutil.getReseName(var) assert rese != None bList = util.RESOP(var).findBillsForReservation(rese) seq = [] pli = rutil.getPayments(var) sumtotal = 0.0 footerpayments = 0.0 sumsell = 0.0 CU = util.CUSTOMERLIST(var) for b in bList: C = cbill.BILLCALC(var, b) C.calc() bName = b.getName() assert bName != None payer = b.getPayer() customer = CU.findElem(payer) assert customer != None da = b.getIssueDate() tot = C.getTotal() sell = C.getCharge() paysum = C.getPayment() sumtotal = cutil.addDecimal(sumtotal, tot) footerpayments = cutil.addDecimal(footerpayments, paysum) sumsell = cutil.addDecimal(sumsell, sell) ma = { "billname": bName, "billtotal": tot, "payments": paysum, "sell": sell } cust.toCustomerVar(ma, customer, "payer_") seq.append(ma) cutil.setJMapList(var, BILLIST, seq) cutil.setFooter(var, BILLIST, "billtotal", sumtotal) cutil.setFooter(var, BILLIST, "payments", footerpayments) cutil.setFooter(var, BILLIST, "sell", sumsell)
def reservationaction(action, var): cutil.printVar("reservation", action, var) if action == "before": list = _getList(var) var["JDATELINE_MAP"] = {"reservation": {"linedef": list}} if action == "datelineaction": (room, day) = rutil.getRoomDateFromVar(var) R = util.RESOP(var) RO = util.ROOMLIST(var) RFORM = util.RESFORM(var) services = RO.getRoomServices(room) if len(services) == 0: var['JERROR_MESSAGE'] = "@noserviceassigned" var['JMESSAGE_TITLE'] = "@incompleteconfiguration" return li = util.getServicesForRoom(var, room) if li == None: var['JERROR_MESSAGE'] = "@nopricelistforthisservice" var['JMESSAGE_TITLE'] = "@incompleteconfiguration" return res = rutil.getReservForDay(var, room, day) if res.isEmpty(): diallaunch.newreservation(var, room, day, 1, 1) else: ares = res.get(0) resid = ares.getResId() (room, day) = rutil.getRoomDateFromVar(var) diallaunch.reservationdialogaction(var, resid, room, day) if action == "datelinevalues": seq = var["JDATELINE_QUERYLIST"] vals = [] query = cutil.createArrayList() R = util.RESOP(var) RFORM = util.RESFORM(var) for s in seq: dfrom = s["JDATELINE_FROM"] dto = s["JDATELINE_TO"] name = s["name"] q = rutil.createResQueryElem(name, dfrom, dto) query.add(q) resList = R.queryReservation(query) vals = [] dl = datetime.timedelta(1) for s in seq: dfrom = s["JDATELINE_FROM"] dto = s["JDATELINE_TO"] name = s["name"] dt = dfrom prevres = None prevmap = None while dt <= dto: resid = None for ans in resList: aname = ans.getRoomName() dres = ans.getResDate() if con.eqDate(dt, dres) and aname == name: resid = ans.getResId() break if resid != None: if resid == prevres: prevmap["colspan"] = prevmap["colspan"] + 1 else: if prevmap: vals.append(prevmap) rform = RFORM.findElem(resid) sta = resstat.getResStatus(var, rform) form = "resroom" map = { "name": name, "datecol": dt, "colspan": 1, "form": form, "0": _resInfo(var, resid), "1": resstat.COLORS[sta], "hint": "@" + resstat.getStatusS(sta) } prevmap = map prevres = resid dt = dt + dl if prevmap: vals.append(prevmap) var["JDATELINE_MAP"] = {"reservation": {"values": vals}}
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 dialogaction(action, var): cutil.printVar("stay calculation", action, var) if action == "guestdetail": cust.showCustomerDetails(var, var["guest_name"]) if action == "before": resename = var["JUPDIALOG_START"] var["resename"] = resename cutil.setCopy(var, ["resename", "balanceat", "status"]) R = util.RESFORM(var).findElem(resename) assert R != None (sta, ROZL) = resstat.getResStatusRese(var, R) var["status"] = M(resstat.getStatusS(sta)) var["balanceat"] = ROZL.forday seq = [] st = _toS("servicesatday", ROZL) _addElem(seq, st, ROZL.sumcost, None) if ROZL.sumcostafter != None: after = ROZL.sumcostafter else: after = 0 _addElem(seq, _toS("servicesafter", ROZL), after, None) blist = util.RESOP(var).findBillsForReservation(resename) V = vat.CalcVat() for b in blist: bname = b.getName() CC = cbill.BILLCALC(var, b) CC.calc() s = M("billinfo").format(bname, con.toS(CC.getIssueDate())) _addElem(seq, s, CC.getCharge(), None) for l in CC.getLines(): V.addVatLineC(dutil.getGrossValueLine(l), dutil.getNettoValueLine(l), dutil.getTaxValueLine(l), dutil.getVatLine(l)) vl = V.calculateVat() for v in vl: (netto, vatt, gross, level, vats) = v s = M("vatvalueinfo").format(vats) _addElem(seq, s, vatt, None) _addElem(seq, M("paymentsum"), None, ROZL.sumpay) if ROZL.advancepayment != None: _addElem(seq, M("advanceincluded"), None, ROZL.advancepayment) st = _toS("balanceatf", ROZL) _addElem(seq, st, *calcBalance(ROZL.sumcost, ROZL.sumpay)) cutil.setJMapList(var, LISTID, seq) L1 = cbill.BILLPOSADD(var, COSTS) for r in ROZL.costlist: idp = r.getId() L1.addMa({}, r, idp) L1.close() L2 = cbill.BILLPOSADD(var, FUTURECOSTS) for r in ROZL.costlistafter: idp = r.getId() L2.addMa({}, r, idp) L2.close()
def changeReservation(self, resename): if self.var[self.__confid]: util.RESOP(self.var).changeStatusToReserv(resename) else: util.RESOP(self.var).changeStatusToNotConfirmed(resename)
def showstay(action, var): cutil.printVar("show stay", action, var) if action == "before": rbefore.setvarBefore(var) # after _listOfPayments(var) _ListOfBills(var) _setChangedFalse(var) PA = reseparam.RESPARAM(rutil.getReseName(var)) PA.setParam(var) PA.copyParam(var) if var["billlistwaschanged"]: _setChangedFalse(var) _ListOfBills(var) if action == "crud_readlist" and var["JLIST_NAME"] == BILLIST: _ListOfBills(var) if action == "afterbill" and var["JUPDIALOG_BUTTON"] == "acceptdocument": _ListOfBills(var) if action == "payerdetail": cust.showCustomerDetails(var, var["payer_name"]) if action == "changetoreserv" and var["JYESANSWER"]: res = getReservForDay(var) resname = res[0].getResId() R = util.RESOP(var) R.changeStatusToReserv(resname) a = cutil.createArrayList() R.setResGuestList(resname, a) var["JCLOSE_DIALOG"] = True var["JREFRESH_DATELINE_reservation"] = "" if action == "addpayment": var["JUP_DIALOG"] = "?addpayment.xml" var["JAFTERDIALOG_ACTION"] = "afteraddpayment" if action == "paymentslist": assert var["billname"] != None var["JUP_DIALOG"] = "?listofpayment.xml" var["JAFTERDIALOG_ACTION"] = "afterlistpayments" var["JUPDIALOG_START"] = var["billname"] if action == "printbill" and var[BILLIST + "_lineset"]: var["JUP_DIALOG"] = "?billprint.xml" var["JUPDIALOG_START"] = var["billname"] if action == "afteraddpayment" and var["JUPDIALOG_BUTTON"] == "addpayment": _listOfPayments(var) if action == "guestdesc": var["JAFTERDIALOG_ACTION"] = "acceptdetails" cust.showCustomerDetailstoActive(var, var[CUST + "name"]) if action == "acceptdetails" and var["JUPDIALOG_BUTTON"] == "acceptask": xml = var["JUPDIALOG_RES"] util.xmlToVar(var, xml, cust.getCustFieldIdAll(), CUST) cutil.setCopy(var, cust.getCustFieldIdAll(), None, CUST) name = var[CUST + "name"] resename = rutil.getReseName(var) util.RESFORM(var).changeCustName(resename, name) if action == "guestdetail": cust.showCustomerDetails(var, var["guest_name"]) if action == "listpdf" and var[BILLIST + "_lineset"]: var["JUP_DIALOG"] = "?pdflist.xml" var["JUPDIALOG_START"] = var["billname"]
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 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 getResStatusRese(var, r, room=None, today=None): """ Calculates and returns the status of the reservation Args: var r ReservationForm room room symbol today Returns: 0 reservation scheduled 1 reservation confirmed 2 reservation advance paid 3 reservation advanced expired 4 customer not arrived 5 vacant not paid 6 vacant paid 7 vacant excess payment 8 occupied, not paid 9 occupied, advance paid 10 occupied paid 11 occupied excess paid 12 canceled """ S = RESSTATUS() if today == None: today = con.today() S.forday = today # print today sym = r.getName() re = util.resStatus(r) if re == 0: return (12, S) li = rutil.getPayments(var, sym) for l in li: if room != None and room != l.getRoomName(): continue (S.arrival, S.departure) = rutil.calculateDates(S.arrival, S.departure, l) if today < S.arrival and re != 1: advance = r.getAdvanceDeposit() resstatusset = False if advance == None: resstatusset = True else: term = con.toJDate(r.getTermOfAdvanceDeposit()) if term != None: if today < term: resstatusset = True if resstatusset: if re == 2: return (1, S) if re == 3: return (0, S) # internal error, not expected # TO DO return (0, S) if r.getAdvancePayment() == None: return (3, S) if r.getAdvancePayment() < r.getAdvanceDeposit(): return (3, S) return (2, S) if re != 1: return (4, S) sta = None # 0 - not paid # 1 - paid # 2 - excess paid # 3 - advance paid for l in li: add = False re = con.toJDate(l.getResDate()) if util.isRoomService(l.getServiceType()) and re < today: add = True if not util.isRoomService(l.getServiceType()) and re <= today: add = True # print sym,add,l.getPriceTotal() if add: S.sumcost = con.addDecimal( S.sumcost, con.BigDecimalToDecimal(l.getPriceTotal())) S.costlist.append(l) else: if S.sumcostafter == None: S.sumcostafter = 0.0 S.sumcostafter = con.addDecimal( S.sumcostafter, con.BigDecimalToDecimal(l.getPriceTotal())) S.costlistafter.append(l) S.advancepayment = con.BigDecimalToDecimal(r.getAdvancePayment()) if S.advancepayment != None and S.advancepayment >= S.sumcost: sta = 3 else: bli = util.RESOP(var).findBillsForReservation(sym) for b in bli: (suma, advanced) = rutil.countPaymentsA(var, b.getName()) S.sumpay = con.addDecimal(S.sumpay, suma) S.advancepaymentused = con.addDecimal(S.advancepaymentused, advanced) S.sumpay = con.addDecimal(S.sumpay, S.advancepayment) # print sym,S.sumcost,S.sumpay if S.sumcost == S.sumpay and S.sumcost > 0.0: sta = 1 elif S.sumcost > S.sumpay: sta = 0 elif S.sumcost == 0 and S.sumpay == 0: sta = 0 else: sta = 2 S.advancepaymentleft = con.minusDecimal(S.advancepayment, S.advancepaymentused) if today <= S.departure: if sta == 0: return (8, S) if sta == 3: return (9, S) if sta == 2: return (11, S) return (10, S) if sta == 0: return (5, S) if sta == 3: return (6, S) if sta == 2: return (7, S) return (6, S)