# Engenharia de Software/Casos de Uso Expandidos
## Casos de Uso
### Cadastro de Cliente

* Nome : CadastroCliente
* Atores : Cliente, Funcionario
* Finalidade : Cadastrar um cliente ainda não cadastrado
* Visão geral : Este caso de uso tem a finalidade de efetuar o cadastro de clientes que ainda não estejam cadastrados.
* Tipo : Essencial
| Ação do ator | Ação do ator | Resposta do sistema |
| 1 | Cliente chega a recepção, informa o desejo de locar um quarto | Mostra tela de cadastro de clientes |
| 2 | Cliente informa seu nome, cpf, RG | Sistema coloca tabela em modo de inserção |
| 3 | O funcionário registra os dados do cliente | Sistema grava informações |

### Efetuar Reserva

* Nome : IncluirReserva
* Atores : Cliente, Funcionario
* Finalidade : Incluir a reserva de um quarto
* Visão geral : Este caso de uso tem a finalidade de incluir a reserva de quartos mediante o cadastro do cliente
* Tipo : Essencial
| Ação do ator | Ação do ator | Resposta do sistema |
| 1 | Cliente solicita a reserva de um quarto. | Sistema disponibiliza a tela de Cadastro de reservas |
| 2 | Cliente informa quantos dias deseja ficar hospedado, o tipo do quarto desejado e o número de pessoas que ficarão hospedadas. | Sistema coloca os campos em modo de inserção |
| 3 | Funcionario informa ao sistema todos os dados informados pelo cliente | Sistema grava todos os dados informados |
| 4 | Funcionário confirma a reserva com cliente | Sistema registra quarto como reservado. |
| Tratamento de Exceções: |||
| 2.1 | Funcionário verifica que o cliente ainda não esta cadastrado, e efetua o cadastro. | Sistema dsiponibiliza tela de cadastro |
| 2.2 | Funcionário informa ao Cliente que não existem quartos disponíveis. | Sistema encerra reservaaa |

### Cancelar Reserva

* Nome : CancelarReserva
* Atores : Cliente, Funcionario
* Finalidade : Cancelar uma reserva ja efetivada e informar o motivo
* Visão geral : Através deste caso de uso sera possível efetuar o cancelamento de reservas
* Tipo : Essencial
| Ação do ator | Ação do ator | Resposta do sistema |
| 1 | Cliente informa ao funcionário que deseja cancelar a reserva do quarto. | Sistema disponibiliza a tela de Cancelamento de reservas |
| 2 | Funcionário informa ao sistema o motivo do cancelamento | Sistema conclui cancelamento, e torna o quarto disponível |

### Efetuar locação

* Nome : EfetuarLocação
* Atores : Cliente, Funcionario
* Finalidade : Confirmar locação de um quarto
* Visão geral : Através deste caso de uso sera possível efetuar locações de quartos para o hotel
* Tipo : Essencial
| Ação do ator | Ação do ator | Resposta do sistema |
| 1 | Funcionário informa ao sistema o nome do cliente | Sistema mostra tela de locação, com quais quartos estão disponíveis |
| 2 | Funcionário informa ao sistema qual quarto sera locado | Sistema informa o valor das diárias e pede quantos dias ficara locado |
| 3 | Funcionario informa quantos dias o quarto ficara locado | Sistema informa o valor total referente aos dias de locação |
| 4 | Funcionario confirma locação | Sistema seta quarto como locado, armazenando todas as informações do locatario |
| Tratamento de Exceções: |||
| 1.1 | Funcionário verifica que o cliente ainda não esta cadastrado, e efetua o cadastro. | Sistema disponibiliza a tela de cadastro de clientes |
| 1.2 | Funcionário informa ao Cliente que não existem quartos disponíveis | Sistema encerra função de locação de quartos |

### Calcular valor Diárias

* Nome : CalcularDiarias
* Atores : Cliente, Funcionario
* Finalidade : Calcular o valor total referente a diarias do cliente
* Visão geral : Este caso de uso ira disponibilizar funções para efetuar o calculo automatico do valor total das diarias de um determinado cliente.
* Tipo : Essencial
| Ação do ator | Ação do ator | Resposta do sistema |
| 1 | Funcionário informa ao sistema o nome do cliente | Sistema busca as informações referentes ao cliente |
| 2 | Funcionario informa ao cliente o valor total das diárias | Sistema aguarda instruções do funcionário |
| Tratamento de Exceções: |||
| 1.1 | | Sistema não encontra informações sobre o cliente desejado |

### Encerrar Locação

* Nome : EncerrarLocacao
* Atores : Cliente, Funcionario
* Finalidade : Confirmar o encerramento de uma locação
* Visão geral : Através deste caso de uso sera possível finalizar uma locação ativa, mostrando todas as informações sobre o locatario e o valor total referente as diarias.
* Tipo : Essencial
| Ação do ator | Ação do ator | Resposta do sistema |
| 1 | Funcionário informa ao sistema o nome do cliente | Sistema busca as informações referentes ao cliente |
| 2 | Funcionário informa ao cliente o valor total das diárias | Sistema executa o caso de uso CalcularDiarias, e mostra o resultado |
| 3 | Funcionário informa ao sistema o valor pago pelo cliente | Sistema calcula, e verifica se o valor pago não é menor que o valor total das diárias. Caso o valor pago seja maior que o valor total calcular e mostrar o valor do troco. |