Views & Functions: mudanças entre as edições
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: | ||
{| class="wikitable" | {| class="wikitable" | ||
!Nome | !Nome | ||
!Função | !Função | ||
!Parametros | !Parametros | ||
|- | |- | ||
|''' | | rowspan="2" |'''VW_CRMSERVICE_REQUISICAO''' | ||
|Retorna o | |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 | * Cod_empresa | ||
<small>from | * 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 | |||
|- | |- | ||
| rowspan="2" |''' | |[[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=" | | 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>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> | |||
<small>group by cod_servico, ot.cod_tecnico</small> | |||
| | |- | ||
|[[Arquivo:Imageor40.png|esquerda|miniaturadaimagem]] | |||
|[[Arquivo:Imageor6.png|nenhum|miniaturadaimagem|249x249px]] | |||
|[[Arquivo:Imageor7.png|nenhum|miniaturadaimagem]] | |||
|} | |||
|- | |||
|Calcula TMO e Valor de um Serviço | |||
| | |||
| | | | ||
|- | |- | ||
| | |'''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 | |||
|- | |- | ||
| | |'''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 | |||
|- | |- | ||
| | |'''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[[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 é... |
| ||||||||
select * from VW_CRMSERVICE_REQUISICAO where cod_empresa = 40 and numero_os = 43 | ||||||||||
VW_CRM_SERVICE_TEMPO_DISPONIVEL | Calcula por DAta/Box
Importante: Ele considera os Eventos do produtivo, Cursos, Ferias, Feriados | |||||||||
| ||||||||||
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 | |||||||||
| ||||||||||
Calcula TMO e Valor de um Serviço | ||||||||||
F_GET_STATUS_ICONE | Retorna 4 informação sobre 1 serviço
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
| ||||||||
F_GET_SERVICO_PERCENT_TRAB | Retorna 3 Valores de 1 Serviço
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
A função NAO considera
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 |
P_COD_EMPRESA IN INT,
P_COD_TECNICO AND IN p_DATA dATA QUE DESEJA TER O STATUS |