public function carregarDadosManter($connection, $id = "", $mensagem = "") { // parametro $id pode ser tanto ChamadoVo como chamadoCodigo if (is_object($id)) { $chamado = $id; } else { if (!Functions::isEmpty($id)) { $model = new ChamadosModel(); $chamado = $model->loadById($connection, $id); } else { $chamado = new ChamadosVo(); } } // Campos Descriçao e Anexo devem vir em branco sempre // Exceto quando validação do formulário encontrar algum problema if (Functions::isEmpty($mensagem) || substr($mensagem, 0, 1) == 'S') { $chamado->setObservacao(""); $chamado->setAnexo(""); } $apenasAtivos = 0; if (Functions::isEmpty($chamado->getId())) { $apenasAtivos = 1; } $usuariosModel = new UsuariosModel(); $usuarios = $usuariosModel->load($connection, $apenasAtivos); $requisitantesModel = new UsuariosModel(); $requisitantes = $requisitantesModel->loadClientes($connection, $apenasAtivos); $atendentesModel = new UsuariosModel(); $atendentes = $atendentesModel->loadNaoClientes($connection, $apenasAtivos); $situacoesModel = new SituacoesModel(); $situacoes = $situacoesModel->load($connection); $empresasModel = new EmpresasModel(); $empresas = $empresasModel->load($connection); $categoriasModel = new CategoriasModel(); $categorias = $categoriasModel->load($connection); $tiposAmbientesModel = new TiposAmbientesModel(); $tiposAmbientes = $tiposAmbientesModel->load($connection); $tiposProdutosModel = new TiposProdutosModel(); $tiposProdutos = $tiposProdutosModel->load($connection); $prioridadesModel = new PrioridadesModel(); $prioridades = $prioridadesModel->load($connection); $moduloModel = new ModulosModel(); $modulos = $moduloModel->load($connection); $historicosModel = new ChamadosHistoricosModel(); $historicos = $historicosModel->loadByChamado($connection, $chamado->getId()); $apontamentosModel = new ApontamentosModel(); $apontamentos = $apontamentosModel->load($connection, "", $chamado->getId()); $outroChamado = new ChamadosVo(); $caller = "cadastrar"; return $this->trabalharDadosManter($chamado, $usuarios, $requisitantes, $atendentes, $situacoes, $empresas, $categorias, $tiposAmbientes, $tiposProdutos, $modulos, $prioridades, $historicos, $apontamentos, $outroChamado, $caller, $mensagem); }
public function loadRelatorioAtendimentosAnalitico($connection, $periodoInicial, $periodoFinal, $empresa, $situacao, $tipoAvaliacao) { $registros = array(); $query = " SELECT ch.cha_cdichamado, ch.cha_dtdcriacao\n , us.usu_dssnome, ep.emp_dssempresa\n , st.sit_dsssituacao, cg.cat_dsscategoria\n , ta.tpa_dsstipoambiente, tp.tpp_dsstipoproduto\n , md.mod_dssmodulo, ch.cha_dssassunto\n , SEC_TO_TIME(SUM(TIME_TO_SEC(ap.apo_hrsfaturadas))) apo_hrsfaturadas\n FROM chamados ch\n INNER JOIN apontamentos ap ON ap.apo_cdichamado = ch.cha_cdichamado\n LEFT JOIN usuarios us ON us.usu_cdiusuario = ch.cha_cdiusuario\n LEFT JOIN empresas ep ON ep.emp_cdiempresa = ch.cha_cdiempresa\n LEFT JOIN situacoes st ON st.sit_cdisituacao = ch.cha_cdisituacao\n LEFT JOIN categorias cg ON cg.cat_cdicategoria = ch.cha_cdicategoria\n LEFT JOIN tiposambientes ta ON ta.tpa_cditipoambiente = ch.cha_cditipoambiente\n LEFT JOIN tiposprodutos tp ON tp.tpp_cditipoproduto = ch.cha_cditipoproduto\n LEFT JOIN modulos md ON md.mod_cdimodulo = ch.cha_cdimodulo\n WHERE date_format(ap.apo_dtdinicio, '%Y-%m-%d') BETWEEN :periodoInicial AND :periodoFinal\n AND date_format(ap.apo_dtdfim , '%Y-%m-%d') BETWEEN :periodoInicial AND :periodoFinal "; if (!Functions::isEmpty($empresa)) { $query .= " AND ep.emp_cdiempresa = :empresa "; } if (!Functions::isEmpty($situacao)) { $query .= " AND st.sit_cdisituacao = :situacao "; } if (!Functions::isEmpty($tipoAvaliacao)) { if ($tipoAvaliacao == 1) { $query .= " AND ap.apo_cdimodofaturamento in (1,2,3) "; } else { if ($tipoAvaliacao == 2) { $query .= " AND ap.apo_cdimodofaturamento in (1,2) "; } else { if ($tipoAvaliacao == 3) { $query .= " AND ap.apo_cdimodofaturamento in (3) "; } } } } $query .= " GROUP BY ch.cha_cdichamado, ch.cha_dtdcriacao\n , us.usu_dssnome, ep.emp_dssempresa\n , st.sit_dsssituacao, cg.cat_dsscategoria\n , ta.tpa_dsstipoambiente, tp.tpp_dsstipoproduto\n , md.mod_dssmodulo, ch.cha_dssassunto\n ORDER BY ch.cha_cdichamado "; $stmt = $connection->prepare($query); if (!Functions::isEmpty($periodoInicial)) { $stmt->bindParam(':periodoInicial', Functions::toDateToSql($periodoInicial)); } if (!Functions::isEmpty($periodoFinal)) { $stmt->bindParam(':periodoFinal', Functions::toDateToSql($periodoFinal)); } if (!Functions::isEmpty($empresa)) { $stmt->bindParam(':empresa', $empresa); } if (!Functions::isEmpty($situacao)) { $stmt->bindParam(':situacao', $situacao); } $stmt->execute(); $rows = $stmt->fetchAll(); foreach ($rows as $row) { $chamadosHistoricosModel = new ChamadosHistoricosModel(); $chamadosHistoricosArray = $chamadosHistoricosModel->loadByChamado($connection, $row->cha_cdichamado); if (Functions::isEmpty($row->apo_hrsfaturadas)) { $horasFaturadas = '00:00:00'; } else { $horasFaturadas = $row->apo_hrsfaturadas; } $registro = array('chamadoCodigo' => $row->cha_cdichamado, 'chamadoData' => Functions::toDate($row->cha_dtdcriacao), 'usuarioNome' => $row->usu_dssnome, 'empresaDescricao' => $row->emp_dssempresa, 'situacaoDescricao' => $row->sit_dsssituacao, 'categoriaDescricao' => $row->cat_dsscategoria, 'tipoAmbienteDescricao' => $row->tpa_dsstipoambiente, 'tipoProdutoDescricao' => $row->tpp_dsstipoproduto, 'moduloDescricao' => $row->mod_dssmodulo, 'chamadoAssunto' => $row->cha_dssassunto, 'horasFaturadas' => $horasFaturadas, 'chamadoHistoricoArray' => $chamadosHistoricosArray); array_push($registros, $registro); } return $registros; }