# Względem wersji 2:
# + menu z wyborem operacji
# + przechowywanie stanów magazynowych
# + operacje zmieniające dane w słowniku
# zwn sposób przechowywania danych w słowniku, zdecydowałem się rozdzielić operacje C i N (w treści zadania sugerowałem jedną wspólną operację)

menu = '''
 Q - zakończ program
 P - wypisz dostępne towary
 K - wykonaj zakupy
 N - zdefiniuj nowy towar
 U - usuń towar z cennika
 C - zmień cenę towaru
 D - dostawa towaru'''

BELKA = '=' * 36

# Struktura słownika:
# nazwa: [cena, ilość]
towary = {
    'pralka': [2200, 5],
    'czajnik': [300, 10],
    'odkurzacz': [420, 1],
    'kabelek': [15, 100],
}

print('Witamy w naszym sklepie')
while True:
    print(menu)
    akcja = input('Wybierz polecenie: ').strip().upper()
    if akcja == 'Q':
        break
    elif akcja == 'P':
        print('Dostępne produkty:')
        print(f'|{" nazwa":20}|{" cena":6}|{" ilość":6}|')
        print(BELKA)
        for nazwa, (cena, ilosc) in towary.items():
            print(f'| {nazwa:19}|{cena:6}|{ilosc:6}|')
        print(BELKA)
    elif akcja == 'K':
        suma = 0
        while True:
            nazwa = input('Podaj nazwę towaru lub naciśnij Enter, aby zakończyć: ')
            if not nazwa:
                break
            if nazwa not in towary:
                print(f'Nieznany towar {nazwa}')
                continue
            sztuki = int(input('Ile sztuk? '))
            if sztuki > towary[nazwa][1]:
                print(f'Nie ma tylu sztuk towaru. Jest tylko {towary[nazwa][1]}.')
                continue
            do_zaplaty = towary[nazwa][0] * sztuki
            towary[nazwa][1] -= sztuki
            print(f'Za {sztuki} sztuk towaru {nazwa} do zapłaty będzie {do_zaplaty}')
            suma += do_zaplaty
        print(f'Łącznie za cały koszyk do zapłaty: {suma}')
    elif akcja == 'N':
        nazwa = input('Podaj nazwę nowego towaru: ')
        if nazwa in towary:
            print('Taki towar już istnieje, przerywam')
            continue
        cena = int(input('Podaj cenę towaru: '))
        towary[nazwa] = [cena, 0]
    elif akcja == 'C':
        nazwa = input('Podaj nazwę istniejącego towaru: ')
        if nazwa not in towary:
            print('Taki towar nie istnieje, przerywam')
            continue
        print(f'Obecna cena: {towary[nazwa][0]}')
        cena = int(input('Podaj nową cenę towaru: '))
        towary[nazwa][0] = cena
    elif akcja == 'U':
        nazwa = input('Podaj nazwę istniejącego towaru: ')
        if nazwa not in towary:
            print('Taki towar nie istnieje, przerywam')
            continue
        del towary[nazwa]
        print('Towar usunięty')
    elif akcja == 'D':
        nazwa = input('Podaj nazwę istniejącego towaru: ')
        if nazwa not in towary:
            print('Taki towar nie istnieje, przerywam')
            continue
        print(f'Obecny stan magazynowy: {towary[nazwa][1]}')
        zmiana = int(input('Podaj liczbę sztuk w dostawie: '))
        towary[nazwa][1] += zmiana
    else:
        print('Nieznane polecenie')

print('Do widzenia')
