Casos de uso
• Pesquisar
- Consultar lista de tarefas
• Detalhes
- Consultar detalhes de uma tarefa
- Adicionar tarefa
- Apagar tarefa
- Alterar dados tarefa
- Registar tarefa
- Associar Aviso
- Associar Anomalia
- Alterar registo da tarefa
• Imprimir
1
Titulo: “Criar Nova Tarefa”
Prioritária -
Sim
Não
Sim
Vigilante -
Não
Tarefa Única
Hoje
Amanha
Outro dia:
Hora:
Tarefa Periódica
2ª
3ª
4ª
5ª
6ª
SAB
DOM
De:
Hora:
Até:
Descrição da tarefa:
Observações da tarefa:
Criar Tarefa
2
Divisão dos elementos
Prioritária -
Sim
Não
FORM
PART
Sim 1 Não
Vigilante
-
Tarefa Única
Hoje
Amanha
FORM
Outro
dia: PART 2
Hora:
Tarefa Periódica
2ª
3ª
4ª
5ª
6ª
PART 3 De:
SABFORM
DOM
Até:
Hora:
Descrição da tarefa:
Observações da tarefa:
Criar Tarefa
FORM PART 4
FORM PART 5
3
Form Principal: “Form_Task_New”
Session_start();
Include (‘Form_Part_Task_PrioritySecurity’);
SlideToggle(Single, Periodic):
{
toggle
Include (‘Form_Part_Task_New_Single’);
toggle
Form_Part_1: “Form_Part_Task_PrioritySecurity”
• Sub-script que carrega os formulários de
escolha a prioridade e a atribuição de tarefas a
seguranças.
Form_Part_2: “Form_Part_Task_New_Single”
• Sub-script que carrega o formulário para
criação de uma tarefa única.
Form_Part_3: “Form_Part_Task_New_Periodic”
• Sub-script que carrega o formulário para
criação de uma tarefa periodica.
Include (‘Form_Part_Task_New_Periodic’);
}
Include
(‘Form_Part_TaskDetails_DescriptionObserva
tion’);
$buttons = getTaskButtons(Task_register,
NULL);
Include (‘Form_Part_Buttons’);
Form_Part_4: “Form_Part_Task_DescriptionObservation”
• Sub-script que carrega o formulário para criação
de uma tarefa única.
Form_Part_5: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões
adequados e os dispõem no ecrã.
• Ao clicar no botão -> newTask($task)
4
Titulo da pagina: “Tarefas Correntes”
Hoje
Atrasadas
Todas
Vigilantes
Prioridade
Descrição
.
.
.
Tarefas Semana
.
.
.
Data
.
.
.
Tarefas Mês
Todas
Vigilantes
Prioridade
Descrição
.
.
.
.
.
.
Imprimir
Data
.
.
.
Histórico
5
Divisão dos elementos
Todas
Vigilantes
FORM PART
1
Prioridade
.
.
.
Descrição
.
.
.
Todas
Vigilantes
FORM PART
1
Data
.
.
.
Prioridade
.
.
.
FORM PART 2
Descrição
.
.
.
Data
.
.
.
FORM PART 2
FORM PART 3
6
Form Principal: “form_task_list”
Form_Part: “Form_Part_TaskList_Filters”
• Script que gera a pagina consulta de lista de
tarefas.
• Sub-script que faz o “print” aos filtros para a
listagem
Session_Start();
• Os filtros estão guardados numa variável de
sessão $_SESSION[‘filters’] que é usada para
“carregar” a lista de tarefas adequada.
$filters = $_SESSION[‘filters’];
$list_type = ‘Hoje’;
$task_list = getTaskList( $list_type, $filters);
Include (‘Form_Part_TaskList_Filters’);
Include (‘Form_Part_TaskList_Display’);
• Exemplo: $filters[‘Hoje’]=‘Todas’
$filters[‘Atrasadas’]=‘Vigilante’
• Ao clicar no botão do filtro, a variável de sessão
é actualizada e a pagina recarregada.
$list_type = ‘Atrasadas’;
$task_list = getTaskList($list_type,$filters);
Include (‘Form_Part_TaskList_Filters’);
Include (‘Form_Part_TaskList_Display’);
$buttons = getButtons(Task_list, NULL);
Include (‘Form_Part_Buttons’);
Function getbuttons()
arrayButtons.add(‘Tarefas_mês,
viewTaskMonth.php);
Form_Part: “Form_Part_TaskList_Display”
• Sub-script que faz o “print” para o ecrã da lista
de tarefas carregada na variável $task_list.
• A descrição da tarefa na lista é uma
hiperligação para a pagina de detalhes da tarefa
• O ID da tarefa é passado pelo método GET no
url.
Form_Part: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões
adequados e os dispõem no ecrã.
7
Funções da camada de acesso a base de dados necessárias:
- getTaskList( $list_type ,$filters)
• Recebe como argumentos:
- o tipo de lista apresentar: ‘Hoje’; ‘Atrasadas’; ‘Mês’; ‘Semana’
- o filtro para a lista: ‘Todas’ ; ’Vigilante’
• Retorna um array multidimensional com a lista de tarefas:
$task_list[id_task]=> array ( task_priority, task_state, task_description, task_date)
- getActionList( $id_user)
• Recebe como argumento:
-o ID do user autentificado no sistema
• Retorna array com a lista de acções que este pode efectuar no sistema.
Exemplo:
$action_list[1]= ‘Alterar Tarefa’
$action_list[2]= ‘Criar Tarefa’
…
8
Funções auxiliares:
- getTaskButtons( $buttons_select, $task_state)
• Recebe como argumentos:
- qual o “FORM” que vamos fazer “display”
‘Task_list’; ‘Task_list_week’; ‘Task_list_month’;
‘Task_details’; ‘Task_edit’; ‘Task_new’
- o estado da tarefa ( no caso da consulta de detalhes)
• Retorna um array com a lista de botões que o user tem permissões para ver nesse “FORM”
Exemplo:
‘Task_list’; NULL
‘Task_details’; ‘Planeada’
• Nova Tarefa
• Tarefas Da Semana
• Tarefas Do Mês
• Impressão
• Histórico
• Registar Tarefa
• Alterar Tarefa
• Apagar Tarefa
• Arquivar Tarefa
• Imprimir
9
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Não Registada
(Planeada)
Prioritária - SIM
Vigilante -Sim
Data
Hora
Descrição da tarefa:
Observações da tarefa:
Autor:
Criada em:
Tarefa por executar.
Alterar Tarefa
Apagar Tarefa
Registar Tarefa
Imprimir
10
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Registada
(Executada)
Prioritária - SIM
Vigilante -Sim
Hora
Data
Descrição da tarefa:
Observações da tarefa:
Autor:
Criada em:
A tarefa executada com sucesso?
Sim
Observações sobre a execução da tarefa:
Anomalia associada
Alterar Tarefa
Apagar Tarefa
Imprimir
11
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Registada (Não
Executada/Parcialmente Executada)
Prioritária - SIM
Vigilante -Sim
Hora
Data
Descrição da tarefa:
Observações da tarefa:
Autor:
Criada em:
A tarefa executada com sucesso?
Não
Observações sobre a execução da tarefa:
Aviso associado
Anomalia associada
Alterar Tarefa
Apagar Tarefa
Imprimir
12
Divisão dos elementos
• É possível verificar por simples inspecção que dentro de todos os estados
possíveis na consulta de detalhes que existem elementos que se repetem:
Prioritária - SIM
Vigilante -Sim
Data
Hora
Descrição da tarefa:
Observações da tarefa:
FORM PART 1 (PLANEAMENTO)
Autor:
Criada em:
A tarefa executada com sucesso?
Sim
Observações sobre a execução da tarefa:
FORM PART 2 (EXECUÇÃO/REGISTO)
Anomalia associada
Alterar Tarefa
Apagar
Tarefa
Imprimir
FORM
PART 3 (BOTÕES)
13
Form Principal: “Form_TaskDetails”
Form_Part: “Form_Part_TaskDetails_Planning”
• Script que gera a pagina de consulta de
detalhes de uma tarefa especifica.
• Sub-script que faz o “print” dos dados de
planeamento da tarefa.
Session_start();
• Utiliza os dados contidos no array $task
$id_task = $_GET [‘id_task’];
$task = getTaskById( $id_task);
$warning = getTaskWarning($id_task);
$anomalie = getTaskAnomalie($id_task);
Form_Part: “Form_Part_TaskDetails_State”
• Sub-script que faz o “print” do estado da tarefa
e dos detalhes de execução (registo), apresenta
avisos e/ou anomalias associados a tarefa.
$_SESSION[‘current_task’] = $task;
Include (‘Form_Part_TaskDetails_Planning’);
Include (‘Form_Part_TaskDetails_State’);
$buttons = getTaskButtons(Task_details,
$task[task_state]);
Include (‘Form_Part_Buttons’);
Form_Part: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões
adequados e os dispõem no ecrã.
• Os dados da tarefa sobre a qual se esta a
trabalhar são passados por variável de sessão
entre paginas (evitar acessos desnecessários a
B.D.), caso “Registar Tarefa”, “Alterar Tarefa”.
$_SESSION[‘task’]= $task;
$_SESSION[‘warning’]= $warning;
$_SESSION[‘anomalie’]= $anomalie;
14
Funções da camada de acesso a base de dados necessárias:
- getTaskById( $id_task)
• Recebe como argumento: - Id da tarefa
• Retorna um array com os dados da tarefa:
$task=> array ( id_task, task_priority, task_state, task_description, task_date, task_author… )
-getTaskWarning($id_task)
• Recebe como argumento: – Id a tarefa
• Retorna um array com os dados do aviso associados a tarefa:
$warning=> array (id_warning, warning_description, Warning_priority,
warning_security…#id_task)
- getTaskAnomalie($id_task)
• Recebe como argumento: - Id da tarefa
• Retorna um array com os dados da anomalia associada a tarefa:
$anomalie=> array (id_anomalie, anomalie_description, anomalie_TT, #id_task)
15
Titulo: “Detalhes da Tarefa” (Registar - Executada)
Prioritária - SIM
Vigilante -Sim
Hora
Data
Descrição da tarefa:
Observações da tarefa:
Autor:
Criada em:
Sim
A tarefa executada com sucesso?
Executei Parte
Não
Observações sobre a execução da tarefa:
Alguma anomalia?
Sim
Não
Confirmar
16
Titulo: “Detalhes da Tarefa” (Registar – Não Executada/Parcialmente
Executada)
Prioritária - SIM
Vigilante -Sim
Hora
Data
Descrição da tarefa:
Observações da tarefa:
Autor:
Criada em:
Sim
A tarefa executada com sucesso?
Executei Parte
Não
Porque?
Pretende colocar um aviso?
Sim
Não
Alguma anomalia?
Sim
Não
Confirmar
17
Elementos comuns
Prioritária - SIM
Vigilante -Sim
Data
Hora
Descrição da tarefa:
Observações da tarefa:
Autor:
FORM PART 1 (PLANEAMENTO)
Criada em:
A tarefa executada com sucesso?
Porque?
Sim
Executei Parte
Não
Sim
Não
Pretende colocar um FORM
aviso? PART
2 (EXECUÇÃO/REGISTO)
Alguma anomalia?
Confirmar
Sim
Não
FORM PART 3 (BOTÕES)
18
Form Principal: “Form_TaskDetails_Register”
Form_Part_1: “Form_Part_TaskDetails_Planning”
• Script que gera a pagina de consulta de
detalhes de uma tarefa especifica.
• Sub-script que faz o “print” dos dados de
planeamento da tarefa.
Session_start();
• Utiliza os dados contidos no array $task
$task = $_SESSION[‘task’];
Include (‘Form_Part_TaskDetails_Planning’);
Include (‘Form_Part_TaskDetails_Register’);
$buttons = getTaskButtons(Task_register,
NULL);
Include (‘Form_Part_Buttons’);
Form_Part_2: “Form_Part_TaskDetails_Register”
• Sub-script que carrega os formularios de registo
da tarefa.
• Dentro deste sub-script vai ser invocado outros
sub-scripts (se necessário,
‘Form_Warnings_New’ ‘Form_Anomalies_New’)
• “Call” a função updateTask($task)
Form_Part_3: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões
adequados e os dispõem no ecrã.
19
Funções da camada de acesso a base de dados necessárias:
- updateTask( $task)
• Recebe como argumento:
- Array com os dados da tarefa
Faz o “update” substituindo os campos na B.D. da tarefa com ‘id_task’==$task[id_task] pelos
do array $task.
- newWarning( $warning)
• Recebe como argumento:
-Array com os dados do aviso.
Faz um “insert” na B.D de um novo aviso
-newAnomalie( $anomalie)
• Recebe como argumento:
-Array com os dados da anomalia.
Faz um “insert” na B.D de uma nova anomalia
20
Titulo: “Alterar Tarefa” – Não Registada (Planeada)
Prioritária -
Sim
Não
Vigilante -
Sim
Não
Data
Hora
Descrição da tarefa:
Observações da tarefa:
Autor:
Guardar Alterações
Criada em:
Cancelar
21
Titulo: “Alterar Tarefa” - Registada (Executada) *
Prioritária - SIM
Vigilante -Sim
Hora
Data
Descrição da tarefa:
Observações da tarefa:
Autor:
Criada em:
A tarefa executada com sucesso?
Sim
Executei Parte
Não
Observações sobre a execução da tarefa:
Anomalia
Alterar
Guardar Alterações
Cancelar
22
Titulo: “Alterar Tarefa” - Registada (Não Executada/Parcialmente
Executada) *
Prioritária - SIM
Vigilante -Sim
Hora
Data
Descrição da tarefa:
Observações da tarefa:
Autor:
Criada em:
A tarefa executada com sucesso?
Sim
Executei Parte
Não
Observações sobre a execução da tarefa:
Aviso associado
Alterar
Anomalia associada
Alterar
Guardar Alterações
Cancelar
23
Divisão do elementos
Prioritária - SIM
Vigilante -Sim
Data
Hora
Descrição da tarefa:
Observações da tarefa:
FORM PART 1 (PLANEAMENTO)
Autor:
Criada em:
A tarefa executada com sucesso?
Sim
Observações sobre a execução da tarefa:
FORM PART 2 (EXECUÇÃO/REGISTO)
Anomalia associada
Alterar Tarefa
Apagar
Tarefa
Imprimir
FORM
PART 3 (BOTÕES)
24
Analise dos elementos
• O Form_Part_1 vai depender do tipo de “user” que está a tentar alterar a tarefa,
não existe necessidade de desassociar edição dos dados da edição do registo, logo
quando um “user” com permissões para tal esta a editar uma tarefa pode editar os
dados da tarefa bem como o seu registo, por outro lado um user sem permissões
pode apenas alterar o registo. Logo:
Form_Part_TaskDetails_Planning ou Form_Part_TaskDetails_Planning_Edit
• O Form_Part_2 vai ser acessível por todos os users, tendo umas pequenas
nuances em que:
1. É possível editar os dados de registo da tarefa.
2. Visualiza-se os dados ,caso existam, do aviso/ anomalia associada e existe
a possibilidade de alterar os dados do aviso/anomalia nesse mesmo
formulário.
25
Form Principal: “Form_TaskDetails_Edit”
Session_start();
$task = $_SESSION[‘task’];
$action_list = $_SESSION[‘action_list’];
Form_Part: “Form_Part_TaskDetails_Planning_Edit”
• Sub-script carrega os dados da tarefa em
formulários editáveis.
• Utiliza os dados contidos no array $task
Form_Part: “Form_Part_TaskDetails_Register_Edit”
if ( array_key_exist(‘Alterar Tarefa’,
$action_list)
• Sub-script que carrega os formularios de registo
da tarefa.
Include
(‘Form_Part_TaskDetails_Planning_Edit’);
Else
• Dentro deste sub-script vai ser invocado outros
sub-scripts (se necessário, ‘Form_Warnings_Edit’
‘Form_Anomalies_Edit’)
Include (‘Form_Part_TaskDetails_Planning’);
• “Call” a função updateTask($task)
Include
(‘Form_Part_TaskDetails_Register_Edit’);
$buttons = getTaskButtons(Task_register,
NULL);
Include (‘Form_Part_Buttons’);
Form_Part: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões
adequados e os dispõem no ecrã.
26
Funções da camada de acesso a base de dados necessárias:
- updateWarning( $warning)
• Recebe como argumento:
-Array com os dados do aviso.
Faz o “update” substituindo os campos na B.D. pelos do array $warning.
- updateAnomalie( $anomalie)
• Recebe como argumento:
-Array com os dados da anomalia.
Faz o “update” substituindo os campos na B.D. da anomalia pelos do array $warning.
27
Funções da camada de acesso a base de dados:
TAREFAS:
AVISOS:
Outras:
• getTaskList( $list_type ,$filters)
• getWarningsList()
• getTaskAnomalie($id_task)
• getTaskById( $id_task)
• getWarningById( $id_warning)
• getTaskWarning($id_task)
• updateTask( $task)
• updateWarning( $warning)
• deleteTask($id_task)
• newWarning( $warning)
• arquiveTask($id_task)
• deleteWarning( $id_warning)
• newTask($task)
Users:
Anomalias:
• getActionList( $id_user)
• getAnomalieList()
• updateUser($user)
• getAnomalieById( $id_anomalie)
• deleteUser($id_user)
• updateAnomalie( $id_anomalie)
• newUser($user)
• newAnomalie( $anomalie)
• deleteAnomalie( $id_anomalie)
28
Variáveis de Sessão:
$_SESSION[‘filters’] – Guarda o estado dos filtros actualmente seleccionados, na lista de tarefas.
$_SESSION[‘task’] – Guarda os dados da tarefa sobre a qual se esta a trabalhar no momento.
$_SESSION[‘warning’] – Guarda os dados sobre o aviso o qual se esta a trabalhar no momento.
$_SESSION[‘anomalie’] – Guarda os dados sobre a anomalia a qual se esta a trabalhar no momento.
$_SESSION[‘action_list’] – Guarda a lista de acções que o user autentificado no sistema tem acesso.
$_SESSION[‘user’] – Guarda os dados do user autentificado no sistema.
29
Forms e Form_Parts:
Form_Part:
Form:
• Form_Task_New
• Form_TaskList
• Form_TaskDetails
• Form_Part_Task_PrioritySecurity
• Form_Part_Task_New_Periodic
• Form_Part_Task_New_Single
• Form_Part_TaskDetails_DescriptionObservation
• Form_Part_Buttons
• Form_Part_TaskList_Filters
• Form_Part_TaskList_Display
• Form_Part_Buttons
• Form_Part_TaskDetails_Planning
• Form_Part_TaskDetails_State”
• Form_Part_Buttons
• Form_TaskDetails_Register
• Form_Part_TaskDetails_Planning
• Form_Part_TaskDetails_Register
• Form_Part_Buttons
• Form_TaskDetails_Edit
• Form_Part_TaskDetails_Planning_Edit
• Form_Part_TaskDetails_Register_Edit
• Form_Part_Buttons
30
Download

tarefas