Пример #1
0
def connect(attrmanager, bghtmanager, rfndmanager):
    attractionids = (attrmanager.getAttractions())[0]
    attractions = (attrmanager.getAttractions())[1]

    boughtdata = bghtmanager.get()
    if panjangArray(boughtdata) > 0:
        for x in boughtdata:
            idnumber = cariArray(
                x[2], attractionids
            )  # mencari idwahana yang terdaftar di pembelian pada array id wahana
            if idnumber != None:  # jika idnumber ditemukan
                (attractions[idnumber]).newSale(
                    int(x[3])
                )  # masukkan attraksi pada idnumber sebanyak data pembelian

    # Lakukan yang sama dengan refund hanya dibuat minus
    # karena pengurangan pembelian
    refunddata = rfndmanager.get()
    if panjangArray(refunddata) > 0:
        for x in refunddata:
            idnumber = cariArray(
                x[2], attractionids
            )  # mencari idwahana yang terdaftar di pembelian pada array id wahana
            if idnumber != None:  # jika idnumber ditemukan
                (attractions[idnumber]).newSale(
                    (-1) * int(x[3])
                )  # masukkan attraksi pada idnumber sebanyak data pembelian
Пример #2
0
    def modify(self, username, idwahana, amount, normal=False, factor=100):
        user = (self.__um).getUser(username)
        attr = (self.__am).getAttraction(idwahana)

        if user != None: # User ditemukan
            inventory = user.getTickets() #mendapatkan array of int yg berisi jumlah tiket
            ids = user.getTicketIDs()
            index = cariArray(idwahana, ids) # cariArray akan menghasil kan index (int), None jika tidak ditemukan
            if index != None: # Sudah ada
                inventory[index] += amount # menambahkan jumlah
            else: # belum ada
                ids = elAdd(ids, idwahana) #tambah baru
                inventory = elAdd(inventory, amount)

            if normal: # Penjelasan normal ada di komentar diatas fungsi
                attr.newSale(amount)
                price = int(round(factor*attr.getTicketPrice()/100))
                user.modifySaldo((-1)*amount*price)
            user.setTickets(inventory, ids)
Пример #3
0
 def getAttraction(self, idwahana):
     if self.findAttraction(idwahana):
         return cariArray(idwahana, self.__idlist, self.__attractions)
     else:
         raise ValueError(f'Attraction with ID {idwahana} is not found.')
Пример #4
0
 def getUser(self, username):
     return cariArray(username, self.__userids, self.__users)
Пример #5
0
 def findUserbyObject(self, user):
     return cariArray(user, self.__users, self.__userids)
Пример #6
0
 def getTicket(self, idwahana):
     if idwahana in self.__ticketids:
         return cariArray(idwahana, self.__ticketids, self.__tickets)
     else:
         return 0