Jump to content

luisgustavogomes

Vip *
  • Content Count

    146
  • Joined

  • Last visited

  • Days Won

    16

luisgustavogomes last won the day on October 20

luisgustavogomes had the most liked content!

Community Reputation

23 Excelente

About luisgustavogomes

  • Rank
    Membro Ativo no Fórum
  • Birthday 01/08/1989

Profile Information

  • Sexo
    Masculino

Recent Profile Visitors

775 profile views
  1. @Alef Menezes, Bom dia. Vamos por parte já dizia jack!!! eu tentei executar sua solução, mas não consegui adapta-la a minha solução. Na questão do Intervalo, ele não precisa aparecer. R. A questão da montagem da lógica para aqueles teste, pode ser aplicado na sua consulta com CTE, porém criei a tabela de horário fixa, juntamente para a matriz, logo, como não trabalho com o educacional, acredito, que tenhamos uma tabela que possamos fazer a mesma lógica.... sobre o intervalo, tranquilo só repliquei seu exemplo do print. Caso precise de uma ajuda é só me achar no skype luisgustavogomes@outlook.com... Consegui gerar com PIVOT como você me aconselhou a tabela de horário, porém as linhas "fantasmas" dos horários que o professor não tem aula elas são o desafio. R. Soma 0 (Zero). E a posterior, tenho um segundo problema no período noturno, tenho dois tipos de horarios: aulas de 50 minutos e outras de 1 hora. só que existe uma equivalência na tabela que terei que tratar, provavelmente criando 2 sql a parte um para cada horário e ao invez de gerar 3 tabelas irei gerar 4, um para cada horário, sem fazer o "de - para" no código noturno. R. Aqui teríamos que ajustar a logica, da consulta. Porém no fim disso tudo, se existe-se uma forma de utilizar no RM - SGE expressão, forçando que "Se CODIGO_HORARIO = X ENTÃO NMTURMA", resolveria todos os problemas, atenderia minha usuária e o trabalho só seria realmente formatação de texto e adição das expressões a tabela. R. Se sua consulta já está fazendo o PIVOT com a sua logica de código... só um IF todas as possibilidades para cada dia da semana, porém de já aviso que isso tornará o relatório lento, pois para cada linha... cada campo... o compilador tem que validar.. abraços
  2. Pessoal, Podem também envolver a consulta existente em uma CTE e juntar esse query... abraços!
  3. @weverton dias, boa tarde! Segue, possível solução. TOTVS-RM/UTL_GET_HORA.sql at master · luisgustavogomes/TOTVS-RM (github.com) /* USE CORPORERM GO DECLARE @CODCOLIGADA INT = 1 ; DECLARE @DATAINCIAL DATETIME = '2021-08-16' DECLARE @DATAFINAL DATETIME = '2021-09-15' ;WITH TAB_DADOS_FUNC AS ( SELECT F.CODCOLIGADA ,F.CHAPA ,P.NOME ,S.DESCRICAO ,H.[DATA] ,SUM(H.ATRASO) AS 'ATRASO' ,SUM(H.FALTA) AS 'FALTA' ,SUM(H.COMPENSADO) AS 'COMPENSADO' ,SUM(H.EXTRAEXECUTADO) AS 'TOTAL_EXTRA' ,SUM(H.BASE) AS 'HORASTRAB_SEM_EXTRAS' ,SUM(H.BASE + H.EXTRAEXECUTADO) AS 'HORASTRABALHADAS' ,SUM(H.ADICIONAL) AS 'ADICIONAL' ,SUM(H.ABONO) AS 'ABONO' FROM DBO.PPESSOA AS P INNER JOIN DBO.PFUNC AS F ON ( P.CODIGO = F.CODPESSOA ) INNER JOIN DBO.PSECAO AS S ON (F.CODCOLIGADA = S.CODCOLIGADA AND F.CODSECAO = S.CODIGO) INNER JOIN DBO.AAFHTFUN AS H ON (F.CODCOLIGADA = H.CODCOLIGADA AND F.CHAPA = H.CHAPA) WHERE F.CODCOLIGADA = @CODCOLIGADA AND ( F.CODSITUACAO = 'D' OR F.DATADEMISSAO >= @DATAINCIAL) AND ( H.[DATA] >= @DATAINCIAL ) AND ( H.[DATA] <= @DATAFINAL ) GROUP BY F.CODCOLIGADA ,F.CHAPA ,P.NOME ,S.DESCRICAO ,H.[DATA] ) , TAB_DADOS AS ( SELECT TD.CODCOLIGADA ,TD.CHAPA ,TD.NOME ,TD.DESCRICAO ,TD.[DATA] ,TD.ATRASO ,TD.FALTA ,TD.COMPENSADO ,TD.TOTAL_EXTRA ,TD.HORASTRAB_SEM_EXTRAS ,TD.HORASTRABALHADAS ,TD.ADICIONAL ,TD.ABONO ,ISNULL(E1.VALOR,0) AS 'E1VALOR' ,ISNULL(E2.VALOR,0) AS 'E2VALOR' FROM TAB_DADOS_FUNC TD OUTER APPLY ( SELECT M.VALOR FROM DBO.AMOVFUNDIA M WHERE M.CODCOLIGADA = TD.CODCOLIGADA AND M.CHAPA = TD.CHAPA AND M.[DATA] = TD.[DATA] AND M.CODEVE = '0051' /*TESTE*/ ) E1 OUTER APPLY ( SELECT M.VALOR FROM DBO.AMOVFUNDIA M WHERE M.CODCOLIGADA = TD.CODCOLIGADA AND M.CHAPA = TD.CHAPA AND M.[DATA] = TD.[DATA] AND M.CODEVE = '0040'/*TESTE*/ ) E2 /*CRIAÇÃO DOS EVENTOS*/ ) SELECT TD.CODCOLIGADA ,TD.CHAPA ,TD.NOME ,TD.DESCRICAO ,[dbo].[UTL_GET_HORA](SUM(TD.ATRASO)) AS 'ATRASO' ,[dbo].[UTL_GET_HORA](SUM(TD.FALTA)) AS 'FALTA' ,[dbo].[UTL_GET_HORA](SUM(TD.COMPENSADO)) AS 'COMPENSADO' ,[dbo].[UTL_GET_HORA](SUM(TD.TOTAL_EXTRA)) AS 'TOTAL_EXTRA' ,[dbo].[UTL_GET_HORA](SUM(TD.HORASTRAB_SEM_EXTRAS)) AS 'HORASTRAB_SEM_EXTRAS' ,[dbo].[UTL_GET_HORA](SUM(TD.HORASTRABALHADAS)) AS 'HORASTRABALHADAS' ,[dbo].[UTL_GET_HORA](SUM(TD.ADICIONAL)) AS 'ADICIONAL' ,[dbo].[UTL_GET_HORA](SUM(TD.ABONO)) AS 'ABONO' ,[dbo].[UTL_GET_HORA](SUM(TD.E1VALOR)) AS 'E2VALOR' ,[dbo].[UTL_GET_HORA](SUM(TD.E2VALOR)) AS 'E2VALOR' FROM TAB_DADOS TD GROUP BY TD.CODCOLIGADA ,TD.CHAPA ,TD.NOME ,TD.DESCRICAO /* abraços.
  4. @renato.brilhante, boa noite! Nas outras coligadas é o servidor SMTP... por que o erro é permissão de acesso. Segue link Envio de email - LINHA RM - Linha RM - TDN (totvs.com) Abraços.
  5. @Alef Menezes, boa noite! Segue uma possível solução. /* USE MASTER GO ;WITH TAB AS ( SELECT CODCOLIGADA,CODFILIAL,CODPROF,NMDISCIPLINA,DIA,DIASEMANA,CODTURNO,TURNO,HORPREVISAO,CODHORPRE,NMTURMA FROM (VALUES (2,9,'001706','LINGUA PORTUGUESA' ,3,'3ª TERÇA-FEIRA' ,1,'1° TURNO: MANHA','09:50 - 10:40',5,'7º ANO D') ,(2,9,'001706','LINGUA PORTUGUESA' ,3,'3ª TERÇA-FEIRA' ,1,'1° TURNO: MANHA','10:40 - 11:30',6,'7º ANO D') ,(2,9,'001706','LINGUA PORTUGUESA' ,5,'5ª QUINTA-FEIRA' ,1,'1° TURNO: MANHA','08:40 - 09:30',3,'7º ANO D') ,(2,9,'001706','LINGUA PORTUGUESA' ,5,'5ª QUINTA-FEIRA' ,1,'1° TURNO: MANHA','09:50 - 10:40',5,'7º ANO D') ,(2,9,'001706','REDAÇÃO' ,5,'5ª QUINTA-FEIRA' ,1,'1° TURNO: MANHA','10:40 - 11:30',6,'6º ANO G') ,(2,9,'001706','REDAÇÃO' ,6,'6ª SEXTA-FEIRA' ,1,'1° TURNO: MANHA','08:40 - 09:30',3,'6º ANO F') ,(2,9,'001706','LINGUA PORTUGUESA' ,6,'6ª SEXTA-FEIRA' ,1,'1° TURNO: MANHA','10:40 - 11:30',6,'7º ANO D') ,(2,9,'001706','LINGUA PORTUGUESA' ,2,'2ª SEGUNDA-FEIRA' ,2,'2° TURNO: TARDE','15:50 - 16:40',5,'7º ANO D') ,(2,9,'001706','LINGUA PORTUGUESA' ,3,'3ª TERÇA-FEIRA' ,2,'2° TURNO: TARDE','14:40 - 15:30',3,'7º ANO D') ,(2,9,'001706','REDAÇÃO' ,4,'4ª QUARTA-FEIRA' ,2,'2° TURNO: TARDE','15:50 - 16:40',5,'6º ANO G') ,(2,9,'001706','LINGUA PORTUGUESA' ,5,'5ª QUINTA-FEIRA' ,2,'2° TURNO: TARDE','14:40 - 15:30',3,'7º ANO D') ,(2,9,'001706','REDAÇÃO' ,6,'6ª SEXTA-FEIRA' ,2,'2° TURNO: TARDE','14:40 - 15:30',3,'6º ANO F') ,(2,9,'001706','LINGUA PORTUGUESA' ,6,'6ª SEXTA-FEIRA' ,2,'2° TURNO: TARDE','15:50 - 16:40',5,'7º ANO D') ) AS T (CODCOLIGADA,CODFILIAL,CODPROF,NMDISCIPLINA,DIA,DIASEMANA,CODTURNO,TURNO,HORPREVISAO,CODHORPRE,NMTURMA) ) --SELECT * FROM TAB , TAB_HORARIO AS ( SELECT CODCOLIGADA,CODFILIAL,CODHORPRE,HORPREVISAO,CODTURNO,TIPO FROM (VALUES (2,9,1,'07:00 - 07:50',1,'N') ,(2,9,1,'13:00 - 13:50',2,'N') ,(2,9,2,'07:50 - 08:40',1,'N') ,(2,9,2,'13:50 - 14:40',2,'N') ,(2,9,3,'08:40 - 09:30',1,'N') ,(2,9,3,'14:40 - 15:30',2,'N') ,(2,9,4,'09:30 - 09:50',1,'I') ,(2,9,4,'15:30 - 15:50',2,'I') ,(2,9,5,'09:50 - 10:40',1,'N') ,(2,9,5,'15:50 - 16:40',2,'N') ,(2,9,6,'10:40 - 11:30',1,'N') ,(2,9,6,'16:40 - 17:30',2,'N') ,(2,9,7,'11:30 - 12:20',1,'N') ,(2,9,7,'17:30 - 18:20',2,'N') ) AS T (CODCOLIGADA,CODFILIAL,CODHORPRE,HORPREVISAO,CODTURNO,TIPO) ) SELECT * FROM TAB_HORARIO H OUTER APPLY ( SELECT TI.NMDISCIPLINA AS '2ª SEGUNDA-FEIRA' FROM TAB TI WHERE TI.CODCOLIGADA = H.CODCOLIGADA AND TI.CODFILIAL = H.CODFILIAL AND TI.CODTURNO = H.CODTURNO AND TI.CODHORPRE = H.CODHORPRE AND TI.DIA = 2 ) SEG OUTER APPLY ( SELECT TI.NMDISCIPLINA AS '3ª TERÇA-FEIRA' FROM TAB TI WHERE TI.CODCOLIGADA = H.CODCOLIGADA AND TI.CODFILIAL = H.CODFILIAL AND TI.CODTURNO = H.CODTURNO AND TI.CODHORPRE = H.CODHORPRE AND TI.DIA = 3 ) TER OUTER APPLY ( SELECT TI.NMDISCIPLINA AS '4ª QUARTA-FEIRA' FROM TAB TI WHERE TI.CODCOLIGADA = H.CODCOLIGADA AND TI.CODFILIAL = H.CODFILIAL AND TI.CODTURNO = H.CODTURNO AND TI.CODHORPRE = H.CODHORPRE AND TI.DIA = 4 ) QUA OUTER APPLY ( SELECT TI.NMDISCIPLINA AS '5ª QUINTA-FEIRA' FROM TAB TI WHERE TI.CODCOLIGADA = H.CODCOLIGADA AND TI.CODFILIAL = H.CODFILIAL AND TI.CODTURNO = H.CODTURNO AND TI.CODHORPRE = H.CODHORPRE AND TI.DIA = 5 ) QUI OUTER APPLY ( SELECT TI.NMDISCIPLINA AS '6ª SEXTA-FEIRA' FROM TAB TI WHERE TI.CODCOLIGADA = H.CODCOLIGADA AND TI.CODFILIAL = H.CODFILIAL AND TI.CODTURNO = H.CODTURNO AND TI.CODHORPRE = H.CODHORPRE AND TI.DIA = 6 ) SEX OUTER APPLY ( SELECT TI.NMDISCIPLINA AS 'SABADO' FROM TAB TI WHERE TI.CODCOLIGADA = H.CODCOLIGADA AND TI.CODFILIAL = H.CODFILIAL AND TI.CODTURNO = H.CODTURNO AND TI.CODHORPRE = H.CODHORPRE AND TI.DIA = 7 ) SAB ORDER BY H.CODCOLIGADA, H.CODFILIAL, H.CODTURNO, H.CODHORPRE /* Result sets Assim nesta consulta, podes colocar a quebra nos campos CODCOLIGADA, CODFILIAL CODTURNO e na questão do intervalo é só colocar um campo texto sobreposto aos campos da consulta e imprimir utilizando regra de formação no campo TIPO. Executando essa matriz visual pela consulta, certamente irá ficar muito rápido. Espero lhe ajudar. Abraços.
  6. Sim, não é o componente matriz do gerador... é sim matriz visual igualmente você comentou... mas podes montar a consulta para sair uma matriz visual.
  7. @Alef Menezes, boa tarde! Entendi seu drama, porém como sua matriz do relatório é fixa, podes tentar utilizar o PIVOT resolver, só tem que criar cuidar que o PIVOT funciona com campos numéricos, ou seja, caso queira tratar que apresente na sua matriz como retorno a disciplina, terás que criar uma lógica utilizando alguma forma de identificação. Como exemplo podes acessar o link https://sqlfromhell.wordpress.com/2013/07/18/transformando-linhas-em-colunas-com-pivot/, caso não consigas, inclua a data do seu result set e nós enviei com o formato de excel que podemos ajudar. abraços.
  8. @weverton dias, @omar, bom dia! Em alguns posts atrás, tivemos algumas questões relacionas ao relatório do contra cheque., pois bem, estou construindo o mesmo para "tentar" solucionar ambos os casos, porém gostaria de solicitar a construção em conjunto, caso queiram... Para a execução se faz necessário testarmos a seguinte PROCEDURE... https://github.com/luisgustavogomes/TOTVS-RM/blob/master/RH/SP_FOP_GET_CONTRACHEQUE_CHAPA.sql Objetos necessários: 1.https://github.com/luisgustavogomes/TOTVS-RM/blob/master/RH/VW_PFFINANC.sql 2.https://github.com/luisgustavogomes/TOTVS-RM/blob/master/RH/VW_PFPERFF.sql 3.https://github.com/luisgustavogomes/TOTVS-RM/blob/master/UTL/UTL_GET_HORA.sql Após a criação do objeto, podemos efetuar os seguintes testes, substituir o XXXXXXXX por alguma chapa. /* EXEC [DBO].[SP_FOP_GET_CONTRACHEQUE_CHAPA] @CODCOLIGADA = 1 ,@ANOCOMP = 2021 ,@MESCOMP = 7 ,@NROPERIODO = 5 ,@CHAPA = 'XXXXXXXX' ,@DUPLICADO = 1 EXEC [DBO].[SP_FOP_GET_CONTRACHEQUE_CHAPA] @CODCOLIGADA = 1 ,@ANOCOMP = 2021 ,@MESCOMP = 7 ,@NROPERIODO = 5 ,@CHAPA = 'XXXXXXXX' EXEC [DBO].[SP_FOP_GET_CONTRACHEQUE_CHAPA] @CODCOLIGADA = 1 ,@ANOCOMP = 2020 ,@ANOCOMPFIM = 2021 ,@MESCOMP = 1 ,@MESCOMPFIM = 12 ,@NROPERIODO = 5 ,@NROPERIODOFIM = 5 ,@CHAPA = 'XXXXXXXX' EXEC [DBO].[SP_FOP_GET_CONTRACHEQUE_CHAPA] @CODCOLIGADA = 1 ,@ANOCOMP = 2020 ,@ANOCOMPFIM = 2021 ,@MESCOMP = 1 ,@MESCOMPFIM = 12 ,@NROPERIODO = 5 ,@NROPERIODOFIM = 5 ,@CHAPA = 'XXXXXXXX' ,@DUPLICADO = 1 */ Se der tudo certo, por favor, teriam como responder... para que podemos prosseguir com a criação desse relatório, lembrando que é o modo lento, depois podemos fazer o módulo rápido. P/S quem quiser entrar na onda é responder. Abraços.
  9. @weverton dias, bom dia... Para sair dois funcionários por página... Tem que controlar as linhas... na empresa onde trabalho criamos um dessa forma dois funcionários por folha... só me responde se são muitos funcionários ou poucos? Abraços
  10. Ok, mas quando der um tempo, testa via FV pois é uma solução poderosa para questões da aplicação. Abraços
  11. Pessoal, boa tarde! Estou criando um diretório do Github com algumas consultas que podem "ou não" ajudar a comunidade, neste caso o link do repositório é o https://github.com/luisgustavogomes/TOTVS-RM/tree/master/RH e temos dois (2) eventos para tratamos dos históricos da Folha. https://github.com/luisgustavogomes/TOTVS-RM/blob/master/RH/FOP_GET_HSTFUNCAO.sql https://github.com/luisgustavogomes/TOTVS-RM/blob/master/RH/FOP_GET_HSTSECAO.sql Segue uma forma de utilização... USE CORPORERM GO SELECT PF.CODCOLIGADA ,PF.CHAPA ,PF.ANOCOMP ,PF.MESCOMP ,PF.NROPERIODO ,HF.CODFUNCAO_HIST ,HF.NOME_FUNCAO_HIST ,HS.CODSECAO_HIST ,HS.DESC_SECAO_HIST FROM DBO.PFPERFF PF CROSS APPLY [dbo].[TB_FOP_GET_HISTFUNCAO] ( PF.CODCOLIGADA ,PF.CHAPA ,EOMONTH(DATEFROMPARTS(PF.ANOCOMP,PF.MESCOMP,1)) ) HF CROSS APPLY [dbo].[TB_FOP_GET_HISTSECAO] ( PF.CODCOLIGADA ,PF.CHAPA ,EOMONTH(DATEFROMPARTS(PF.ANOCOMP,PF.MESCOMP,1)) ) HS WHERE PF.CODCOLIGADA = 1 AND PF.ANOCOMP = 2020 AND PF.MESCOMP = 10 A lógica para qualquer outro histórico é parecido, caso queiram outros exemplos e só falar !!! Espero que ajude alguém. Abraços.
  12. Boa tarde @emersontotvs, segue em anexo! RESPOSTA.txt
  13. @GuiomarBoa tarde! Para a questão do fluxo de caixa... a questão é complicada...criamos uma arquitetura de view's para tratar as questões de A pagar (pago e em aberto) e Recebimento (recebido e a receber), porém não é uma coisa simples, pois tem as questões de ETL para tornar rápido o acesso, mas o que utilizamos hoje não é nada parecido com o projeto da TOTVS que tem cenários... Ou seja, financeiro é MUITO complicado... poderia citar alguns casos, por exemplo quais são os valores dos pedidos de compra que estarão no fluxo no mês corrente, sendo que podemos ter (entregas fracionadas, questão que não temos no ERP) condições de pagamento parceladas. Junta isso ao controle orçamentário com os Lançamentos e como resultado, por exemplo, o usuário final que saber, qual era o pedido de compra que estava no fluxo e não foi realizado... porque o pedido de compra está em 3 vezes e foi realizado em uma única vez. Só em escrever esse post, já me lembrei o quanto temos que melhorar neste fluxo... Desculpe, por não conseguir lhe ajudar. Att.
  14. @renato.brilhante, boa tarde! O motivo é a falta dos campos que são obrigatórios, porém qual é a forma que está incluindo esse registro ? No aguardo.
  15. Blz, está tudo certo... olha essa explicação... https://www.neosolutions.com.br/horas-centesimais
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.