Exemplo n.º 1
0
def main():
    order = Order()
    order.addLine("eggs", 60, 12, 0)
    order.addLine("bread", 200, 1, 10)
    order.addLine("milk", 120, 2, 5)
    total, _, _ = order.getTotals()
    print("The total price is: {0:.0f}".format(total))
    print(order)
Exemplo n.º 2
0
class Caisse:
    """Classe Caisse"""
    def __init__(self):
        self.Order = Order()

    def displayCatalog(self):
        os.system("cls")

        # Affichage de la liste de choix
        print("Liste de produits : ")
        i = 0
        while i < (len(Catalog)):
            product = Catalog[i]
            print("\n" + str(i) + ". " + product.name)
            i = i + 1
        print("\n" + str(i) + ". " + "Fin de saisie")

    def selectProduct(self):
        self.displayCatalog()

        # Gestion de la sélection
        selection = int(input("\nSelectionner un produit : "))
        if ((selection >= 0) and (selection < (len(Catalog)))):
            quantity = float(input("\nQuantité : "))
            self.Order.addLine(Catalog[selection], quantity)
            return True
        elif selection == len(Catalog):
            return False
        else:
            raise EnvironmentError("Invalid selection")

    def enterOrder(self):
        selectionEnd = False
        # Saisie des produits et quantités
        while not selectionEnd:
            selectionEnd = not self.selectProduct()

    def printReceipt(self):
        os.system("cls")
        # Entete de ticket
        receipt = "+".ljust(13, '-') + "+".ljust(14, '-') + "+".ljust(
            14, '-') + "+".ljust(14, '-') + "+"
        receipt = receipt + "\n|Produit".ljust(14) + "|" + "Prix".ljust(
            13) + "|" + "Quantité".ljust(13) + "|" + "Total".ljust(13) + "|"
        receipt = receipt + "\n+".ljust(14, '-') + "+".ljust(
            14, '-') + "+".ljust(14, '-') + "+".ljust(14, '-') + "+"

        # Ligne du ticket
        for orderLine in self.Order.Lines:
            receiptLine = "\n|" + orderLine.Product.Name.ljust(12) + "|"
            receiptLine = receiptLine + str(
                orderLine.Product.Price).ljust(13) + "|"
            receiptLine = receiptLine + str(orderLine.Quantity).ljust(13) + "|"
            receiptLine = receiptLine + str(orderLine.Total).ljust(13) + "|"
            receipt = receipt + receiptLine

        # Pieds de ticket
        receipt = receipt + "\n+".ljust(14, '-') + "+".ljust(
            14, '-') + "+".ljust(14, '-') + "+".ljust(14, '-') + "+"
        receipt = receipt + "\nTotal        : " + str(
            self.Order.getPreTaxAmount())
        receipt = receipt + "\nRemise       : " + str(self.Order.getDiscount())
        receipt = receipt + "\nTotal HT     : " + str(
            self.Order.getPreTaxAmount() - self.Order.getDiscount())
        receipt = receipt + "\nTotal TTC    : " + str(
            self.Order.getAmountIncludingTaxes())

        #Affichage du ticket
        print(receipt)