コード例 #1
0
ファイル: TarefaController.php プロジェクト: Thalita/TP2015
 private function salvar(Tarefa $tarefa)
 {
     $finalizar = $this->getParametro('acao') === 'finalizar';
     // Cria um objeto de DateTime com a data do form
     $dataInicio = \DateTime::createFromFormat('Y-m-d\\TH:i', $this->getParametro('data'));
     // Clona a data inicial para calcular a data final
     $dataFim = clone $dataInicio;
     // Pega a duração
     $duracao = $this->getParametro('duracao');
     // Quebra pelo ':' e coloca os valores em $hora e $min
     list($hora, $min) = explode(':', $this->getParametro('duracao'));
     // Converte os valores em int
     $hora = (int) $hora;
     $min = (int) $min;
     // Cria um objeto de DateInterval para calcular a nova data de término
     $intervalo = new \DateInterval("PT{$hora}H{$min}M");
     // Adiciona o intervalo á data de término
     $dataFim->add($intervalo);
     // Define os campos da tarefa de acordo com o form
     $tarefa->setDatIniTar($dataInicio->format('Y-m-d H:i:s'))->setDatTerTar($dataFim->format('Y-m-d H:i:s'))->setTepTar($duracao)->setDesTar($this->getParametro('descricao'));
     // Se a ação é de finalizar a tarefa, marca ela como finalizada
     if ($finalizar) {
         $tarefa->setConTar(Tarefa::FINALIZADA);
     }
     // Salva a tarefa
     $tarefa->salvar();
     $this->setMensagemSucesso('Tarefa ' . ($finalizar ? 'finalizada' : 'salva') . ' com sucesso!');
 }