Exemplo n.º 1
0
 def addAttraction(self, idwahana, new):
     if (self.findAttraction(idwahana) == False):
         self.__idlist = elAdd(self.__idlist, idwahana)
         self.__attractions = elAdd(self.__attractions, new)
         return True
     else:
         return False
Exemplo n.º 2
0
 def load(self):
     self.__data = (self.__file).read()
     if panjangArray(self.__data) > 0:
         x = 0
         for u in self.__data:
             newuser = User(u[0], u[1], int(u[2]), u[4], u[5], int(u[6]))
             self.__userids = elAdd(self.__userids, ((u[3]).lower()))
             self.__users = elAdd(self.__users, newuser)
Exemplo n.º 3
0
 def load(self):
     self.__data = (self.__file).read()
     if panjangArray(self.__data)> 0:
         for a in self.__data:
             try: # Jika ada error, maka akan diskip
                 newattraction = Attraction(a[1], int(a[2]), a[3], a[4])
                 self.__idlist = elAdd(self.__idlist, a[0])
                 self.__attractions = elAdd(self.__attractions, newattraction)
             except: # error
                 continue
Exemplo n.º 4
0
    def calcAge(self, tanggal):
        d = list(map(int, (self.__dobstr).strip().split('/')))
        dt = list(map(int, tanggal.strip().split('/')))
        s = selisihtgl(d,dt)

        self.__agecategory = [AgeRestriction.SemuaUmur]

        self.__age = int(s / (365.2425))
        
        if (self.__age < 17): # Jika umur dibawah 17, tambahkan restriksi anak
            self.__agecategory = elAdd(self.__agecategory, AgeRestriction.Anak)
        else: # Jika umur diatas sama dengan 17, tambahkan restriksi dewasa
            self.__agecategory = elAdd(self.__agecategory, AgeRestriction.Dewasa)
Exemplo n.º 5
0
 def getAllUsersInventoryAsList(self):
     userids = ((self.__um).getAllUsers())[0]
     users = ((self.__um).getAllUsers())[1]
     result = []
     for i in range(panjangArray(userids)):
         for idwahana in users[i].getTicketIDs():
             if users[i].getTicket(idwahana) > 0: # Jika tiket positif tak nol
                 result = elAdd(result, [userids[i], idwahana, users[i].getTicket(idwahana)])
     return result
Exemplo n.º 6
0
    def load(self):
        self.__data = (self.__file).read()
        if panjangArray(self.__data) > 0:
            for c in self.__data:
                try:
                    c[3] = int(c[3])
                except ValueError as e:
                    c[3] = 0  # Kalau Jumlah Tiket bukan Integer, maka akan diubah menjadi 0

                self.__history = elAdd(self.__history, c)
Exemplo n.º 7
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)
Exemplo n.º 8
0
    def read(self):
        try:
            with open("Data/" + self.__file + '.csv', mode='r',
                      newline='') as f:
                reader = csv.reader(f, dialect='excel')

                result = []  # Inisiasi Array Hasil
                i = 0
                for row in reader:
                    newrow = []
                    if (row != []):  # Jika baris ada isi
                        for x in range(panjangArray(row)):
                            now = row[x]
                            try:
                                newrow = elAdd(
                                    newrow,
                                    int(now))  # coba convert ke integer
                            except ValueError:
                                newrow = elAdd(
                                    newrow,
                                    now)  # kalau gagal convert jadi integer

                    else:  # Jika baris tidak ada isi
                        for x in range(panjangArray(self.__defaultempty)):
                            now = self.__defaultempty[x]

                            try:
                                newrow = elAdd(
                                    newrow,
                                    int(now))  # coba convert ke integer
                            except ValueError:
                                newrow = elAdd(newrow, (now).replace(
                                    "(index)", str(i)
                                ))  # kalau gagal convert jadi integer

                    result += [newrow]
                    i += 1
        except:
            result = [
            ]  # Jika file tidak ditemukan, mengembalikan array kosong
        return result
Exemplo n.º 9
0
def history(user, usermanager, attrmanager, usedmanager):
    if (user != None):  # Jika user sudah login

        if (user.getRole() != Role.Admin):  #Jika user bukan admin

            print("Maaf! Anda bukan admin.")

        else:  # User adalah admin

            # Input
            idwahana = input("Masukkan ID Wahana\t\t\t: ")

            print()

            # Validasi untuk input ID Wahana
            # ID Wahana harus bisa ditemukan
            # Ketik 'exit' untuk membatalkan
            while not (attrmanager.findAttraction(idwahana)):
                print(
                    "ID Wahana yang dimasukkan tidak valid.\nKetik 'exit' untuk membatalkan."
                )
                idwahana = input("Masukkan ID Wahana\t\t\t: ")
                if idwahana.lower() == 'exit':
                    print("Pembelian tiket dibatalkan.")
                    return

            print()

            # Memanggil data dari ticketmanager penggunaan
            histories = usedmanager.get()
            # Inisiasi matrix kosong
            match = []
            for each in histories:
                if each[2] == idwahana:  # Jika idwahana sama dengan yang dicari
                    match = elAdd(match, each)

            if panjangArray(match) == 0:  # Jika tidak ditemukan apa-apa
                print("Belum ada yang bermain di wahana tersebut.")
            else:  # Setidaknya ada satu penemuan
                print("Riwayat:")
                #judul
                for each in match:
                    if panjangArray(
                            each[0]
                    ) < 8:  # Jika panjang username kurang dari 8, tab 2x
                        username = each[0] + "\t\t | \t "
                    else:
                        username = each[0] + "\t | \t "
                    print(f"{each[1]}\t | \t{username}{each[3]}")

    else:  # Jika belum login
        print("Anda belum login.")
