private function populateVo($connection, $row)
 {
     if (!$row) {
         return new ApontamentosVo();
     }
     $usuarioModel = new UsuariosModel();
     $usuarioVo = $usuarioModel->loadById($connection, $row->apo_cdiusuario);
     $atividadeModel = new AtividadesModel();
     $atividadeVo = $atividadeModel->loadById($connection, $row->apo_cdiatividade);
     $chamadoModel = new ChamadosModel();
     $chamadoVo = $chamadoModel->loadById($connection, $row->apo_cdichamado);
     $vo = new ApontamentosVo();
     $vo->setId($row->apo_cdiapontamento);
     $vo->setUsuario($usuarioVo);
     $vo->setAtividade($atividadeVo);
     $vo->setChamado($chamadoVo);
     $vo->setDataInicio(Functions::toDateTime($row->apo_dtdinicio));
     $vo->setDataFim(Functions::toDateTime($row->apo_dtdfim));
     $vo->setObservacao($row->apo_dsbobservacao);
     $vo->setAvaliacao($row->apo_cdimodofaturamento);
     $vo->setApontado(Functions::toTime($row->apo_hrsapontadas));
     $vo->setFaturado(Functions::toTime($row->apo_hrsfaturadas));
     return $vo;
 }
 public function relatorioAtendimentosAction()
 {
     $connection = Databases::connect();
     // Carrega dados da tela
     $tiposRelatoriosModel = new TiposRelatoriosModel();
     $tiposRelatoriosArray = $tiposRelatoriosModel->load($connection);
     // Carrega dados da tela
     $tiposApontamentosModel = new TiposApontamentosModel();
     $tiposApontamentosArray = $tiposApontamentosModel->load($connection);
     $empresasArray = array();
     if ($_SESSION['perfilCliente'] == 1) {
         $exibeEmpresaAberta = 0;
         $empresasModel = new EmpresasModel();
         $empresasVo = $empresasModel->loadById($connection, $_SESSION['empresaCodigo']);
         array_push($empresasArray, $empresasVo);
     } else {
         $exibeEmpresaAberta = 1;
         $empresasModel = new EmpresasModel();
         $empresasArray = $empresasModel->load($connection);
     }
     $situacoesModel = new SituacoesModel();
     $situacoesArray = $situacoesModel->load($connection);
     $tiposAvaliacoesArray = array();
     if ($_SESSION['perfilCliente'] == 1) {
         $exibeTipoAvaliacaoAberta = 0;
     } else {
         $exibeTipoAvaliacaoAberta = 1;
         $tiposAvaliacoesModel = new TiposAvaliacoesModel();
         $tiposAvaliacoesArray = $tiposAvaliacoesModel->load($connection);
     }
     // Carrega valores que usuário setou
     $periodoInicial = $this->getParametroTela('periodoInicial');
     $periodoFinal = $this->getParametroTela('periodoFinal');
     $tipoRelatorio = $this->getParametroTela('tipoRelatorio');
     $empresa = $this->getParametroTela('empresa');
     $situacao = $this->getParametroTela('situacao');
     $tipoApontamento = $this->getParametroTela('tipoApontamento');
     $tipoAvaliacao = $this->getParametroTela('tipoAvaliacao');
     $imprimir = $this->getParametroTela('imprimir');
     $submit = $this->getParametroTela('submit');
     // Define valores padrão
     if (Functions::isEmpty($periodoInicial)) {
         $periodoInicial = date('d/m/Y');
     }
     if (Functions::isEmpty($periodoFinal)) {
         $periodoFinal = date('d/m/Y');
     }
     if (Functions::isEmpty($tipoRelatorio)) {
         $tipoRelatorio = 'S';
     }
     if (Functions::isEmpty($tipoApontamento)) {
         $tipoApontamento = '1';
     }
     if (Functions::isEmpty($tipoAvaliacao)) {
         if ($_SESSION['perfilCliente'] == 1) {
             $tipoAvaliacao = '2';
         } else {
             $tipoAvaliacao = '1';
         }
     }
     if (Functions::isEmpty($imprimir)) {
         $imprimir = 0;
     }
     // Monta array de parâmetros
     $parametros = array('periodoInicial' => $periodoInicial, 'periodoFinal' => $periodoFinal, 'tiposRelatorios' => $tiposRelatoriosArray, 'tipoRelatorio' => $tipoRelatorio, 'exibeEmpresaAberta' => $exibeEmpresaAberta, 'empresas' => $empresasArray, 'empresa' => $empresa, 'situacoes' => $situacoesArray, 'situacao' => $situacao, 'tiposApontamentos' => $tiposApontamentosArray, 'tipoApontamento' => $tipoApontamento, 'exibeTipoAvaliacaoAberta' => $exibeTipoAvaliacaoAberta, 'tiposAvaliacoes' => $tiposAvaliacoesArray, 'tipoAvaliacao' => $tipoAvaliacao, 'chamados' => array(), 'atividades' => array(), 'mensagem' => "");
     $erro = false;
     // Validações adicionais de segurança para o perfil de cliente
     if ($_SESSION['perfilCliente'] == 1) {
         // Valida se cliente fez malandragem de trocar empresa
         if ($this->clienteSelecionouEmpresaInvalida($connection, $empresa)) {
             $erro = true;
             $mensagem = 'N' . 'Percebemos que você selecionou uma empresa diferente da sua. Por motivos de segurança, não exibiremos o resultado do relatório';
         }
     }
     // Se validações apuraram algum erro
     if ($erro) {
         if ($imprimir == 1) {
             $view = 'views/relatorioAtendimentosSinteticoImprimir.phtml';
         } else {
             $view = 'views/relatorioAtendimentosSintetico.phtml';
         }
         $parametros['mensagem'] = $mensagem;
         // Se relatório sintético
     } else {
         if ($tipoRelatorio == 'S') {
             if ($imprimir == 1) {
                 $view = 'views/relatorioAtendimentosSinteticoImprimir.phtml';
             } else {
                 $view = 'views/relatorioAtendimentosSintetico.phtml';
             }
             $chamadosModel = new ChamadosModel();
             $atividadesModel = new AtividadesModel();
             if ($submit == "Consultar" || $imprimir == 1) {
                 if ($tipoApontamento == 1 || $tipoApontamento == 2) {
                     $chamadosArray = $chamadosModel->loadRelatorioAtendimentosSintetico($connection, $periodoInicial, $periodoFinal, $empresa, $situacao, $tipoAvaliacao);
                 } else {
                     $chamadosArray = array();
                 }
                 if ($tipoApontamento == 1 || $tipoApontamento == 3) {
                     $atividadesArray = $atividadesModel->loadRelatorioAtendimentosSintetico($connection, $periodoInicial, $periodoFinal, $empresa, $situacao, $tipoAvaliacao);
                 } else {
                     $atividadesArray = array();
                 }
             } else {
                 $chamadosArray = array();
                 $atividadesArray = array();
             }
             $parametros['chamados'] = $chamadosArray;
             $parametros['atividades'] = $atividadesArray;
             // Se relatório analítico
         } else {
             if ($tipoRelatorio == 'A') {
                 if ($imprimir == 1) {
                     $view = 'views/relatorioAtendimentosAnaliticoImprimir.phtml';
                 } else {
                     $view = 'views/relatorioAtendimentosAnalitico.phtml';
                 }
                 $chamadosModel = new ChamadosModel();
                 $atividadesModel = new AtividadesModel();
                 if ($submit == "Consultar" || $imprimir == 1) {
                     if ($tipoApontamento == 1 || $tipoApontamento == 2) {
                         $chamadosArray = $chamadosModel->loadRelatorioAtendimentosAnalitico($connection, $periodoInicial, $periodoFinal, $empresa, $situacao, $tipoAvaliacao);
                     } else {
                         $chamadosArray = array();
                     }
                     if ($tipoApontamento == 1 || $tipoApontamento == 3) {
                         $atividadesArray = $atividadesModel->loadRelatorioAtendimentosAnalitico($connection, $periodoInicial, $periodoFinal, $empresa, $situacao, $tipoAvaliacao);
                     } else {
                         $atividadesArray = array();
                     }
                 } else {
                     $chamadosArray = array();
                     $atividadesArray = array();
                 }
                 $parametros['chamados'] = $chamadosArray;
                 $parametros['atividades'] = $atividadesArray;
             }
         }
     }
     Databases::disconnect($connection);
     // Exibe a tela
     $view = new View($view);
     $view->setParams($parametros);
     $view->showContents();
 }
 public function iniciar($connection, $tipoApontamento, $codigo, $observacao)
 {
     if ($tipoApontamento == "A") {
         $atividadeModel = new AtividadesModel();
         $atividadeVo = $atividadeModel->loadById($connection, $codigo);
         $chamadoVo = new ChamadosVo();
     }
     if ($tipoApontamento == "C") {
         $chamadoModel = new ChamadosModel();
         $chamadoVo = $chamadoModel->loadById($connection, $codigo);
         $atividadeVo = new AtividadesVo();
     }
     $usuarioModel = new UsuariosModel();
     $usuarioVo = $usuarioModel->loadById($connection, $_SESSION['usuarioCodigo']);
     $apontamentoModel = new ApontamentosModel();
     $apontamento = $apontamentoModel->loadUltimaAberta($connection, $usuarioVo->getId(), $tipoApontamento);
     $mensagem = $this->validarIniciarApontamento($atividadeVo, $chamadoVo, $apontamento, $tipoApontamento, $codigo);
     if (substr($mensagem, 0, 1) == 'S') {
         $apontamento->setAtividade($atividadeVo);
         $apontamento->setChamado($chamadoVo);
         $apontamento->setUsuario($usuarioVo);
         $apontamento->setDataInicio(date('d/m/Y H:i'));
         $apontamento->setDataFim("");
         $apontamento->setObservacao($observacao);
         $apontamento->setAvaliacao(9);
         $this->salvarRegistro($connection, $apontamento);
     }
     return $mensagem;
 }
 private function carregarDadosEmExecucao($connection, $mensagem = "")
 {
     $usuario = $this->getParametroTela('usuario');
     $model = new AtividadesModel();
     $registros = $model->loadEmExecucao($connection, $usuario);
     return $this->trabalharDadosListar($registros, $mensagem);
 }