def _createListOfDays(var,new): rData = _createResData(var,new) if rData == None : return None cutil.setJMapList(var,RESLIST,rData[0]) cutil.setFooter(var,RESLIST,"rlist_pricetotal",rData[1]) _calculateAdvanceAmount(var,rData[1]) _calculatePaymentBy(var,rData[0]) return rData[2]
def dialogaction(action, var): cutil.printVar("list footer", action, var) if action == "before": seq = [] sum = 0 for i in range(1, 100): ma = {"id": i, "number": 45678.99} seq.append(ma) sum = sum + ma["number"] cutil.setJMapList(var, "list", seq) cutil.setFooter(var, "list", "number", sum)
def dialogaction(action,var) : cutil.printVar("list footer",action,var) if action == "before" : seq = [] sum = 0 for i in range(1,100) : ma = {"id":i,"number" : 45678.99} seq.append(ma) sum = sum + ma["number"] cutil.setJMapList(var,"list",seq) cutil.setFooter(var,"list","number",sum)
def _createList(var,billName) : pList = PAYMENTOP(var).getPaymentsForBill(billName) suma = 0.0 li = [] for p in pList : id = p.getId() total = p.getPaymentTotal() date = p.getDateOfPayment() method = p.getPaymentMethod() suma = con.addDecimal(suma,con.BigDecimalToDecimal(total)) ma = { "id" : id, "paymethod" : method, "paymentdate" : date, "paymenttotal" : total } li.append(ma) cutil.setJMapList(var,PAYLIST,li) cutil.setFooter(var,PAYLIST,"paymenttotal",suma)
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 _createList(var, billName): pList = PAYMENTOP(var).getPaymentsForBill(billName) suma = 0.0 li = [] for p in pList: id = p.getId() total = p.getPaymentTotal() date = p.getDateOfPayment() method = p.getPaymentMethod() suma = con.addDecimal(suma, con.BigDecimalToDecimal(total)) ma = { "id": id, "paymethod": method, "paymentdate": date, "paymenttotal": total } li.append(ma) cutil.setJMapList(var, PAYLIST, li) cutil.setFooter(var, PAYLIST, "paymenttotal", suma)
def dialogaction(action, var): cutil.printVar("show doc", action, var) if action == "before": xml = var["JUPDIALOG_START"] okonly = var["JUPDIALOG_STARTPAR"] == "1" if okonly: cutil.hideButton(var, ["accept", "resign"]) cutil.hideButton(var, "ok", False) reseparam.setXMLParam(var, xml) (va, li) = xmlutil.toMap(xml) for l in LI: var[l] = va[l] cutil.setCopy(var, LI) cutil.setJMapList(var, LIST, li) cutil.setFooter(var, LIST, T, va[T]) if action == "accept" and var["JYESANSWER"]: var["JCLOSE_DIALOG"] = reseparam.getXMLParam(var)
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 _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 doaction(action, var): printVar("footeredit", action, var) if action == "before": # cutil.setJMapList(var,"list",[]) cutil.setAddEditMode(var, "list", ["leftk", "amount", "rightk"]) li = F.readList(var) leftf = None rightf = None for l in li: if l["leftk"]: leftf = cutil.addDecimal(leftf, l["amount"]) if l["rightk"]: rightf = cutil.addDecimal(rightf, l["amount"]) cutil.setFooter(var, "list", "leftk", leftf) cutil.setFooter(var, "list", "rightk", rightf) if action == "editlistrowaction": var["JLIST_EDIT_ACTIONOK_list"] = True if var["JLIST_EDIT_ACTION_list"] == "REMOVE": cutil.removeTextFooter(var, "list", "leftk", "amount") cutil.removeTextFooter(var, "list", "rightk", "amount") if action == "save": li = var["JLIST_MAP"]["list"] k = 0 for m in li: m["id"] = k k = k + 1 F.saveList(var) if action == "columnchangeaction" and ( (var["changefield"] == "leftk" or var["changefield"] == "rightk")): cutil.modifTextFooter(var, "list", var["changefield"], "amount") if action == "columnchangeaction" and var["changefield"] == "amount": cutil.modifTextDecimalFooter(var, "list", "leftk", "amount") cutil.modifTextDecimalFooter(var, "list", "rightk", "amount")
def doaction(action,var) : printVar("footeredit",action,var) if action == "before" : # cutil.setJMapList(var,"list",[]) cutil.setAddEditMode(var,"list",["leftk","amount","rightk"]) li = F.readList(var) leftf = None rightf = None for l in li : if l["leftk"] : leftf = cutil.addDecimal(leftf,l["amount"]) if l["rightk"] : rightf = cutil.addDecimal(rightf,l["amount"]) cutil.setFooter(var,"list","leftk",leftf) cutil.setFooter(var,"list","rightk",rightf) if action == "editlistrowaction" : var["JLIST_EDIT_ACTIONOK_list"] = True if var["JLIST_EDIT_ACTION_list"] == "REMOVE" : cutil.removeTextFooter(var,"list","leftk","amount") cutil.removeTextFooter(var,"list","rightk","amount") if action == "save" : li = var["JLIST_MAP"]["list"] k = 0 for m in li : m["id"] = k k = k + 1 F.saveList(var) if action == "columnchangeaction" and ((var["changefield"] == "leftk" or var["changefield"] == "rightk")) : cutil.modifTextFooter(var,"list",var["changefield"],"amount") if action == "columnchangeaction" and var["changefield"] == "amount" : cutil.modifTextDecimalFooter(var,"list","leftk","amount") cutil.modifTextDecimalFooter(var,"list","rightk","amount")
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 close(self) : cutil.setJMapList(self.var,self.liname,self.li) cutil.setFooter(self.var,self.liname,"total",self.sumf)
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 close(self): cutil.setJMapList(self.var, self.liname, self.li) cutil.setFooter(self.var, self.liname, "total", self.sumf)
def dialogaction(action,var) : cutil.printVar("modif reservation",action,var) if action == "before" : xml = var["JUPDIALOG_START"] (m,li) = xmlutil.toMap(xml) prevplist = None prevpservice = None (price,pricechild,priceextra) = (None, None,None) sum = util.SUMBDECIMAL() first = True for l in li : sum.add(l["rlist_pricetotal"]) plist = l["rlist_roompricelist"] pservice = l["rlist_roomservice"] if plist != None and pservice != None : if plist != prevplist or pservice != prevpservice : (price,pricechild,priceextra) = rutil.getPriceList(var,plist,pservice) (prevplist,prevpservice) = (plist,pservice) _setPriceL(l,"rlist_priceperson",price) _setPriceL(l,"rlist_pricechildren",pricechild) _setPriceL(l,"rlist_priceextra",priceextra) if first : print l print l["rlist_priceextra"],type(l["rlist_priceextra"]) SR.saveMap(var,l) first = False cutil.setJMapList(var, LI,li) # cutil.setAddEditMode(var,LI,ELIST) cutil.setChangeEditMode(var,LI,ELIST) cutil.setFooter(var,LI,"rlist_pricetotal",sum.sum) if action == "aftereditrow" : cutil.setEditRowOk(var,LI,False) if not RE.validate(var) : return RE.calculatePrice(var) cutil.setEditRowOk(var,LI) if action == "editlistrowaction" : if var["JLIST_EDIT_ACTION_" + LI] == "ADD" or var["JLIST_EDIT_ACTION_" + LI] == "ADDBEFORE" : if not var[LI + "_lineset"] : m = SR.getMap(var) print m for k in m.keys() : var[k] = m[k] var["rlist_pricetotal"] = 0 cutil.setEditListActionOk(var,LI) cutil.setCopy(var,ELIST,LI) RE.calculatePrice(var) if var["JLIST_EDIT_ACTION_" + LI] == "REMOVE" : var["JYESNO_MESSAGE"] = "@doyouwanttoremoveline" var["JAFTERDIALOG_ACTION"] = "removeyesno" if action == "removeyesno" : if var["JYESANSWER"] : cutil.setEditListActionOk(var,LI) RE.calculatePriceAterRemove(var) else : cutil.setEditListActionOk(var,LI,False) if action == "roomselected" and var["JUPDIALOG_BUTTON"] == "accept" : roomname = var["JUPDIALOG_RES"] if roomname != var["resroomname"] : var["resroomname"] = roomname cutil.setCopy(var,"resroomname",LI) # does not work select if action == "xxxcolumnchangeaction" : RE.setPrices(var) if action == "accept" : list = var["JLIST_MAP"][LI] if len(list) == 0 : rutil.setAlreadyReservedNotSelected(var) return # "resroomname","resday" res = rutil.checkReseAvailibity(var,list,None,"resday","resroomname") if res != None : return xml = xmlutil.toXML({},list) var["JCLOSE_DIALOG"] = xml
def tofooter(self, var): cutil.setFooter(var, self.li, self.total, self.sum)
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("modif reservation", action, var) if action == "before": xml = var["JUPDIALOG_START"] (m, li) = xmlutil.toMap(xml) prevplist = None prevpservice = None (price, pricechild, priceextra) = (None, None, None) sum = util.SUMBDECIMAL() first = True for l in li: sum.add(l["rlist_pricetotal"]) plist = l["rlist_roompricelist"] pservice = l["rlist_roomservice"] if plist != None and pservice != None: if plist != prevplist or pservice != prevpservice: (price, pricechild, priceextra) = rutil.getPriceList(var, plist, pservice) (prevplist, prevpservice) = (plist, pservice) _setPriceL(l, "rlist_priceperson", price) _setPriceL(l, "rlist_pricechildren", pricechild) _setPriceL(l, "rlist_priceextra", priceextra) if first: print l print l["rlist_priceextra"], type(l["rlist_priceextra"]) SR.saveMap(var, l) first = False cutil.setJMapList(var, LI, li) # cutil.setAddEditMode(var,LI,ELIST) cutil.setChangeEditMode(var, LI, ELIST) cutil.setFooter(var, LI, "rlist_pricetotal", sum.sum) if action == "aftereditrow": cutil.setEditRowOk(var, LI, False) if not RE.validate(var): return RE.calculatePrice(var) cutil.setEditRowOk(var, LI) if action == "editlistrowaction": if var["JLIST_EDIT_ACTION_" + LI] == "ADD" or var["JLIST_EDIT_ACTION_" + LI] == "ADDBEFORE": if not var[LI + "_lineset"]: m = SR.getMap(var) print m for k in m.keys(): var[k] = m[k] var["rlist_pricetotal"] = 0 cutil.setEditListActionOk(var, LI) cutil.setCopy(var, ELIST, LI) RE.calculatePrice(var) if var["JLIST_EDIT_ACTION_" + LI] == "REMOVE": var["JYESNO_MESSAGE"] = "@doyouwanttoremoveline" var["JAFTERDIALOG_ACTION"] = "removeyesno" if action == "removeyesno": if var["JYESANSWER"]: cutil.setEditListActionOk(var, LI) RE.calculatePriceAterRemove(var) else: cutil.setEditListActionOk(var, LI, False) if action == "roomselected" and var["JUPDIALOG_BUTTON"] == "accept": roomname = var["JUPDIALOG_RES"] if roomname != var["resroomname"]: var["resroomname"] = roomname cutil.setCopy(var, "resroomname", LI) # does not work select if action == "xxxcolumnchangeaction": RE.setPrices(var) if action == "accept": list = var["JLIST_MAP"][LI] if len(list) == 0: rutil.setAlreadyReservedNotSelected(var) return # "resroomname","resday" res = rutil.checkReseAvailibity(var, list, None, "resday", "resroomname") if res != None: return xml = xmlutil.toXML({}, list) var["JCLOSE_DIALOG"] = xml