SLA Resposta

Para o cálculo do SLA resposta da OS são consideradas as regras abaixo:

1) BUSCA TIPO DE CALCULO DE SLA, SE TEM SLA CONFIGURADO NO EQUIPAMENTO, PEGA CONFIGURACAO DO EQUIPAMENTO, CASO CONTRARIO PEGA DA EMPRESA
2) SE A OS NAO FOR DE ASSISTENCIA OU SOFTWARE OU ESTIVER COM STATUS DE REJEITADA OU CANCELADA NAO CALCULA SLA
3) SE O CALCULO DE SLA É FEITO EM HORAS
    3.1) VALIDA SE OS JÁ ESTA COM ATENDIMENTO CONCLUIDO E COM O SLA CALCULADO, CASO ESTEJA NESTA CONDICAO NÃO EFETUA OS CALCULOS
    3.2) BUSCA O HORARIO DE ATENDIMENTO DOS PARAMETROS DO SISTEMA
    3.3) SE INFORMADO A EMPRESA E ESTA POSSUIR HORARIO DE ATENDIMENTO CADASTRADO ATUALIZA O HORARIO DE ATENDIMENTO PARA O CADASTRADO NO CLIENTE
        3.3.1) SE O HORARIO DE INICIO DE JORNADA FOI INFORMADO SETA O HORARIO DE INICIO INFORMADO NO CLIENTE
        3.3.2) SE O HORARIO DE PARADA DE JORNADA FOI INFORMADO SETA O HORARIO DE PARADA INFORMADO NO CLIENTE
        3.3.3) SE O HORARIO DE REINICIO DE JORNADA FOI INFORMADO SETA O HORARIO DE REINICIO INFORMADO NO CLIENTE
        3.3.4) SE O HORARIO DE REINICIO DE JORNADA FOI INFORMADO SETA O HORARIO DE REINICIO INFORMADO NO CLIENTE
    3.4) SE A OS TEM SELB E CONTROLE TECNICO, BUSCA HORARIO DE JORNADA DO EQUIPAMENTO E
    SE O EQUIPAMENTO POSSUIR HORARIO DE ATENDIMENTO CADASTRADO ATUALIZA O HORARIO DE INCIO PARA O CADASTRADO NO EQUIPAMENTO
        3.4.1) SE O HORARIO DE INICIO DE JORNADA FOI INFORMADO SETA O HORARIO DE INICIO INFORMADO NO EQUIPAMENTO
        3.4.2) SE O HORARIO DE PARADA DE JORNADA FOI INFORMADO SETA O HORARIO DE PARADA INFORMADO NO EQUIPAMENTO
        3.4.3) SE O HORARIO DE REINICIO DE JORNADA FOI INFORMADO SETA O HORARIO DE REINICIO INFORMADO NO EQUIPAMENTO
        3.4.4) SE O HORARIO DE REINICIO DE JORNADA FOI INFORMADO SETA O HORARIO DE REINICIO INFORMADO NO EQUIPAMENTO
    3.5) CALCULA TEMPO DE PARADA
    3.6) BUSCA O PROXIMO DIA UTIL DE INICIO E FINAL DE ATENDIMENTO DESCONSIDERANDO FERIADOS, SABADO E DOMINGO OU DIAS UTEIS DO EQUIPAMENTO
    3.7) SE NAO TEM DATA DE INICIO DE ATENDIMENTO
        3.7.1) SE O STATUS DA OS ESTIVER EM UM STATUS DE PARADA DE SLA, PARA DE COMPUTAR DA DATA EM QUE FOI COLOCADO O STATUS
            3.7.1.1) SETA DATA FINAL COMO A DATA DO STATUS DE PARADA
            3.7.1.2) SE NÃO SETA DATA FINAL COMO A DATA ATUAL
    3.8) SE NÃO (JA POSSUI UM PRIMENTO ATENDIMENTO)
        3.8.1) SETA COMO FINAL A DATA DO PRIMEIRO ATENDIMENTO
    3.9) VERIFICA SE A OS PASSOU POR ALGUM STATUS CONFIGURADO PARA AUMENTAR O SLA EM CASO DE DESLOCAMENTO
    3.10) SE HOUVE SOLICITACAO DE PECAS E ESTA CONFIGURADO PARA AUMENTAR SLA NESSE CASO
    3.11) ATENDIMENTO UTILIZANDO 1 DIA
    3.12) ATENDIMENTO UTILIZANDO 2 DIAS
    3.13) ATENDIMENTO UTILIZANDO MAIS DE 2 DIAS
    3.14) BUSCA TEMPO PARADA
    3.15) SUBTRAI DO TEMPO TOTAL DE ATENDIMENTO, O TEMPO EM QUE A OS ESTEVE EM STATUS DE PARADA
