Tecnologia utilizada: O projeto deve ser desenvolvido utilizando somente os recursos nativos do Android. Não
sendo permitido utilização de outros frameworks ou bibliotecas não utilizadas em sala de aula.
Componentes do trabalho:
Tema e Escopo:
A segunda entrega do trabalho, consiste em um Aplicativo de Força de Venda.
1. Serão necessárias as seguintes Activity no aplicativo:
a. Login (Tela de Entrada e Validação do Usuário)
b. Cadastro de Usuários (Tela de Cadastro do Usuário)
c. Cadastro de Clientes (Tela de Cadastro do Cliente)
d. Cadastro de Produtos (Tela de Cadastro do Produto)
e. Cadastro de Pedidos (Tela de Cadastro do Pedido)
f. Tela de Sincronia de Dados (Tela onde será possível enviar e receber dados do servidor)
g. Tela de Configuração (Tela de configuração de dados do servidor)
* Todas das “Tela de Cadastro” devem ter as opções de lista os registros, incluir, editar e excluir.
2. Dados das Entidades, o sistema deve poder gravar todos os campos das entidades
Usuário
▪ ID (Código interno do Usuário) *
▪ Nome *
▪ Senha *
Cliente
▪ ID (Código interno do cliente) *
▪ Nome *
▪ Tipo (F - Física / J - Jurídica) *
▪ CPF/CNPJ *
▪ E-mail
▪ Telefone
▪ CEP
▪ Endereço
▪ Bairro
▪ Cidade
▪ UF
Produto
▪ ID (Código interno do Produto) *
▪ Nome *
▪ Código de Barra
▪ Unidade (Un, Cx, Kg, Lt, Ml) *
▪ Qtd. Estoque *
▪ Custo
▪ Preço de Venda *
▪ Status (0 - Ativo / 1 - inativo) *
Pedido
▪ ID (Código interno do Pedido) *
▪ ID do Cliente *
▪ ID do Usuário *
▪ Total do Pedido *
▪ Data de Criação *
▪ Lista de Itens *
▪ Lista de Pagamento
Pedido Item
▪ ID do Pedido *
▪ ID (Código interno do Item) *
▪ ID do Produto *
▪ Quantidade *
▪ Total do Item (Quantidade*Preço) *
Pedido Pagamento
▪ ID do Pedido * ▪ ID (Código interno do Pagamento) * ▪ Valor Pagamento *
Configuração
▪ Link Servidor ▪ Porta Servidor
3. Todas as listagens devem utilizar o componente RecyclerView.
4. A tela de Pedido deve permitir a inclusão e exclusão de Itens e de Pagamentos. A tela de Pedido deve manter
os totais calculados sempre que for incluído ou excluído um item.
5. Na tela de Pedido deve validar as informações para manter consistência:
a. O Somatório dos pagamentos não pode ser diferente do Somatório dos Totais dos Itens.
b. Para ser possível gravar um pedido ele deve possuir no mínimo 1 item e 1 Pagamento.
6. Os dados devem ser gravados em Banco de Dados local em Sqlite. Cada Entidade deve possuir sua tabela.
7. Cada Tabela deve possuir duas colunas de controle:
a. Data da Última Alteração, todas as vezes que os dados forem alterados deve atualizar a “Data da Última
Alteração”. Em casos de registros novos devem permanecer vazio até que sejam sincronizados com o
servidor
b. Registro Excluído, quando o registro for excluído, esse “FLAG” deve ser marcado. Os registros só serão
excluídos do banco após os dados sejam sincronizados com o servidor (deletado do servidor). Os registros
marcados como excluído não devem aparecer nas listas dos cadastros.
8. A Tela de Sincronia de Dados deve buscar os Dados do Servidor e atualizar as Tabelas com os dados alterados
com datas maiores que as registradas nas tabelas. (Método GET)
• localhost:8080/usuarios
• localhost:8080/clientes
• localhost:8080/produtos
9. A Tela de Sincronia de Dados deve enviar os registros para o Servidor:
a. Deve enviar os novos Registros para o Servidor e atualizar as Datas da Última Alteração nos registros.
(Método POST)
• localhost:8080/usuarios
• localhost:8080/clientes
• localhost:8080/produtos
• localhost:8080/pedidos
b. Os Registros que foram excluídos no servidor devem ser excluídos localmente e os que foram excluídos
localmente (marcados como excluído) dever ser excluídos no servidor e depois localmente. (Método
DELETE)
10. Na Tela de Configuração deve ter uma opção para ativar um serviço que sincroniza os dados com o servidor.
Essa opção deve poder ligar e desligar o serviço.