def dialogaction(action, var): cutil.printVar("test39", action, var) if action == "test1": rese = var["rese"] r = util.RESFORM(var).findElem(rese) RR = resstat.getResStatusR(var, r) print RR print RR.arrival, RR.departure print RR.sumcost, RR.sumpay assert 400.00 == RR.sumcost if action == "test2": rese = var["rese"] r = util.RESFORM(var).findElem(rese) RR = resstat.getResStatusR(var, r) print RR print RR.arrival, RR.departure print RR.sumcost, RR.sumpay print RR.advancepaymentused assert 400.00 == RR.sumcost assert 300.00 == RR.sumpay assert 90.0 == RR.advancepaymentused var["OK"] = True
def dialogaction(action,var): cutil.printVar("testbill",action,var) if action == "testbill" : bname = var["billno"] print bname bb = util.BILLLIST(var).findElem(bname) resname = bb.getReseName() print resname RE = util.RESFORM(var).findElem(resname) print RE rlist = RE.getResDetail() for r in rlist: print r.getId() print type(r.getId()) b = util.newBill(var) # b.setGensymbol(True); b.setPayer(bb.getPayer()); b.setReseName(resname) dat = datetime.date(2010,1,2) b.setIssueDate(con.toDate(dat)) for r in rlist: b.getPayList().add(r.getId()); b1 = util.BILLLIST(var).addElem(b) assert b1 != None print b1.getName() var["OK"] = True
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 dialogaction(action, var): cutil.printVar("test44", action, var) if action == "test1": sym = var["resename"] xml = rpdf.buildXMLReservation(var, sym) print xml txt = pdfutil.xsltHtml("xslt/resconfirmation.xslt", xml) print txt var["OK"] = True if action == "test2": sym = var["resename"] R = util.RESFORM(var).findElem(sym) assert R != None custname = R.getCustomerName() l = R.getResDetail() seq = [l[0].getId(), l[1].getId()] print seq xml = rpdf.buildXMLForStay(var, sym, custname, seq) print xml assert xml != None (ma, li) = xmlutil.toMap(xml) print ma, li k = ma["total"] assert 200 == k var["OK"] = True
def modifyAdvaData(self, resename=None): if resename == None: resename = rutil.getReseName(self.var) R = util.RESFORM(self.var) reservation = R.findElem(resename) self.setAdvaData(reservation) R.changeElem(reservation) cutil.JOURNAL(self.var).addJournalElem( util.JOURNAL_CHANGEADVANCEPAYMENT, None, resename)
def _getCust(var, ma): cust = None rese = ma["resename"] if ma.has_key("custname"): cust = ma["custname"] rform = util.RESFORM(var).findElem(rese) assert rform != None if cust == None: cust = rform.getCustomerName() C = util.CUSTOMERLIST(var).findElem(cust) assert C != None return (C, rform)
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 _addPayment(var, billName, total, paymentmethod): r = util.RESFORM(var).findElem(rutil.getReseName(var)) RR = resstat.getResStatusR(var, r) li = [] if RR.advancepaymentleft > 0: payment = min(total, RR.advancepaymentleft) li.append((payment, True)) total = con.minusDecimal(total, payment) if total > 0: li.append((total, False)) for l in li: p = util.newBillPayment() p.setBillName(billName) p.setPaymentMethod(paymentmethod) p.setDateOfPayment(cutil.toDate(cutil.today())) p.setPaymentTotal(con.toB(l[0])) if (l[1]): p.setAdvancepayment(True) util.PAYMENTOP(var).addPaymentForBill(billName, p)
def dialogaction(action, var): cutil.printVar("reservation", action, var) if action == "before": R = util.RESFORM(var) C = util.CUSTOMERLIST(var) seq = R.getList() list = [] for s in seq: sta = resstat.getResStatus(var, s) statuS = resstat.getStatusS(sta) (arrival, departure, roomname, rate, nog) = rutil.getReseDate(var, s) ma = { "name": s.getName(), "resdate": s.getCreationDate(), "checkin": arrival, "checkout": departure, "roomname": roomname, "resestatus": M(statuS) } cu = C.findElem(s.getCustomerName()) cust.toCustomerVar(ma, cu, PREC, CULIST) list.append(ma) cutil.setJMapList(var, LIST, list) if action == "showrese": resename = var["name"] # (room,day) = rutil.getRoomDateFromVar(var) diallaunch.reservationdialogaction(var, resename, var["roomname"], var["checkin"]) if action == "showmails": rename = var["name"] diallaunch.showlistofmail(var, rename)
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 setResNameToVar(self, resename): reservation = util.RESFORM(self.var).findElem(resename) self.setReservationToVar(reservation)
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 setValReseName(self, resename): self.__setValReservation(util.RESFORM(self.var).findElem(resename))
def _resStatus(var) : resName = var["resename"] r = util.RESFORM(var).findElem(resName) return util.resStatus(resName)
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 reseraction(action,var): cutil.printVar("reseraction",action,var) if action == "aftercheckin" : rutil.afterCheckIn(var) if action == "signalchange" and var["changeafterfocus"]: if var["changefield"] == "serviceperperson" : _setAfterPerPerson(var) if var["changefield"] == "roomservice" : if not _okServiceForRoom(var) : return _setAfterServiceName(var) _setAfterPriceList(var) if var["changefield"] == "roompricelist" : if not _okServiceForRoom(var) or not _okPriceList(var) : return _setAfterPriceList(var) if var["changefield"] == "advance_percent" : if not cutil.validatePercent(var,"advance_percent") : return _calculateAdvanceAmount(var,var["advance_total"]) if action=="before" : rbefore.setvarBefore(var) if not _newRese(var) : cutil.hideButton(var,"checkin",False) cust.enableCust(var,CUST,False) _setAfterPriceList(var) PA = reseparam.RESPARAM(rutil.getReseName(var)) PA.setParam(var) PA.copyParam(var) else : cutil.hideButton(var,"detailreservation",True) _setPriceAndService(var) _setAfterPriceList(var) _setAfterServiceName(var) _setAfterPerPerson(var) _createListOfDays(var,True) confirm.createC(var).setDefaToVar() reseparam.RESPARAM().copyParam(var) # -------------------- # customer # -------------------- if action == "acceptdetails" and (var["JUPDIALOG_BUTTON"] == "accept" or var["JUPDIALOG_BUTTON"] == "acceptask"): xml = var["JUPDIALOG_RES"] util.xmlToVar(var,xml,cust.getCustFieldIdAll(),CUST) cutil.setCopy(var,cust.getCustFieldIdAll(),None,CUST) if not _newRese(var) : name = var[CUST+"name"] resename = rutil.getReseName(var) util.RESFORM(var).changeCustName(resename,name) if action=="custdetails" : var["JAFTERDIALOG_ACTION"] = "acceptdetails" if _newRese(var) : cust.customerDetailsActive(var,CUST) else : cust.showCustomerDetailstoActive(var,var[CUST+"name"]) # -------------------- # -- add reservation # -------------------- if action == "checkaval" : if not _okServiceForRoom(var) or not _okPriceList(var) : return _checkRese(var) reseparam.RESPARAM().copyParam(var) # ------------------ # reservation # ------------------ if action == "askforreservation" : if not _checkCurrentRese(var) : return PA = reseparam.RESPARAM() diff = PA.diffP(var) if diff != None : xml = PA.diffAsXML(var,diff) var["JUPDIALOG_START"] = xml var["JUP_DIALOG"]="?reserchange.xml" var["JAFTERDIALOG_ACTION"] = "continuereservation" return var["JYESNO_MESSAGE"] = M("MAKERESERVATIONASK") var["JMESSAGE_TITLE"] = "" var["JAFTERDIALOG_ACTION"] = "makereservation" if (action == "makereservation" and var["JYESANSWER"]) or (action == "continuereservation" and var["JUPDIALOG_BUTTON"] == "accept") : TRAN = MAKERESE(var) TRAN.doTrans() # ----------------------- # additional reservation # ----------------------- if action == "morereservation" : l = var["JLIST_MAP"][RESLIST] xml = xmlutil.toXML({},l) var["JUPDIALOG_START"] = xml var["JUP_DIALOG"]="?searchrooms.xml" var["JAFTERDIALOG_ACTION"] = "morereservationaccept" if action == "morereservationaccept" and var["JUPDIALOG_BUTTON"] == "toresrese" : arese = var["resename"] var["JUPDIALOG_START"] = var["JUPDIALOG_RES"] rbefore.setvarBefore(var) # restore reservation name var["resename"] = arese _setAfterPriceList(var) _checkRese(var,False) reseparam.RESPARAM().copyParam(var) # ------------------------ # modify detail reservation # ------------------------ if action == "detailreservationaccept" and var["JUPDIALOG_BUTTON"] == "accept" : xml = var["JUPDIALOG_RES"] (rmap,li) = xmlutil.toMapFiltrDialL(xml,var["J_DIALOGNAME"],RESLIST) RELIST.initsum() for l in li : RELIST.addsum(l) RELIST.removePricesFromMap(l) l["avail"] = True RELIST.tofooter(var) cutil.setJMapList(var,RESLIST,li) if action == "detailreservation" : l = var["JLIST_MAP"][RESLIST] xml = xmlutil.toXML({},l) var["JUPDIALOG_START"] = xml var["JUP_DIALOG"]="?modifreservation.xml" var["JAFTERDIALOG_ACTION"] = "detailreservationaccept"
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 _resInfo(var, resid): res = util.RESFORM(var).findElem(resid) assert res != None return rutil.rescustInfo(var, res)
def dialogaction(action, var): cutil.printVar("testresemail", action, var) if action == "createxml": R = util.ROOMLIST(var) C = util.CUSTOMERLIST(var) RES = util.RESFORM(var) E = util.newHotelRoom() E.setName("R01") R.addElem(E) CC = cust.newCustomer(var) CC.setDescription("I'm the customer") CC = C.addElem(CC) print CC.getName() dt = datetime.date(2014, 1, 2) dl = datetime.timedelta(1) # dto = datetime.date(2010,1,5) # q = rutil.createResQueryElem("R01",dfrom,dto) # print q re = util.newResForm(var) re.setCustomerName(CC.getName()) for i in range(10): r = util.newResAddPayment() r.setNoP(2) r.setPrice(con.toB(100.0)) r.setPriceTotal(con.toB(100.0)) r.setPriceList(con.toB(200.0)) r.setRoomName("R01") r.setVat("7%") r.setResDate(con.toDate(dt)) dt = dt + dl re.getResDetail().add(r) re = RES.addElem(re) print re.getName() s = rpdf.buildXMLReservation(var, re.getName()) print s tt = pdfutil.xsltHtmlS("mailxslt/reseconfirmation.xslt", s) print tt H = hmail.HotelMail(var) # H. def sendMail(self,mtype,resname,custname,subject,content,to,froma,attachList=None,text=True): hh = H.sendMail(0, re.getName(), CC.getName(), "Reservation", tt, "*****@*****.**", "hotel") assert hh != None var["OK"] = True if action == "listxml": H = hmail.HotelMail(var) li = H.getList() assert len(li) == 1 for l in li: print l print l.getName() print l.getReseName() var["OK"] = True if action == "testfailed": H = hmail.HotelMail(var) li = H.getList() h = li[0] # should fail because to space in 'from' address hh = H.sendMail(0, h.getReseName(), h.getCustomerName(), "Reservation", "Hi Hi - good joke", "*****@*****.**", "Java hotel") assert hh != None mailName = hh.getName() print mailName M = H.getCMail(mailName) assert M != None res = M.getSendResult() print res assert res != None var["OK"] = True
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 dialogaction(action, var): cutil.printVar("test11", action, var) if action == "test1": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 1) re = resstat.getResStatus(var, r, None, da) print re assert re == 1 if action == "test2": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 1) re = resstat.getResStatus(var, r, None, da) print re assert re == 0 if action == "test3": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 1) re = resstat.getResStatus(var, r, None, da) print re assert re == 3 if action == "test4": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 1) re = resstat.getResStatus(var, r, None, da) print re assert re == 1 da = datetime.date(2013, 4, 6) re = resstat.getResStatus(var, r, None, da) print re assert re == 3 if action == "test5": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 5) re = resstat.getResStatus(var, r, None, da) print re assert re == 2 if action == "test6": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 10) re = resstat.getResStatus(var, r, None, da) print re assert re == 4 if action == "test7": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 10) re = resstat.getResStatus(var, r, None, da) print re assert re == 8 da = datetime.date(2013, 4, 11) re = resstat.getResStatus(var, r, None, da) print re assert re == 5 if action == "test8": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 11) re = resstat.getResStatus(var, r, None, da) print re assert re == 5 if action == "test9": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 11) re = resstat.getResStatus(var, r, None, da) print re assert re == 6 if action == "test10": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 11) re = resstat.getResStatus(var, r, None, da) print re assert re == 7 if action == "test11": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 11) re = resstat.getResStatus(var, r, None, da) print re assert re == 5 if action == "test12": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 11) re = resstat.getResStatus(var, r, None, da) print re assert re == 11 da = datetime.date(2013, 4, 12) re = resstat.getResStatus(var, r, None, da) print re assert re == 11 da = datetime.date(2013, 4, 13) re = resstat.getResStatus(var, r, None, da) print re assert re == 8 da = datetime.date(2013, 4, 14) re = resstat.getResStatus(var, r, None, da) print re assert re == 5 if action == "test13": rese = var["rese"] r = util.RESFORM(var).findElem(rese) da = datetime.date(2013, 4, 14) re = resstat.getResStatus(var, r, None, da) print re assert re == 6 var["OK"] = True
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 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 doaction(action,var) : cutil.printVar("create bill",action,var) if action == "before" : _createPosList(var) # payer rese = rutil.getReseName(var) R = util.RESFORM(var) r = R.findElem(rese) payername = r.getCustomerName() cust.setCustData(var,payername,PAY) var["paynow"] = True cutil.setCopy(var,["paynow","paymethod",DOCTYPE]) var["paymethod"] = util.HOTELDEFADATA().getDataH(3) var[DOCTYPE] = util.HOTELDEFADATA().getDataH(5) RR = resstat.getResStatusR(var,r) var["advance_pay_left"] = RR.advancepaymentleft var["advance_pay"] = RR.advancepayment cutil.setCopy(var,["advance_pay","advance_pay_left"]) if action == "guestdetail" : cust.showCustomerDetails(var,var["guest_name"]) if action == "columnchangeaction" : total = var["total"] footerf = var["JFOOTER_billlist_total"] if var["add"] : footerf = cutil.addDecimal(footerf,total) else : footerf = cutil.minusDecimal(footerf,total) cutil.setFooter(var,"billlist","total",footerf) if action == "accept" : pli = [] for m in var["JLIST_MAP"][NOPAID] : if m["add"] : pli.append(m["idp"]) if len(pli) == 0 : var["JERROR_MESSAGE"] = "@nothingischecked" return if var["paynow"] : if cutil.checkEmpty(var,["paymethod"]): return if not var["paynow"] : if cutil.checkEmpty(var,["paymethod","paymentdate"]): return cust.saveCustomerData(var,var["payer_name"],PAY) xml = rpdf.buildXMLForStay(var,rutil.getReseName(var),var["payer_name"],pli) diallaunch.displayDocument(var,xml) if action == "acceptdocument" and var["JUPDIALOG_BUTTON"] == "accept" : util.HOTELDEFADATA().putDataH(3,var["paymethod"]) util.HOTELDEFADATA().putDataH(5,var[DOCTYPE]) xml = var["JUPDIALOG_RES"] H = HOTELBILLSAVE(var,xml) if H.doTransRes() : var["JCLOSE_DIALOG"] = True if action == "payerdetails" : var["JAFTERDIALOG_ACTION"] = "acceptdetails" cust.customerDetailsActive(var,PAY) if action == "acceptdetails" and var["JUPDIALOG_BUTTON"] == "accept" : xml = var["JUPDIALOG_RES"] util.xmlToVar(var,xml,CLIST,PAY) cutil.setCopy(var,CLIST,None,PAY)
def run(self,var) : # validate (under transaction !) if not _checkAvailibity(var) : return A = advarese.createAdvaRese(var) if not A.validate() : return # customer firstly service = var["roomservice"] pricelist = var["roompricelist"] D.putDataH(30,service) D.putDataH(31,pricelist) custo = cust.customerFromVar(var,CUST) R = util.CUSTOMERLIST(var) name = var["cust_name"] if not cutil.emptyS(name) : custo.setName(name) R.changeElem(custo) else : # custo.setGensymbol(True); name = R.addElem(custo).getName() cust.saveDefaCustomer(var,CUST) # --- customer added resename = rutil.getReseName(var) reservation = util.newResForm(var) if resename : reservation.setName(resename) # else : reservation.setGensymbol(True); reservation.setCustomerName(name) # advance A = advarese.createAdvaRese(var) A.setAdvaData(reservation) # -- service = var["roomservice"] nop = var["nop"] reselist = reservation.getResDetail() rlist = var["JLIST_MAP"][RESLIST] for re in rlist : (listprice,listpricechild,listpriceextra) = rutil.getPriceList(var,re["rlist_roompricelist"],re["rlist_roomservice"]) r = util.newResAddPayment() r.setRoomName(re["resroomname"]) r.setService(re["rlist_roomservice"]) r.setResDate(con.toDate(re["resday"])) r.setPerperson(re["rlist_serviceperperson"]) r.setPriceListName(re["rlist_roompricelist"]) r.setNoP(re["rline_nop"]) r.setPrice(con.toB(re["rlist_priceperson"])) r.setPriceList(listprice) util.setIntField(re,"rlist_noc",lambda v : r.setNoChildren(v)) r.setPriceChildren(con.toB(re["rlist_pricechildren"])) r.setPriceListChildren(listpricechild) util.setIntField(re,"rlist_noe",lambda v : r.setNoExtraBeds(v)) r.setPriceExtraBeds(con.toB(re["rlist_priceextra"])) r.setPriceListExtraBeds(listpriceextra) r.setPriceTotal(con.toB(re["rlist_pricetotal"])) reselist.add(r) RFORM = util.RESFORM(var) if resename : RFORM.changeElem(reservation) else : resename = RFORM.addElem(reservation).getName() reseparam.RESPARAM(resename).saveParam(var) # confirmed/not confirmed confirm.createC(var).changeReservation(resename) var["JCLOSE_DIALOG"] = True var["JREFRESH_DATELINE_reservation"] = "" var["JUPDIALOG_START"] = resename var["JUP_DIALOG"]="?sentconfirmationquestion.xml"