AVANÇADO#

O protótipo do sistema de vendas de pastéis está quase pronto. Vamos finalizá-lo seguindo os passos a seguir:

Etapa 1#

O aplicativo de vendas de pastéis ainda não atualiza o dicionário de estoque. Para esta funcionalidade vamos implementar uma função chamada verifica_estoque, que recebe como argumentos o dicionário de estoque, o sabor do pastel e a quantidade de pastéis. A função deve retornar True se existe estoque suficiente para a quantidade desejada, ou False, caso contrário.

Exemplo:

estoque = {
    'carne': {
      'quantidade':10,
      'preço':9,
      'identificador':1
      },
    'queijo': {
      'quantidade':2,
      'preço':9,
      'identificador':2
    }
}

print(verifica_estoque(estoque, 'queijo', 5))

Saída:

False


Etapa 2#

Utilize a função criada na etapa anterior para validar se há quantidade suficiente de pastéis no estoque. Caso o estoque não seja suficiente para atender o pedido do cliente, precisamos informá-lo quantos pastéis daquele sabor existem no estoque para que ele posso pedir a quantidade restante.

Se o cliente pedir uma quantidade de pastéis não disponível no estoque, o aplicativo deve informá-lo com a seguinte mensagem: Quantidade de pastéis insuficiente no estoque. Restam somente X pastéis de SABOR., onde X é a quantidade de pastéis no estoque e SABOR é o sabor escolhido pelo cliente.

Após imprimir essas mensagem o programa deve imprimir o cardápio novamente e pedir para o cliente fazer a escolha novamente. Abaixo segue um exemplo de interação do cliente com o programa:

Seja bem vind@! O que você gostaria de pedir?

CARDÁPIO
[1] Carne: R$9.00
[2] Queijo: R$9.00
[4] Pizza: R$9.00
[fim] Finalizar pedido

Digite a opção desejada: 1
Informe a quantidade desejada: 11

Quantidade de pastéis insuficiente no estoque. Restam somente 10 pastéis de carne.

CARDÁPIO
[1] Carne: R$9.00
[2] Queijo: R$9.00
[4] Pizza: R$9.00
[fim] Finalizar pedido

Digite a opção desejada: 1
Informe a quantidade desejada: 10

CARDÁPIO
[2] Queijo: R$9.00
[4] Pizza: R$9.00
[fim] Finalizar pedido

Digite a opção desejada: fim
Valor total: R$90.00

Além disso, sempre que o cliente adicionar itens ao pedido dele, precisamos atualizar a quantidade de pastéis no estoque. Ou seja, se o cliente escolher 2 pastéis de queijo, o programa deve atualizar o dicionário de estoque subtraindo em 2 a quantidade de pastéis de queijo.


Etapa 3#

A empresa Gourmet Pastéis costuma fazer promoções em certas datas festivas. A promoção consiste em dar ao cliente um pastel de brinde a cada 4 pastéis comprados. Porém, somente os pastéis que custam R$9.00 ou mais contam para a promoção.

Desta forma, implemente a função calcula_total_com_promocao que recebe como argumentos o dicionário de estoque e o dicionário do pedido e retorna o valor total do pedido descontando o valor dos pastéis de brinde. O pastel de brinde é sempre o de menor valor.

Exemplo:

estoque = {
    'carne': {
      'quantidade':10,
      'preço':9,
      'identificador':1
      },
    'queijo': {
      'quantidade':2,
      'preço':9,
      'identificador':2
    }
}

pedido = {'queijo': 4, 'carne':2}

print(calcula_total_com_promocao(estoque, pedido))

Saída:

45

No exemplo acima foram comprados 6 pastéis, todos custando R\$ 9,00. Os 4 primeiros pastéis dão direito a 1 pastel de brinde. Assim, o cliente pagará por 5 dos 6 pastéis, totalizando R\$ 45,00.