Views & Functions: mudanças entre as edições

De Wiki NBS
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(10 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=== CRMSERVICE ===
 
{| class="wikitable"
{| class="wikitable"
!Nome
!Nome
!Função
!Função
!Parametros
!Parametros
!Exemplo
|-
|-
|'''VW_CRMSERVICE_OS_ANDAMENTO'''
| rowspan="2" |'''VW_CRMSERVICE_REQUISICAO'''
|Retorna o andamento de uma OS&Orçamento
|Retorna as Requisições de uma OS    com o preço liquido Total (* qtde) já calculado.
|Cod_empresa
''Parece bobagem, mas ja viram o calculo bisonho que é pra achar o preço de uma peça ? pois é...''
Numero_os
|
|<small>select andamento</small>
* Cod_empresa
<small>from VW_CRMSERVICE_OS_ANDAMENTO</small>
* Numero_os
|-
| colspan="2" |<small>select *</small>  <small>from VW_CRMSERVICE_REQUISICAO</small>   <small>where cod_empresa = 40 </small><small>and numero_os = 43</small>[[Arquivo:Imageor2.png|esquerda|miniaturadaimagem|845x845px]]
|-
| rowspan="2" |'''VW_CRM_SERVICE_TEMPO_DISPONIVEL'''
 
| colspan="2" |'''Calcula por DAta/Box'''
# ''<small>O tempo Total no dia/box</small>''
# ''<small>O tempo OCUPADO (pelos CHIPS da Agenda)</small>''
# ''<small>O Tempo disponível na Data/Box</small>''
 
<small>Importante: Ele considera os Eventos do produtivo, Cursos, Ferias, Feriados</small>
|-
| colspan="2" |
{| class="wikitable"
!Empresa/Período
!Empresa/Período/Box
!Empresa/Período/Produtivo
|-
|select sum(v.tempo_total)      Tp_agenda, 
       sum(v.tempo_ocupado)    Tp_ocupado , 
 
       sum(v.tempo_disponivel) Tp_disp
 
from '''VW_crmservice_tempo_disponivel''' v
 
--
 
where cod_empresa = 34
 
and   data >= to_date('01/07/2016')
 
and   data <= to_date('30/07/2016')
|select v.prisma,
       sum(v.tempo_total)      Tp_agenda, 
 
       sum(v.tempo_ocupado)    Tp_ocupado , 
 
       sum(v.tempo_disponivel) Tp_disp
 
from '''VW_crmservice_tempo_disponivel''' v
 
--
 
where cod_empresa = 34
 
and   data >= to_date('01/07/2016')
 
and   data <= to_date('30/07/2016')
 
Group by v.prisma
|select v.cod_tecnico,
sum(v.tempo_total)      Tempo_agenda, 
 
       sum(v.tempo_ocupado)    Tempo_ocupado , 
 
       sum(v.tempo_disponivel) Tempo_disponivel
 
from '''VW_crmservice_tempo_disponivel''' v
 
--
 
where cod_empresa = 34
 
and   data >= to_date('01/07/2016')


<small>where cod_empresa = 40 </small>
and   data <= to_date('30/07/2016')


<small>and numero_os = 43</small>
Group by v.cod_tecnico
|-
|-
| rowspan="2" |'''VW_CRMSERVICE_REQUISICAO'''
|[[Arquivo:Imageor20.png|esquerda|miniaturadaimagem]]
|Retorna as Requisições de uma OS
|[[Arquivo:Imageor21.png|esquerda|miniaturadaimagem]]
com o preço liquido Total (* qtde) já calculado
|[[Arquivo:Imageor30.png|esquerda|miniaturadaimagem]]
|Cod_empresa
|}
Numero_os
 
|<small>select *</small>
|-
<small>from VW_CRMSERVICE_REQUISICAO</small>
| rowspan="2" |
'''F_GET_TEMPO_TRABALHADO'''
 
| colspan="2" |Calcular o tempo trabalhado do produtivo,
Tratando inicio em um dia e parada em outro, assim como data final nula  considerado sysdate.
 
Quando data inicial e final for diferente, vai descontar domingos e feriados e horas paradas do produtivo cadastradas na tabela servicos_tecnicos_eventos,


<small>where cod_empresa = 40 </small>
assim como pegará hora inicial e final para cálculo de tempo trabalhado de lá.


<small>and numero_os = 43</small>
Se técnico estiver sem horário cadastrado, vai buscar do parm_sys2 => p2.agenda_hora_comeca e p2.agenda_hora_fim
|-
|-
| colspan="3" |[[Arquivo:Imageor2.png|esquerda|miniaturadaimagem|845x845px]]
| colspan="2" |
{| class="wikitable"
!Empresa/OS
!Empresa/OS/Serviço
!Empresa/OS/Produtivo
|-
|-
| rowspan="2" |'''VW_CRM_SERVICE_TEMPO_DISPONIVEL'''
|<small>SELECT  sum(f_get_tempo_trabalhado(ot.cod_empresa, ot.cod_tecnico,    </small> <small>                     ot.data_entrada, ot.hora_entrada,      </small>
|Calcula o tempo disponível e utilizado de um BOX em um dia.
 
Por consequência, o tempo disponível do produtivo do BOX.
<small>ot.data_saida, ot.hora_saida)) tempo_trab_t</small>
 
<small>FROM os_tempos_executados ot </small>
 
<small>where ot.cod_empresa = 34</small>
 
<small>and   ot.numero_os   = 15398</small>
|<small>SELECT ot.cod_servico,</small>
<small>sum(f_get_tempo_trabalhado(ot.cod_empresa, ot.cod_tecnico, </small>
 
<small>                ot.data_entrada, ot.hora_entrada,      </small>
 
<small>               ot.data_saida, ot.hora_saida)) tempo_trab_t</small>
 
<small>FROM os_tempos_executados ot</small>
 
<small>where ot.cod_empresa = 34</small>
 
<small>and   ot.numero_os   = 15398</small> 
 
<small>group by cod_servico</small>
|<small>SELECT ot.cod_servico, ot.cod_tecnico,</small>
<small>sum(f_get_tempo_trabalhado(ot.cod_empresa, ot.cod_tecnico, </small>
 
<small>                                ot.data_entrada, ot.hora_entrada,  </small>
 
<small> ot.data_saida, ot.hora_saida)) tempo_trab_t</small>
 
<small>FROM os_tempos_executados ot</small>
 
<small>where ot.cod_empresa = 34</small>
 
<small>and   ot.numero_os   = 15398</small>


Bom para usar em querys que medem disponibilidade
<small>group by cod_servico, ot.cod_tecnico</small>
|'''Não tem obrigatório'''
|-
Posso pegar
|[[Arquivo:Imageor40.png|esquerda|miniaturadaimagem]]
* Cod_empresa
|[[Arquivo:Imageor6.png|nenhum|miniaturadaimagem|249x249px]]
* Período de Data
|[[Arquivo:Imageor7.png|nenhum|miniaturadaimagem]]
* box
|}
* Produtivo
|-
|Calcula TMO e Valor de um Serviço
|
|
|
|-
|-
| colspan="3" |select * from VW_CRM_SERVICE_TEMPO_DISPONIVEL[[Arquivo:Imageor1.png|esquerda|miniaturadaimagem|1021x1021px]]
|'''F_GET_STATUS_ICONE'''
|'''Retorna  4 informação sobre 1 serviço'''
# Aprovacao do cliente
# Icone que vai na frente do servico (bolinha vermelha etc)
# Descricao do icone
# Status do Servico (0- nunca fez servico  1-em andamento/Parado      2-Finalizado)
 
'''''Exemplo'''''
 
select         -- Icone do status do servico
 
         F_GET_STATUS_ICONE_SERVICO(s.cod_empresa, s.numero_os, s.cod_servico, 1),
 
         -- Descricao do icone do servico
 
         F_GET_STATUS_ICONE_SERVICO(s.cod_empresa, s.numero_os, s.cod_servico, 2),
 
         -- Status do servico : 0 Nao fez nada, 1 trbalhando, 2 Encerrado  
 
         F_GET_STATUS_ICONE_SERVICO(s.cod_empresa, s.numero_os, s.cod_servico, 3)         
 
from os_servicos s
|Parâmetros
# P_COD_EMPRESA IN INT,
# P_NUMERO_OS IN INT,
# P_COD_SERVICO IN VARCHAR2,
# P_TIPO_RESULT IN INT
|-
|-
|VW_CRMSERVICE_TP_TRABALHADO
|'''F_GET_SERVICO_PERCENT_TRAB'''
|Calcula o Tempo trabalhado em um SERVICO de uma OS, por um técnico.
|'''Retorna 3 Valores de 1 Serviço'''
Importante: ele considera os Eventos do produtivo no Caso de ter  pulado apontamento de um dia para outro.Tambem considera Cursos e  Feriados, se lançados.
# TMO
|Cod_empresa
# Tempo Trabalhado
Numero_os
# %trabalhando (para o Gráfico
|<nowiki>--</nowiki>
 
'''Exemplo'''
 
select   -- tempo trabalhado
 
         F_GET_SERVICO_PERCENT_TRAB(s.cod_empresa, s.numero_os, s.cod_servico, 1),
 
         -- TMO
 
         F_GET_SERVICO_PERCENT_TRAB(s.cod_empresa, s.numero_os, s.cod_servico, 2),
 
         -- % trabalhado, pronto para o gráfico
 
         F_GET_SERVICO_PERCENT_TRAB(s.cod_empresa, s.numero_os, s.cod_servico, 3)
 
from os_servicos s
|  (P_COD_EMPRESA IN INT, 
   P_NUMERO_OS IN INT, 
 
   P_COD_SERVICO IN VARCHAR2,
 
   P_TIPO_RESULT IN INT) RETURN NUMBER IS 
|-
|-
|
|'''F_GET_OS_ANDAMENTO'''
| colspan="3" |'''-- tempo trabalhado, por servico'''
|'''Retorna o andamento de uma OS  {nao serve para orçamento}'''
Função para substitui a view VW_CRM_SERVICE_OS_ANDAMENTO
 
SELECT F_GET_OS_ANDAMENTO(OS.COD_EMPRESA, OS.NUMERO_OS, 1) AS ANDAMENTO
 
FROM OS


select V.cod_servico, sum(V.TEMPO_TRAB) tp_trab  From VW_CRMSERVICE_TP_TRABALHADO V
WHERE OS.ORCAMENTO = 'N'
|P_COD_EMPRESA IN INT, 
P_NUMERO_OS IN INT, 
|-
|F_GET_STATUS_PRODUTIVO
|Retorna o status do produtivo  '''Considerando'''
* Curso
* Ferias
* Paradas de almoço e lanche
* Feriado
* Horário estabelecido nos eventos (incio e fim a cada dia da semana)


WHERE V.cod_empresa = 34  AND V.numero_os = 15398    Group  BY V.cod_servico[[Arquivo:ImageOR3.png|esquerda|miniaturadaimagem|352x352px]]
'''A função NAO considera'''
* Ativos e fictícios
* Se esta trabalhando


-- te,mpo trabalhado, por servico / Tecnico
'''Exemplo'''


select V.cod_servico, v.cod_servico ,sum(V.TEMPO_TRAB) tp_trab
SELECT -- grid


From VW_CRMSERVICE_TP_TRABALHADO V
 initcap(a.nome) nome,


WHERE V.cod_empresa = 34
substr(F_get_status_produtivo(a.cod_empresa, a.cod_tecnico, sysdate),6,length(F_get_status_produtivo(a.cod_empresa, a.cod_tecnico, sysdate))) Motivo,


AND V.numero_os = 15398
a.cod_tecnico,substr(F_get_status_produtivo(a.cod_empresa, a.cod_tecnico, sysdate),1,2) ST


Group  BY V.cod_servico, v.cod_tecnico
from servicos_tecnicos a[[Arquivo:Imageorprod.png|esquerda|miniaturadaimagem]]
|P_COD_EMPRESA IN INT, 
P_COD_TECNICO AND IN


p_DATA  dATA QUE DESEJA TER O STATUS
|}
|}

Edição atual tal como às 12h46min de 15 de julho de 2020

Nome Função Parametros
VW_CRMSERVICE_REQUISICAO Retorna as Requisições de uma OS com o preço liquido Total (* qtde) já calculado.

Parece bobagem, mas ja viram o calculo bisonho que é pra achar o preço de uma peça ? pois é...

  • Cod_empresa
  • Numero_os
select * from VW_CRMSERVICE_REQUISICAO where cod_empresa = 40 and numero_os = 43
Imageor2.png
VW_CRM_SERVICE_TEMPO_DISPONIVEL Calcula por DAta/Box
  1. O tempo Total no dia/box
  2. O tempo OCUPADO (pelos CHIPS da Agenda)
  3. O Tempo disponível na Data/Box

Importante: Ele considera os Eventos do produtivo, Cursos, Ferias, Feriados

Empresa/Período Empresa/Período/Box Empresa/Período/Produtivo
select sum(v.tempo_total)      Tp_agenda, 

       sum(v.tempo_ocupado)    Tp_ocupado , 

       sum(v.tempo_disponivel) Tp_disp

from VW_crmservice_tempo_disponivel v

--

where cod_empresa = 34

and   data >= to_date('01/07/2016')

and   data <= to_date('30/07/2016')

select v.prisma,

       sum(v.tempo_total)      Tp_agenda, 

       sum(v.tempo_ocupado)    Tp_ocupado , 

       sum(v.tempo_disponivel) Tp_disp

from VW_crmservice_tempo_disponivel v

--

where cod_empresa = 34

and   data >= to_date('01/07/2016')

and   data <= to_date('30/07/2016')

Group by v.prisma

select v.cod_tecnico,

sum(v.tempo_total)      Tempo_agenda, 

       sum(v.tempo_ocupado)    Tempo_ocupado , 

       sum(v.tempo_disponivel) Tempo_disponivel

from VW_crmservice_tempo_disponivel v

--

where cod_empresa = 34

and   data >= to_date('01/07/2016')

and   data <= to_date('30/07/2016')

Group by v.cod_tecnico

Imageor20.png
Imageor21.png
Imageor30.png

F_GET_TEMPO_TRABALHADO

Calcular o tempo trabalhado do produtivo,

Tratando inicio em um dia e parada em outro, assim como data final nula  considerado sysdate.

Quando data inicial e final for diferente, vai descontar domingos e feriados e horas paradas do produtivo cadastradas na tabela servicos_tecnicos_eventos,

assim como pegará hora inicial e final para cálculo de tempo trabalhado de lá.

Se técnico estiver sem horário cadastrado, vai buscar do parm_sys2 => p2.agenda_hora_comeca e p2.agenda_hora_fim

Empresa/OS Empresa/OS/Serviço Empresa/OS/Produtivo
SELECT  sum(f_get_tempo_trabalhado(ot.cod_empresa, ot.cod_tecnico,             ot.data_entrada, ot.hora_entrada,      

ot.data_saida, ot.hora_saida)) tempo_trab_t

FROM os_tempos_executados ot 

where ot.cod_empresa = 34

and   ot.numero_os   = 15398

SELECT ot.cod_servico,

sum(f_get_tempo_trabalhado(ot.cod_empresa, ot.cod_tecnico, 

                ot.data_entrada, ot.hora_entrada,      

  ot.data_saida, ot.hora_saida)) tempo_trab_t

FROM os_tempos_executados ot

where ot.cod_empresa = 34

and   ot.numero_os   = 15398

group by cod_servico

SELECT ot.cod_servico, ot.cod_tecnico,

sum(f_get_tempo_trabalhado(ot.cod_empresa, ot.cod_tecnico, 

                                ot.data_entrada, ot.hora_entrada,  

 ot.data_saida, ot.hora_saida)) tempo_trab_t

FROM os_tempos_executados ot

where ot.cod_empresa = 34

and   ot.numero_os   = 15398

group by cod_servico, ot.cod_tecnico

Imageor40.png
Imageor6.png
Imageor7.png
Calcula TMO e Valor de um Serviço
F_GET_STATUS_ICONE Retorna 4 informação sobre 1 serviço
  1. Aprovacao do cliente
  2. Icone que vai na frente do servico (bolinha vermelha etc)
  3. Descricao do icone
  4. Status do Servico (0- nunca fez servico 1-em andamento/Parado 2-Finalizado)

Exemplo

select         -- Icone do status do servico

         F_GET_STATUS_ICONE_SERVICO(s.cod_empresa, s.numero_os, s.cod_servico, 1),

         -- Descricao do icone do servico

         F_GET_STATUS_ICONE_SERVICO(s.cod_empresa, s.numero_os, s.cod_servico, 2),

         -- Status do servico : 0 Nao fez nada, 1 trbalhando, 2 Encerrado  

         F_GET_STATUS_ICONE_SERVICO(s.cod_empresa, s.numero_os, s.cod_servico, 3)         

from os_servicos s

Parâmetros
  1. P_COD_EMPRESA IN INT,
  2. P_NUMERO_OS IN INT,
  3. P_COD_SERVICO IN VARCHAR2,
  4. P_TIPO_RESULT IN INT
F_GET_SERVICO_PERCENT_TRAB Retorna 3 Valores de 1 Serviço
  1. TMO
  2. Tempo Trabalhado
  3. %trabalhando (para o Gráfico

Exemplo

select   -- tempo trabalhado

         F_GET_SERVICO_PERCENT_TRAB(s.cod_empresa, s.numero_os, s.cod_servico, 1),

         -- TMO

         F_GET_SERVICO_PERCENT_TRAB(s.cod_empresa, s.numero_os, s.cod_servico, 2),

         -- % trabalhado, pronto para o gráfico

         F_GET_SERVICO_PERCENT_TRAB(s.cod_empresa, s.numero_os, s.cod_servico, 3)

from os_servicos s

  (P_COD_EMPRESA IN INT, 

   P_NUMERO_OS IN INT, 

   P_COD_SERVICO IN VARCHAR2,

   P_TIPO_RESULT IN INT) RETURN NUMBER IS 

F_GET_OS_ANDAMENTO Retorna o andamento de uma OS {nao serve para orçamento}

Função para substitui a view VW_CRM_SERVICE_OS_ANDAMENTO

SELECT F_GET_OS_ANDAMENTO(OS.COD_EMPRESA, OS.NUMERO_OS, 1) AS ANDAMENTO

FROM OS

WHERE OS.ORCAMENTO = 'N'

P_COD_EMPRESA IN INT, 

P_NUMERO_OS IN INT, 

F_GET_STATUS_PRODUTIVO Retorna o status do produtivo Considerando
  • Curso
  • Ferias
  • Paradas de almoço e lanche
  • Feriado
  • Horário estabelecido nos eventos (incio e fim a cada dia da semana)

A função NAO considera

  • Ativos e fictícios
  • Se esta trabalhando

Exemplo

SELECT -- grid

 initcap(a.nome) nome,

substr(F_get_status_produtivo(a.cod_empresa, a.cod_tecnico, sysdate),6,length(F_get_status_produtivo(a.cod_empresa, a.cod_tecnico, sysdate))) Motivo,

a.cod_tecnico,substr(F_get_status_produtivo(a.cod_empresa, a.cod_tecnico, sysdate),1,2) ST

from servicos_tecnicos a
Imageorprod.png
P_COD_EMPRESA IN INT, 

P_COD_TECNICO AND IN

p_DATA dATA QUE DESEJA TER O STATUS