Exemplo n.º 10
0
 def getAsListOfString():
     result = []
     for each in feedmanager.get():
         if panjangArray(
                 str(each[0]
                     )) < 8:  # Jika panjang username kurang dari 8, tab 2x
             username = str(each[0]) + "\t"
         else:
             username = str(each[0])
         dstr = str(each[2]) + "\t\t | \t" + str(
             each[1]) + "\t | \t" + username + "\t | \t" + str(each[3])
         result = elAdd(result, dstr)
     return result
Exemplo n.º 11
0
 def getUsersAsList(self):
     result = []
     for i in range(panjangArray(self.__userids)):
         user = self.__users[i]
         arr = [] # ini adalah array dalam satu baris
         arr = elAdd(arr, user.getName()) # penambahan elemen tiap baris
         arr = elAdd(arr, user.getDOB()) # hal yang sama dengan atas
         arr = elAdd(arr, user.getHeight()) # hal yang sama dengan atas
         arr = elAdd(arr, (self.__userids[i]).lower()) # hal yang sama dengan atas
         arr = elAdd(arr, user.getPassword()) # hal yang sama dengan atas
         arr = elAdd(arr, user.getRole()) # hal yang sama dengan atas
         arr = elAdd(arr, user.getSaldo()) # hal yang sama dengan atas
         result = elAdd(result, arr) # masukkan kedalam kolom
         #print(result)
     return result
Exemplo n.º 12
0
 def getAttractionsAsList(self):
     result = []
     for i in range(panjangArray(self.__idlist)):
         attr = self.__attractions[i]
         arr = [] # ini adalah array dalam satu baris
         arr = elAdd(arr, self.__idlist[i]) # penambahan elemen tiap baris
         arr = elAdd(arr, attr.getName()) # hal yang sama dengan atas
         arr = elAdd(arr, attr.getTicketPrice()) # hal yang sama dengan atas
         arr = elAdd(arr, attr.getAR()) # hal yang sama dengan atas
         arr = elAdd(arr, attr.getHR()) # hal yang sama dengan atas
         result = elAdd(result, arr) # masukkan kedalam kolom
     return result
Exemplo n.º 13
0
 def search(batasumur, batastinggi):
     result = []
     attractionlist = (attrmanager.getAttractions())[1]
     attractionids = (attrmanager.getAttractions())[0]
     for i in range(panjangArray(attractionlist)):
         attr = attractionlist[i]
         idwahana = attractionids[i]
         if (attr.getAR() == AgeRestriction(batasumur)) and (attr.getHR(
         ) == HeightRestricton(batastinggi)):  # Jika Wahana tersebut sesuai
             attrstr = str(
                 idwahana
             ) + "\t\t | \t"  # Formatting nama dengan tab supaya rapih
             if panjangArray(
                     attr.getName()) < 8:  # Jika panjang nama kurang dari 8
                 attrstr = attrstr + attr.getName() + "\t\t | \t"
             else:  # panjang nama lebih dari 8
                 attrstr = attrstr + attr.getName() + "\t | \t"
             attrstr = attrstr + str(attr.getTicketPrice())
             result = elAdd(result, attrstr)
     return result
Exemplo n.º 14
0
 def add(self, username, date, idwahana, amount):
     new = [username, date, idwahana, amount]
     self.__history = elAdd(self.__history, new)
Exemplo n.º 15
0
 def calcHeight(self):
     self.__heightcategory = [HeightRestricton.All]
     if (self.__height >= 170): # Tambahkan restriksi diatas sama dengan 170 saat tinggi diatas 170
         self.__heightcategory = elAdd(self.__heightcategory, HeightRestricton.Above170)
Exemplo n.º 16
0
 def getSaleArray():
     result = []
     for attr in attractions:
         result = elAdd(result, attr.getSale())
     return result
Exemplo n.º 17
0
 def add(self, username, date, idwahana, text):
     new = [username, date, idwahana, text]
     self.__critics = elAdd(self.__critics, new)
Exemplo n.º 18
0
 def addUser(self, username, new):
     if (self.findUser(username.lower()) == False):
         self.__users = elAdd(self.__users, new)
         self.__userids = elAdd(self.__userids, username)
Exemplo n.º 19
0
 def load(self):
     self.__data = (self.__file).read()
     if panjangArray(self.__data) > 0:
         for c in self.__data:
             self.__critics = elAdd(self.__critics, c)