def adaugare(self, nume, producator, pret, reteta): med = Medicament(nume, producator, pret, reteta) med.id_entity = self.id_count self.__vali.validare(med) self.__repo.creeaza(med) self.__undo_op.append(lambda: self.__repo.sterge(med.id_entity)) self.__redo_op.append(lambda: self.__repo.creeaza(med))
def medicament_increase_price(self, percentage, bound_value): result = map( lambda c: Medicament(c.id_entity, c.name, c.manufacturer, ( 1 + percentage) * c.price, c.requires_prescription) if c.price < bound_value else c, self.get_all()) for ent in result: self.__repository.update(ent)
def modificare(self, id_med, nume, producator, pret, reteta): med_de_modificat = self.__repo.citeste(id_med) if nume == '': nume = med_de_modificat.nume if producator == '': producator = med_de_modificat.producator if pret == '': pret = med_de_modificat.pret else: pret = float(pret) if reteta == '': reteta = med_de_modificat.reteta med = Medicament(nume, producator, pret, reteta) med.id_entity = med_de_modificat.id_entity self.__vali.validare(med) self.__repo.modifica(med) self.__undo_op.append(lambda: self.__repo.modifica(med_de_modificat)) self.__redo_op.append(lambda: self.__repo.modifica(med))
def update_medicament(self, id_medicament, name, manufacturer, price, requires_prescription): """ Updates a medicament. :param id_medicament:int, the id of the medicament. :param name:char, the name of the medicament. :param manufacturer:char, the name of the manufacturer. :param price:float, the price of the medicament, must be positive. :param requires_prescription:bool, True if the medicament requires a prescription, False otherwise. :return: """ medicament = Medicament(id_medicament, name, manufacturer, price, requires_prescription) self.__validator.validate(medicament) if requires_prescription == "yes": requires_prescription = True else: requires_prescription = False medicament = Medicament(id_medicament, name, manufacturer, price, requires_prescription) self.__repository.update(medicament)
def add_transaction(self, id_transaction, id_medicament, id_client_card, number_of_meds, date_of_transaction): """ Adds a new transaction. :param id_transaction: int, the id of the transaction :param id_medicament: int, the id of the medicament :param id_client_card: string for now, to be int, the id of the client card :param number_of_meds: int, the number of purchased meds :param date_of_transaction: date, the date of the transaction :param hour_of_transaction: date, the hour of the transaction """ if id_client_card == "": id_client_card = None else: id_client_card = int(id_client_card) if self.__medicament_repository.read(id_medicament) is None: raise TransactionError( "There is no medicament with the ID {}".format(id_medicament)) if self.__client_card_repository.read( id_client_card) is None and id_client_card is not None: raise TransactionError( "There is no client card with the ID {}".format( id_client_card)) effective_price = number_of_meds * self.__medicament_repository.read( id_medicament).price if self.__client_card_repository.read(id_client_card) is not None: if self.__medicament_repository.read( id_medicament).requires_prescription is True: total_paid = 0.85 * effective_price else: total_paid = 0.9 * effective_price if id_client_card is None: total_paid = effective_price disc = effective_price - total_paid transaction = Transaction(id_transaction, id_medicament, id_client_card, number_of_meds, date_of_transaction, total_paid, disc) medicament = self.__medicament_repository.read(id_medicament) new_medicament = Medicament(id_medicament, medicament.name, medicament.manufacturer, medicament.price, medicament.requires_prescription) self.__medicament_repository.update(new_medicament) # de ce pisici e asta aici? client_card = self.__client_card_repository.read(id_client_card) # print(client_card) if client_card in self.__client_card_repository.read(): new_client_card = ClientCard(id_client_card, client_card.surname, client_card.first_name, client_card.CNP, client_card.birth_date, client_card.register_date) self.__client_card_repository.update(new_client_card) client_card = self.__client_card_repository.read(id_client_card) new_client_card = ClientCard # again, de ce pisici e asta aici? self.__transaction_repository.create(transaction)
from domain.medicament import Medicament med1 = Medicament(1, "Nurofen", "Paduden", 13, "no") med2 = Medicament(2, "Aspirin", "Bayer", 10, "no") med3 = Medicament(3, "Vicodin", "Abbott", 65, "yes") med4 = Medicament(3, "aacodin", "Abbott", 65, "yes") assert med1.id_entity == 1 assert med2.price == 10 assert med3.manufacturer == "Abbott" assert med1 != med2 assert med3 == med4