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

De Wiki NBS
Ir para navegação Ir para pesquisar
(Criou página com '=== CRMSERVICE === {| class="wikitable" !Nome !Função !Parametros !Exemplo |- |VW_CRMSERVICE_OS_ANDAMENTO |Retorna o andamento de uma OS&Orçamento |Cod_empresa Numero_os |<...')
 
Sem resumo de edição
 
(11 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')
 
and   data <= to_date('30/07/2016')
 
Group by v.cod_tecnico
|-
|[[Arquivo:Imageor20.png|esquerda|miniaturadaimagem]]
|[[Arquivo:Imageor21.png|esquerda|miniaturadaimagem]]
|[[Arquivo:Imageor30.png|esquerda|miniaturadaimagem]]
|}
 
|-
| 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,
 
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
|-
| colspan="2" |
{| class="wikitable"
!Empresa/OS
!Empresa/OS/Serviço
!Empresa/OS/Produtivo
|-
|<small>SELECT  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>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>where cod_empresa = 40 </small>
<small>FROM os_tempos_executados ot</small>


<small>and numero_os = 43</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>
 
<small>group by cod_servico, ot.cod_tecnico</small>
|-
|-
| rowspan="2" |VW_CRMSERVICE_REQUISICAO
|[[Arquivo:Imageor40.png|esquerda|miniaturadaimagem]]
|Retorna as Requisições de uma OS
|[[Arquivo:Imageor6.png|nenhum|miniaturadaimagem|249x249px]]
com o preço liquido Total (* qtde) já calculado
|[[Arquivo:Imageor7.png|nenhum|miniaturadaimagem]]
|Cod_empresa
|}
Numero_os
|-
|<small>select *</small>
|Calcula TMO e Valor de um Serviço
<small>from VW_CRMSERVICE_REQUISICAO</small>
|
|
|-
|'''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),


<small>where cod_empresa = 40 </small>
         -- Descricao do icone do servico


<small>and numero_os = 43</small>
         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
|-
|-
| colspan="3" |
|'''F_GET_SERVICO_PERCENT_TRAB'''
|'''Retorna 3 Valores de 1 Serviço'''
# TMO
# Tempo Trabalhado
# %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 
|-
|-
| rowspan="2" |VW_CRM_SERVICE_TEMPO_DISPONIVEL
|'''F_GET_OS_ANDAMENTO'''
|Calulao tempo disponivel e utilizado de um BOX em um dia.
|'''Retorna o andamento de uma OS  {nao serve para orçamento}'''
Por consequencia, o tempo disponivel do produtivo do BOX
Função para substitui a view VW_CRM_SERVICE_OS_ANDAMENTO
|Não tem obrigatório
 
Posso pegar
SELECT F_GET_OS_ANDAMENTO(OS.COD_EMPRESA, OS.NUMERO_OS, 1) AS ANDAMENTO
* Cod_empresa
 
* Período de Data
FROM OS
* box
 
* Produtivo
WHERE OS.ORCAMENTO = 'N'
|select * from VW_CRM_SERVICE_TEMPO_DISPONIVEL
|P_COD_EMPRESA IN INT, 
P_NUMERO_OS IN INT, 
|-
|-
| colspan="3" |[[Arquivo:Imageor1.png|esquerda|miniaturadaimagem|1021x1021px]]
|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[[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