From 7fc440709137ff6c911a9048b86edb7332df3a45 Mon Sep 17 00:00:00 2001 From: Nei Jobson Date: Wed, 12 Jun 2024 10:55:59 -0300 Subject: [PATCH] =?UTF-8?q?Atualiza=C3=A7=C3=B5es=20de=20ajustes=20e=20mel?= =?UTF-8?q?horias=20simples,=20apenas=20de=20c=C3=B3digo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utilidades/dto/MdUtlControleDsmpDTO.php | 3 + .../dto/MdUtlHistControleDsmpDTO.php | 6 + .../utilidades/dto/MdUtlProcedimentoDTO.php | 324 ++++++--- .../utilidades/int/MdUtlAdmIntegracaoINT.php | 14 +- .../utilidades/int/MdUtlAdmPrmGrINT.php | 16 +- .../utilidades/int/MdUtlAdmPrmGrUsuINT.php | 24 +- .../utilidades/int/MdUtlControleDsmpINT.php | 178 ++--- .../utilidades/int/MdUtlMensagemINT.php | 23 +- .../utilidades/md_utl_analise_cadastro_js.php | 2 +- .../md_utl_controle_dsmp_associacao.php | 40 +- .../utilidades/md_utl_controle_dsmp_lista.php | 48 +- .../md_utl_distrib_usuario_cadastro.php | 98 ++- .../md_utl_distrib_usuario_lista.php | 289 ++++++-- .../modulos/utilidades/md_utl_funcoes_js.php | 19 +- .../modulos/utilidades/md_utl_geral_js.php | 20 +- .../md_utl_gestao_solicitacoes_lista.php | 31 +- .../md_utl_meus_processos_dsmp_lista.php | 235 +++++- .../utilidades/md_utl_processo_lista_js.php | 2 +- .../utilidades/md_utl_revisao_cadastro.php | 2 +- .../utilidades/rn/MdUtlAdmPrmGrUsuRN.php | 11 +- .../utilidades/rn/MdUtlControleDsmpRN.php | 667 +++++++++++++++++- .../utilidades/rn/MdUtlHistControleDsmpRN.php | 139 +++- .../modulos/utilidades/rn/MdUtlPrazoRN.php | 20 +- 23 files changed, 1771 insertions(+), 440 deletions(-) diff --git a/sei/web/modulos/utilidades/dto/MdUtlControleDsmpDTO.php b/sei/web/modulos/utilidades/dto/MdUtlControleDsmpDTO.php index 51b7495..9f30d57 100644 --- a/sei/web/modulos/utilidades/dto/MdUtlControleDsmpDTO.php +++ b/sei/web/modulos/utilidades/dto/MdUtlControleDsmpDTO.php @@ -133,6 +133,9 @@ public function montar() { $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEncaminhamentoAnalise','anl.sta_encaminhamento_analise','md_utl_analise anl'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdMdUtlAdmFilaEncAnalise','anl.id_md_utl_adm_fila','md_utl_analise anl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA, 'PeriodoInicioAnalise','anl.dta_periodo_inicio','md_utl_analise anl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA, 'PeriodoFimAnalise','anl.dta_periodo_fim','md_utl_analise anl'); + //Revisão $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'SinAtivoRevisao','rev.sin_ativo','md_utl_revisao rev'); diff --git a/sei/web/modulos/utilidades/dto/MdUtlHistControleDsmpDTO.php b/sei/web/modulos/utilidades/dto/MdUtlHistControleDsmpDTO.php index b7585ee..e84b6f8 100644 --- a/sei/web/modulos/utilidades/dto/MdUtlHistControleDsmpDTO.php +++ b/sei/web/modulos/utilidades/dto/MdUtlHistControleDsmpDTO.php @@ -82,6 +82,8 @@ public function montar() { $this->configurarFK('IdProcedimento', 'protocolo', 'id_protocolo'); $this->configurarFK('IdMdUtlContestRevisao', 'imd_utl_contest_revisao', 'id_md_utl_contest_revisao'); + $this->configurarFK('IdMdUtlAnalise', 'md_utl_analise anl', 'anl.id_md_utl_analise', InfraDTO::$TIPO_FK_OPCIONAL); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeFila','fila.nome','md_utl_adm_fila fila'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuarioDist','ud.nome','usuario ud'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'SiglaUsuarioDist','ud.sigla','usuario ud'); @@ -92,6 +94,10 @@ public function montar() { $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeTpControle','nome','md_utl_adm_tp_ctrl_desemp'); + //Análise + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA, 'PeriodoInicioAnalise','anl.dta_periodo_inicio','md_utl_analise anl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA, 'PeriodoFimAnalise','anl.dta_periodo_fim','md_utl_analise anl'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'SinVerificarPermissao'); } diff --git a/sei/web/modulos/utilidades/dto/MdUtlProcedimentoDTO.php b/sei/web/modulos/utilidades/dto/MdUtlProcedimentoDTO.php index d7fd444..a53d8fe 100644 --- a/sei/web/modulos/utilidades/dto/MdUtlProcedimentoDTO.php +++ b/sei/web/modulos/utilidades/dto/MdUtlProcedimentoDTO.php @@ -9,99 +9,145 @@ class MdUtlProcedimentoDTO extends ProcedimentoDTO { - private $ControleDsmpFk = null; - private $ControleDsmpWhere = null; + private $ControleDsmpFk = null; + private $ControleDsmpWhere = null; + private $TriagAnaliseRevTIPOFK = null; public function __construct(){ $this->ControleDsmpFk = InfraDTO::$TIPO_FK_OPCIONAL; $this->ControleDsmpWhere = InfraDTO::$FILTRO_FK_ON; + $this->TriagAnaliseRevTIPOFK = InfraDTO::$TIPO_FK_OPCIONAL; parent::__construct(); } public function montar() { parent::montar(); - $this->configurarFK('IdProcedimento', 'md_utl_controle_dsmp cpf', 'cpf.id_procedimento', $this->getControleDsmpTIPOFK(), $this->getControleDsmpTIPOWhere()); - $this->configurarFK('IdMdUtlTriagem', 'md_utl_triagem tri', 'tri.id_md_utl_triagem', InfraDTO::$TIPO_FK_OPCIONAL); - $this->configurarFK('IdUnidade', 'unidade u', 'u.id_unidade', InfraDTO::$TIPO_FK_OPCIONAL); - $this->configurarFK('IdFila', 'md_utl_adm_fila af', 'af.id_md_utl_adm_fila', InfraDTO::$TIPO_FK_OPCIONAL); + $this->configurarFK('IdProcedimento', 'md_utl_controle_dsmp ctrl', 'ctrl.id_procedimento', $this->getControleDsmpTIPOFK() /*, $this->getControleDsmpTIPOWhere()*/); + $this->configurarFK('IdProcedimento', 'md_utl_hist_controle_dsmp hctrl', 'hctrl.id_procedimento',$this->getControleDsmpTIPOFK()); + $this->configurarFK('IdProcedimento', 'documento doc', 'doc.id_procedimento'); $this->configurarFK('IdProtocoloDoc', 'protocolo pd', 'pd.id_protocolo'); $this->configurarFK('IdProcedimento', 'atividade atv', 'atv.id_protocolo'); - $this->configurarFK('IdUsuarioDistribuicao', 'usuario ud', 'ud.id_usuario', InfraDTO::$TIPO_FK_OPCIONAL); - $this->configurarFK('IdMdUtlAjustePrazo', 'md_utl_ajuste_prazo mdap', 'mdap.id_md_utl_ajuste_prazo', InfraDTO::$TIPO_FK_OPCIONAL); - $this->configurarFK('IdMdUtlContestRevisao', 'md_utl_contest_revisao mdcr', 'mdcr.id_md_utl_contest_revisao', InfraDTO::$TIPO_FK_OPCIONAL); - // novo relacionamento para retornar info da tabela tipo de controle de desempenho - $this->configurarFK('IdTipoCtrlDsmp','md_utl_adm_tp_ctrl_desemp tp_ctrl','tp_ctrl.id_md_utl_adm_tp_ctrl_desemp'); + /* ============================================================================================================= + CONFIGURACAO COM CONTROLE + ============================================================================================================= */ - //$this->configurarFK('IdDocumento', 'documento d', 'd.id_documento'); + $this->configurarFK('IdUnidade', 'unidade u', 'u.id_unidade'); + $this->configurarFK('IdFila', 'md_utl_adm_fila af', 'af.id_md_utl_adm_fila', InfraDTO::$TIPO_FK_OPCIONAL); + $this->configurarFK('IdMdUtlAdmTpCtrlDesemp','md_utl_adm_tp_ctrl_desemp tp_ctrl','tp_ctrl.id_md_utl_adm_tp_ctrl_desemp'); - //Get Dados do Status de Utilidades + $this->configurarFK('IdUsuarioDistribuicao', 'usuario ud', 'ud.id_usuario', InfraDTO::$TIPO_FK_OPCIONAL , InfraDTO::$FILTRO_FK_WHERE); + $this->configurarFK('IdUsuario', 'usuario us', 'us.id_usuario', InfraDTO::$TIPO_FK_OPCIONAL , InfraDTO::$FILTRO_FK_WHERE); - //Relacionamento de Procedimento - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdMdUtlAdmRelControleDsmp', - 'id_procedimento', - 'procedimento'); + $this->configurarFK('IdMdUtlTriagem', 'md_utl_triagem tri', 'tri.id_md_utl_triagem', $this->getTriagAnaliseRevTIPOFK() /*,InfraDTO::$FILTRO_FK_WHERE*/); + $this->configurarFK('IdMdUtlAnalise','md_utl_analise an','an.id_md_utl_analise',$this->getTriagAnaliseRevTIPOFK() /*,InfraDTO::$FILTRO_FK_WHERE*/); + $this->configurarFK('IdMdUtlRevisao','md_utl_revisao re','re.id_md_utl_revisao',$this->getTriagAnaliseRevTIPOFK() /*,InfraDTO::$FILTRO_FK_WHERE*/); - //Get Dados da Proc Fila - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdMdUtlControleDsmp', - 'cpf.id_md_utl_controle_dsmp', - 'md_utl_controle_dsmp cpf'); + $this->configurarFK('IdMdUtlAjustePrazo', 'md_utl_ajuste_prazo mdap', 'mdap.id_md_utl_ajuste_prazo', InfraDTO::$TIPO_FK_OPCIONAL); + $this->configurarFK('IdMdUtlContestRevisao', 'md_utl_contest_revisao mdcr', 'mdcr.id_md_utl_contest_revisao', InfraDTO::$TIPO_FK_OPCIONAL); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, - 'Atual', - 'cpf.dth_atual', - 'md_utl_controle_dsmp cpf'); + /* ============================================================================================================= + CONFIGURACAO COM HISTORICO DO CONTROLE + ============================================================================================================= */ - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdUnidade', - 'cpf.id_unidade', - 'md_utl_controle_dsmp cpf'); + $this->configurarFK('IdUnidadeHist', 'unidade hu', 'hu.id_unidade'); + $this->configurarFK('IdFilaHist', 'md_utl_adm_fila haf', 'haf.id_md_utl_adm_fila', InfraDTO::$TIPO_FK_OPCIONAL); + $this->configurarFK('IdMdUtlAdmTpCtrlDesempHist','md_utl_adm_tp_ctrl_desemp htp_ctrl','htp_ctrl.id_md_utl_adm_tp_ctrl_desemp'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdMdUtlAdmTpCtrlDesemp', - 'cpf.id_md_utl_adm_tp_ctrl_desemp', - 'md_utl_controle_dsmp cpf'); - - // retorna info do tipo de controle desempenho - relaciona - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, - 'IdTipoCtrlDsmp', - 'cpf.id_md_utl_adm_tp_ctrl_desemp', - 'md_utl_controle_dsmp cpf'); + $this->configurarFK('IdUsuarioDistribuicaoHist', 'usuario hud', 'hud.id_usuario',InfraDTO::$TIPO_FK_OPCIONAL,InfraDTO::$FILTRO_FK_WHERE); + $this->configurarFK('IdUsuarioHist', 'usuario hus', 'hus.id_usuario',InfraDTO::$TIPO_FK_OPCIONAL,InfraDTO::$FILTRO_FK_WHERE); - // retorna info do tipo de controle desempenho - get nome do tipo de controle - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, - 'NomeTpCtrlDsmp', - 'tp_ctrl.nome', - 'md_utl_adm_tp_ctrl_desemp tp_ctrl'); + $this->configurarFK('IdMdUtlTriagemHist', 'md_utl_triagem htri', 'htri.id_md_utl_triagem', $this->getTriagAnaliseRevTIPOFK() /*, InfraDTO::$FILTRO_FK_WHERE*/); + $this->configurarFK('IdMdUtlAnaliseHist','md_utl_analise han','han.id_md_utl_analise',$this->getTriagAnaliseRevTIPOFK() /*, InfraDTO::$FILTRO_FK_WHERE*/); + $this->configurarFK('IdMdUtlRevisaoHist','md_utl_revisao hre','hre.id_md_utl_revisao',$this->getTriagAnaliseRevTIPOFK() /*,InfraDTO::$FILTRO_FK_WHERE*/); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdFila', - 'cpf.id_md_utl_adm_fila', - 'md_utl_controle_dsmp cpf'); + /* ============================================================================================================= + ATRIBUICAO IMPORTANTE PARA OS JOIN DO CONTROLE + ============================================================================================================= */ + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlControleDsmp','ctrl.id_md_utl_controle_dsmp','md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdUnidade','ctrl.id_unidade','md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlAdmTpCtrlDesemp','ctrl.id_md_utl_adm_tp_ctrl_desemp','md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdFila','ctrl.id_md_utl_adm_fila','md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdUsuario','ctrl.id_usuario','md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdUsuarioDistribuicao','ctrl.id_usuario_distribuicao','md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlAjustePrazo','ctrl.id_md_utl_ajuste_prazo','md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlContestRevisao','ctrl.id_md_utl_contest_revisao','md_utl_controle_dsmp ctrl'); + + /* ============================================================================================================= + ATRIBUICAO IMPORTANTE PARA OS JOIN DO HISTORICO CONTROLE + ============================================================================================================= */ + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlHistControleDsmp','hctrl.id_md_utl_hist_controle_dsmp','md_utl_hist_controle_dsmp hctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdUnidadeHist','hctrl.id_unidade','md_utl_hist_controle_dsmp hctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlAdmTpCtrlDesempHist','hctrl.id_md_utl_adm_tp_ctrl_desemp','md_utl_hist_controle_dsmp hctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdFilaHist','hctrl.id_md_utl_adm_fila','md_utl_hist_controle_dsmp hctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdUsuarioHist','hctrl.id_usuario','md_utl_hist_controle_dsmp hctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdUsuarioDistribuicaoHist','hctrl.id_usuario_distribuicao','md_utl_hist_controle_dsmp hctrl'); + + /* ============================================================================================================= + RELACIONAMENTOS DE ATRIBUTO DA TRIAGEM, ANALISE E REVISAO NAS TABELAS CTRL E HIST + ============================================================================================================= */ + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlTriagem', 'ctrl.id_md_utl_triagem', 'md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlAnalise', 'ctrl.id_md_utl_analise', 'md_utl_controle_dsmp ctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlRevisao', 'ctrl.id_md_utl_revisao', 'md_utl_controle_dsmp ctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlTriagemHist', 'hctrl.id_md_utl_triagem', 'md_utl_hist_controle_dsmp hctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlAnaliseHist', 'hctrl.id_md_utl_analise', 'md_utl_hist_controle_dsmp hctrl'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'IdMdUtlRevisaoHist', 'hctrl.id_md_utl_revisao','md_utl_hist_controle_dsmp hctrl'); + + /* ============================================================================================================= + COLUNAS DA TABELA CONTROLE + ============================================================================================================= */ $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdUsuarioDistribuicao', - 'cpf.id_usuario_distribuicao', - 'md_utl_controle_dsmp cpf'); + 'IdMdUtlAdmRelControleDsmp', + 'id_procedimento', + 'procedimento'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'TipoAcao', + 'ctrl.tipo_acao', + 'md_utl_controle_dsmp ctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, + 'Atual', + 'ctrl.dth_atual', + 'md_utl_controle_dsmp ctrl'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'TempoExecucao', - 'cpf.tempo_execucao', - 'md_utl_controle_dsmp cpf'); + 'ctrl.tempo_execucao', + 'md_utl_controle_dsmp ctrl'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'TempoExecucaoAtribuido', - 'cpf.tempo_de_execucao_atribuido', - 'md_utl_controle_dsmp cpf'); - - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdMdUtlRevisao', - 'cpf.id_md_utl_revisao', - 'md_utl_controle_dsmp cpf'); + 'ctrl.tempo_de_execucao_atribuido', + 'md_utl_controle_dsmp ctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'StaAtendimentoDsmp', + 'ctrl.sta_atendimento_dsmp', + 'md_utl_controle_dsmp ctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, + 'IdAtendimento', + 'ctrl.id_atendimento', + 'md_utl_controle_dsmp ctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, + 'PrazoTarefa', + 'ctrl.dth_prazo_tarefa', + 'md_utl_controle_dsmp ctrl'); + + // retorna info do tipo de controle desempenho - get nome do tipo de controle + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'NomeTpCtrlDsmp', + 'tp_ctrl.nome', + 'md_utl_adm_tp_ctrl_desemp tp_ctrl'); //Get dados da tabela Fila $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, @@ -109,26 +155,12 @@ public function montar() { 'af.nome', 'md_utl_adm_fila af'); + // Get dados da tabela Unidade $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'SiglaUnidade', 'u.sigla', 'unidade u'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, - 'StaAtendimentoDsmp', - 'cpf.sta_atendimento_dsmp', - 'md_utl_controle_dsmp cpf'); - - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, - 'PrazoTarefa', - 'cpf.dth_prazo_tarefa', - 'md_utl_controle_dsmp cpf'); - - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdMdUtlAnalise', - 'cpf.id_md_utl_analise', - 'md_utl_controle_dsmp cpf'); - //Get dados do Procedimento $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DBL, 'IdDocumento', @@ -158,7 +190,6 @@ public function montar() { 'atv.id_atividade', 'atividade atv'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, 'ConclusaoAtvUtilidades', 'atv.dth_conclusao', @@ -174,26 +205,6 @@ public function montar() { 'atv.id_unidade', 'atividade atv'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdMdUtlTriagem', - 'cpf.id_md_utl_triagem', - 'md_utl_controle_dsmp cpf'); - - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, - 'PrazoResposta', - 'tri.dth_prazo_resposta', - 'md_utl_triagem tri'); - - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdMdUtlAjustePrazo', - 'cpf.id_md_utl_ajuste_prazo', - 'md_utl_controle_dsmp cpf'); - - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, - 'IdMdUtlContestRevisao', - 'cpf.id_md_utl_contest_revisao', - 'md_utl_controle_dsmp cpf'); - //Get Dados Ajuste Prazo $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaSolicitacaoAjustePrazo', @@ -206,13 +217,114 @@ public function montar() { 'mdcr.sta_solicitacao', 'md_utl_contest_revisao mdcr'); - - //Get Dados do Usuário da Distribuição - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuarioDistribuicao','ud.nome','usuario ud'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'SiglaUsuarioDistribuicao','ud.sigla','usuario ud'); + // tabela Usuario + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuarioDistribuicao','ud.nome','usuario ud'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'SiglaUsuarioDistribuicao','ud.sigla','usuario ud'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuario','us.nome','usuario us'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'SiglaUsuario','us.sigla','usuario us'); + + // tabela Triagem + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, 'PrazoResposta', 'tri.dth_prazo_resposta', 'md_utl_triagem tri'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA,'TriagemAtual', 'tri.dth_atual', 'md_utl_triagem tri'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'TempoExecucaoAtribuidoTriag', 'tri.tempo_de_execucao_atribuido', 'md_utl_triagem tri'); + + // tabela Analise + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA,'PeriodoInicio','an.dta_periodo_inicio','md_utl_analise an'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA,'PeriodoFim','an.dta_periodo_fim','md_utl_analise an'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'TempoExecucaoAtribuidoAnalise', 'an.tempo_de_execucao_atribuido', 'md_utl_analise an'); + + // tabela Revisao + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA,'RevisaoAtual', 're.dth_atual', 'md_utl_revisao re'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'TempoExecucaoAtribuidoRev', 're.tempo_de_execucao_atribuido', 'md_utl_revisao re'); + + /* ============================================================================================================= + COLUNAS QUE SE RELACIONAM COM A TABELA CONTROLE HISTORICO + ============================================================================================================= */ + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'TipoAcaoHist', + 'hctrl.tipo_acao', + 'md_utl_hist_controle_dsmp hctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, + 'AtualHist', + 'hctrl.dth_atual', + 'md_utl_hist_controle_dsmp hctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, + 'TempoExecucaoHist', + 'hctrl.tempo_execucao', + 'md_utl_hist_controle_dsmp hctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, + 'TempoExecucaoAtribuidoHist', + 'hctrl.tempo_de_execucao_atribuido', + 'md_utl_hist_controle_dsmp hctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'StaAtendimentoDsmpHist', + 'hctrl.sta_atendimento_dsmp', + 'md_utl_hist_controle_dsmp hctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, + 'IdAtendimentoHist', + 'hctrl.id_atendimento', + 'md_utl_controle_dsmp hctrl'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, + 'PrazoTarefaHist', + 'hctrl.dth_prazo_tarefa', + 'md_utl_hist_controle_dsmp hctrl'); + + // retorna info do tipo de controle desempenho - get nome do tipo de controle + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'NomeTpCtrlDsmpHist', + 'htp_ctrl.nome', + 'md_utl_adm_tp_ctrl_desemp htp_ctrl'); + + //Get dados da tabela Fila + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'NomeFilaHist', + 'haf.nome', + 'md_utl_adm_fila haf'); + + // Get dados da tabela Unidade + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'SiglaUnidadeHist', + 'hu.sigla', + 'unidade hu'); + + // tabela Usuario + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuarioDistribuicaoHist','hud.nome','usuario hud'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'SiglaUsuarioDistribuicaoHist','hud.sigla','usuario hud'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuarioHist','hus.nome','usuario hus'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'SiglaUsuarioHist','hus.sigla','usuario hus'); + + // tabela Triagem + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, 'PrazoRespostaHist', 'htri.dth_prazo_resposta', 'md_utl_triagem htri'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA,'TriagemAtualHist', 'htri.dth_atual', 'md_utl_triagem htri'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'TempoExecucaoAtribuidoTriagHist', 'htri.tempo_de_execucao_atribuido', 'md_utl_triagem htri'); + + // tabela Analise + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA,'PeriodoInicioHist','han.dta_periodo_inicio','md_utl_analise han'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA,'PeriodoFimHist','han.dta_periodo_fim','md_utl_analise han'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'TempoExecucaoAtribuidoAnaliseHist', 'han.tempo_de_execucao_atribuido', 'md_utl_analise han'); + + // tabela Revisao + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTA,'RevisaoAtualHist', 'hre.dth_atual', 'md_utl_revisao hre'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM,'TempoExecucaoAtribuidoRevHist', 'hre.tempo_de_execucao_atribuido', 'md_utl_revisao hre'); + + /* ============================================================================================================= + COLUNAS CRIADAS DINAMICAMENTE, SEM VINCULO A NENHUMA TABELA + ============================================================================================================= */ $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'ValorAtividadeSelectUtl'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'NomeAtividadeTriagem'); + + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'AtivarDebug'); + #$this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'TipoAcaoGrid'); + #$this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'OrigemAcaoGrid'); + //$this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'AtivarDebug'); } public function getControleDsmpTIPOFK() { @@ -231,4 +343,12 @@ public function setControleDsmpTIPOWhere($ControleDsmpWhere) { $this->ControleDsmpWhere = $ControleDsmpWhere; } + public function getTriagAnaliseRevTIPOFK() { + return $this->TriagAnaliseRevTIPOFK; + } + + public function setTriagAnaliseRevTIPOFK($tipoFK) { + $this->TriagAnaliseRevTIPOFK = $tipoFK; + } + } diff --git a/sei/web/modulos/utilidades/int/MdUtlAdmIntegracaoINT.php b/sei/web/modulos/utilidades/int/MdUtlAdmIntegracaoINT.php index d9baee2..21ee6c6 100644 --- a/sei/web/modulos/utilidades/int/MdUtlAdmIntegracaoINT.php +++ b/sei/web/modulos/utilidades/int/MdUtlAdmIntegracaoINT.php @@ -46,7 +46,7 @@ public static function montarOperacaoSOAP($data){ } public static function getDadosServicoREST( $post ){ - $objInfraException = new InfraException(); + $objInfraException = new InfraException(); $urlServico = trim($post['urlServico']); @@ -61,12 +61,12 @@ public static function getDadosServicoREST( $post ){ curl_setopt_array( $curl, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, - CURLOPT_CONNECTTIMEOUT => 5, - CURLOPT_TIMEOUT => 20, + CURLOPT_CONNECTTIMEOUT => 8, + CURLOPT_TIMEOUT => 20, CURLOPT_CUSTOMREQUEST => $post['tipoRequisicao'], ]); - // monta dados de parametros necessarios + // monta dados de parametros necessarios if ( array_key_exists( 'parametros' , $post ) ) { $payload = json_encode( $post['parametros'] ); curl_setopt( $curl, CURLOPT_POSTFIELDS, $payload ); @@ -87,10 +87,10 @@ public static function getDadosServicoREST( $post ){ // executa a consulta no webservice $ret = curl_exec( $curl ); - $info = curl_getinfo( $curl ); - $ret = self::trataRetornoCurl( $info , $ret ); + $info = curl_getinfo( $curl ); + $ret = self::trataRetornoCurl( $info , $ret ); - if ( $info['http_code'] == 0 ) $ret['msg'] = curl_error($curl); + if ( $info['http_code'] == 0 ) $ret['msg'] = curl_error($curl); if ( $ret['suc'] === false ) { $strError = "Falha no serviço SARH \n\n"; diff --git a/sei/web/modulos/utilidades/int/MdUtlAdmPrmGrINT.php b/sei/web/modulos/utilidades/int/MdUtlAdmPrmGrINT.php index 4e084f9..6ca9868 100644 --- a/sei/web/modulos/utilidades/int/MdUtlAdmPrmGrINT.php +++ b/sei/web/modulos/utilidades/int/MdUtlAdmPrmGrINT.php @@ -305,6 +305,8 @@ public static function autoCompletarUsuarios($numIdOrgao, $strPalavrasPesquisa, public static function convertToHoursMins($time) { + if ( is_string($time) ) return $time; + $hours = intVal($time / 60); $minutes = ($time % 60); if ($time == 0) { @@ -403,18 +405,18 @@ public static function recuperarTextoFrequenciaTooltipDinamico($idControleDesemp public static function recuperarTextoFrequenciaTooltipDinamicoMeusProcessos($idControleDesempenho = null, $strTela = null) { - $msgPadrao = $strTela ? MdUtlMensagemINT::setMensagemPadraoPersonalizada(MdUtlMensagemINT::$MSG_UTL_137,[$strTela]) : MdUtlMensagemINT::$MSG_UTL_136; + $msgPadrao = $strTela ? MdUtlMensagemINT::setMensagemPadraoPersonalizada(MdUtlMensagemINT::$MSG_UTL_137,[$strTela]) : MdUtlMensagemINT::$MSG_UTL_136; if (!$idControleDesempenho){ return $msgPadrao; } $dados = MdUtlAdmPrmGrINT::recuperarTextoFrequenciaTooltipDinamico($idControleDesempenho); - return $msgPadrao ."\n \n". $dados['textoFrequencia']; + return $msgPadrao ."\n \n". $dados['textoFrequencia']; } public static function recuperarTextoFrequenciaTooltipDinamicoDistribuirProcessos($idControleDesempenho) { $msgPadrao = MdUtlMensagemINT::$MSG_UTL_136; - $msgDist = 'A Carga Exigível no Período Atual somente será exibida depois que for aplicado o filtro "Membro Participante". \n \n '. $msgPadrao; + $msgDist = 'A Carga Exigível no Período Selecionado somente será exibida depois que for aplicado o filtro "Membro Participante". \n \n '. $msgPadrao; if (!$idControleDesempenho) { return $msgDist; } @@ -445,21 +447,21 @@ public static function recuperarTextoFrequenciaTooltipDinamicoDistribuirPessoaTe public static function recuperarTextoFrequenciaTooltipDinamicoCargaHorariaDistribuidaPeriodo($idControleDesempenho) { if (!$idControleDesempenho) { - return 'A Carga total abrange todo e qualquer tempo que foi distribudo para o usurio logado no Tipo de Controle indicado, dentro do Perodo em andamento, conforme definido nos parmetros gerais do Tipo de Controle de Desempenho.\n \n Para o Tipo de Controle selecionado, o Perodo de distribuio e acompanhamento "Semanal", tendo sempre incio toda segunda-feira s 0h, o que marca o fim do Perodo anterior;'; + return 'A Carga total abrange todo e qualquer tempo que foi distribuído para o usuário logado no Tipo de Controle indicado, dentro do Período selecionado, conforme definido nos parâmetros gerais do Tipo de Controle de Desempenho.\n \n Para o Tipo de Controle selecionado, o Período de distribuição e acompanhamento "Semanal", tendo sempre início toda segunda-feira às 0h, o que marca o fim do Período anterior;'; } $dados = MdUtlAdmPrmGrINT::recuperarTextoFrequenciaTooltipDinamico($idControleDesempenho); - return 'A Carga total abrange todo e qualquer tempo que foi distribudo para o usurio logado no Tipo de Controle indicado, dentro do Perodo em andamento, conforme definido nos parmetros gerais do Tipo de Controle de Desempenho.\n \n '. $dados['textoFrequencia']; + return 'A Carga total abrange todo e qualquer tempo que foi distribuído para o usuário logado no Tipo de Controle indicado, dentro do Período selecionado, conforme definido nos parâmetros gerais do Tipo de Controle de Desempenho.\n \n '. $dados['textoFrequencia']; } public static function recuperarTextoFrequenciaTooltipDistribuicaoDinamicoCargaHorariaDistribuidaPeriodo($idControleDesempenho) { if (!$idControleDesempenho) { - return 'A Carga Horria Distribuda no Perodo somente ser exibida depois que for aplicado o filtro "Responsvel".\n \n A Carga total abrange todo e qualquer tempo que foi distribudo para o responsvel no Tipo de Controle indicado, dentro do Perodo em andamento, conforme definido nos parmetros gerais do Tipo de Controle de Desempenho.\n \n Para o Tipo de Controle selecionado, o Perodo de distribuio e acompanhamento "Semanal", tendo sempre incio toda segunda-feira s 0h, o que marca o fim do Perodo anterior;'; + return 'A Carga Horária Distribuída no Período somente será exibida depois que for aplicado o filtro "Responsável".\n \n A Carga total abrange todo e qualquer tempo que foi distribuído para o responsável no Tipo de Controle indicado, dentro do Período selecionado, conforme definido nos parâmetros gerais do Tipo de Controle de Desempenho.\n \n Para o Tipo de Controle selecionado, o Período de distribuido e acompanhamento "Semanal", tendo sempre início toda segunda-feira às 0h, o que marca o fim do Período anterior;'; } $dados = MdUtlAdmPrmGrINT::recuperarTextoFrequenciaTooltipDinamico($idControleDesempenho); - return 'A Carga Horria Distribuda no Perodo somente ser exibida depois que for aplicado o filtro "Responsvel".\n \n A Carga total abrange todo e qualquer tempo que foi distribudo para o responsvel no Tipo de Controle indicado, dentro do Perodo em andamento, conforme definido nos parmetros gerais do Tipo de Controle de Desempenho.\n \n'. $dados['textoFrequencia']; + return 'A Carga Horária Distribuída no Período somente será exibida depois que for aplicado o filtro "Responsável".\n \n A Carga total abrange todo e qualquer tempo que foi distribuído para o responsável no Tipo de Controle indicado, dentro do Período selecionado, conforme definido nos parâmetros gerais do Tipo de Controle de Desempenho.\n \n'. $dados['textoFrequencia']; } public static function retornaTipoPeriodo($idTipoControle) diff --git a/sei/web/modulos/utilidades/int/MdUtlAdmPrmGrUsuINT.php b/sei/web/modulos/utilidades/int/MdUtlAdmPrmGrUsuINT.php index 4af23d2..900a0b1 100644 --- a/sei/web/modulos/utilidades/int/MdUtlAdmPrmGrUsuINT.php +++ b/sei/web/modulos/utilidades/int/MdUtlAdmPrmGrUsuINT.php @@ -322,7 +322,7 @@ public static function getValoresParamUnidEsf( $idTipoControle ){ $arrFrequencia = MdUtlAdmPrmGrINT::retornaArrPadraoFrequenciaDiaria(); $objMdUtlAdmPrmGrUsuRN = new MdUtlAdmPrmGrUsuRN(); - $arrPeriodo = $objMdUtlAdmPrmGrUsuRN->getDiasUteisNoPeriodo([$objDTO->getStrStaFrequencia()]); + $arrPeriodo = $objMdUtlAdmPrmGrUsuRN->getDiasUteisNoPeriodo([$objDTO->getStrStaFrequencia()]); $diasUteis = $arrPeriodo['numFrequencia']; $arrParamRet['idPrmGr'] = $objDTO->getNumIdMdUtlAdmPrmGr(); @@ -337,11 +337,11 @@ public static function getValoresParamUnidEsf( $idTipoControle ){ } public static function buscarDadosCargaUsuarioCompleto( $post ){ - $arrIdsPrmGr = []; + $arrIdsPrmGr = []; foreach( $post['idTipoControle'] as $idTpCtrl ){ $arrParams = self::getValoresParamUnidEsf( $idTpCtrl ); - $dados[] = MdUtlAdmPrmGrUsuINT::arrDadosCargaUsuario($post['idUsuarioParticipante'], $arrParams['idPrmGr'], $arrParams['numCargaPadrao'], $arrParams['numPercentualTele'], $arrParams['staFrequencia'], $idTpCtrl, $arrParams['inicioPeriodo']); - $arrIdsPrmGr[] = $arrParams['idPrmGr']; + $dados[] = MdUtlAdmPrmGrUsuINT::arrDadosCargaUsuario($post['idUsuarioParticipante'], $arrParams['idPrmGr'], $arrParams['numCargaPadrao'], $arrParams['numPercentualTele'], $arrParams['staFrequencia'], $idTpCtrl, $post['tmpPeriodo'], true /*$arrParams['inicioPeriodo']*/); + $arrIdsPrmGr[] = $arrParams['idPrmGr']; } $retorno = array(); @@ -416,14 +416,23 @@ public static function buscarDadosCargaUsuario($idUsuarioParticipante, $idParam, return $xml; } - public static function arrDadosCargaUsuario($idUsuarioParticipante, $idParam, $numCargaPadrao, $numPercentualTele, $staFrequencia, $idTipoControle, $inicioPeriodo) + public static function arrDadosCargaUsuario($idUsuarioParticipante, $idParam, $numCargaPadrao, $numPercentualTele, $staFrequencia, $idTipoControle, $strPeriodo, $isPeriodoVariavel = false /*$inicioPeriodo*/) { $objMdUtlAdmPrmGrUsuRN = new MdUtlAdmPrmGrUsuRN(); $objMdUtlControleDsmpRN = new MdUtlControleDsmpRN(); $objMdUtlHistControleDsmpRN = new MdUtlHistControleDsmpRN(); $objMdUtlPrazoRN = new MdUtlPrazoRN(); - $arrDatasFiltro = $objMdUtlPrazoRN->getDatasPeriodoAtual($idParam); + if ( $isPeriodoVariavel ){ + if (!empty($strPeriodo)) { + $arrDt = explode('|', $strPeriodo); + $arrDatasFiltro = ['DT_INICIAL' => $arrDt[0] . ' 00:00:00', 'DT_FINAL' => $arrDt[1] . ' 23:59:59']; + } else { + $arrDatasFiltro = $objMdUtlPrazoRN->getDatasPeriodoAtual($idParam); + } + } else { + $arrDatasFiltro = $objMdUtlPrazoRN->getDatasPorFrequencia($strPeriodo); + } #if (empty($arrDatasFiltro)) $arrDatasFiltro = $objMdUtlPrazoRN->getDatasPorFrequencia($inicioPeriodo); @@ -435,7 +444,8 @@ public static function arrDadosCargaUsuario($idUsuarioParticipante, $idParam, $n $tempoExecucaoExecutadoHist = $objMdUtlHistControleDsmpRN->buscarTempoExecucaoExecutadoHist(array($idUsuarioParticipante, $idTipoControle, $arrDatasFiltro)); $totalTempoExecucaoExecutadoHist = $tempoExecucaoExecutado + $tempoExecucaoExecutadoHist; - $arrPeriodo = $objMdUtlAdmPrmGrUsuRN->getDiasUteisNoPeriodo([$staFrequencia]); + $iniPeriodo = substr($arrDatasFiltro['DT_INICIAL'],0,10); + $arrPeriodo = $objMdUtlAdmPrmGrUsuRN->getDiasUteisNoPeriodo([$staFrequencia, true, $iniPeriodo]); $totalCarga = $objMdUtlAdmPrmGrUsuRN->verificaCargaPadrao(array($idUsuarioParticipante, $idParam, $numCargaPadrao, $numPercentualTele, $arrPeriodo)); diff --git a/sei/web/modulos/utilidades/int/MdUtlControleDsmpINT.php b/sei/web/modulos/utilidades/int/MdUtlControleDsmpINT.php index 3801168..cf3d063 100644 --- a/sei/web/modulos/utilidades/int/MdUtlControleDsmpINT.php +++ b/sei/web/modulos/utilidades/int/MdUtlControleDsmpINT.php @@ -411,87 +411,103 @@ public static function montarSelectMembroResponsavelAvaliacao($vlSelecionado = n return $select; } - public static function montarSelectPeriodoAnalise($idTipoControleDesempenho, $idUsuarioAtribuicao, $periodoInicialSelecionado = NULL, $periodoFinalSelecionado = NULL, $frequenciaAnalise = NULL) - { - $objMdUtlAdmTpCtrlDesempRN = new MdUtlAdmTpCtrlDesempRN(); - $objMdUtlAdmTpCtrlDesempDTO = new MdUtlAdmTpCtrlDesempDTO(); - $objMdUtlAdmTpCtrlDesempDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControleDesempenho); - $objMdUtlAdmTpCtrlDesempDTO->retNumIdMdUtlAdmPrmGr(); - $objMdUtlAdmTpCtrlDesemp = $objMdUtlAdmTpCtrlDesempRN->consultar($objMdUtlAdmTpCtrlDesempDTO); - - $objMdUtlAdmPrmGrRN = new MdUtlAdmPrmGrRN(); - $objMdUtlAdmPrmGrDTO = new MdUtlAdmPrmGrDTO(); - $objMdUtlAdmPrmGrDTO->setNumIdMdUtlAdmPrmGr( $objMdUtlAdmTpCtrlDesemp->getNumIdMdUtlAdmPrmGr() ); - $objMdUtlAdmPrmGrDTO->retStrStaFrequencia(); - $objMdUtlAdmPrmGrDTO->retNumInicioPeriodo(); - $objMdUtlAdmPrmGrDTO->retDtaDataCorte(); - $objMdUtlAdmPrmGr = $objMdUtlAdmPrmGrRN->consultar($objMdUtlAdmPrmGrDTO); - - $objMdUtlAdmPrmGrUsuDTO = new MdUtlAdmPrmGrUsuDTO(); - $objMdUtlAdmPrmGrUsuRN = new MdUtlAdmPrmGrUsuRN(); - - $objMdUtlAdmPrmGrUsuDTO->setNumIdMdUtlAdmPrmGr($objMdUtlAdmTpCtrlDesemp->getNumIdMdUtlAdmPrmGr()); - $objMdUtlAdmPrmGrUsuDTO->setNumIdUsuario($idUsuarioAtribuicao); - $objMdUtlAdmPrmGrUsuDTO->setNumMaxRegistrosRetorno(1); - $objMdUtlAdmPrmGrUsuDTO->retDthInicioParticipacao(); - $objMdUtlAdmPrmGrUsuDTO = $objMdUtlAdmPrmGrUsuRN->consultar($objMdUtlAdmPrmGrUsuDTO); - - if(!is_null($objMdUtlAdmPrmGrUsuDTO->getDthInicioParticipacao())) { - $dataInicioPeriodo = $objMdUtlAdmPrmGrUsuDTO->getDthInicioParticipacao(); - $dataInicioPeriodo = explode(" ", $dataInicioPeriodo); - $dataInicioPeriodo = $dataInicioPeriodo[0]; - } elseif($objMdUtlAdmPrmGr->getDtaDataCorte()) { - $dataInicioPeriodo = $objMdUtlAdmPrmGr->getDtaDataCorte(); - } else { - $dataInicioPeriodo = date("Y-m-d"); - } - $dataInicioPeriodo = implode('-', array_reverse(explode('/', $dataInicioPeriodo))); - $periodo = array(); - if($frequenciaAnalise != NULL) { - $frequencia = $frequenciaAnalise; - } else { - $frequencia = $objMdUtlAdmPrmGr->getStrStaFrequencia(); - } - - if($frequencia == "S") { - $inicioSemana = date('Y-m-d', strtotime("Monday this week")); - $strDiaSemanaAtual = InfraData::obterDescricaoDiaSemana(date('d/m/Y')); - $diaFinalSemanaAtual = $strDiaSemanaAtual == 'domingo' ? InfraData::getStrDataAtual() : date("d/m/Y", strtotime("next Sunday")); - $periodo[] = "Semanal (". date("d/m/Y", strtotime($inicioSemana))." a ". $diaFinalSemanaAtual .") - Atual"; - $i = -1; - while(strtotime($inicioSemana) > strtotime($dataInicioPeriodo)) { - $inicioSemana = date("Y-m-d", strtotime($i." week", strtotime($inicioSemana))); - $periodo[] = "Semanal (". date("d/m/Y", strtotime($inicioSemana))." a ". date("d/m/Y", strtotime("next Sunday", strtotime($inicioSemana))).")"; - } - } elseif($frequencia == "M") { - $inicioMes = date('Y-m-01'); - $periodo[] = "Mensal (". date("d/m/Y", strtotime($inicioMes))." a ". date("t/m/Y").") - Atual"; - $i = -1; - while(strtotime($inicioMes) > strtotime($dataInicioPeriodo)) { - $inicioMes = date("Y-m-01", strtotime($i." month")); - $periodo[] = "Mensal (". date("d/m/Y", strtotime($inicioMes))." a ". date("t/m/Y", strtotime($inicioMes)).")"; - $i--; - } - } else { - return array("D", $dataInicioPeriodo); - } - $select = ''; - $vlSelecionado = $periodoInicialSelecionado."|".$periodoFinalSelecionado; - $numLimitador = 15; - foreach ($periodo as $key => $parametros) { - $periodoExplodido = explode("(", $parametros); - $periodoInicialExplodido = explode(" ", $periodoExplodido[1]); - $periodoInicial = $periodoInicialExplodido[0]; - $periodoFinalExplodido = explode(")", $periodoInicialExplodido[2]); - $periodoFinal = $periodoFinalExplodido[0]; - $chave = $periodoInicial . '|' . $periodoFinal; - $strSelected = $vlSelecionado != null && $chave == $vlSelecionado ? 'selected=selected' : ''; - $select .= ''; - $numLimitador--; - if( $numLimitador == 0 ) break; - } - return array($frequencia, $select); - } + public static function montarSelectPeriodoAnalise($idTipoControleDesempenho, $idUsuarioAtribuicao = NULL, $periodoInicialSelecionado = NULL, $periodoFinalSelecionado = NULL, $frequenciaAnalise = NULL, $bolOrigemLista = false) + { + $objMdUtlAdmTpCtrlDesempRN = new MdUtlAdmTpCtrlDesempRN(); + $objMdUtlAdmTpCtrlDesempDTO = new MdUtlAdmTpCtrlDesempDTO(); + $objMdUtlAdmTpCtrlDesempDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControleDesempenho); + $objMdUtlAdmTpCtrlDesempDTO->retNumIdMdUtlAdmPrmGr(); + $objMdUtlAdmTpCtrlDesemp = $objMdUtlAdmTpCtrlDesempRN->consultar($objMdUtlAdmTpCtrlDesempDTO); + + $objMdUtlAdmPrmGrRN = new MdUtlAdmPrmGrRN(); + $objMdUtlAdmPrmGrDTO = new MdUtlAdmPrmGrDTO(); + $objMdUtlAdmPrmGrDTO->setNumIdMdUtlAdmPrmGr( $objMdUtlAdmTpCtrlDesemp->getNumIdMdUtlAdmPrmGr() ); + $objMdUtlAdmPrmGrDTO->retStrStaFrequencia(); + $objMdUtlAdmPrmGrDTO->retNumInicioPeriodo(); + $objMdUtlAdmPrmGrDTO->retDtaDataCorte(); + $objMdUtlAdmPrmGr = $objMdUtlAdmPrmGrRN->consultar($objMdUtlAdmPrmGrDTO); + + $objMdUtlAdmPrmGrUsuDTO = new MdUtlAdmPrmGrUsuDTO(); + $objMdUtlAdmPrmGrUsuRN = new MdUtlAdmPrmGrUsuRN(); + + if ( $idUsuarioAtribuicao ) { + $objMdUtlAdmPrmGrUsuDTO->setNumIdMdUtlAdmPrmGr($objMdUtlAdmTpCtrlDesemp->getNumIdMdUtlAdmPrmGr()); + $objMdUtlAdmPrmGrUsuDTO->setNumIdUsuario($idUsuarioAtribuicao); + $objMdUtlAdmPrmGrUsuDTO->setNumMaxRegistrosRetorno(1); + $objMdUtlAdmPrmGrUsuDTO->retDthInicioParticipacao(); + $objMdUtlAdmPrmGrUsuDTO = $objMdUtlAdmPrmGrUsuRN->consultar($objMdUtlAdmPrmGrUsuDTO); + } + + if( $idUsuarioAtribuicao && !is_null($objMdUtlAdmPrmGrUsuDTO) && !is_null($objMdUtlAdmPrmGrUsuDTO->getDthInicioParticipacao())) { + $dataInicioPeriodo = $objMdUtlAdmPrmGrUsuDTO->getDthInicioParticipacao(); + $dataInicioPeriodo = explode(" ", $dataInicioPeriodo); + $dataInicioPeriodo = $dataInicioPeriodo[0]; + } elseif($objMdUtlAdmPrmGr->getDtaDataCorte()) { + $dataInicioPeriodo = $objMdUtlAdmPrmGr->getDtaDataCorte(); + } else { + $dataInicioPeriodo = date("Y-m-d"); + } + $dataInicioPeriodo = implode('-', array_reverse(explode('/', $dataInicioPeriodo))); + $periodo = array(); + if($frequenciaAnalise != NULL) { + $frequencia = $frequenciaAnalise; + } else { + $frequencia = $objMdUtlAdmPrmGr->getStrStaFrequencia(); + } + + if($frequencia == "S") { + $inicioSemana = date('Y-m-d', strtotime("Monday this week")); + $strDiaSemanaAtual = InfraData::obterDescricaoDiaSemana(date('d/m/Y')); + $diaFinalSemanaAtual = $strDiaSemanaAtual == 'domingo' ? InfraData::getStrDataAtual() : date("d/m/Y", strtotime("next Sunday")); + $periodo[] = "Semanal (". date("d/m/Y", strtotime($inicioSemana))." a ". $diaFinalSemanaAtual .") - Atual"; + + $arrPeriodoAtual = [ $inicioSemana , date("Y-m-d", strtotime("next Sunday")) ]; + + $i = -1; + while(strtotime($inicioSemana) > strtotime($dataInicioPeriodo)) { + $inicioSemana = date("Y-m-d", strtotime($i." week", strtotime($inicioSemana))); + $periodo[] = "Semanal (". date("d/m/Y", strtotime($inicioSemana))." a ". date("d/m/Y", strtotime("next Sunday", strtotime($inicioSemana))).")"; + } + } elseif($frequencia == "M") { + $inicioMes = date('Y-m-01'); + $periodo[] = "Mensal (". date("d/m/Y", strtotime($inicioMes))." a ". date("t/m/Y").") - Atual"; + + $arrPeriodoAtual = [ $inicioMes , date("Y-m-t") ]; + + $i = -1; + while(strtotime($inicioMes) > strtotime($dataInicioPeriodo)) { + $inicioMes = date("Y-m-01", strtotime($i." month")); + $periodo[] = "Mensal (". date("d/m/Y", strtotime($inicioMes))." a ". date("t/m/Y", strtotime($inicioMes)).")"; + $i--; + } + } else { + return array("D", $dataInicioPeriodo); + } + $select = ''; + $vlSelecionado = $periodoInicialSelecionado."|".$periodoFinalSelecionado; + $numLimitador = 15; + $arrPeriodosSelecionado = []; + foreach ($periodo as $key => $parametros) { + $periodoExplodido = explode("(", $parametros); + $periodoInicialExplodido = explode(" ", $periodoExplodido[1]); + $periodoInicial = $periodoInicialExplodido[0]; + $periodoFinalExplodido = explode(")", $periodoInicialExplodido[2]); + $periodoFinal = $periodoFinalExplodido[0]; + $chave = $periodoInicial . '|' . $periodoFinal; + $strSelected = $vlSelecionado != null && $chave == $vlSelecionado ? 'selected=selected' : ''; + + if ( $bolOrigemLista && strpos($parametros,'Atual') ) $strSelected = 'selected=selected'; + + $select .= ''; + + if (!empty( $strSelected) ) $arrPeriodosSelecionado = ['inicial' => $periodoInicial , 'final' => $periodoFinal]; + + $numLimitador--; + if( $numLimitador == 0 ) break; + } + + return array($frequencia, $select, $arrPeriodosSelecionado , 'periodoAtual' => $arrPeriodoAtual); + } public static function retornaSelectEncaminhamentoAnaliseTriagem() { diff --git a/sei/web/modulos/utilidades/int/MdUtlMensagemINT.php b/sei/web/modulos/utilidades/int/MdUtlMensagemINT.php index f6dda25..e2cd542 100644 --- a/sei/web/modulos/utilidades/int/MdUtlMensagemINT.php +++ b/sei/web/modulos/utilidades/int/MdUtlMensagemINT.php @@ -139,17 +139,18 @@ class MdUtlMensagemINT extends InfraINT { public static $MSG_UTL_124 = 'Usuário não vinculado à Fila ou está Desativado, com isso, o campo que sinaliza a Distribuição automática para o Novo Fluxo do processo foi desmarcado.'; public static $MSG_UTL_125 = 'Antes de Salvar, acione o botão Editar sobre um determinado Ex-Participante e altere as informações.'; public static $MSG_UTL_126 = 'Ao menos um campo precisa estar preenchido para realizar à atualização.'; - public static $MSG_UTL_127 = 'O Tipo de Integração "SOAP" ainda não está disponível nesta versão.'; - public static $MSG_UTL_128 = 'Indique como Dado Restrito a chave de autenticação definida no Header.'; - public static $MSG_UTL_129 = 'O Conteúdo de Autenticação é de preenchimento obrigatório.'; - public static $MSG_UTL_130 = 'Para remover este membro, antes é necessário preencher a Data Fim de Participação'; - public static $MSG_UTL_131 = 'Não é permitido solicitar ajuste de prazo, pois em nenhuma das atividades selecionadas deste processo possuem prazo definido.'; - public static $MSG_UTL_132 = 'Não foi possível distribuir processos para o usuário logado, pois nenhum processo foi encontrado considerando as parametrizações da Distribuição.'; - public static $MSG_UTL_133 = "Erro Interno no Servidor de Resposta\nHá um problema com o recurso que você está procurando e ele não pode ser exibido"; - public static $MSG_UTL_134 = "Falha na execução da consulta no webservice"; - public static $MSG_UTL_135 = "Nenhum recurso correspondente encontrado para determinada solicitação"; - public static $MSG_UTL_136 = 'A Carga Exigível no Período Atual corresponde ao Tempo de Execução exigido pelo usuário logado no Tipo de Controle indicado durante o período atual, abatendo o tempo de ausências formais (afastamentos, licenças e férias) ou o tempo de quando estiver no exercício de Chefia Imediata (inclusive Substituição), caso na Administração do Módulo no SEI esteja ativada a integração com o Sistema de Recursos Humanos.'; - public static $MSG_UTL_137 = 'A Carga Exigível no Período Atual corresponde ao Tempo de Execução exigido pelo Membro Responsável pela @VALOR1@ no Tipo de Controle indicado durante o período atual, abatendo o tempo de ausências formais (afastamentos, licenças e férias) ou o tempo de quando estiver no exercício de Chefia Imediata (inclusive Substituição), caso na Administração do Módulo no SEI esteja ativada a integração com o Sistema de Recursos Humanos.'; + public static $MSG_UTL_127 = 'O Tipo de Integração "SOAP" ainda não está disponível nesta versão.'; + public static $MSG_UTL_128 = 'Indique como Dado Restrito a chave de autenticação definida no Header.'; + public static $MSG_UTL_129 = 'O Conteúdo de Autenticação é de preenchimento obrigatório.'; + public static $MSG_UTL_130 = 'Para remover este membro, antes é necessário preencher a Data Fim de Participação'; + public static $MSG_UTL_131 = 'Não é permitido solicitar ajuste de prazo, pois em nenhuma das atividades selecionadas deste processo possuem prazo definido.'; + public static $MSG_UTL_132 = 'Não foi possível distribuir processos para o usuário logado, pois nenhum processo foi encontrado considerando as parametrizações da Distribuição.'; + public static $MSG_UTL_133 = "Erro Interno no Servidor de Resposta\nHá um problema com o recurso que você está procurando e ele não pode ser exibido"; + public static $MSG_UTL_134 = "Falha na execução da consulta no webservice"; + public static $MSG_UTL_135 = "Nenhum recurso correspondente encontrado para determinada solicitação"; + public static $MSG_UTL_136 = 'A Carga Exigível no Período Selecionado corresponde ao Tempo de Execução exigido pelo usuário logado no Tipo de Controle indicado durante o período selecionado, abatendo o tempo de ausências formais (afastamentos, licenças e férias) ou o tempo de quando estiver no exercício de Chefia Imediata (inclusive Substituição), caso na Administração do Módulo no SEI esteja ativada a integração com o Sistema de Recursos Humanos.'; + public static $MSG_UTL_137 = 'A Carga Exigível no Período Selecionado corresponde ao Tempo de Execução exigido pelo Membro Responsável pela @VALOR1@ no Tipo de Controle indicado durante o período selecionado, abatendo o tempo de ausências formais (afastamentos, licenças e férias) ou o tempo de quando estiver no exercício de Chefia Imediata (inclusive Substituição), caso na Administração do Módulo no SEI esteja ativada a integração com o Sistema de Recursos Humanos.'; + public static $MSG_UTL_138 = "Nenhum Tipo de Controle de Desempenho foi configurado para a Unidade @VALOR1@.\n Antes, o Gestor do Controle de Desempenho necessita realizar as parametrizações na Administração do módulo."; public static function getMensagem($msg, $arrParams = null){ $isPersonalizada = count(explode('@VALOR', self::$MSG_UTL_10)) > 1; diff --git a/sei/web/modulos/utilidades/md_utl_analise_cadastro_js.php b/sei/web/modulos/utilidades/md_utl_analise_cadastro_js.php index c30930a..33a07c7 100644 --- a/sei/web/modulos/utilidades/md_utl_analise_cadastro_js.php +++ b/sei/web/modulos/utilidades/md_utl_analise_cadastro_js.php @@ -294,7 +294,7 @@ function RetriagemAnlCorrecao() { } function abrirModalRevisao() { - infraAbrirJanela('','janelaAjudaVariaveisModelo',1200,600,'location=0,status=1,resizable=1,scrollbars=1',false); + infraAbrirJanelaModal('',1000,600); } function validarSeriesObrigatorias(){ diff --git a/sei/web/modulos/utilidades/md_utl_controle_dsmp_associacao.php b/sei/web/modulos/utilidades/md_utl_controle_dsmp_associacao.php index 496577f..71de61e 100644 --- a/sei/web/modulos/utilidades/md_utl_controle_dsmp_associacao.php +++ b/sei/web/modulos/utilidades/md_utl_controle_dsmp_associacao.php @@ -191,7 +191,7 @@ $arrComandos[] = ''; - $arrComandos[] = ''; if($idTpControle != '0'){ @@ -301,12 +301,17 @@ function inicializar() { // veio da tela de detalhamento do processo if ( document.querySelector('#hdnDetalhamento').value == 1 ) { - window.opener.parent.document.querySelector('#ifrArvore').src = ''; - window.opener.location.reload(); + window.parent.document.querySelector('#ifrArvore').src = ''; + /** + * PARA FUNCIONAMENTO FUTURAMENTE NA VERSAO 4.1.* DO SEI, USAR O COMANDO ABAIXO SUBSTITUINDO O CONTEUDO DA LINHA: 309 + * window.parent.document.querySelector('#ifrConteudoVisualizacao').contentWindow.document.querySelector('#btnDtlhProcesso').click(); + */ + window.parent.document.location.reload(); + } else { // veio do menu Associar Processo a Fila - window.opener.document.querySelector('#btnPesquisar').click(); + window.parent.document.querySelector('#btnPesquisar').click(); } - window.close(); + closeModal(); if( document.getElementById('selTpCtrl').length == 1 ){ @@ -317,13 +322,10 @@ function inicializar() { iniciarTbDinamica(); var arrIdsProcedimento = new Array(); var isDetalhamento = ""; - if(isDetalhamento != '1') { arrIdsProcedimento = retornaIdsProcedimentosFormatados(); } - buscarUltimasFilas(arrIdsProcedimento, isDetalhamento); - } function submeterAssociarFila(){ @@ -404,7 +406,7 @@ function buscarUltimasFilas(jsonIdsProcedimento, isDetalhamento) { function montarTelaMultipla(arrUltimasFilas){ - var linhas = window.opener.$(".infraTrMarcada"); + var linhas = $( window.parent.document.querySelectorAll('.infraTrMarcada') ); for (var i = linhas.length - 1; i >=0; i--) { var objLinha = linhas[i]; @@ -429,10 +431,19 @@ function montarTelaMultipla(arrUltimasFilas){ function montarTelaDetalhamento(arrUltimasFilas, idProcedimento){ var objLinha = arrUltimasFilas[0]; var idProcedimento = idProcedimento; - var strProcesso = window.opener.document.getElementById('hdnProtocoloFormatado').value; - var filaAtual = window.opener.document.getElementById('hdnNomeFilaAtual').value; - var status = window.opener.document.getElementById('hdnIdStatusAtual').value; - var nmTpCtrlAtual = window.opener.document.getElementById('hdnNomeTpCtrlAtual').value; + + /** + * PARA FUNCIONAMENTO FUTURAMENTE NA VERSAO 4.1.* DO SEI, USAR O COMANDO ABAIXO SUBSTITUINDO O CONTEUDO DA LINHA: 445 + * window.parent.document.querySelector('#ifrConteudoVisualizacao').contentWindow.document.querySelector('#ifrVisualizacao'); + */ + + // Inicio de trecho alterado + var objVisualizacao = window.parent.document.querySelector('#ifrVisualizacao'); + var strProcesso = objVisualizacao.contentWindow.document.querySelector('#hdnProtocoloFormatado').value; + var filaAtual = objVisualizacao.contentWindow.document.querySelector('#hdnNomeFilaAtual').value; + var status = objVisualizacao.contentWindow.document.querySelector('#hdnIdStatusAtual').value; + var nmTpCtrlAtual = objVisualizacao.contentWindow.document.querySelector('#hdnNomeTpCtrlAtual').value; + var nomeCampoUltFila = 'UltimaFila' + idProcedimento; var TpControle = $(arrUltimasFilas).find('TipoControle' + idProcedimento ).text(); var ultimaFila = $(arrUltimasFilas).find(nomeCampoUltFila).text(); @@ -447,9 +458,8 @@ function montarTelaDetalhamento(arrUltimasFilas, idProcedimento){ function retornaIdsProcedimentosFormatados(){ - var linhas = window.opener.$(".infraTrMarcada"); + var linhas = $( window.parent.document.querySelectorAll('.infraTrMarcada') ); var arrProcedimentos = new Array(); - for (var i = 0; i < linhas.length; i++) { var objLinha = linhas[i]; var idProcedimento = $(objLinha).find('.tdIdProcesso').text(); diff --git a/sei/web/modulos/utilidades/md_utl_controle_dsmp_lista.php b/sei/web/modulos/utilidades/md_utl_controle_dsmp_lista.php index b5e4190..7ea2995 100644 --- a/sei/web/modulos/utilidades/md_utl_controle_dsmp_lista.php +++ b/sei/web/modulos/utilidades/md_utl_controle_dsmp_lista.php @@ -8,6 +8,10 @@ session_start(); SessaoSEI::getInstance()->validarLink(); + +//$objInfraExcep = new InfraException(); +$linkCtrlProcesso = SessaoSEI::getInstance()->assinarLink('controlador.php?acao=procedimento_controlar&acaoorigem=' . $_GET['acao']); + $arrIdProcedimentoAssociado = array(); if (isset($_SESSION['ID_PROCEDIMENTO_FILA_ASSOCIAR'])) { $arrIdProcedimentoAssociado = $_SESSION['ID_PROCEDIMENTO_FILA_ASSOCIAR']; @@ -22,19 +26,35 @@ $objMdUtlAdmTpCtrlUsuRN = new MdUtlAdmRelTpCtrlDesempUsuRN(); //Array que sera usado para montar os tipos de controles da unidade -$arrObjTpControle = $objMdUtlAdmTpCtrlUndRN->getArrayTipoControleUnidadeLogada(); -$arrListaTpControle = array(); -if (!is_null($arrObjTpControle) && count($arrObjTpControle) > 0 ){ - foreach ($arrObjTpControle as $k => $v) { - $arrListaTpControle[$v->getNumIdMdUtlAdmTpCtrlDesemp()] = $v->getStrNomeTipoControle(); +$arrObjTpControle = $objMdUtlAdmTpCtrlUndRN->getArrayTipoControleUnidadeLogada(); + +$strNmUnidade = SessaoSEI::getInstance()->getStrSiglaUnidadeAtual(); + +try { + + if (!$arrObjTpControle){ + $msgErro = MdUtlMensagemINT::setMensagemPadraoPersonalizada( MdUtlMensagemINT::$MSG_UTL_138 , [$strNmUnidade] ); + throw new InfraException($msgErro); } -} -//Validação de Tipo de Controle -$idTipoControle = null; -if (isset($_POST['selTpControle']) && !empty($_POST['selTpControle'])) { - $idTipoControle = $_POST['selTpControle']; -} + $arrListaTpControle = array(); + if (!is_null($arrObjTpControle) && count($arrObjTpControle) > 0) { + foreach ($arrObjTpControle as $k => $v) { + $arrListaTpControle[$v->getNumIdMdUtlAdmTpCtrlDesemp()] = $v->getStrNomeTipoControle(); + } + } + + //Validação de Tipo de Controle + $idTipoControle = null; + if (isset($_POST['selTpControle']) && !empty($_POST['selTpControle'])) { + $idTipoControle = $_POST['selTpControle']; + } + +} catch(InfraException $e){ + PaginaSEI::getInstance()->adicionarMensagem( $e->__toString() , InfraPagina::$TIPO_MSG_ERRO ); + header('Location: ' . $linkCtrlProcesso ); + die; +} // Tipos de Controles onde usuario é gestor $idsTpCtrlUsuarioGestor = $objMdUtlAdmTpCtrlUsuRN->usuarioLogadoIsGestorTpControle(); @@ -210,7 +230,7 @@ $objDTO->retStrSiglaUsuarioDistribuicao(); $objDTO->retNumIdMdUtlAnalise(); $objDTO->retStrNomeTpCtrlDsmp(); - $objDTO->retStrIdTipoCtrlDsmp(); + $objDTO->retNumIdMdUtlAdmTpCtrlDesemp(); PaginaSEI::getInstance()->prepararOrdenacao($objDTO, 'ProtocoloProcedimentoFormatado', InfraDTO::$TIPO_ORDENACAO_ASC); PaginaSEI::getInstance()->prepararPaginacao($objDTO, 200); @@ -295,7 +315,7 @@ //Linha Tipo Controle Desempenho $strResultado .= ''; - $strResultado .= $arrObjs[$i]->getStrIdTipoCtrlDsmp(); + $strResultado .= $arrObjs[$i]->getNumIdMdUtlAdmTpCtrlDesemp(); $strResultado .= ''; $strResultado .= ''; @@ -593,7 +613,7 @@ function associarFila() { valido = associacaoIsPermitida(); if( valido ){ - infraAbrirJanela(strUrlAssocFila, 'janelaAssinatura', 1000, 450, 'location=0,status=1,resizable=1,scrollbars=1'); + infraAbrirJanelaModal(strUrlAssocFila,1000,600); } } diff --git a/sei/web/modulos/utilidades/md_utl_distrib_usuario_cadastro.php b/sei/web/modulos/utilidades/md_utl_distrib_usuario_cadastro.php index bc770b3..25f71d8 100644 --- a/sei/web/modulos/utilidades/md_utl_distrib_usuario_cadastro.php +++ b/sei/web/modulos/utilidades/md_utl_distrib_usuario_cadastro.php @@ -287,44 +287,58 @@
- /> + /> - 0min + + + 0min + +
- /> + /> - 0min + + + 0min + +
- - - /> - - 0min +
- - - /> - - 0min +
@@ -334,24 +348,26 @@
- /> + /> - - - + + + +
- - /> - - - - +
@@ -424,7 +440,6 @@ function inicializar() { var count = ""; verificarConcorrencia(count); - if (count > 0) { carregarComponenteUsuarioParticipante(); iniciarGridDinamicaDistribuicao(); @@ -565,6 +580,9 @@ function carregarComponenteUsuarioParticipante() { if (id != '') { document.getElementById('hdnIdUsuarioParticipanteLupa').value = id; document.getElementById('txtUsuarioParticipante').value = descricao; + + $('.spinner-border').show(); + //chamar a função responsavel por carregar os campos do participante - Ajax realizarAjaxDadosCarga(); } else { @@ -594,17 +612,20 @@ function cancelar() { } function limparCampos() { + let span = ''; + document.getElementById('txtTotalUniEsforco').innerHTML = convertToHoursMins(''); document.getElementById('txtSelecionadaDist').innerHTML = convertToHoursMins(''); - document.getElementById('txtDistribuida').innerHTML = '0min'; - document.getElementById('txtCargaPadrao').innerHTML = ''; - document.getElementById('txtTotalExePeriodo').innerHTML = '0min'; - document.getElementById('txtTotalTempoPendenteExecucao').innerHTML = '0min'; + document.getElementById('txtDistribuida').innerHTML = span + ' 0min'; + document.getElementById('txtCargaPadrao').innerHTML = span + ' '; + document.getElementById('txtTotalExePeriodo').innerHTML = span + ' 0min'; + document.getElementById('txtTotalTempoPendenteExecucao').innerHTML = span + ' 0min'; document.getElementById('dvChefiaImediata').style.display = 'none'; resetarTempoExecucaoTabelaDistribuicao(); } function realizarAjaxDadosCarga() { + let isChefiaImediata = false; var params = { @@ -624,6 +645,7 @@ function realizarAjaxDadosCarga() { async: true, dataType: 'XML', success: function (r) { + let chefiaImediata = $( r ).find('ChefiaImediata').text(); isChefiaImediata = chefiaImediata.length > 0; diff --git a/sei/web/modulos/utilidades/md_utl_distrib_usuario_lista.php b/sei/web/modulos/utilidades/md_utl_distrib_usuario_lista.php index 5229201..21bdaf9 100644 --- a/sei/web/modulos/utilidades/md_utl_distrib_usuario_lista.php +++ b/sei/web/modulos/utilidades/md_utl_distrib_usuario_lista.php @@ -39,6 +39,7 @@ function convertToHoursMins($time) { } PaginaSEI::getInstance()->salvarCamposPost(array('txtProcessoUtlDist', 'txtDocumento', 'selFilaUtlDist', 'selTipoProcessoUtlDist', 'selResponsavelUtlDist', 'selStatusUtlDist', 'selAtividadeUtlDist')); +$linkCtrlProcesso = SessaoSEI::getInstance()->assinarLink('controlador.php?acao=procedimento_controlar&acaoorigem=' . $_GET['acao']); //Id tipo de controle $objFilaRN = new MdUtlAdmFilaRN(); @@ -51,13 +52,25 @@ function convertToHoursMins($time) { $objMdUtlAdmTpCtrlDTO = new MdUtlAdmTpCtrlDesempDTO(); $objMdUtlHistControleRN = new MdUtlHistControleDsmpRN(); +$strNmUnidade = SessaoSEI::getInstance()->getStrSiglaUnidadeAtual(); + //Array que sera usado para montar os tipos de controles da unidade -$arrObjTpControle = $objMdUtlAdmTpCtrlUndRN->getArrayTipoControleUnidadeLogada(); $arrListaTpCtrl = array(); -if (!is_null( $arrObjTpControle ) ){ - foreach ( $arrObjTpControle as $k => $v ) { - $arrListaTpCtrl[$v->getNumIdMdUtlAdmTpCtrlDesemp()] = $v->getNumIdMdUtlAdmTpCtrlDesemp(); + +try { + $arrObjTpControle = $objMdUtlAdmTpCtrlUndRN->getArrayTipoControleUnidadeLogada(); + if (!is_null( $arrObjTpControle ) ){ + foreach ( $arrObjTpControle as $k => $v ) { + $arrListaTpCtrl[$v->getNumIdMdUtlAdmTpCtrlDesemp()] = $v->getNumIdMdUtlAdmTpCtrlDesemp(); + } + } else { + $msgErro = MdUtlMensagemINT::setMensagemPadraoPersonalizada( MdUtlMensagemINT::$MSG_UTL_138 , [$strNmUnidade] ); + throw new InfraException($msgErro); } +} catch( InfraException $e ){ + PaginaSEI::getInstance()->adicionarMensagem( $e->__toString() , InfraPagina::$TIPO_MSG_ERRO ); + header('Location: ' . $linkCtrlProcesso ); + die; } //recupera o id tipo controle @@ -112,6 +125,7 @@ function convertToHoursMins($time) { $selAtividadeCampo = array_key_exists('selAtividadeUtlDist', $_POST) ? $_POST['selAtividadeUtlDist'] : PaginaSEI::getInstance()->recuperarCampo('selAtividadeUtlDist'); // responsavel pelos dados da combo Tipo de Controle $selTpControle = is_null($arrObjTpControle) ? array() : MdUtlAdmFilaINT::montarSelectTpControle($arrObjTpControle,'NumIdMdUtlAdmTpCtrlDesemp', 'StrNomeTipoControle',$_POST['selTpControle']); +$selPeriodoCampo = array_key_exists('selPeriodo', $_POST) ? $_POST['selPeriodo'] : PaginaSEI::getInstance()->recuperarCampo('selPeriodo'); $isGestorTpControle = false; if( !is_null($idTipoControle)){ @@ -143,7 +157,8 @@ function convertToHoursMins($time) { 'selStatus' => $selStatusCampo, 'selTpControle' => $selTpControle, 'telaDistrib' => true, - 'isAvalAlgumCtrl' => $isAvaliadorEmAlgumCtrl + 'isAvalAlgumCtrl' => $isAvaliadorEmAlgumCtrl, + 'selPeriodo' => $selPeriodoCampo ); $isParametrizado = !empty($arrListaTpCtrl); @@ -192,6 +207,34 @@ function convertToHoursMins($time) { $arrObjsTpProcesso = $objMdUtlControleDsmpRN->getTiposProcessoTipoControleAssociarFila( !is_null($idTipoControle) ? array($idTipoControle => $idTipoControle) : $arrListaTpCtrl ); $selTipoProcesso = $isPermiteAssociacao ? InfraINT::montarSelectArrInfraDTO(null, null, $selTipoProcessoCampo, $arrObjsTpProcesso, 'IdTipoProcedimento', 'NomeProcedimento') : ''; + +/* CONFIGURACAO DO PERIODO */ +// habilita/configura combo Periodo +$strSelPeriodo = ''; +if ( $idTipoControle && $selResponsavelCampo ) { + if( empty($selPeriodoCampo) ) { + $bolMarcarSelected = true; + $dtIniPer = null; + $dtFinPer = null; + } else { + $bolMarcarSelected = false; + $arrDtaPeriodos = explode('|',$selPeriodoCampo); + $dtIniPer = $arrDtaPeriodos[0]; + $dtFinPer = $arrDtaPeriodos[1]; + } + + $arrDadosPeriodo = MdUtlControleDsmpINT::montarSelectPeriodoAnalise( $idTipoControle, $selResponsavelCampo, $dtIniPer, $dtFinPer, null, $bolMarcarSelected ); + + // caso nao tenha sido selecionado a combo Periodo mas foi informado o Tipo de Ctrl, o valor padrao sera o periodo atual + if ( empty( $arrPostDados['selPeriodo'] ) ) $arrPostDados['selPeriodo'] = $arrDadosPeriodo[2]['inicial'].'|'.$arrDadosPeriodo[2]['final']; + + $dtPerIniEUA = implode( '-' , array_reverse( explode( '/' , $arrDadosPeriodo[2]['inicial'] ) ) ); + $isPeriodoAtual = $arrDadosPeriodo['periodoAtual'][0] == $dtPerIniEUA ? 'S' : 'N'; + $arrPostDados['dadosPeriodo']['periodoSelecionado'] = $arrDadosPeriodo[2]; + $arrPostDados['dadosPeriodo']['isPeriodoAtual'] = $isPeriodoAtual; + $strSelPeriodo = $arrDadosPeriodo[1]; +} + $strTitulo = 'Distribuição'; switch ($_GET['acao']) { @@ -259,6 +302,13 @@ function convertToHoursMins($time) { $objDTO = $objMdUtlControleDsmpRN->getObjDTOParametrizadoDistrib(array($arrObjsFilaUsuDTO, $isGestorSipSei, !empty($idTipoControle) ? array($idTipoControle) : $arrListaTpCtrl, $arrPostDados)); } + // Recupera processos já executados + $arrObjsProcessosExecutados = !empty($arrPostDados['selResponsavel']) + ? $objMdUtlControleDsmpRN->montaProcessosExecutados([$arrObjsFilaUsuDTO, $isGestorSipSei, $arrObjsTpProcesso, !empty($idTipoControle) ? [(int) $idTipoControle] : $arrListaTpCtrl, $arrPostDados]) + : []; + + $strProcessosExecutados = PaginaSEI::getInstance()->gerarItensTabelaDinamica($arrObjsProcessosExecutados[0]); + if (!is_null($objDTO)) { $objDTO->retNumIdMdUtlAjustePrazo(); $objDTO->retNumIdMdUtlContestRevisao(); @@ -584,7 +634,7 @@ function convertToHoursMins($time) { maxlength="100" tabindex="502"/> -
+ -
- - -
- -
- - -
-
+ +
+ +
@@ -646,9 +688,26 @@ class="inputFila infraText padraoInput form-control" class="infraSelect padraoSelect form-control" tabindex="getProxTabDados() ?>"> - + + +
+ +
+ +
+ +
+ + +
+ @@ -617,50 +672,144 @@ + value=""/> - + +
-
+
-
-
+
- 0min
-
- +
+
-
+
- 0min
+ + +
+ +
+ +
+ + +
+
- montarAreaTabela($strResultado, $numRegistros); ?> +
+ + + + + + +
+
+
+ +
+
+
+ + + + + + + +

+ +

+ +
@@ -668,7 +817,9 @@ - " /> + + @@ -725,7 +876,26 @@ function inicializar() { } } - getCargaHrDistribuida( todosValoresTpCtrl ); + let tmpPeriodo = $('#selPeriodo').val(); + + getCargaHrDistribuida( todosValoresTpCtrl, null, '', tmpPeriodo ); + + // carrega tabela com processos executados + if ( document.querySelector('#hdnTbProcessosExecutados').value.length > 0 ) { + objTabelaDinamicaProcExecutados = new infraTabelaDinamica('tbProcessosExecutados', 'hdnTbProcessosExecutados', false, false, false); + objTabelaDinamicaProcExecutados.gerarEfeitoTabela = true; + + $('#tbProcessosExecutados > tbody > tr > td').css({ + 'display': 'table-cell', + 'vertical-align': 'inherit' + }); + + let tbl = document.querySelector('#tbProcessosExecutados'); + [tbl.rows].map( row => $( row ).find('th:first , td:first').css('display','none') ); + } + // Deixa visivel as duas Grids + expandirTodos( 'div01' , document.querySelector('#imgExpandir_01') ); + expandirTodos( 'div02' , document.querySelector('#imgExpandir_02') ); addEnter(); @@ -733,13 +903,18 @@ function inicializar() { // para ficar na mesma formatação das labels que retornam dados referentes a tempo if( $('#divInfraAreaTabela').find('table').length == 0 ){ $('#divInfraAreaPaginacaoSuperior').hide(); - $('#divInfraAreaTabela').parent().parent().addClass('mt-2'); - $('#divInfraAreaTabela > label').addClass('infraLabelOpcional'); + $('#divInfraAreaPaginacaoInferior').hide(); + $('#divInfraAreaTabela').addClass('mt-2'); + $('#divInfraAreaTabela > label').addClass('infraLabelOpcional pl-2'); }else{ if( $('#divInfraAreaPaginacaoSuperior').find('select').length == 0 ){ $('#divInfraAreaPaginacaoSuperior').hide(); + $('#divInfraAreaPaginacaoInferior').hide(); } } + + // seta cor que contem a msg que quantidade de registros nas grids para ficar preto + $('.infraCaption').css('color','black'); } function confirmarRetorno(strStatus, $strUrlLink) { @@ -776,12 +951,18 @@ function addEnter() { function addPesquisarEnter(evt) { var key_code = evt.keyCode ? evt.keyCode : evt.charCode ? evt.charCode : - evt.which ? evt.which : void 0; + evt.which ? evt.which : void 0; if (key_code == 13) { pesquisar(); } + } + function mudouElemento(elem){ + if ( $( elem ).attr('id') == 'selTpControle') { + $('#selPeriodo').val(''); + } + pesquisar(); } function pesquisar() { diff --git a/sei/web/modulos/utilidades/md_utl_processo_lista_js.php b/sei/web/modulos/utilidades/md_utl_processo_lista_js.php index 17c38f8..a509425 100644 --- a/sei/web/modulos/utilidades/md_utl_processo_lista_js.php +++ b/sei/web/modulos/utilidades/md_utl_processo_lista_js.php @@ -47,7 +47,7 @@ function atualizaUtilidadesArvore(){ } function associarFila(){ - infraAbrirJanela('', 'janelaAssinatura', 1000, 450, 'location=0,status=1,resizable=1,scrollbars=1'); + infraAbrirJanelaModal('',900,500); } function iniciarTriagem(){ diff --git a/sei/web/modulos/utilidades/md_utl_revisao_cadastro.php b/sei/web/modulos/utilidades/md_utl_revisao_cadastro.php index af85cea..e6f2e28 100644 --- a/sei/web/modulos/utilidades/md_utl_revisao_cadastro.php +++ b/sei/web/modulos/utilidades/md_utl_revisao_cadastro.php @@ -249,7 +249,7 @@ $isConsultar = true; - $onClickCloseAction = in_array($_GET['acao_origem'], ['md_utl_analise_alterar', 'md_utl_triagem_alterar']) ? 'window.close();' : 'window.history.back();'; + $onClickCloseAction = in_array($_GET['acao_origem'], ['md_utl_analise_alterar', 'md_utl_triagem_alterar']) ? 'closeModal();' : 'window.history.back();'; $arrComandos[] = ''; $tpAcaoAval = MdUtlControleDsmpRN::$EM_ANALISE; diff --git a/sei/web/modulos/utilidades/rn/MdUtlAdmPrmGrUsuRN.php b/sei/web/modulos/utilidades/rn/MdUtlAdmPrmGrUsuRN.php index 4a1c62d..71c62b2 100644 --- a/sei/web/modulos/utilidades/rn/MdUtlAdmPrmGrUsuRN.php +++ b/sei/web/modulos/utilidades/rn/MdUtlAdmPrmGrUsuRN.php @@ -516,11 +516,12 @@ protected function verificaCargaPadraoConectado($arrObj){ } protected function getDiasUteisNoPeriodoConectado($arrParams){ - $staFrequencia = $arrParams[0]; - $isUsarFeriadoSEI = array_key_exists(1,$arrParams) ? $arrParams[1] : true; + $staFrequencia = $arrParams[0]; + $isUsarFeriadoSEI = array_key_exists(1,$arrParams) ? $arrParams[1] : true; + $dataAtual = array_key_exists(2,$arrParams) ? $arrParams[2] : InfraData::getStrDataAtual(); $MdUtlPrazoRN = new MdUtlPrazoRN(); - $dataAtual = InfraData::getStrDataAtual(); + $dataAtualFormatada = explode('/', $dataAtual); $diaAtual = $dataAtualFormatada[0]; $mesAtual = $dataAtualFormatada[1]; @@ -541,10 +542,10 @@ protected function getDiasUteisNoPeriodoConectado($arrParams){ $dataPrimeiroDiaSemana = $dataAtualFormatada; $dataPrimeiroDiaSemana = $MdUtlPrazoRN->retornaPrimeiroDiaSemana($dataPrimeiroDiaSemana); - $dtFinal = date('d/m/Y', strtotime('+6 days', strtotime($dataPrimeiroDiaSemana))); + $dtFinal = date('d/m/Y', strtotime('+6 days', strtotime($dataPrimeiroDiaSemana))); $arrDataPrimeiroDiaSemana = explode('-',$dataPrimeiroDiaSemana); - $dtInicial = implode('/', $arrDataPrimeiroDiaSemana); + $dtInicial = implode('/', $arrDataPrimeiroDiaSemana); $diasUteis = $MdUtlPrazoRN->retornaQtdDiaUtil($dtInicial, $dtFinal, false, $isUsarFeriadoSEI); $numFrequencia = $diasUteis; break; diff --git a/sei/web/modulos/utilidades/rn/MdUtlControleDsmpRN.php b/sei/web/modulos/utilidades/rn/MdUtlControleDsmpRN.php index bd6c5ea..6a6610f 100644 --- a/sei/web/modulos/utilidades/rn/MdUtlControleDsmpRN.php +++ b/sei/web/modulos/utilidades/rn/MdUtlControleDsmpRN.php @@ -183,12 +183,6 @@ protected function listarConectado($objMdUtlControleDsmpDTO) try { $objMdUtlControleDsmpBD = new MdUtlControleDsmpBD($this->getObjInfraIBanco()); - if (is_array($objMdUtlControleDsmpDTO)) { - $ret = $objMdUtlControleDsmpBD->listar($objMdUtlControleDsmpDTO[0], true); - print_r($ret); - exit; - } - if (!$objMdUtlControleDsmpDTO->isSetAtributo('SinVerificarPermissao')) { $objMdUtlControleDsmpDTO->setStrSinVerificarPermissao('S'); } @@ -196,6 +190,8 @@ protected function listarConectado($objMdUtlControleDsmpDTO) if ($objMdUtlControleDsmpDTO->getStrSinVerificarPermissao() == 'S') { SessaoSEI::getInstance()->validarPermissao('md_utl_controle_dsmp_listar'); } + $ret = $objMdUtlControleDsmpBD->listar($objMdUtlControleDsmpDTO,true); + $a=1; return $objMdUtlControleDsmpBD->listar($objMdUtlControleDsmpDTO); } catch (Exception $e) { @@ -524,7 +520,7 @@ protected function listarProcessosConectado(MdUtlProcedimentoDTO $objProcediment $count = $objProcedimentoRN->contarRN0279($objProcedimentoDTO); if ($count > 0) { - $arrDados = $objProcedimentoRN->listarRN0278($objProcedimentoDTO); + $arrDados = $objProcedimentoRN->listarRN0278($objProcedimentoDTO); } return $arrDados; @@ -1526,6 +1522,479 @@ protected function getObjDTOParametrizadoMeusProcessosConectado($arrParams) return $objDTO; } + public function montaProcessosExecutados( $arrParams ){ + + $arrIdsTpCtrlDsmp = $arrParams[3]; + $arrDadosCtrl = []; + $arrDadosCtrlHist = []; + $arrIdsTriagem = []; + $arrIdsTriagemHist = []; + $isListaTpCtrl = false; + $arrRelTpCtrlEPeriodo = []; + $arrIdsRemoverTempo = []; + + foreach ( $arrIdsTpCtrlDsmp as $k => $idTpCtrl ) { + /* Caso o parametro com o Tipo de Controle for mais de um, executa consulta + * para recuperar o periodo atual de cada Tipo de Controle e retornar processos + * executados de cada Tipo de Controle com os respectivos periodos atuais + * */ + if ( empty($arrParams[4]['selPeriodo']) ) { + $isListaTpCtrl = true; + $objMdUtlAdmTpCtrlDTO = new MdUtlAdmTpCtrlDesempDTO(); + $objMdUtlAdmTpCtrlDTO->setNumIdMdUtlAdmTpCtrlDesemp( $idTpCtrl ); + $objMdUtlAdmTpCtrlDTO->setStrSinAtivo('S'); + $objMdUtlAdmTpCtrlDTO->retNumIdMdUtlAdmPrmGr(); + + $objMdUtlAdmPrmGr = ( new MdUtlAdmTpCtrlDesempRN() )->consultar( $objMdUtlAdmTpCtrlDTO ); + $arrPeriodos = ( new MdUtlPrazoRN() )->getDatasPeriodoAtual( $objMdUtlAdmPrmGr->getNumIdMdUtlAdmPrmGr() , false ); + $arrParams[4]['selPeriodo'] = $arrPeriodos['DT_INICIAL'].'|'.$arrPeriodos['DT_FINAL']; + $arrParams[3] = $idTpCtrl; + $arrRelTpCtrlEPeriodo[$idTpCtrl] = $arrParams[4]['selPeriodo']; + } else { + $arrParams[3] = $arrIdsTpCtrlDsmp[0]; + $arrRelTpCtrlEPeriodo[$idTpCtrl] = $arrParams[4]['selPeriodo']; + } + + // retorna executados que constam na tabela de controle + $arrParams[5] = 'C'; + $objCtrlParametrizado = $this->getObjDTOParametrizadoMeusProcessosExecutados( $arrParams ); + $arrObjs = $this->listarProcessos( $objCtrlParametrizado ); + + // retorna ids do controle que ira precisar zerar o tempo que sera exibido na grid dos executados + $arrDatasUsoTmpRemover = explode('|',$arrParams[4]['selPeriodo']); + + $arrParamsRemoverTempo = [ + $arrParams[4]['selResponsavel'] ?? SessaoSEI::getInstance()->getNumIdUsuario(), + $idTpCtrl, + ['DT_INICIAL' => $arrDatasUsoTmpRemover[0] , 'DT_FINAL' => $arrDatasUsoTmpRemover[1]] + ]; + + $arrIdsRemoverTempoAux = $this->getTempoNaoExecutadoGrid($arrParamsRemoverTempo); + + if ( !empty( $arrIdsRemoverTempoAux ) ) { + foreach ( $arrIdsRemoverTempoAux as $id ) { + array_push($arrIdsRemoverTempo, $id); + } + } + $arrIdsRemoverTempoAux = []; + + // recupera os Ids da Triagem para, posteriormente, retornar as atividades cadastradas + $arrIds = InfraArray::converterArrInfraDTO( $arrObjs , 'IdMdUtlTriagem' ); + + foreach ( $arrObjs as $item ) { array_push( $arrDadosCtrl , $item ); } $arrObjs = null; + foreach ( $arrIds as $item ) { array_push( $arrIdsTriagem , $item ); } $arrIds = null; + + // retorna executados que constam na tabela de historico do controle + $arrParams[5] = 'H'; + $objCtrlParametrizado = $this->getObjDTOParametrizadoMeusProcessosExecutados( $arrParams ); + $arrObjs = $this->listarProcessos( $objCtrlParametrizado ); + + // retorna ids do controle historico que ira precisar zerar o tempo que sera exibido na grid dos executados + $arrIdsRemoverTempoAux = ( new MdUtlHistControleDsmpRN() )->getTempoNaoExecutadoGrid($arrParamsRemoverTempo); + + if ( !empty( $arrIdsRemoverTempoAux ) ) { + foreach ( $arrIdsRemoverTempoAux as $id ) { + array_push($arrIdsRemoverTempo, $id); + } + } + $arrIdsRemoverTempoAux = []; + + // recupera os Ids da Triagem do Hist para, posteriormente, retornar as atividades cadastradas + $arrIds = InfraArray::converterArrInfraDTO( $arrObjs , 'IdMdUtlTriagemHist' ); + + foreach ( $arrObjs as $item ) { array_push( $arrDadosCtrlHist , $item ); } $arrObjs = null; + foreach ( $arrIds as $item ) { array_push( $arrIdsTriagemHist , $item ); } $arrIds = null; + + if ( $isListaTpCtrl ) $arrParams[4]['selPeriodo'] = ''; + } + + if ( empty($arrDadosCtrl) && empty($arrDadosCtrlHist)) return []; + + // retorna os ids das triagens das consultas anteriores + $arrIdsTriagemFinal = array_unique( array_merge( $arrIdsTriagem , $arrIdsTriagemHist ) ); + $arrIdsTriagem = null; + $arrIdsTriagemHist = null; + + // retorna as atividades relacionadas aos ids das triagens + $arrObjsTriagemAtividade = ( new MdUtlRelTriagemAtvRN() )->getObjsTriagemAtividade($arrIdsTriagemFinal); + + // armazenara as atividades relacionadas as triagens + $arrListaAtivTriag = []; + + $this->trataDadosAtividadesProcExecutados($arrListaAtivTriag,$arrObjsTriagemAtividade); + + // faz um loop com os arrays acima para montar os registros da grid + $arrObjsExecutados = []; + + $somaTempo = 0; + + if (!empty($arrDadosCtrlHist)) { + foreach ( $arrDadosCtrlHist as $k => $v ){ + $arrTmpDataExec = $this->trataTmpDataExecucaoPorAcao( $v, $v->getStrTipoAcaoHist(), 'H', $arrRelTpCtrlEPeriodo[$v->getNumIdMdUtlAdmTpCtrlDesempHist()] ); + + if ( ! is_array($arrTmpDataExec) ) continue; + + $nomeTpProcesso = $v->getStrNomeTipoProcedimento(); + $strId = $v->getNumIdMdUtlAdmRelControleDsmp(); + $strProcesso = $v->getStrProtocoloProcedimentoFormatado(); + $linkProcedimento = SessaoSEI::getInstance()->assinarLink('controlador.php?acao=procedimento_trabalhar&acao_origem=md_utl_meus_processos_dsmp_listar&id_procedimento=' . $strId . ''); + $formartProcedimento = '' . $strProcesso . ''; + $formatAtividades = ''; + if ( key_exists( $v->getNumIdMdUtlTriagemHist(),$arrListaAtivTriag ) ) { + if ( count( $arrListaAtivTriag[$v->getNumIdMdUtlTriagemHist()] ) > 1 ) { + $linkAtvTriagem = SessaoSEI::getInstance()->assinarLink('controlador.php?acao=md_utl_atividade_triagem_listar&acao_origem=md_utl_distrib_usuario_listar&id_triagem=' . $v->getNumIdMdUtlTriagemHist() . ''); + $formatAtividades = ' Múltiplas '; + } else { + $formatAtividades = $arrListaAtivTriag[$v->getNumIdMdUtlTriagemHist()][0]; + } + } + + $somaTempo += ( $v->getStrTipoAcaoHist() == MdUtlControleDsmpRN::$STR_TIPO_ACAO_ANALISE && in_array($v->getNumIdMdUtlAnaliseHist(),$arrIdsRemoverTempo) ) ? 0 : $arrTmpDataExec['tmpExecucao']; + + $tmpFinal = ( $v->getStrTipoAcaoHist() == MdUtlControleDsmpRN::$STR_TIPO_ACAO_ANALISE && in_array($v->getNumIdMdUtlAnaliseHist(),$arrIdsRemoverTempo) ) + ? "". MdUtlAdmPrmGrINT::convertToHoursMins($arrTmpDataExec['tmpExecucao']) ."" + : MdUtlAdmPrmGrINT::convertToHoursMins( $arrTmpDataExec['tmpExecucao'] ); + + $arrObjsExecutados[] = [ + 'H - ' . $v->getNumIdMdUtlHistControleDsmp(), + $formartProcedimento, + $formatAtividades, + $v->getStrNomeTpCtrlDsmpHist(), + $v->getStrNomeFilaHist(), + $tmpFinal, + $v->getStrTipoAcaoHist(), + $arrTmpDataExec['dataExecucao'] + ]; + } + $arrDadosCtrlHist = null; + array_reverse($arrObjsExecutados); + } + + if (!empty($arrDadosCtrl)) { + foreach ( $arrDadosCtrl as $k => $v ){ + $arrTmpDataExec = $this->trataTmpDataExecucaoPorAcao( $v, $v->getStrTipoAcao(), 'C', $arrRelTpCtrlEPeriodo[$v->getNumIdMdUtlAdmTpCtrlDesemp()] ); + + if ( ! is_array($arrTmpDataExec) ) continue; + + $nomeTpProcesso = $v->getStrNomeTipoProcedimento(); + $strId = $v->getNumIdMdUtlAdmRelControleDsmp(); + $strProcesso = $v->getStrProtocoloProcedimentoFormatado(); + $linkProcedimento = SessaoSEI::getInstance()->assinarLink('controlador.php?acao=procedimento_trabalhar&acao_origem=md_utl_meus_processos_dsmp_listar&id_procedimento=' . $strId . ''); + $formartProcedimento = '' . $strProcesso . ''; + $formatAtividades = ''; + if ( key_exists( $v->getNumIdMdUtlTriagem(),$arrListaAtivTriag ) ) { + if ( count( $arrListaAtivTriag[$v->getNumIdMdUtlTriagem()] ) > 1 ) { + $linkAtvTriagem = SessaoSEI::getInstance()->assinarLink('controlador.php?acao=md_utl_atividade_triagem_listar&acao_origem=md_utl_distrib_usuario_listar&id_triagem=' . $v->getNumIdMdUtlTriagem() . ''); + $formatAtividades = ' Múltiplas '; + } else { + $formatAtividades = $arrListaAtivTriag[$v->getNumIdMdUtlTriagem()][0]; + } + } + + $somaTempo += ( $v->getStrTipoAcao() == MdUtlControleDsmpRN::$STR_TIPO_ACAO_ANALISE && in_array($v->getNumIdMdUtlAnalise(),$arrIdsRemoverTempo) ) ? 0 : $arrTmpDataExec['tmpExecucao']; + + $tmpFinal = ( $v->getStrTipoAcao() == MdUtlControleDsmpRN::$STR_TIPO_ACAO_ANALISE && in_array($v->getNumIdMdUtlAnalise(),$arrIdsRemoverTempo) ) + ? "". MdUtlAdmPrmGrINT::convertToHoursMins($arrTmpDataExec['tmpExecucao']) ."" + : MdUtlAdmPrmGrINT::convertToHoursMins( $arrTmpDataExec['tmpExecucao'] ); + + $arrObjsExecutados[] = [ + 'C - ' . $v->getNumIdMdUtlControleDsmp(), + $formartProcedimento, + $formatAtividades, + $v->getStrNomeTpCtrlDsmp(), + $v->getStrNomeFila(), + $tmpFinal, + $v->getStrTipoAcao(), + $arrTmpDataExec['dataExecucao'] + ]; + } + } + $arrDadosCtrl = null; + return [$arrObjsExecutados,$somaTempo]; + } + + private function trataDadosAtividadesProcExecutados(&$arrListaAtivTriag,$arrObjsTriagemAtividade){ + if ( !empty($arrObjsTriagemAtividade)) { + foreach ($arrObjsTriagemAtividade as $k => $v) { + if ( !key_exists( $v->getNumIdMdUtlTriagem(),$arrListaAtivTriag ) ){ + $arrListaAtivTriag[$v->getNumIdMdUtlTriagem()] = [$v->getStrNomeAtividade()]; + } else { + array_push( $arrListaAtivTriag[$v->getNumIdMdUtlTriagem()] , $v->getStrNomeAtividade() ); + } + } + } + } + + private function trataTmpDataExecucaoPorAcao($objDTO, $strAcao, $strOrigem, $strPeriodo){ + $arrPeriodo = explode( '|' , $strPeriodo ); + $dt_p_ini = strtotime( InfraData::formatarDataBanco( $arrPeriodo[0]) ); + $dt_p_fin = strtotime( InfraData::formatarDataBanco( $arrPeriodo[1]) ); + + $arrRetorno = [ 'tmpExecucao' => 0 , 'dataExecucao' => '-' ]; + + switch ( $strAcao ){ + case 'Triagem': + if ( $strOrigem == 'C' ) { + $dta = strtotime( InfraData::formatarDataBanco( $objDTO->getDtaTriagemAtual() ) ); + if ( $dta >= $dt_p_ini && $dta <= $dt_p_fin ) { + $arrRetorno['tmpExecucao'] = $objDTO->getNumTempoExecucaoAtribuidoTriag(); + $arrRetorno['dataExecucao'] = $objDTO->getDtaTriagemAtual(); + } else { + return false; + } + + } else { + $dta = strtotime( InfraData::formatarDataBanco( $objDTO->getDtaTriagemAtualHist() ) ); + if ( $dta >= $dt_p_ini && $dta <= $dt_p_fin ) { + $arrRetorno['tmpExecucao'] = $objDTO->getNumTempoExecucaoAtribuidoTriagHist(); + $arrRetorno['dataExecucao'] = $objDTO->getDtaTriagemAtualHist(); + } else { + return false; + } + } + break; + + case 'Análise': + if ( $strOrigem == 'C' ) { + $dta = strtotime( InfraData::formatarDataBanco( $objDTO->getDtaPeriodoInicio() ) ); + if ( $dta >= $dt_p_ini && $dta <= $dt_p_fin ) { + $arrRetorno['tmpExecucao'] = $objDTO->getNumTempoExecucaoAtribuidoAnalise(); + $arrRetorno['dataExecucao'] = $objDTO->getDtaPeriodoInicio().' a '.$objDTO->getDtaPeriodoFim(); + + } else { + return false; + } + } else { + $dta = strtotime( InfraData::formatarDataBanco( $objDTO->getDtaPeriodoInicioHist() ) ); + if ( $dta >= $dt_p_ini && $dta <= $dt_p_fin ) { + $arrRetorno['tmpExecucao'] = $objDTO->getNumTempoExecucaoAtribuidoAnaliseHist(); + $arrRetorno['dataExecucao'] = $objDTO->getDtaPeriodoInicioHist().' a '.$objDTO->getDtaPeriodoFimHist(); + } else { + return false; + } + } + break; + + case 'Avaliação': + if ( $strOrigem == 'C' ) { + $dta = strtotime( InfraData::formatarDataBanco( $objDTO->getDtaRevisaoAtual() ) ); + if ( $dta >= $dt_p_ini && $dta <= $dt_p_fin ) { + $arrRetorno['tmpExecucao'] = $objDTO->getNumTempoExecucaoAtribuidoRev(); + $arrRetorno['dataExecucao'] = $objDTO->getDtaRevisaoAtual(); + } else { + return false; + } + } else { + $dta = strtotime( InfraData::formatarDataBanco( $objDTO->getDtaRevisaoAtualHist() ) ); + if ( $dta >= $dt_p_ini && $dta <= $dt_p_fin ) { + $arrRetorno['tmpExecucao'] = $objDTO->getNumTempoExecucaoAtribuidoRevHist(); + $arrRetorno['dataExecucao'] = $objDTO->getDtaRevisaoAtualHist(); + } else { + return false; + } + } + break; + } + + return $arrRetorno; + } + + protected function getObjDTOParametrizadoMeusProcessosExecutadosConectado($arrParams) + { + //Set Params Recebidos + $arrObjsFilaUsuDTO = array_key_exists(0, $arrParams) ? $arrParams[0] : null; + $isGestorSipSei = array_key_exists(1, $arrParams) ? $arrParams[1] : null; + $idsTpProcesso = array_key_exists(2, $arrParams) ? InfraArray::converterArrInfraDTO($arrParams[2], 'IdTipoProcedimento') : null; + $idTipoControle = array_key_exists(3, $arrParams) ? $arrParams[3] : null; + $arrPost = array_key_exists(4, $arrParams) ? $arrParams[4] : null; + $strOrigem = array_key_exists(5, $arrParams) ? $arrParams[5] : null; + + $txtProcesso = null; + $isTipoProcesso = null; + $isIdFila = null; + $strPeriodo = null; + + //Inicializa Vars + $objDTO = new MdUtlProcedimentoDTO(); + + //Set Campos definidos por Regras + #$objDTO->setStrStaEstadoProtocolo(ProtocoloRN::$TE_NORMAL); + $objDTO->setStrStaNivelAcessoLocalProtocolo(array(ProtocoloRN::$NA_PUBLICO, ProtocoloRN::$NA_RESTRITO, ProtocoloRN::$NA_SIGILOSO), InfraDTO::$OPER_IN); + $objDTO->setControleDsmpTIPOFK(InfraDTO::$TIPO_FK_OBRIGATORIA); + + if ($strOrigem && $strOrigem == 'C'){ + + $objDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + + if (is_array($idTipoControle)) { + if (!empty($idTipoControle)) $objDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControle, InfraDTO::$OPER_IN); + } else { + $objDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControle); + } + + if (!is_null($arrPost)) { + $txtProcesso = array_key_exists('txtProcesso', $arrPost) && $arrPost['txtProcesso'] != ''; + $isTipoProcesso = array_key_exists('selTipoProcesso', $arrPost) && $arrPost['selTipoProcesso'] != ''; + $isIdFila = array_key_exists('selFila', $arrPost) && $arrPost['selFila'] != ''; + $strPeriodo = ( array_key_exists('selPeriodo', $arrPost) && $arrPost['selPeriodo'] != '' ) ? $arrPost['selPeriodo'] : null; + } + + if ($isIdFila) { + $objDTO->setNumIdFila($arrPost['selFila']); + } + + } elseif ( $strOrigem && $strOrigem == 'H' ) { + + $objDTO->setNumIdUnidadeHist(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + + if (is_array($idTipoControle)) { + if (!empty($idTipoControle)) $objDTO->setNumIdMdUtlAdmTpCtrlDesempHist($idTipoControle, InfraDTO::$OPER_IN); + } else { + $objDTO->setNumIdMdUtlAdmTpCtrlDesempHist($idTipoControle); + } + + if (!is_null($arrPost)) { + $txtProcesso = array_key_exists('txtProcesso', $arrPost) && $arrPost['txtProcesso'] != ''; + $isTipoProcesso = array_key_exists('selTipoProcesso', $arrPost) && $arrPost['selTipoProcesso'] != ''; + $isIdFila = array_key_exists('selFila', $arrPost) && $arrPost['selFila'] != ''; + $strPeriodo = ( array_key_exists('selPeriodo', $arrPost) && $arrPost['selPeriodo'] != '' ) ? $arrPost['selPeriodo'] : null; + } + + if ($isIdFila) { + $objDTO->setNumIdFilaHist($arrPost['selFila']); + } + } + + if ($isTipoProcesso) { + $objDTO->setNumIdTipoProcedimento($arrPost['selTipoProcesso']); + } + + if ($txtProcesso) { + $objDTO->setStrProtocoloProcedimentoFormatado('%' . trim($arrPost['txtProcesso'] . '%'), InfraDTO::$OPER_LIKE); + } + + if ( $strPeriodo ) { + $idUsuario = isset($arrPost['selResponsavel']) ? $arrPost['selResponsavel'] : null; + $this->montaWhereProcessosExecutados($objDTO, $strOrigem, $strPeriodo , $idUsuario); + } + + $this->montaColunasProcessosExecutados($objDTO, $strOrigem); + + return $objDTO; + } + + private function montaColunasProcessosExecutados(&$objDTO, $strOrigem){ + $objDTO->retNumIdMdUtlAdmRelControleDsmp(); + $objDTO->retStrProtocoloProcedimentoFormatado(); + $objDTO->retStrNomeTipoProcedimento(); + + if ( $strOrigem == 'C' ) { + + $objDTO->retNumIdMdUtlControleDsmp(); + $objDTO->retStrTipoAcao(); + $objDTO->retNumIdUnidade(); + $objDTO->retNumIdMdUtlAdmTpCtrlDesemp(); + $objDTO->retStrNomeTpCtrlDsmp(); + $objDTO->retStrNomeFila(); + $objDTO->retNumTempoExecucaoAtribuido(); + $objDTO->retNumTempoExecucaoAtribuidoTriag(); + $objDTO->retNumTempoExecucaoAtribuidoAnalise(); + $objDTO->retNumTempoExecucaoAtribuidoRev(); + $objDTO->retNumIdMdUtlTriagem(); + $objDTO->retDtaTriagemAtual(); + $objDTO->retNumIdMdUtlAnalise(); + $objDTO->retDtaPeriodoInicio(); + $objDTO->retDtaPeriodoFim(); + $objDTO->retDtaRevisaoAtual(); + $objDTO->retNumIdMdUtlRevisao(); + $objDTO->retNumIdAtendimento(); + + } else { + + $objDTO->retNumIdMdUtlHistControleDsmp(); + $objDTO->retStrTipoAcaoHist(); + $objDTO->retNumIdUnidadeHist(); + $objDTO->retNumIdMdUtlAdmTpCtrlDesempHist(); + $objDTO->retStrNomeTpCtrlDsmpHist(); + $objDTO->retStrNomeFilaHist(); + $objDTO->retNumTempoExecucaoAtribuidoHist(); + $objDTO->retNumTempoExecucaoAtribuidoTriagHist(); + $objDTO->retNumTempoExecucaoAtribuidoAnaliseHist(); + $objDTO->retNumTempoExecucaoAtribuidoRevHist(); + $objDTO->retNumIdMdUtlTriagemHist(); + $objDTO->retDtaTriagemAtualHist(); + $objDTO->retNumIdMdUtlAnaliseHist(); + $objDTO->retDtaPeriodoInicioHist(); + $objDTO->retDtaPeriodoFimHist(); + $objDTO->retDtaRevisaoAtualHist(); + $objDTO->retNumIdMdUtlRevisaoHist(); + $objDTO->retNumIdAtendimentoHist(); + } + } + + private function montaWhereProcessosExecutados(&$objDTO, $strOrigem, $strPeriodo, $idUsuario = null){ + $idUsuario = $idUsuario ?? SessaoSEI::getInstance()->getNumIdUsuario(); + $arrPeriodo = explode('|',$strPeriodo); + $arrAcoes = ['Triagem','Análise','Avaliação']; + $arrValoresDt = [$arrPeriodo[0],$arrPeriodo[1],$arrPeriodo[0],$arrPeriodo[0],$arrPeriodo[1]]; + $arrOperLogDt = [InfraDTO::$OPER_LOGICO_AND,InfraDTO::$OPER_LOGICO_OR,InfraDTO::$OPER_LOGICO_OR,InfraDTO::$OPER_LOGICO_AND]; + + if ( $strOrigem == 'C'){ + + $objDTO->adicionarCriterio( + [ 'IdUsuario'], + [InfraDTO::$OPER_IGUAL], + [$idUsuario], + null, + 'cUsuario' + ); + + $objDTO->adicionarCriterio( + ['TriagemAtual','TriagemAtual','PeriodoInicio','RevisaoAtual','RevisaoAtual'], + [InfraDTO::$OPER_MAIOR_IGUAL,InfraDTO::$OPER_MENOR_IGUAL,InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_MAIOR_IGUAL,InfraDTO::$OPER_MENOR_IGUAL], + $arrValoresDt, + $arrOperLogDt, + 'cDatas' + ); + + $objDTO->adicionarCriterio( + ['TipoAcao'], + [InfraDTO::$OPER_IN], + [$arrAcoes], + null, + 'cTipoAcao' + ); + + } else { + + $objDTO->adicionarCriterio( + [ 'IdUsuarioHist'], + [InfraDTO::$OPER_IGUAL], + [$idUsuario], + null, + 'cUsuario' + ); + + $objDTO->adicionarCriterio( + ['TriagemAtualHist','TriagemAtualHist','PeriodoInicioHist','RevisaoAtualHist','RevisaoAtualHist'], + [InfraDTO::$OPER_MAIOR_IGUAL,InfraDTO::$OPER_MENOR_IGUAL,InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_MAIOR_IGUAL,InfraDTO::$OPER_MENOR_IGUAL], + $arrValoresDt, + $arrOperLogDt, + 'cDatas' + ); + + $objDTO->adicionarCriterio( + ['TipoAcaoHist'], + [InfraDTO::$OPER_IN], + [$arrAcoes], + null, + 'cTipoAcao' + ); + } + + $objDTO->agruparCriterios(['cUsuario','cDatas','cTipoAcao'],[InfraDTO::$OPER_LOGICO_AND,InfraDTO::$OPER_LOGICO_AND]); + } + protected function verificaExisteRelacionamentoAtivoAtividadeConectado($idAtividade) { $objMdRelTriagemAtvRN = new MdUtlRelTriagemAtvRN(); @@ -1690,35 +2159,88 @@ public function buscarTempoExecucaoExecutadoConectado($arrParams) $objMdUtlControleDsmpDTO->setStrTipoAcao(array(MdUtlControleDsmpRN::$STR_TIPO_ACAO_TRIAGEM, MdUtlControleDsmpRN::$STR_TIPO_ACAO_ANALISE, MdUtlControleDsmpRN::$STR_TIPO_ACAO_REVISAO, MdUtlControleDsmpRN::$STR_TIPO_ACAO_RETRIAGEM), InfraDTO::$OPER_IN); $objMdUtlControleDsmpDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControle); $objMdUtlControleDsmpDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objMdUtlControleDsmpDTO->adicionarCriterio(array('Atual', 'Atual', 'Atual'), - array(InfraDTO::$OPER_DIFERENTE, InfraDTO::$OPER_MAIOR_IGUAL, InfraDTO::$OPER_MENOR_IGUAL), - array(null, $dtInicio, $dtFim), - array(InfraDTO::$OPER_LOGICO_AND, InfraDTO::$OPER_LOGICO_AND)); + + $objMdUtlControleDsmpDTO->adicionarCriterio(array('Atual', 'Atual'), + array(InfraDTO::$OPER_MAIOR_IGUAL, InfraDTO::$OPER_MENOR_IGUAL), + array($dtInicio, $dtFim), + array(InfraDTO::$OPER_LOGICO_AND), + 'cCtrl' + ); + + $objMdUtlControleDsmpDTO->adicionarCriterio( + ['PeriodoInicioAnalise','PeriodoFimAnalise'], + [InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL], + [$dtInicio,$dtFim], + [InfraDTO::$OPER_LOGICO_AND], + 'cAnalise' + ); + + $objMdUtlControleDsmpDTO->agruparCriterios(['cCtrl','cAnalise'],[InfraDTO::$OPER_LOGICO_OR]); $objMdUtlControleDsmpDTO->retStrTipoAcao(); $objMdUtlControleDsmpDTO->retNumIdMdUtlTriagem(); $objMdUtlControleDsmpDTO->retNumIdMdUtlAnalise(); + $objMdUtlControleDsmpDTO->retDthAtual(); // triagem e avaliacao + $objMdUtlControleDsmpDTO->retDtaPeriodoInicioAnalise(); // analise + $objMdUtlControleDsmpDTO->retDtaPeriodoFimAnalise(); // analise $objMdUtlControleDsmpDTO->retNumIdMdUtlRevisao(); + $objMdUtlControleDsmpDTO->retNumIdAtendimento(); + $objMdUtlControleDsmpDTO->retNumIdMdUtlControleDsmp(); $count = $this->contar($objMdUtlControleDsmpDTO); if ($count > 0) { + + $dtIni = explode(' ' , $arrDatas['DT_INICIAL'])[0]; + $dtFim = explode(' ' , $arrDatas['DT_FINAL'])[0]; + $dtIniEUA = implode( '-' , array_reverse( explode('/' , $dtIni ) ) ); + $dtFimEUA = implode( '-' , array_reverse( explode('/' , $dtFim ) ) ); + $arrMdUtlControleDsmp = $this->listar($objMdUtlControleDsmpDTO); foreach ($arrMdUtlControleDsmp as $objMdUtlControleDsmp) { switch ($objMdUtlControleDsmp->getStrTipoAcao()) { + case MdUtlControleDsmpRN::$STR_TIPO_ACAO_TRIAGEM: case MdUtlControleDsmpRN::$STR_TIPO_ACAO_RETRIAGEM: - $tempoExecucao = $this->getTempoExecucaoTriagem($objMdUtlControleDsmp->getNumIdMdUtlTriagem(), $idUsuarioParticipante); - $numUnidEsforco += $tempoExecucao; + $dtaTriag = implode( '-' , array_reverse( explode( '/' , explode( ' ' , $objMdUtlControleDsmp->getDthAtual() )[0] ) ) ); + if ( strtotime($dtaTriag) >= strtotime($dtIniEUA) && strtotime($dtaTriag) <= strtotime($dtFimEUA) ) { + $tempoExecucao = $this->getTempoExecucaoTriagem($objMdUtlControleDsmp->getNumIdMdUtlTriagem(), $idUsuarioParticipante); + $numUnidEsforco += $tempoExecucao; + } else { + $tempoExecucao = 0; + } break; + case MdUtlControleDsmpRN::$STR_TIPO_ACAO_ANALISE: - $tempoExecucao = $this->getTempoExecucaoAnalise($objMdUtlControleDsmp->getNumIdMdUtlAnalise(), $idUsuarioParticipante, $arrDatas); + /* + if ( empty($objMdUtlControleDsmp->getNumIdMdUtlRevisao() ) ) { + $tempoExecucao = $this->getTempoExecucaoAnalise($objMdUtlControleDsmp->getNumIdMdUtlAnalise(), $idUsuarioParticipante, $arrDatas); + } else { + $continua = $dtIni == $objMdUtlControleDsmp->getDtaPeriodoInicioAnalise() && $dtFim == $objMdUtlControleDsmp->getDtaPeriodoFimAnalise(); + if ( $continua ) { + $arrParamsTempo = [ + 'idRevisao' => $objMdUtlControleDsmp->getNumIdMdUtlRevisao(), + 'idAtendimento' => $objMdUtlControleDsmp->getNumIdAtendimento(), + 'idTabela' => null + ]; + $tempoExecucao = $this->verificaTempoDeCorrecaoAnalise( $arrParamsTempo ); + } + } + */ + $tempoExecucao = $this->getTempoExecucaoAnalise($objMdUtlControleDsmp->getNumIdMdUtlAnalise(), $idUsuarioParticipante, $arrDatas); + $numUnidEsforco += $tempoExecucao; break; + case MdUtlControleDsmpRN::$STR_TIPO_ACAO_REVISAO: - $tempoExecucao = $this->getTempoExecucaoRevisao($objMdUtlControleDsmp->getNumIdMdUtlRevisao(), $idUsuarioParticipante); - $numUnidEsforco += $tempoExecucao; + $dtaAvaliacao = implode( '-' , array_reverse( explode( '/' , explode( ' ' , $objMdUtlControleDsmp->getDthAtual() )[0] ) ) ); + if ( strtotime($dtaAvaliacao) >= strtotime($dtIniEUA) && strtotime($dtaAvaliacao) <= strtotime($dtFimEUA) ) { + $tempoExecucao = $this->getTempoExecucaoRevisao($objMdUtlControleDsmp->getNumIdMdUtlRevisao(), $idUsuarioParticipante); + $numUnidEsforco += $tempoExecucao; + } else { + $tempoExecucao = 0; + } break; } } @@ -1748,28 +2270,42 @@ protected function getTempoNaoExecutado($arrParams) #$objMdUtlControleDsmpDTO->setStrDetalhe($arrFiltroDetalhe, InfraDTO::$OPER_IN); $objMdUtlControleDsmpDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objMdUtlControleDsmpDTO->adicionarCriterio(array('Atual', 'Atual', 'Atual'), + /* + $objMdUtlControleDsmpDTO->adicionarCriterio( + array('Atual', 'Atual', 'Atual'), array(InfraDTO::$OPER_DIFERENTE, InfraDTO::$OPER_MAIOR_IGUAL, InfraDTO::$OPER_MENOR_IGUAL), array(null, $dtInicio, $dtFim), - array(InfraDTO::$OPER_LOGICO_AND, InfraDTO::$OPER_LOGICO_AND)); + array(InfraDTO::$OPER_LOGICO_AND, InfraDTO::$OPER_LOGICO_AND) + ); + */ + + $objMdUtlControleDsmpDTO->adicionarCriterio( + ['PeriodoInicioAnalise','PeriodoFimAnalise'], + [InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL], + [$dtInicio,$dtFim], + [InfraDTO::$OPER_LOGICO_AND], + 'cAnalise' + ); $objMdUtlControleDsmpDTO->retNumIdMdUtlAnalise(); - $objMdUtlControleDsmpDTO->retStrDetalhe(); + $objMdUtlControleDsmpDTO->retDtaPeriodoInicioAnalise(); + $objMdUtlControleDsmpDTO->retDtaPeriodoFimAnalise(); + $objMdUtlControleDsmpDTO->retStrDetalhe(); $countHs = $this->contar($objMdUtlControleDsmpDTO); if ($countHs > 0) { $arrObjMdUtlHistControleDsmp = $this->listar($objMdUtlControleDsmpDTO); foreach ($arrObjMdUtlHistControleDsmp as $objMdUtlHistControleDsmp) { - if ( in_array( $objMdUtlHistControleDsmp->getStrDetalhe() , $arrFiltroDetalhe ) ) { - $objMdUtlAnaliseRN = new MdUtlAnaliseRN(); - $objMdUtlAnaliseDTO = new MdUtlAnaliseDTO(); - $objMdUtlAnaliseDTO->setNumIdMdUtlAnalise($objMdUtlHistControleDsmp->getNumIdMdUtlAnalise()); - $objMdUtlAnaliseDTO->setNumIdUsuario($idUsuarioParticipante); - $objMdUtlAnaliseDTO->setBolExclusaoLogica(false); - $objMdUtlAnaliseDTO->retNumTempoExecucaoAtribuido(); - - $objMdUtlAnalise = $objMdUtlAnaliseRN->consultar($objMdUtlAnaliseDTO); - $numTempoExecucaoNaoRealizado += !is_null($objMdUtlAnalise) ? $objMdUtlAnalise->getNumTempoExecucaoAtribuido() : 0; + if ( in_array( $objMdUtlHistControleDsmp->getStrDetalhe() , $arrFiltroDetalhe ) ) { + $objMdUtlAnaliseRN = new MdUtlAnaliseRN(); + $objMdUtlAnaliseDTO = new MdUtlAnaliseDTO(); + $objMdUtlAnaliseDTO->setNumIdMdUtlAnalise($objMdUtlHistControleDsmp->getNumIdMdUtlAnalise()); + $objMdUtlAnaliseDTO->setNumIdUsuario($idUsuarioParticipante); + $objMdUtlAnaliseDTO->setBolExclusaoLogica(false); + $objMdUtlAnaliseDTO->retNumTempoExecucaoAtribuido(); + + $objMdUtlAnalise = $objMdUtlAnaliseRN->consultar($objMdUtlAnaliseDTO); + $numTempoExecucaoNaoRealizado += !is_null($objMdUtlAnalise) ? $objMdUtlAnalise->getNumTempoExecucaoAtribuido() : 0; } } } @@ -1777,6 +2313,65 @@ protected function getTempoNaoExecutado($arrParams) return $numTempoExecucaoNaoRealizado; } + public function getTempoNaoExecutadoGrid($arrParams) + { + $idUsuarioParticipante = array_key_exists(0, $arrParams) ? $arrParams[0] : null; + $idTipoControle = array_key_exists(1, $arrParams) ? $arrParams[1] : null; + $arrDatas = array_key_exists(2, $arrParams) ? $arrParams[2] : null; + $dtInicio = $arrDatas['DT_INICIAL']; + $dtFim = $arrDatas['DT_FINAL']; + + //$numTempoExecucaoNaoRealizado = 0; + $arrListaIds = []; + $dtInicio = MdUtlControleDsmpINT::formatarDatasComDoisDigitos($dtInicio); + $dtFim = MdUtlControleDsmpINT::formatarDatasComDoisDigitos($dtFim); + + if (!is_null($idUsuarioParticipante) && !is_null($idTipoControle)) { + $arrFiltroDetalhe = array(MdUtlRevisaoRN::$STR_VOLTAR_PARA_O_MESMO_PARTICIPANTE, MdUtlRevisaoRN::$STR_VOLTAR_OUTRO_PARTICIPANTE, MdUtlRevisaoRN::$STR_VOLTAR_OUTRO_PARTICIPANTE_OLD); + $objMdUtlControleDsmpDTO = new MdUtlControleDsmpDTO(); + $objMdUtlControleDsmpDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControle); + $objMdUtlControleDsmpDTO->setStrTipoAcao(MdUtlControleDsmpRN::$STR_TIPO_ACAO_REVISAO); + $objMdUtlControleDsmpDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + + $objMdUtlControleDsmpDTO->adicionarCriterio( + ['PeriodoInicioAnalise','PeriodoFimAnalise'], + [InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL], + [$dtInicio,$dtFim], + [InfraDTO::$OPER_LOGICO_AND], + 'cAnalise' + ); + + $objMdUtlControleDsmpDTO->retNumIdMdUtlControleDsmp(); + $objMdUtlControleDsmpDTO->retNumIdMdUtlAnalise(); + $objMdUtlControleDsmpDTO->retDtaPeriodoInicioAnalise(); + $objMdUtlControleDsmpDTO->retDtaPeriodoFimAnalise(); + $objMdUtlControleDsmpDTO->retStrDetalhe(); + + $count = $this->contar($objMdUtlControleDsmpDTO); + if ( $count > 0 ) { + $arrObjMdUtlHistControleDsmp = $this->listar($objMdUtlControleDsmpDTO); + foreach ($arrObjMdUtlHistControleDsmp as $objMdUtlHistControleDsmp) { + if ( in_array( $objMdUtlHistControleDsmp->getStrDetalhe() , $arrFiltroDetalhe ) ) { + $objMdUtlAnaliseRN = new MdUtlAnaliseRN(); + $objMdUtlAnaliseDTO = new MdUtlAnaliseDTO(); + $objMdUtlAnaliseDTO->setNumIdMdUtlAnalise($objMdUtlHistControleDsmp->getNumIdMdUtlAnalise()); + $objMdUtlAnaliseDTO->setNumIdUsuario($idUsuarioParticipante); + $objMdUtlAnaliseDTO->setBolExclusaoLogica(false); + $objMdUtlAnaliseDTO->retNumTempoExecucaoAtribuido(); + + $objMdUtlAnalise = $objMdUtlAnaliseRN->consultar($objMdUtlAnaliseDTO); + + if ( !is_null($objMdUtlAnalise) ) { + #array_push( $arrListaIds , $objMdUtlHistControleDsmp->getNumIdMdUtlControleDsmp() ); + array_push( $arrListaIds , $objMdUtlHistControleDsmp->getNumIdMdUtlAnalise() ); + } + } + } + } + } + return $arrListaIds; + } + protected function getTempoExecucaoTriagem($idTriagem, $idUsuarioParticipante) { $objMdUtlTriagemRN = new MdUtlTriagemRN(); @@ -1789,22 +2384,22 @@ protected function getTempoExecucaoTriagem($idTriagem, $idUsuarioParticipante) return !is_null($objMdUtlTriagem) ? $objMdUtlTriagem->getNumTempoExecucaoAtribuido() : 0; } - protected function getTempoExecucaoAnalise($idAnalise, $idUsuarioParticipante, $arrDatas) + protected function getTempoExecucaoAnalise($idAnalise, $idUsuarioParticipante, $arrDatas ) { $objMdUtlAnaliseRN = new MdUtlAnaliseRN(); $objMdUtlAnaliseDTO = new MdUtlAnaliseDTO(); $objMdUtlAnaliseDTO->setNumIdMdUtlAnalise($idAnalise); $objMdUtlAnaliseDTO->setNumIdUsuario($idUsuarioParticipante); $objMdUtlAnaliseDTO->retNumTempoExecucaoAtribuido(); - $objMdUtlAnaliseDTO->retDtaPeriodoInicio(); - $objMdUtlAnaliseDTO->retDtaPeriodoFim(); + $objMdUtlAnaliseDTO->retDtaPeriodoInicio(); + $objMdUtlAnaliseDTO->retDtaPeriodoFim(); - $objMdUtlAnaliseDTO = $objMdUtlAnaliseRN->consultar($objMdUtlAnaliseDTO); + $objMdUtlAnaliseDTO = $objMdUtlAnaliseRN->consultar($objMdUtlAnaliseDTO); - $dtIni = explode(' ' , $arrDatas['DT_INICIAL'])[0]; - $dtFim = explode(' ' , $arrDatas['DT_FINAL'])[0]; + $dtIni = explode(' ' , $arrDatas['DT_INICIAL'])[0]; + $dtFim = explode(' ' , $arrDatas['DT_FINAL'])[0]; - $vlrUnidEsf = 0; + $vlrUnidEsf = 0; if ( !is_null($objMdUtlAnaliseDTO) && ( $dtIni == $objMdUtlAnaliseDTO->getDtaPeriodoInicio() && $dtFim == $objMdUtlAnaliseDTO->getDtaPeriodoFim() ) ) { $vlrUnidEsf = $objMdUtlAnaliseDTO->getNumTempoExecucaoAtribuido(); } diff --git a/sei/web/modulos/utilidades/rn/MdUtlHistControleDsmpRN.php b/sei/web/modulos/utilidades/rn/MdUtlHistControleDsmpRN.php index a234fd6..77f49d8 100644 --- a/sei/web/modulos/utilidades/rn/MdUtlHistControleDsmpRN.php +++ b/sei/web/modulos/utilidades/rn/MdUtlHistControleDsmpRN.php @@ -98,6 +98,7 @@ protected function listarConectado(MdUtlHistControleDsmpDTO $objMdUtlHistControl //Valida Permissao $objMdUtlHistControleDsmpBD = new MdUtlHistControleDsmpBD($this->getObjInfraIBanco()); + $ret = $objMdUtlHistControleDsmpBD->listar($objMdUtlHistControleDsmpDTO); //Auditoria @@ -1092,34 +1093,70 @@ protected function buscarTempoExecucaoExecutadoHistConectado($arrParams){ $objMdUtlHistControleDsmpDTO->setStrTipoAcao(array(MdUtlControleDsmpRN::$STR_TIPO_ACAO_TRIAGEM, MdUtlControleDsmpRN::$STR_TIPO_ACAO_ANALISE, MdUtlControleDsmpRN::$STR_TIPO_ACAO_REVISAO, MdUtlControleDsmpRN::$STR_TIPO_ACAO_RETRIAGEM), InfraDTO::$OPER_IN); $objMdUtlHistControleDsmpDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControle); $objMdUtlHistControleDsmpDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objMdUtlHistControleDsmpDTO->adicionarCriterio(array('Atual', 'Atual', 'Atual'), - array(InfraDTO::$OPER_DIFERENTE, InfraDTO::$OPER_MAIOR_IGUAL, InfraDTO::$OPER_MENOR_IGUAL), - array(null, $dtInicio, $dtFim), - array(InfraDTO::$OPER_LOGICO_AND, InfraDTO::$OPER_LOGICO_AND)); + + $objMdUtlHistControleDsmpDTO->adicionarCriterio(array('Atual', 'Atual'), + array( InfraDTO::$OPER_MAIOR_IGUAL, InfraDTO::$OPER_MENOR_IGUAL), + array($dtInicio, $dtFim), + array(InfraDTO::$OPER_LOGICO_AND), + 'cHist' + ); + + $objMdUtlHistControleDsmpDTO->adicionarCriterio( + ['PeriodoInicioAnalise','PeriodoFimAnalise'], + [InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL], + [$dtInicio,$dtFim], + [InfraDTO::$OPER_LOGICO_AND], + 'cAnalise' + ); + + $objMdUtlHistControleDsmpDTO->agruparCriterios(['cHist','cAnalise'],[InfraDTO::$OPER_LOGICO_OR]); $objMdUtlHistControleDsmpDTO->retStrTipoAcao(); $objMdUtlHistControleDsmpDTO->retNumIdMdUtlTriagem(); $objMdUtlHistControleDsmpDTO->retNumIdMdUtlAnalise(); + $objMdUtlHistControleDsmpDTO->retDthAtual(); // triagem e avaliacao + $objMdUtlHistControleDsmpDTO->retDtaPeriodoInicioAnalise(); // analise + $objMdUtlHistControleDsmpDTO->retDtaPeriodoFimAnalise(); // analise $objMdUtlHistControleDsmpDTO->retNumIdMdUtlRevisao(); + $objMdUtlHistControleDsmpDTO->retNumIdAtendimento(); + $objMdUtlHistControleDsmpDTO->retNumIdMdUtlHistControleDsmp(); $countHs = $this->contar($objMdUtlHistControleDsmpDTO); if ($countHs > 0) { + $dtIni = explode(' ' , $arrDatas['DT_INICIAL'])[0]; + $dtFim = explode(' ' , $arrDatas['DT_FINAL'])[0]; + $dtIniEUA = implode( '-' , array_reverse( explode('/' , $dtIni ) ) ); + $dtFimEUA = implode( '-' , array_reverse( explode('/' , $dtFim ) ) ); + $arrObjMdUtlHistControleDsmp = $this->listar($objMdUtlHistControleDsmpDTO); + foreach ($arrObjMdUtlHistControleDsmp as $objMdUtlHistControleDsmp) { switch ($objMdUtlHistControleDsmp->getStrTipoAcao()){ case MdUtlControleDsmpRN::$STR_TIPO_ACAO_TRIAGEM: case MdUtlControleDsmpRN::$STR_TIPO_ACAO_RETRIAGEM: - $tempoExecucao = $this->getTempoExecucaoTriagem($objMdUtlHistControleDsmp->getNumIdMdUtlTriagem(),$idUsuarioParticipante); - $numUnidEsforcoHist += $tempoExecucao; + $dtaTriag = implode( '-' , array_reverse( explode( '/' , explode( ' ' , $objMdUtlHistControleDsmp->getDthAtual() )[0] ) ) ); + if ( strtotime($dtaTriag) >= strtotime($dtIniEUA) && strtotime($dtaTriag) <= strtotime($dtFimEUA) ) { + $tempoExecucao = $this->getTempoExecucaoTriagem($objMdUtlHistControleDsmp->getNumIdMdUtlTriagem(), $idUsuarioParticipante); + $numUnidEsforcoHist += $tempoExecucao; + } else { + $tempoExecucao = 0; + } break; + case MdUtlControleDsmpRN::$STR_TIPO_ACAO_ANALISE: - $tempoExecucao = $this->getTempoExecucaoAnalise($objMdUtlHistControleDsmp->getNumIdMdUtlAnalise(),$idUsuarioParticipante, $arrDatas); + $tempoExecucao = $this->getTempoExecucaoAnalise($objMdUtlHistControleDsmp->getNumIdMdUtlAnalise(), $idUsuarioParticipante, $arrDatas); $numUnidEsforcoHist += $tempoExecucao; break; + case MdUtlControleDsmpRN::$STR_TIPO_ACAO_REVISAO: - $tempoExecucao = $this->getTempoExecucaoRevisao($objMdUtlHistControleDsmp->getNumIdMdUtlRevisao(),$idUsuarioParticipante); - $numUnidEsforcoHist += $tempoExecucao; + $dtaAvaliacao = implode( '-' , array_reverse( explode( '/' , explode( ' ' , $objMdUtlHistControleDsmp->getDthAtual() )[0] ) ) ); + if ( strtotime($dtaAvaliacao) >= strtotime($dtIniEUA) && strtotime($dtaAvaliacao) <= strtotime($dtFimEUA)) { + $tempoExecucao = $this->getTempoExecucaoRevisao($objMdUtlHistControleDsmp->getNumIdMdUtlRevisao(), $idUsuarioParticipante); + $numUnidEsforcoHist += $tempoExecucao; + } else { + $tempoExecucao = 0; + } break; } } @@ -1185,13 +1222,26 @@ protected function getTempoNaoExecutado($arrParams){ #$objMdUtlHistControleDsmpDTO->setStrDetalhe($arrFiltroDetalhe,InfraDTO::$OPER_IN); $objMdUtlHistControleDsmpDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControle); $objMdUtlHistControleDsmpDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + + /* $objMdUtlHistControleDsmpDTO->adicionarCriterio(array('Atual', 'Atual', 'Atual'), array(InfraDTO::$OPER_DIFERENTE, InfraDTO::$OPER_MAIOR_IGUAL, InfraDTO::$OPER_MENOR_IGUAL), array(null, $dtInicio, $dtFim), array(InfraDTO::$OPER_LOGICO_AND, InfraDTO::$OPER_LOGICO_AND)); + */ + + $objMdUtlHistControleDsmpDTO->adicionarCriterio( + ['PeriodoInicioAnalise','PeriodoFimAnalise'], + [InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL], + [$dtInicio,$dtFim], + [InfraDTO::$OPER_LOGICO_AND], + 'cAnalise' + ); $objMdUtlHistControleDsmpDTO->retNumIdMdUtlAnalise(); - $objMdUtlHistControleDsmpDTO->retStrDetalhe(); + $objMdUtlHistControleDsmpDTO->retDtaPeriodoInicioAnalise(); + $objMdUtlHistControleDsmpDTO->retDtaPeriodoFimAnalise(); + $objMdUtlHistControleDsmpDTO->retStrDetalhe(); $countHs = $this->contar($objMdUtlHistControleDsmpDTO); @@ -1224,6 +1274,71 @@ protected function getTempoNaoExecutado($arrParams){ return $numTempoExecucaoNaoRealizadoHist; } + public function getTempoNaoExecutadoGrid($arrParams){ + $idUsuarioParticipante = array_key_exists(0, $arrParams) ? $arrParams[0] : null; + $idTipoControle = array_key_exists(1, $arrParams) ? $arrParams[1] : null; + $arrDatas = array_key_exists(2, $arrParams) ? $arrParams[2] : null; + $dtInicio = $arrDatas['DT_INICIAL']; + $dtFim = $arrDatas['DT_FINAL']; + + //$numTempoExecucaoNaoRealizadoHist = 0; + $arrListaIds = []; + $dtInicio = MdUtlControleDsmpINT::formatarDatasComDoisDigitos($dtInicio); + $dtFim = MdUtlControleDsmpINT::formatarDatasComDoisDigitos($dtFim); + + if(!is_null($idUsuarioParticipante) && !is_null($idTipoControle)) { + $arrFiltroDetalhe = array(MdUtlRevisaoRN::$STR_VOLTAR_PARA_O_MESMO_PARTICIPANTE , MdUtlRevisaoRN::$STR_VOLTAR_OUTRO_PARTICIPANTE, MdUtlRevisaoRN::$STR_VOLTAR_OUTRO_PARTICIPANTE_OLD); + $objMdUtlHistControleDsmpDTO = new MdUtlHistControleDsmpDTO(); + $objMdUtlHistControleDsmpDTO->setStrTipoAcao(MdUtlControleDsmpRN::$STR_TIPO_ACAO_REVISAO); + $objMdUtlHistControleDsmpDTO->setNumIdMdUtlAdmTpCtrlDesemp($idTipoControle); + $objMdUtlHistControleDsmpDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + + $objMdUtlHistControleDsmpDTO->adicionarCriterio( + ['PeriodoInicioAnalise','PeriodoFimAnalise'], + [InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL], + [$dtInicio,$dtFim], + [InfraDTO::$OPER_LOGICO_AND], + 'cAnalise' + ); + + $objMdUtlHistControleDsmpDTO->retNumIdMdUtlHistControleDsmp(); + $objMdUtlHistControleDsmpDTO->retNumIdMdUtlAnalise(); + $objMdUtlHistControleDsmpDTO->retDtaPeriodoInicioAnalise(); + $objMdUtlHistControleDsmpDTO->retDtaPeriodoFimAnalise(); + $objMdUtlHistControleDsmpDTO->retStrDetalhe(); + + $count = $this->contar($objMdUtlHistControleDsmpDTO); + + if ( $count > 0 ) { + $arrObjMdUtlHistControleDsmp = $this->listar($objMdUtlHistControleDsmpDTO); + + foreach ($arrObjMdUtlHistControleDsmp as $objMdUtlHistControleDsmp) { + if ( in_array( $objMdUtlHistControleDsmp->getStrDetalhe() , $arrFiltroDetalhe ) ) { + $objMdUtlAnaliseRN = new MdUtlAnaliseRN(); + $objMdUtlAnaliseDTO = new MdUtlAnaliseDTO(); + $objMdUtlAnaliseDTO->setNumIdMdUtlAnalise($objMdUtlHistControleDsmp->getNumIdMdUtlAnalise()); + $objMdUtlAnaliseDTO->setNumIdUsuario($idUsuarioParticipante); + $objMdUtlAnaliseDTO->setBolExclusaoLogica(false); + $objMdUtlAnaliseDTO->retNumTempoExecucaoAtribuido(); + $objMdUtlAnaliseDTO->retDtaPeriodoInicio(); + $objMdUtlAnaliseDTO->retDtaPeriodoFim(); + + $dtIni = explode(' ', $arrDatas['DT_INICIAL'])[0]; + $dtFim = explode(' ', $arrDatas['DT_FINAL'])[0]; + + $objMdUtlAnaliseDTO = $objMdUtlAnaliseRN->consultar($objMdUtlAnaliseDTO); + + if (!is_null($objMdUtlAnaliseDTO) && ($dtIni == $objMdUtlAnaliseDTO->getDtaPeriodoInicio() && $dtFim == $objMdUtlAnaliseDTO->getDtaPeriodoFim())) { + #array_push( $arrListaIds , $objMdUtlHistControleDsmp->getNumIdMdUtlHistControleDsmp() ); + array_push( $arrListaIds , $objMdUtlHistControleDsmp->getNumIdMdUtlAnalise() ); + } + } + } + } + } + return $arrListaIds; + } + public function getTempoExecucaoTriagem($idTriagem, $idUsuarioParticipante){ $objMdUtlTriagemRN = new MdUtlTriagemRN(); $objMdUtlTriagemDTO = new MdUtlTriagemDTO(); @@ -1246,8 +1361,8 @@ public function getTempoExecucaoAnalise($idAnalise, $idUsuarioParticipante, $arr $objMdUtlAnaliseDTO->setBolExclusaoLogica(false); $objMdUtlAnaliseDTO->retNumTempoExecucaoAtribuido(); - $objMdUtlAnaliseDTO->retDtaPeriodoInicio(); - $objMdUtlAnaliseDTO->retDtaPeriodoFim(); + $objMdUtlAnaliseDTO->retDtaPeriodoInicio(); + $objMdUtlAnaliseDTO->retDtaPeriodoFim(); $objMdUtlAnalise = $objMdUtlAnaliseRN->consultar($objMdUtlAnaliseDTO); diff --git a/sei/web/modulos/utilidades/rn/MdUtlPrazoRN.php b/sei/web/modulos/utilidades/rn/MdUtlPrazoRN.php index f0d291a..90dede3 100644 --- a/sei/web/modulos/utilidades/rn/MdUtlPrazoRN.php +++ b/sei/web/modulos/utilidades/rn/MdUtlPrazoRN.php @@ -330,20 +330,28 @@ public function getDatasPorFrequencia($inicioPeriodo){ return $arrRetorno; } - public function getDatasPeriodoAtual($idPrmGr){ + public function getDatasPeriodoAtual($idPrmGr , $isComHrs = true ){ $objMdUtlAdmPrmGrDTO = new MdUtlAdmPrmGrDTO(); - $objMdUtlAdmPrmGrRN = new MdUtlAdmPrmGrRN(); + $objMdUtlAdmPrmGrRN = new MdUtlAdmPrmGrRN(); - $objMdUtlAdmPrmGrDTO->setNumIdMdUtlAdmPrmGr($idPrmGr); - $objMdUtlAdmPrmGrDTO->retStrStaFrequencia(); + $objMdUtlAdmPrmGrDTO->setNumIdMdUtlAdmPrmGr($idPrmGr); + $objMdUtlAdmPrmGrDTO->retStrStaFrequencia(); - $objMdUtlAdmPrmGrDTO = $objMdUtlAdmPrmGrRN->consultar( $objMdUtlAdmPrmGrDTO ); + $objMdUtlAdmPrmGrDTO = $objMdUtlAdmPrmGrRN->consultar( $objMdUtlAdmPrmGrDTO ); - $arrPeriodo = ( new MdUtlAdmPrmGrUsuRN() )->getDiasUteisNoPeriodo( [$objMdUtlAdmPrmGrDTO->getStrStaFrequencia(),false] ); + $arrPeriodo = ( new MdUtlAdmPrmGrUsuRN() )->getDiasUteisNoPeriodo( [$objMdUtlAdmPrmGrDTO->getStrStaFrequencia(),false] ); + if ( $isComHrs ) { return [ 'DT_INICIAL' => $arrPeriodo['dtInicial'] . ' 00:00:00', 'DT_FINAL' => $arrPeriodo['dtFinal'] . ' 23:59:59' ]; + } else { + return [ + 'DT_INICIAL' => $arrPeriodo['dtInicial'], + 'DT_FINAL' => $arrPeriodo['dtFinal'] + ]; } + + } }