コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
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)
コード例 #4
0
   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   
コード例 #5
0
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
コード例 #6
0
 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)
コード例 #7
0
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)
コード例 #8
0
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
コード例 #9
0
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)
コード例 #10
0
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)
コード例 #11
0
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)
コード例 #12
0
 def setResNameToVar(self, resename):
     reservation = util.RESFORM(self.var).findElem(resename)
     self.setReservationToVar(reservation)
コード例 #13
0
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)
コード例 #14
0
 def setValReseName(self, resename):
     self.__setValReservation(util.RESFORM(self.var).findElem(resename))
コード例 #15
0
def _resStatus(var) :
     resName = var["resename"]
     r = util.RESFORM(var).findElem(resName)
     return util.resStatus(resName)  
コード例 #16
0
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
コード例 #17
0
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" 
コード例 #18
0
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"]
コード例 #19
0
def _resInfo(var, resid):
    res = util.RESFORM(var).findElem(resid)
    assert res != None
    return rutil.rescustInfo(var, res)
コード例 #20
0
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
コード例 #21
0
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}}
コード例 #22
0
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
コード例 #23
0
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())        
コード例 #24
0
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()
コード例 #25
0
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)

         
コード例 #26
0
   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"