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
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)
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.')
def getUser(self, username): return cariArray(username, self.__userids, self.__users)
def findUserbyObject(self, user): return cariArray(user, self.__users, self.__userids)
def getTicket(self, idwahana): if idwahana in self.__ticketids: return cariArray(idwahana, self.__ticketids, self.__tickets) else: return 0