300 likes | 405 Views
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.
E N D
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
Titulo: “Criar Nova Tarefa” Prioritária - Vigilante - Tarefa Única Hoje Amanha Outro dia: Hora: Sim Sim Não Não Tarefa Periódica De: Hora: 2ª 3ª 4ª 5ª 6ª SAB DOM Até: Descrição da tarefa: Observações da tarefa: Criar Tarefa
Divisão dos elementos FORM PART 1 Prioritária - Vigilante - Tarefa Única FORM PART 2 Hoje Amanha Outro dia: Hora: Sim Sim Não Não Tarefa Periódica FORM PART 3 De: Hora: 2ª 3ª 4ª 5ª 6ª SAB DOM Até: FORM PART 4 Descrição da tarefa: Observações da tarefa: FORM PART 5 Criar Tarefa
Form Principal: “Form_Task_New” • Session_start(); • Include(‘Form_Part_Task_PrioritySecurity’); • SlideToggle(Single, Periodic): • { • toggle • Include(‘Form_Part_Task_New_Single’); • toggle • Include(‘Form_Part_Task_New_Periodic’); • } • Include (‘Form_Part_TaskDetails_DescriptionObservation’); • $buttons= getTaskButtons(Task_register, NULL); • Include (‘Form_Part_Buttons’); • 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. • 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)
Titulo da pagina: “Tarefas Correntes” Hoje Atrasadas Todas Todas Vigilantes Vigilantes Prioridade Prioridade Descrição Descrição Data Data . . . . . . . . . . . . . . . . . . Tarefas Semana Tarefas Mês Imprimir Histórico
Divisão dos elementos Todas Todas Vigilantes Vigilantes FORM PART 1 FORM PART 1 Prioridade Prioridade Descrição Descrição Data Data FORM PART 2 FORM PART 2 . . . . . . . . . . . . . . . . . . FORM PART 3
Form Principal: “form_task_list” • Script que gera a pagina consulta de lista de tarefas. • Session_Start(); • $filters= $_SESSION[‘filters’]; • $list_type= ‘Hoje’; • $task_list = getTaskList( $list_type, $filters); • Include(‘Form_Part_TaskList_Filters’); • Include (‘Form_Part_TaskList_Display’); • $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’); • Functiongetbuttons() • arrayButtons.add(‘Tarefas_mês, viewTaskMonth.php); • arrayButtons.add(‘Tarefas_mês, viewTaskMonth.php); • ~ • Form_Part: “Form_Part_TaskList_Filters” • Sub-script que faz o “print” aos filtros para a listagem • Os filtros estão guardados numa variável de sessão $_SESSION[‘filters’] que é usada para “carregar” a lista de tarefas adequada. • 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. • 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ã.
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’ • …
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: • Registar Tarefa • Alterar Tarefa • Apagar Tarefa • Arquivar Tarefa • Imprimir • Nova Tarefa • Tarefas Da Semana • Tarefas Do Mês • Impressão • Histórico ‘Task_list’; NULL ‘Task_details’; ‘Planeada’
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Não Registada (Planeada) Hora Prioritária - SIM Vigilante -Sim Data Descrição da tarefa: Observações da tarefa: Autor: Criada em: Tarefa por executar. Alterar Tarefa Apagar Tarefa Registar Tarefa Imprimir
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Registada (Executada) Hora Prioritária - SIM Vigilante -Sim 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
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Registada (Não Executada/Parcialmente Executada) Hora Data Prioritária - SIM Vigilante -Sim 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
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: Hora Prioritária - SIM Vigilante -Sim Data 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)
Form Principal: “Form_TaskDetails” • Script que gera a pagina de consulta de detalhes de uma tarefa especifica. • Session_start(); • $id_task= $_GET [‘id_task’]; • $task = getTaskById( $id_task); • $warning= getTaskWarning($id_task); • $anomalie= getTaskAnomalie($id_task); • $_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_TaskDetails_Planning” • Sub-script que faz o “print” dos dados de planeamento da tarefa. • Utiliza os dados contidos no array $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. • 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;
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)
Titulo: “Detalhes da Tarefa” (Registar - Executada) Hora Data Prioritária - SIM Vigilante -Sim Descrição da tarefa: Observações da tarefa: Autor: Criada em: Sim Não A tarefa executada com sucesso? Sim Executei Parte Não Observações sobre a execução da tarefa: Alguma anomalia? Confirmar
Titulo: “Detalhes da Tarefa” (Registar – Não Executada/Parcialmente Executada) Hora Data Prioritária - SIM Vigilante -Sim Descrição da tarefa: Observações da tarefa: Autor: Criada em: Sim Sim Não Não A tarefa executada com sucesso? Sim Executei Parte Não Porque? Pretende colocar um aviso? Alguma anomalia? Confirmar
Elementos comuns Hora Prioritária - SIM Vigilante -Sim Data FORM PART 1 (PLANEAMENTO) Descrição da tarefa: Observações da tarefa: Autor: Criada em: Sim Sim Não Não FORM PART 2 (EXECUÇÃO/REGISTO) A tarefa executada com sucesso? Sim Executei Parte Não Porque? Pretende colocar um aviso? Alguma anomalia? FORM PART 3 (BOTÕES) Confirmar
Form Principal: “Form_TaskDetails_Register” • Script que gera a pagina de consulta de detalhes de uma tarefa especifica. • Session_start(); • $task= $_SESSION[‘task’]; • Include(‘Form_Part_TaskDetails_Planning’); • Include (‘Form_Part_TaskDetails_Register’); • $buttons= getTaskButtons(Task_register, NULL); • Include (‘Form_Part_Buttons’); • Form_Part_1: “Form_Part_TaskDetails_Planning” • Sub-script que faz o “print” dos dados de planeamento da tarefa. • Utiliza os dados contidos no array $task • 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ã.
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
Titulo: “Alterar Tarefa” – Não Registada (Planeada) Prioritária - Vigilante - Data Hora Descrição da tarefa: Sim Sim Não Não Observações da tarefa: Autor: Criada em: Guardar Alterações Cancelar
Titulo: “Alterar Tarefa” - Registada (Executada) * Hora Data Prioritária - SIM Vigilante -Sim 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
Titulo: “Alterar Tarefa” - Registada (Não Executada/Parcialmente Executada) * Hora Data Prioritária - SIM Vigilante -Sim 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 Cancelar Guardar Alterações
Divisão do elementos Hora Prioritária - SIM Vigilante -Sim Data 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)
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_Planningou Form_Part_TaskDetails_Planning_Edit • O Form_Part_2 vai ser acessível por todos os users, tendo umas pequenas nuances em que: • É possível editar os dados de registo da tarefa. • 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.
Form Principal: “Form_TaskDetails_Edit” • Session_start(); • $task= $_SESSION[‘task’]; • $action_list = $_SESSION[‘action_list’]; • if ( array_key_exist(‘Alterar Tarefa’, $action_list) • Include(‘Form_Part_TaskDetails_Planning_Edit’); • Else • Include(‘Form_Part_TaskDetails_Planning’); • Include (‘Form_Part_TaskDetails_Register_Edit’); • $buttons= getTaskButtons(Task_register, NULL); • Include (‘Form_Part_Buttons’); • 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” • 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_Edit’ ‘Form_Anomalies_Edit’) • “Call” a função updateTask($task) • Form_Part: “Form_Part_Buttons” • Sub-script que recebe um array com os botões adequados e os dispõem no ecrã.
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.
Funções da camada de acesso a base de dados: • AVISOS: • getWarningsList() • getWarningById($id_warning) • updateWarning($warning) • newWarning($warning) • deleteWarning($id_warning) • Outras: • getTaskAnomalie($id_task) • getTaskWarning($id_task) • TAREFAS: • getTaskList($list_type,$filters) • getTaskById($id_task) • updateTask($task) • deleteTask($id_task) • arquiveTask($id_task) • newTask($task) • Users: • getActionList( $id_user) • updateUser($user) • deleteUser($id_user) • newUser($user) • Anomalias: • getAnomalieList() • getAnomalieById($id_anomalie) • updateAnomalie($id_anomalie) • newAnomalie($anomalie) • deleteAnomalie($id_anomalie)
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.
Forms e Form_Parts: Form_Part: Form: • Form_Part_Task_PrioritySecurity • Form_Part_Task_New_Periodic • Form_Part_Task_New_Single • Form_Task_New • Form_Part_TaskDetails_DescriptionObservation • Form_Part_Buttons • Form_Part_TaskList_Filters • Form_Part_TaskList_Display • Form_TaskList • Form_Part_Buttons • Form_Part_TaskDetails_Planning • Form_Part_TaskDetails_State” • Form_TaskDetails • Form_Part_Buttons • Form_Part_TaskDetails_Planning • Form_Part_TaskDetails_Register • Form_TaskDetails_Register • Form_Part_Buttons • Form_Part_TaskDetails_Planning_Edit • Form_Part_TaskDetails_Register_Edit • Form_TaskDetails_Edit • Form_Part_Buttons