4) SE O CALCULO DO SLA É FEITO EM DIAS
    4.1) VALIDA SE OS JÁ ESTA COM ATENDIMENTO CONCLUIDO E COM O SLA CALCULADO, CASO ESTEJA NESTA CONDICAO NÃO EFETUA OS CALCULOS
    4.2) VERIFICA SE JA EXISTE SLA CALCULADO PARA A OS
        4.2.1) SE EXISTIR BUSCA O TEMPO UTILIZADO PARA O ATENDIMENTO E SE O RESULTADO E EM DIAS OU HORAS
        4.2.1) SE O RESULTADO NAO FOR EM DIAS
            4.2.1.1) CONVERTE O RESULTADO PARA MINUTOS
            4.2.1.2) SE FOR PEGA O RESULTA E ALIMENTA A VARIAVEL A SER RETORNADA, SEM REALIZAR CONVERSAO
            4.2.1.3) RETORNA O TEMPO DE ATENDIMENTO DA OS
    4.3) BUSCA O TEMPO DE SLA CADASTRADO
    4.4) BUSCA A DATA DE ABERTURA DA OS COMO INICIO DE ATENDIMENTO
    4.5) ACRESCENTA UM DIA DA ABERTURA, POIS SOMENTE COMECARÁ A CONTAR NO PROXIMO DIA
    4.6) CALCULA TEMPO DE PARADA
    4.7) BUSCA O PROXIMO DIA UTIL DE INICIO E FINAL DE ATENDIMENTO DESCONSIDERANDO FERIADOS, SABADO E DOMINGO OU DIAS UTEIS DO EQUIPAMENTO
    4.8) SE NAO TEM DATA DE INICIO DE ATENDIMENTO
        4.8.1) SE O STATUS DA OS ESTIVER EM UM STATUS DE PARADA DE SLA, PARA DE COMPUTAR DA DATA EM QUE FOI COLOCADO O STATUS
            4.8.1.1) SETA DATA FINAL COMO A DATA DO STATUS DE PARADA
            4.8.1.2) SE NÃO SETA DATA FINAL COMO A DATA ATUAL
    4.9) SE JA POSSUI UM PRIMENTO ATENDIMENTO
        4.9.1) SETA COMO FINAL A DATA DO PRIMEIRO ATENDIMENTO
    4.10) ATENDIMENTO UTILIZANDO 1 DIA
    4.11) ATENDIMENTO UTILIZANDO 1 OU MAIS DIAS
    4.12) SUBTRAI DO TEMPO TOTAL DE ATENDIMENTO, O TEMPO EM QUE A OS ESTEVE EM STATUS DE PARADA CASO O TOTAL DO TEMPO DE PARADA SEJA MAIOR QUE UM DIA UTIL
    4.13) BUSCA TOTAL TEMPO PARADA
    4.14) BUSCA A QUANTIDADE DE HORAS QUE SE REFERE AO DIA UTIL DO CLIENTE
    4.15) SE O TEMPO DE PARADA E MAIOR O IGUAL A UM DIA UTIL DO CLIENTE
        4.15.1) DIVIDE O TEMPO DE PARADA PELO QUANTIDADE DE HORAS A QUE SE REFERE O DIA UTIL DO CLIENTE, DESCARTANDO O RESTO DA DIVISAO
        4.15.2) SUBTRAI OS DIAS DE PARADA DO TEMPO TOTAL DE ATENDIMENTO
5) SE O TEMPO SQL FOR MAIOR OU IGUAL QUE O TEMPO DE ATENDIMENTO, O RETORNO SERÁ O TEMPO SLA MENOS O TEMPO DE ATENDIMENTO
6) SE NÃO É O TEMPO DE ATENDIMENTO MENOS TEMPO DE SLA.