Estes diagramas mostram o fluxo de mensagens mostradas ao usuário, por isso como há mensagens no cadastro, edição e exclusão, só serão apresentados estas funções. Também os diagramas de edição são semelhantes ao de cadastro, mudando apenas as mensagens de cadastro para alteração logo não serão diagramados, podendo usar os de cadastro.
APÊNDICE D. Modelo do Projeto 96
Figura 18 – Diagrama de Atividades para o caso de uso de cadastro de clien- tes,categorias,sessões e compromissos.
APÊNDICE D. Modelo do Projeto 97
Figura 19 – Diagrama de Atividades para o caso de uso de alteração e exclusão de clien- tes,categorias,sessões e compromissos.
APÊNDICE D. Modelo do Projeto 98
Figura 20 – Diagrama de Atividades para o caso de uso de alteração e exclusão de pedido e itens do pedido.
APÊNDICE D. Modelo do Projeto 99
APÊNDICE D. Modelo do Projeto 100
APÊNDICE D. Modelo do Projeto 101
APÊNDICE D. Modelo do Projeto 102
APÊNDICE D. Modelo do Projeto 103
APÊNDICE D. Modelo do Projeto 104
APÊNDICE D. Modelo do Projeto 105
APÊNDICE D. Modelo do Projeto 106
Figura 28 – Diagrama de Sequência para o caso de uso cadastro de pedidos e itens do pedido.
APÊNDICE D. Modelo do Projeto 107
Figura 29 – Diagrama de Sequência para o caso de uso exclusão de itens(Obs: o único caso em que não a exclusão é o de estoque , uma vez que o estoque é excluído junto com o produto).
108
APÊNDICE E Ű Protótipo Hi-Fi
Telas referentes ao protótipo Hi-Fi do sistema Meus Estoque Rosa.APÊNDICE E. Protótipo Hi-Fi 109
APÊNDICE E. Protótipo Hi-Fi 110
Figura 31 – Protótipo Hi-Fi : Tela de cadastro de clientes mostrando os campos obriga- tórios.
APÊNDICE E. Protótipo Hi-Fi 111
Figura 32 – Protótipo Hi-Fi : Tela de cadastro de clientes mostrando os campos preen- chidos sem a data.
APÊNDICE E. Protótipo Hi-Fi 112
Figura 33 – Protótipo Hi-Fi : Tela de cadastro de clientes mostrando os campos preen- chidos com a data no formato adequado.
APÊNDICE E. Protótipo Hi-Fi 113
APÊNDICE E. Protótipo Hi-Fi 114
APÊNDICE E. Protótipo Hi-Fi 115
APÊNDICE E. Protótipo Hi-Fi 116
Figura 37 – Protótipo Hi-Fi : Tela de calendário do módulo agenda, seleção de um dia aleatório .
117
APÊNDICE F Ű Exemplos de Códigos-Fonte
em Java
Neste trecho de código estão descritas todas as variáveis necessárias para a criação das tabelas do módulo de produtos, bem como a instrução para criação das tabelas usando as variáveis. 1 // v a r i a v e i s Cliente 2 p u b l i c s t a t i c f i n a l String t b l C l i e n t e = " cliente "; 3 p u b l i c s t a t i c f i n a l String i d C l i e n t e = " _ i d C l i e n t e "; 4 p u b l i c s t a t i c f i n a l String n o m e C l i e n t e = " n o m e C l i e n t e "; 5 p u b l i c s t a t i c f i n a l String e n d e r e c o C l i e n t e = " e n d e r e c o C l i e n t e "; 6 p u b l i c s t a t i c f i n a l String t e l e f o n e C l i e n t e = " t e l e f o n e C l i e n t e "; 7 p u b l i c s t a t i c f i n a l String d a t a N a s c C l i e n t e = " d a t a N a s c C l i e n t e "; 8 p u b l i c s t a t i c f i n a l String o b s C l i e n t e = " o b s C l i e n t e "; 9 // v a r i a v e i s S u b C a t e g o r i a 10 p u b l i c s t a t i c f i n a l String t b l S u b C a t e g o r i a = " s u b C a t e g o r i a "; 11 p u b l i c s t a t i c f i n a l String i d S u b C a t e g o r i a = " _ i d S u b C a t e g o r i a "; 12 p u b l i c s t a t i c f i n a l String n o m e S u b C a t e g o r i a = " n o m e S u b C a t e g o r i a "; 13 p u b l i c s t a t i c f i n a l String i d C a t e g o r i a F K S = " i d C a t e g o r i a "; 14 p u b l i c s t a t i c f i n a l String n o m e C a t e g o r i a F S = " n o m e C a t e g o r i a "; 15 // v a r i a v e i s C a t e g o r i a 16 p u b l i c s t a t i c f i n a l String t b l C a t e g o r i a = " c a t e g o r i a "; 17 p u b l i c s t a t i c f i n a l String i d C a t e g o r i a = " _ i d C a t e g o r i a "; 18 p u b l i c s t a t i c f i n a l String n o m e C a t e g o r i a = " n o m e C a t e g o r i a "; 19 20 // v a r i a v e i s P r o d u t o s 21 p u b l i c s t a t i c f i n a l String t b l P r o d u t o s = " p r o d u t o s "; 22 p u b l i c s t a t i c f i n a l String i d P r o d u t o = " _ i d P r o d u t o s "; 23 p u b l i c s t a t i c f i n a l String i d C a t e g o r i a F K P = " i d C a t e g o r i a "; 24 p u b l i c s t a t i c f i n a l String i d S u b C a t e g o r i a F K P = " i d S u b C a t e g o r i a "; 25 p u b l i c s t a t i c f i n a l String d e s c r i c a o P r o d u t o = " d e s c r i c a o P r o d u t o "; 26 p u b l i c s t a t i c f i n a l String n o m e P r o d u t o = " n o m e P r o d u t o "; 27 p u b l i c s t a t i c f i n a l String p r e c o P r o d u t o = " p r e c o P r o d u t o "; 28 p u b l i c s t a t i c f i n a l String n o m e C a t e g o r i a F P = " n o m e C a t e g o r i a "; 29 p u b l i c s t a t i c f i n a l String n o m e S u b C a t e g o r i a F P = " n o m e S u b C a t e g o r i a "; 30 31
APÊNDICE F. Exemplos de Códigos-Fonte em Java 118
32 p r i v a t e s t a t i c f i n a l String D A T A B A S E _ N A M E = " projeto . db "; 33 p r i v a t e s t a t i c f i n a l int D A T A B A S E _ V E R S I O N = 1;
34 // E s t r u t u r a da tabela Cliente ( sql s t a t e m e n t )
35 p r i v a t e s t a t i c f i n a l String c r e a t e C l i e n t e = " create table " + 36 t b l C l i e n t e + " ( " + i d C l i e n t e + " integer primary key
autoincrement , " +
37 n o m e C l i e n t e + " text not null , " + 38 e n d e r e c o C l i e n t e + " text not null , " + 39 t e l e f o n e C l i e n t e + " text not null , " + 40 o b s C l i e n t e + " text , " +
41 d a t a N a s c C l i e n t e + " text not null ) ; "; 42 // E s t r u t u r a da tabela S u b C a t e g o r i a
43 p r i v a t e s t a t i c f i n a l String c r e a t e S u b C a t e g o r i a = " create table "
+
44 t b l S u b C a t e g o r i a + " ( " + i d S u b C a t e g o r i a + " integer primary key
autoincrement , " +
45 n o m e S u b C a t e g o r i a + " text not null , " + 46 i d C a t e g o r i a F K S + " integer not null , " +
47 " FOREIGN KEY ( "+ i d C a t e g o r i a F K S +" ) R E F E R E N C E S "+ t b l C a t e g o r i a +" ( "
+ i d C a t e g o r i a +" ) ) ; ";
48 // E s t r u t u r a da tabela C a t e g o r i a
49 p r i v a t e s t a t i c f i n a l String c r e a t e C a t e g o r i a = " create table " + 50 t b l C a t e g o r i a + " ( " + i d C a t e g o r i a + " integer primary key
autoincrement , " +
51 n o m e C a t e g o r i a + " text not null ) ; "; 52 // E s t r u t u r a da tabela P r o d u t o s
53 p r i v a t e s t a t i c f i n a l String c r e a t e P r o d u t o s = " create table " + 54 t b l P r o d u t o s + " ( " + i d P r o d u t o + " integer primary key
autoincrement , " +
55 d e s c r i c a o P r o d u t o + " text not null , " + 56 n o m e P r o d u t o + " text not null , " +
57 i d C a t e g o r i a F K P + " integer not null , " + 58 i d S u b C a t e g o r i a F K P + " integer null , " + 59 p r e c o P r o d u t o + " real not null , " +
60 " FOREIGN KEY ( "+ i d C a t e g o r i a F K P +" ) R E F E R E N C E S "+ t b l C a t e g o r i a +" ( "
+ i d C a t e g o r i a +" ) ,"
61 + " FOREIGN KEY ( "+ i d S u b C a t e g o r i a F K P +" ) R E F E R E N C E S "+
t b l S u b C a t e g o r i a +" ( "+ i d S u b C a t e g o r i a +" ) ) ; ";
Neste trecho de código estão todas os scripts de criação para o banco de dados equivalente aos módulos cliente e produtos, cada instrução create cria uma tabela no banco e para que essas instruções sejam executadas a fim de criar o banco e as relações,
APÊNDICE F. Exemplos de Códigos-Fonte em Java 119
o seguinte trecho de código é chamado:
1 p u b l i c v o i d o n C r e a t e ( S Q L i t e D a t a b a s e d a t a b a s e ) { 2 // Criacao da tabela 3 4 d a t a b a s e . execSQL ( c r e a t e C l i e n t e ) ; 5 d a t a b a s e . execSQL ( c r e a t e C a t e g o r i a ) ; 6 d a t a b a s e . execSQL ( c r e a t e S u b C a t e g o r i a ) ; 7 d a t a b a s e . execSQL ( c r e a t e P r o d u t o s ) ; 8 }
O trecho a seguir é umas das classes de controle das funções de persistência do banco de dados, a classe apresentada é a de Cliente e está no arquivo ClinteDAO.java .
1 p u b l i c c l a s s C l i e n t e D A O {
2 p r i v a t e S Q L i t e D a t a b a s e d a t a b a s e ; 3 p r i v a t e D a t a b a s e D A O d b H e l p e r ;
4 // Campos da tabela Cliente
5 p r i v a t e String [] colunas = { D a t a b a s e D A O . idCliente , 6 D a t a b a s e D A O . nomeCliente , 7 D a t a b a s e D A O . te le f on e Cl i en t e , 8 D a t a b a s e D A O . en de r ec o Cl i en t e , 9 D a t a b a s e D A O . da ta N as c Cl i en t e , 10 D a t a b a s e D A O . o b s C l i e n t e }; 11 p u b l i c C l i e n t e D A O ( Context context ) { 12 d b H e l p e r = new D a t a b a s e D A O ( context ) ; 13 } 14 p u b l i c v o i d open () t h r o w s S Q L E x c e p t i o n { 15 d a t a b a s e = d b H e l p e r . g e t W r i t a b l e D a t a b a s e () ; 16 } 17 p u b l i c v o i d close () { 18 d b H e l p e r . close () ; 19 } 20 p u b l i c l o n g Inserir ( C l i e n t e V O pValue ) { 21 C o n t e n t V a l u e s 22 values = new C o n t e n t V a l u e s () ;
23 // C a r r e g a r os valores nos campos do Cliente que sera i n c l u i d o
24 values . put ( D a t a b a s e D A O . nomeCliente , pValue . g e t N o m e C l i e n t e () ) ; 25 values . put ( D a t a b a s e D A O . en d er e co C li e nt e , pValue . g e t E n d e r e c o C l i e n t e
() ) ;
26 values . put ( D a t a b a s e D A O . te l ef o ne C li e nt e , pValue . g e t T e l e f o n e C l i e n t e
() ) ;
27 values . put ( D a t a b a s e D A O . da t aN a sc C li e nt e , pValue . g e t D a t a N a s c C l i e n t e
APÊNDICE F. Exemplos de Códigos-Fonte em Java 120
28 values . put ( D a t a b a s e D A O . obsCliente , pValue . g e t O b s C l i e n t e () ) ; 29 r e t u r n d a t a b a s e . insert ( D a t a b a s e D A O . tblCliente , null, values ) ; 30 }
31 p u b l i c int Alterar ( C l i e n t e V O pValue ) { 32 l o n g id = pValue . g e t I d C l i e n t e () ;
33 C o n t e n t V a l u e s values = new C o n t e n t V a l u e s () ;
34 // C a r r e g a r os novos valores nos campos que serao a l t e r a d o s
35 values . put ( D a t a b a s e D A O . nomeCliente , pValue . g e t N o m e C l i e n t e () ) ; 36 values . put ( D a t a b a s e D A O . en d er e co C li e nt e , pValue . g e t E n d e r e c o C l i e n t e
() ) ;
37 values . put ( D a t a b a s e D A O . te l ef o ne C li e nt e , pValue . g e t T e l e f o n e C l i e n t e
() ) ;
38 values . put ( D a t a b a s e D A O . da t aN a sc C li e nt e , pValue . g e t D a t a N a s c C l i e n t e
() ) ;
39 values . put ( D a t a b a s e D A O . obsCliente , pValue . g e t O b s C l i e n t e () ) ;
40 // Alterar o r e g i s t r o com base no ID
41 r e t u r n d a t a b a s e . update ( D a t a b a s e D A O . tblCliente , values ,
D a t a b a s e D A O . i d C l i e n t e + " = " + id , n u l l) ;
42 }
43 p u b l i c v o i d Excluir ( C l i e n t e V O pValue ) { 44 l o n g id = pValue . g e t I d C l i e n t e () ;
45 // Exclui o r e g i s t r o com base no ID
46 d a t a b a s e . delete ( D a t a b a s e D A O . tblCliente , D a t a b a s e D A O . i d C l i e n t e + "
= " + id , n u l l) ;
47 }
48 p u b l i c List < ClienteVO > C o n s u l t a r () {
49 List < ClienteVO > l s t C l i e n t e = new ArrayList < ClienteVO >() ;
50 // C o n s u l t a para trazer todos os dados da tabela Cliente o r d e n a d o s
pela coluna Nome
51 Cursor cursor = d a t a b a s e . query ( D a t a b a s e D A O . tblCliente , colunas , 52 null, null, null, null, D a t a b a s e D A O . n o m e C l i e n t e ) ;
53 cursor . m o v e T o F i r s t () ; 54 w h i l e (! cursor . i s A f t e r L a s t () ) { 55 C l i e n t e V O l C l i e n t e V O = c u r s o r T o C l i e n t e ( cursor ) ; 56 l s t C l i e n t e . add ( l C l i e n t e V O ) ; 57 cursor . m o v e T o N e x t () ; 58 }
59 // Tenha certeza que voce fechou o cursor
60 cursor . close () ; 61 r e t u r n l s t C l i e n t e ; 62 }
APÊNDICE F. Exemplos de Códigos-Fonte em Java 121
64 List < String > nomes = new ArrayList < String >() ;
65 String c o n s u l t a = " select "+ D a t a b a s e D A O . n o m e C l i e n t e +" from " +
D a t a b a s e D A O . t b l C l i e n t e ;
66 Cursor cursor = d a t a b a s e . r a w Q u e r y ( consulta ,n u l l) ;
67 int a c c o u n t n a m e I n d e x = cursor . g e t C o l u m n I n d e x O r T h r o w ( D a t a b a s e D A O .
n o m e C l i e n t e ) ;
68 if( cursor . m o v e T o F i r s t () ) { 69 do{
70 nomes . add ( cursor . g e t S t r i n g ( a c c o u n t n a m e I n d e x ) ) ; 71 } w h i l e( cursor . m o v e T o N e x t () ) ; 72 } 73 cursor . close () ; 74 r e t u r n nomes ; 75 } 76 p u b l i c String R e t o r n a N o m e (l o n g id ) { 77 String [] args = { Long . t o S t r i n g ( id ) };
78 String c o n s u l t a = " select "+ D a t a b a s e D A O . n o m e C l i e n t e +" from " +
D a t a b a s e D A O . t b l C l i e n t e + " where " + D a t a b a s e D A O . i d C l i e n t e +" = ? ";
79 Cursor cursor = ( d a t a b a s e . r a w Q u e r y ( consulta , args ) ) ;
80 int a c c o u n t n a m e I n d e x = cursor . g e t C o l u m n I n d e x O r T h r o w ( D a t a b a s e D A O . n o m e C l i e n t e ) ; 81 String nome = " "; 82 if( cursor . m o v e T o F i r s t () ) { 83 do{ 84 nome = cursor . g e t S t r i n g ( a c c o u n t n a m e I n d e x ) ; 85 } w h i l e( cursor . m o v e T o N e x t () ) ; 86 } 87 r e t u r n nome ; 88 } 89 p u b l i c l o n g R e t o r n a I d ( String n o m e C l i e n t e ) { 90 String [] args = { n o m e C l i e n t e };
91 String c o n s u l t a = " select "+ D a t a b a s e D A O . i d C l i e n t e +" from " +
D a t a b a s e D A O . t b l C l i e n t e + " where " + D a t a b a s e D A O . n o m e C l i e n t e +" = ? ";
92 Cursor cursor = ( d a t a b a s e . r a w Q u e r y ( consulta , args ) ) ;
93 int a c c o u n t n a m e I n d e x = cursor . g e t C o l u m n I n d e x O r T h r o w ( D a t a b a s e D A O . i d C l i e n t e ) ; 94 l o n g id = 0; 95 if( cursor . m o v e T o F i r s t () ) { 96 do{ 97 id = Long . p a r s e L o n g ( cursor . g e t S t r i n g ( a c c o u n t n a m e I n d e x ) ) ;
APÊNDICE F. Exemplos de Códigos-Fonte em Java 122
98 } w h i l e( cursor . m o v e T o N e x t () ) ; 99 }
100 r e t u r n id ; 101 }
102 // C o n v e r t e r o Cursor de dados no objeto POJO C l i e n t e V O
103 p r i v a t e C l i e n t e V O c u r s o r T o C l i e n t e ( Cursor cursor ) { 104 C l i e n t e V O l C l i e n t e V O = new C l i e n t e V O () ; 105 l C l i e n t e V O . s e t I d C l i e n t e ( cursor . getLong (0) ) ; 106 l C l i e n t e V O . s e t N o m e C l i e n t e ( cursor . g e t S t r i n g (1) ) ; 107 l C l i e n t e V O . s e t T e l e f o n e C l i e n t e ( cursor . g e t S t r i n g (2) ) ; 108 l C l i e n t e V O . s e t E n d e r e c o C l i e n t e ( cursor . g e t S t r i n g (3) ) ; 109 l C l i e n t e V O . s e t D a t a N a s c C l i e n t e ( cursor . g e t S t r i n g (4) ) ; 110 l C l i e n t e V O . s e t O b s C l i e n t e ( cursor . g e t S t r i n g (5) ) ; 111 r e t u r n l C l i e n t e V O ; 112 } 113 114 }
A seguir tem-se um exemplo de classe POJO
1 // r e s p o n s a v e l pelo t r a n s p o r t e de dados na a p l i c a c a o e com o banco 2 p u b l i c c l a s s C l i e n t e V O i m p l e m e n t s S e r i a l i z a b l e { 3 4 p r i v a t e s t a t i c f i n a l l o n g s e r i a l V e r s i o n U I D = 1 L ; 5 p r i v a t e l o n g i d C l i e n t e ; 6 p r i v a t e String n o m e C l i e n t e ; 7 p r i v a t e String e n d e r e c o C l i e n t e ; 8 p r i v a t e String t e l e f o n e C l i e n t e ; 9 p r i v a t e String d a t a N a s c C l i e n t e ; 10 p r i v a t e String o b s C l i e n t e ; 11 p u b l i c l o n g g e t I d C l i e n t e () { 12 r e t u r n i d C l i e n t e ; 13 } 14 p u b l i c v o i d s e t I d C l i e n t e (l o n g i d C l i e n t e ) { 15 t h i s. i d C l i e n t e = i d C l i e n t e ; 16 } 17 p u b l i c String g e t N o m e C l i e n t e () { 18 r e t u r n n o m e C l i e n t e ; 19 } 20 p u b l i c v o i d s e t N o m e C l i e n t e ( String n o m e C l i e n t e ) { 21 t h i s. n o m e C l i e n t e = n o m e C l i e n t e ; 22 } 23 p u b l i c String g e t E n d e r e c o C l i e n t e () {
APÊNDICE F. Exemplos de Códigos-Fonte em Java 123 24 r e t u r n e n d e r e c o C l i e n t e ; 25 } 26 p u b l i c v o i d s e t E n d e r e c o C l i e n t e ( String e n d e r e c o C l i e n t e ) { 27 t h i s. e n d e r e c o C l i e n t e = e n d e r e c o C l i e n t e ; 28 } 29 p u b l i c String g e t T e l e f o n e C l i e n t e () { 30 r e t u r n t e l e f o n e C l i e n t e ; 31 } 32 p u b l i c v o i d s e t T e l e f o n e C l i e n t e ( String t e l e f o n e C l i e n t e ) { 33 t h i s. t e l e f o n e C l i e n t e = t e l e f o n e C l i e n t e ; 34 } 35 p u b l i c String g e t D a t a N a s c C l i e n t e () { 36 r e t u r n d a t a N a s c C l i e n t e ; 37 } 38 p u b l i c v o i d s e t D a t a N a s c C l i e n t e ( String d a t a N a s c C l i e n t e ) { 39 t h i s. d a t a N a s c C l i e n t e = d a t a N a s c C l i e n t e ; 40 } 41 p u b l i c String t o S t r i n g () { 42 r e t u r n n o m e C l i e n t e ; 43 } 44 p u b l i c String g e t O b s C l i e n t e () { 45 r e t u r n o b s C l i e n t e ; 46 } 47 p u b l i c v o i d s e t O b s C l i e n t e ( String o b s C l i e n t e ) { 48 t h i s. o b s C l i e n t e = o b s C l i e n t e ; 49 } 50 51 }
Um exemplo de pesquisa ao banco pode ser visto no trecho de código a seguir:
1 p u b l i c P r o d u t o V O C o n s u l t a r (l o n g i d p r o d u t o ) { 2 P r o d u t o V O produto = new P r o d u t o V O () ;
3 String [] args = { String . valueOf ( i d p r o d u t o ) };
4 String c o n s u l t a = " select * from "+ D a t a b a s e D A O . t b l P r o d u t o s + " as
a inner join "+ D a t a b a s e D A O . t b l C a t e g o r i a +" as b on a . "+
D a t a b a s e D A O . i d C a t e g o r i a F K P +" = b . "+ D a t a b a s e D A O . i d C a t e g o r i a +" "
5 + " inner join "+ D a t a b a s e D A O . t b l S u b C a t e g o r i a +" as c on a . " +
D a t a b a s e D A O . i d S u b C a t e g o r i a F K P + " = c . "+ D a t a b a s e D A O . i d S u b C a t e g o r i a +" where "+ D a t a b a s e D A O . i d P r o d u t o +" = ? ";
6 Cursor cursor = d a t a b a s e . r a w Q u e r y ( consulta , args ) ; 7 cursor . m o v e T o F i r s t () ;
APÊNDICE F. Exemplos de Códigos-Fonte em Java 124 9 produto = c u r s o r T o P r o d u t o V O ( cursor ) ; 10 cursor . m o v e T o N e x t () ; 11 } 12 13 cursor . close () ; 14 r e t u r n produto ; 15 }
A estrutura responsável pelas tabelas do módulo financeiro pode ser vista a seguir, e pode-se observar como são chamadas as funções de criação das tabelas, que devem respeitar a ordem de relacionamento das classes para que o banco funcione corretamente.
1 2 // v a r i a v e i s Estoque 3 p u b l i c s t a t i c f i n a l String t b l E s t o q u e = " estoque "; 4 p u b l i c s t a t i c f i n a l String i d E s t o q u e = " _ i d E s t o q u e "; 5 p u b l i c s t a t i c f i n a l String i d P r o d u t o P K F K E = " i d P r o d u t o E s t o q u e "; 6 p u b l i c s t a t i c f i n a l String q u a n t i d a d e E s t o q u e = " q u a n t i d a d e E s t o q u e "; 7 // v a r i a v e i s Pedido 8 p u b l i c s t a t i c f i n a l String t b l P e d i d o = " pedido "; 9 p u b l i c s t a t i c f i n a l String i d P e d i d o = " _ i d P e d i d o "; 10 p u b l i c s t a t i c f i n a l String v a l o r T o t a l = " v a l o r T o t a l "; 11 p u b l i c s t a t i c f i n a l String i d C l i e n t e F K P = " i d C l i e n t e "; 12 p u b l i c s t a t i c f i n a l String d a t a P e d i d o = " d a t a P e d i d o "; 13 p u b l i c s t a t i c f i n a l String n u m P a r c e l a s = " n u m P a r c e l a s "; 14 p u b l i c s t a t i c f i n a l String v a l o r P a r c e l a = " v a l o r P a r c e l a "; 15 // v a r i a v e i s i t e m L i s t a P e d i d o 16 p u b l i c s t a t i c f i n a l String t b l I t e m L i s t a P e d i d o = " i t e m L i s t a P e d i d o " ;
17 p u b l i c s t a t i c f i n a l String idItem = " _idItem ";
18 p u b l i c s t a t i c f i n a l String q u a n t i d a d e I t e n s = " q u a n t i d a d e I t e n s "; 19 p u b l i c s t a t i c f i n a l String i d P r o d u t o F K I = " i d P r o d u t o "; 20 p u b l i c s t a t i c f i n a l String i d L i s t a P e d i d o F K = " i d L i s t a P e d i d o "; 21 // v a r i a v e i s l i s t a P e d i d o 22 p u b l i c s t a t i c f i n a l String t b l L i s t a P e d i d o = " l i s t a P e d i d o "; 23 p u b l i c s t a t i c f i n a l String i d L i s t a P e d i d o = " _ i d L i s t a P e d i d o "; 24 p u b l i c s t a t i c f i n a l String i d P e d i d o F K = " i d P e d i d o "; 25 // v a r i a v e i s Meta
26 p u b l i c s t a t i c f i n a l String tblMeta = " meta "; 27 p u b l i c s t a t i c f i n a l String idMeta = " _idMeta ";
28 p u b l i c s t a t i c f i n a l String m e t a D i a r i a = " m e t a D i a r i a "; 29 p u b l i c s t a t i c f i n a l String m e t a M e n s a l = " m e t a M e n s a l ";
APÊNDICE F. Exemplos de Códigos-Fonte em Java 125
30 p u b l i c s t a t i c f i n a l String m e t a T r i m e s t r e = " m e t a T r i m e s t r e "; 31 p u b l i c s t a t i c f i n a l String p e r i o d o A n o = " p e r i o d o A n o ";
32 p u b l i c s t a t i c f i n a l String d a t a C a d a s t r o M e t a = " d a t a C a d a s t r o M e t a ";
33 // E s t r u t u r a da tabela Estoque
34 p r i v a t e s t a t i c f i n a l String c r e a t e E s t o q u e = " create table " + 35 t b l E s t o q u e + " ( " + i d E s t o q u e + " integer primary key
autoincrement , " +
36 i d P r o d u t o P K F K E + " integer not null , " + 37 q u a n t i d a d e E s t o q u e + " integer not null ,"+
38 " FOREIGN KEY ( "+ i d P r o d u t o P K F K E +" ) R E F E R E N C E S "+ t b l P r o d u t o s +" ( "+
i d P r o d u t o +" ) ) ; ";
39 // E s t r u t u r a da tabela Pedido
40 p r i v a t e s t a t i c f i n a l String c r e a t e P e d i d o = " create table " + 41 t b l P e d i d o + " ( " + i d P e d i d o + " integer primary key autoincrement
, " +
42 v a l o r T o t a l + " real not null , " + 43 i d C l i e n t e F K P + " long not null ,"+ 44 d a t a P e d i d o + " text not null ,"+ 45 n u m P a r c e l a s + " integer not null ,"+ 46 v a l o r P a r c e l a + " real not null ,"+
47 " FOREIGN KEY ( "+ i d C l i e n t e F K P +" ) R E F E R E N C E S "+ t b l C l i e n t e +" ( "+
i d C l i e n t e +" ) ) ; ";
48
49 p r i v a t e s t a t i c f i n a l String c r e a t e L i s t a P e d i d o = " create table " + 50 t b l L i s t a P e d i d o + " ( " + i d L i s t a P e d i d o + " integer primary key
autoincrement , " +
51 i d P e d i d o F K + " long not null , " +
52 " FOREIGN KEY ( "+ i d P e d i d o F K +" ) R E F E R E N C E S "+ t b l P e d i d o +" ( "+
i d P e d i d o +" ) ) ; ";
53
54 p r i v a t e s t a t i c f i n a l String c r e a t e I t e m L i s t a P e d i d o = " create table
" +
55 t b l I t e m L i s t a P e d i d o + " ( " + idItem + " integer primary key
autoincrement , " +
56 i d L i s t a P e d i d o F K + " long not null , " + 57 i d P r o d u t o F K I + " long not null , " +
58 q u a n t i d a d e I t e n s + " integer not null , " +
59 " FOREIGN KEY ( "+ i d L i s t a P e d i d o F K +" ) R E F E R E N C E S "+ t b l L i s t a P e d i d o +
" ( "+ i d L i s t a P e d i d o +" ) , " +
60 " FOREIGN KEY ( "+ i d P r o d u t o F K I +" ) R E F E R E N C E S "+ t b l P r o d u t o s +" ( "+
i d P r o d u t o +" ) ) ; ";
APÊNDICE F. Exemplos de Códigos-Fonte em Java 126
62 p r i v a t e s t a t i c f i n a l String c r e a t e M e t a = " create table " +
63 tblMeta + " ( " + idMeta + " integer primary key autoincrement , "
+
64 m e t a D i a r i a + " real not null , " + 65 m e t a M e n s a l + " real not null , " + 66 m e t a T r i m e s t r e + " real not null , "+ 67 p e r i o d o A n o + " integer not null , " + 68 d a t a C a d a s t r o M e t a + " text not null ) ; "; 69 70 p u b l i c v o i d o n C r e a t e ( S Q L i t e D a t a b a s e d a t a b a s e ) { 71 // Criacao da tabela 72 // ... 73 d a t a b a s e . execSQL ( c r e a t e E s t o q u e ) ; 74 d a t a b a s e . execSQL ( c r e a t e P e d i d o ) ; 75 d a t a b a s e . execSQL ( c r e a t e L i s t a P e d i d o ) ; 76 d a t a b a s e . execSQL ( c r e a t e I t e m L i s t a P e d i d o ) ; 77 d a t a b a s e . execSQL ( c r e a t e M e t a ) ; 78 }
127
APÊNDICE G Ű Descrição dos casos de
Teste Unitários
Caso de uso: Cadastrar Cliente
Objetivo Testar o caso de uso verificando se os dados inseridos estão de
acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Cliente cadastrado com sucesso! A mensagem caso algum campo esteja fal- tando deve ser mostrada por meio de um ícone de exclamação nos campos obrigatórios, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.
Descrição Para este teste é preciso acessar a tela de clientes e clicar no botão
Cadastrar Cliente, inserir os dados e confirmar as saídas
Pré Requisito Não há
Observação Não há
Tabela 9 – Caso de Teste: Cadastro de Clientes
Caso de uso: Cadastrar Categoria
Objetivo Testar o caso de uso verificando se os dados inseridos estão de
acordo com os dados no banco. A mensagem de sucesso deve ser a seguinte: Categoria cadastrada com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mos- trada como um popup na tela que desaparece sem algum clique.
Descrição Para este teste é preciso acessar a tela de produtos e clicar no
botão Cadastro e na opção Cadastrar Categoria, inserir os dados e confirmar as saídas
Pré Requisito Não há
Observação Não há
APÊNDICE G. Descrição dos casos de Teste Unitários 128
Caso de uso: Cadastrar Subcategoria
Objetivo Testar o caso de uso verificando se os dados inseridos estão de
acordo com os dados no banco. A mensagem de sucesso deve ser a seguinte: Subcategoria cadastrada com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mos- trada como um popup na tela que desaparece sem algum clique.
Descrição Para este teste é preciso acessar a tela de produtos e clicar no botão
Cadastro e na opção Cadastrar Subcategoria, inserir os dados e confirmar as saídas
Pré Requisito Ter categorias cadastradas
Observação Não há
Tabela 11 – Caso de Teste: Cadastro de Subcategorias
Caso de uso: Cadastrar Produto
Objetivo Testar o caso de uso verificando se os dados inseridos estão de
acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Produto cadastrado com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.
Descrição Para este teste é preciso acessar a tela de produtos e clicar no
botão Cadastro e na opção Cadastrar Produto, inserir os dados e confirmar as saídas
Pré Requisito Ter categorias e subcategorias cadastradas.
Observação Não há
APÊNDICE G. Descrição dos casos de Teste Unitários 129
Caso de uso: Cadastrar Sessão
Objetivo Testar o caso de uso verificando se os dados inseridos estão de
acordo com os dados no banco, verificar se ao inserir dados inváli- dos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Sessão cadastrada com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.
Descrição Para este teste é preciso acessar a tela de agenda e clicar no botão
Sessão e na opção Cadastrar Sessão, inserir os dados e confirmar as saídas
Pré Requisito Ter clientes cadastrados.
Observação Deve-se garantir que não haja sessões cadastradas no mesmo horário
Tabela 13 – Caso de Teste: Cadastro de Sessões
Caso de uso: Cadastrar Compromisso
Objetivo Testar o caso de uso verificando se os dados inseridos estão de
acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Compro- misso cadastrado com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.
Descrição Para este teste é preciso acessar a tela de agenda e clicar no botão
Compromisso e na opção Cadastrar Compromisso, inserir os dados e confirmar as saídas
Pré Requisito Não há.
Observação Deve-se garantir que não haja compromissos cadastradas no mesmo
horário
APÊNDICE G. Descrição dos casos de Teste Unitários 130
Caso de uso: Cadastrar Meta
Objetivo Testar o caso de uso verificando se os dados inseridos estão de
acordo com os dados no banco, verificar se ao inserir dados inváli- dos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem, verificar se o calculo das metas que não foram inseridas foi feito. A mensagem de sucesso deve ser a seguinte: Meta cadastrada com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.
Descrição Para este teste é preciso acessar a tela financeira e clicar no botão
Meta e na opção Cadastrar Meta, inserir os dados e confirmar as saídas
Pré Requisito Não há.
Observação Deve-se garantir que ao clicar no botão calcular o sistema calcule
as metas de forma correta e aproximada. Tabela 15 – Caso de Teste: Cadastro de Metas
Caso de uso: Cadastrar Pedido e Itens do Pedido
Objetivo Testar o caso de uso verificando se os dados inseridos estão de
acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Pedido ca- dastrado com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique. Neste mesmo teste deve se testar se o cadastro de itens está de acordo, assim clicando em adicionar produtos após o preenchimento dos campos em um novo cadastro de pedidos, no caso deve seguir a mesma ideia do cadastro de pedidos.
Descrição Para este teste é preciso acessar a tela financeira e clicar no botão
Cadastrar Pedido , inserir os dados e confirmar as saídas, bem como para a adição de itens ao pedido.
Pré Requisito Ter clientes cadastrados e produtos no estoque.
Observação Não há.
APÊNDICE G. Descrição dos casos de Teste Unitários 131
Caso de uso: Adicionar ao estoque
Objetivo Testar se ao acessar a opção da tela financeira, Adicionar ao Es-
toque, o sistema redireciona para a tela de alteração do estoque, verificando se os dados inseridos estão de acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A men- sagem de sucesso deve ser a seguinte: Estoque alterado com sucesso! , esta mensagem deve aparecer no momento que o usuário clicar em Adicionar mas possibilitar a inserção de mais itens. A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique..
Descrição Para este teste é preciso acessar a tela financeira e clicar no botão
Adicionar ao Estoque , inserir os dados e confirmar as saídas
Pré Requisito Não há.
Observação Deve-se garantir que ao clicar no botão pesquisar estoque e seleci-
onar um item, logo clicar em editar o sistema também redirecione para a mesma tela.
Tabela 17 – Caso de Teste: Adicionar ao Estoque
Caso de uso: Pesquisar Clientes
Objetivo Testar verificando se ao clicar no botão Pesquisar Clientes o sistema
redireciona para a tela de pesquisa com a lista de clientes cadastra- dos, caso o usuário preencha o campo de Nome Cliente o sistema filtra a lista pelo nome inserido.
Descrição Para este teste é preciso acessar a tela de clientes e clicar no bo-
tão Pesquisar Clientes.Para testar o filtro basta preencher o campo Nome Cliente.
Pré Requisito Ter clientes cadastrados.
Observação Deve-se filtrar os clientes a partir da primeira letra inserida.
Tabela 18 – Caso de Teste: Pesquisar Clientes
Caso de uso: Pesquisar Categorias
Objetivo Testar verificando se ao clicar no botão Pesquisar Categorias o sis-
tema redireciona para a tela de pesquisa com a lista de Categorias cadastrados, caso o usuário preencha o campo de Nome Categoria o sistema filtra a lista pelo nome inserido.
Descrição Para este teste é preciso acessar a tela de categorias e clicar no
botão Pesquisar Categorias. Para testar o filtro basta preencher o campo Nome Categoria.
Pré Requisito Ter categorias cadastrados.
Observação Deve-se filtrar os Categorias a partir da primeira letra inserida.
APÊNDICE G. Descrição dos casos de Teste Unitários 132
Caso de uso: Pesquisar Subcategorias
Objetivo Testar verificando se ao clicar no botão Pesquisar Subcategorias o
sistema redireciona para a tela de pesquisa com a lista de Subca- tegorias cadastrados, caso o usuário preencha o campo de Nome Subcategoria o sistema filtra a lista pelo nome inserido.
Descrição Para este teste é preciso acessar a tela de subcategorias e clicar no
botão Pesquisar Subcategorias. Para testar o filtro basta preencher o campo Nome Subcategoria.
Pré Requisito Ter subcategorias cadastrados.
Observação Deve-se filtrar os Subcategorias a partir da primeira letra inserida.
Tabela 20 – Caso de Teste: Pesquisar Subcategorias
Caso de uso: Pesquisar Produtos
Objetivo Testar verificando se ao clicar no botão Pesquisar Produtos o sis-
tema redireciona para a tela de pesquisa com a lista de produtos cadastrados, caso o usuário preencha o campo de Nome Produto o sistema filtra a lista pelo nome inserido.
Descrição Para este teste é preciso acessar a tela de produtos e clicar no botão
Pesquisar Produtos.Para testar o filtro basta preencher o campo Nome Produto.
Pré Requisito Ter produtos cadastrados.
Observação Deve-se filtrar os produtos a partir da primeira letra inserida.
Tabela 21 – Caso de Teste: Pesquisar Produtos
Caso de uso: Visualizar Calendário
Objetivo Testar verificando se ao clicar no botão Calendário o sistema redire-
ciona para a tela de pesquisa com a lista de sessões e compromissos do dia vigente e o calendário marcando o dia atual, caso o usuá- rio clique em qualquer dia mostrado no calendário, o sistema deve retornar a lista de sessões e compromissos do dia selecionado.
Descrição Para este teste é preciso acessar a tela de agenda e clicar no botão
Calendário. Para testar o filtro basta clicar em um dia aleatório no