Devailton N. Santana Postado 31 de Janeiro de 2014 Tópicos Que Criei: 30 Tópicos/Dia: 0.01 Meu Conteúdo: 225 Conteúdo/Dia: 0.04 Reputação: 18 Pontos/Conquistas: 1.434 Conteúdo Resolvido: 0 Dias Ganho: 11 Status: Offline Idade: 42 Denunciar Compartilhar Postado 31 de Janeiro de 2014 PROBLEMA: Quem trabalha com o RM Labore provavelmente já vivenciou dificuldades para imprimir relatórios da folha de pagamento de competências anteriores por seção, pois, funcionários podem ser mudados de seção frequentemente e os resultados da Folha de Pagamento de uma competência antiga não será igual se tirada futuramente por causa dessas alterações de seções, já que a maioria dos relatórios considerará sempre a seção do funcionário no momento atual. Isso cria uma dificuldade tremenda porque distorce os valores das seções em determinadas competências e deixa os analistas de cabeça quente porque montar o histórico fiel é bastante complicado. Afinal, como saber de qual seção o funcionário "tal" era em determinada competência? O único recurso é dar uma olhadinha do Histórico de Seções... mas para montar relatórios ou extrair informações baseando-se no histórico de seções é muito penoso, você não concorda? SOLUÇÃO: Pensando a respeito, eu bolei uma forma de minimizar essa questão. Com isso, pelo menos nos relatórios gerados pelo Gerador, Gerador .net e Planilhas você conseguirá ter essa informação de forma rápida e fácil, além de conseguir criar os resumos de valores fielmente conforme a seção e a competência da época. A minha ideia consiste em simplesmente indicar no cadastro de períodos da ficha financeira de qual seção aquele período pertence, ou seja, supondo que tenhamos o ANO 2013, MES 12, PERÍODO 5, CHAPA 005256, daí colocamos uma coluna a mais nessa tabela e dizemos que essa linha pertence a seção 01.01.01.001 por exemplo, facilitando assim identificarmos que o funcionário 005256 era da seção 01.01.01.001 em 12/2013 e além disso que todos os valores desse período deve ser lançado para essa seção. Depois disso, eu precisa elaborar uma forma de criar essa coluna adicionou na tabela de períodos PFPERFF e também o histórico da competências de cada período e de cada funcionário! Eu consegui ! com a elaboração de query's para criar o campo adicional, para criar todo o histórico retroativo e uma forma de meus usuários irem alimentando essa informação nos competências futuras! Para nós isso foi bastante bom, mas não sei exatamente se é interessante para vocês, daí gostaria de saber se possuem interesse nessas query's, pois, poderei posta-las aqui... Grande abraço, Devailton 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
brunasantos Postado 1 de Fevereiro de 2014 Tópicos Que Criei: 12 Tópicos/Dia: 0.00 Meu Conteúdo: 44 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 345 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Denunciar Compartilhar Postado 1 de Fevereiro de 2014 PROBLEMA: Quem trabalha com o RM Labore provavelmente já vivenciou dificuldades para imprimir relatórios da folha de pagamento de competências anteriores por seção, pois, funcionários podem ser mudados de seção frequentemente e os resultados da Folha de Pagamento de uma competência antiga não será igual se tirada futuramente por causa dessas alterações de seções, já que a maioria dos relatórios considerará sempre a seção do funcionário no momento atual. Isso cria uma dificuldade tremenda porque distorce os valores das seções em determinadas competências e deixa os analistas de cabeça quente porque montar o histórico fiel é bastante complicado. Afinal, como saber de qual seção o funcionário "tal" era em determinada competência? O único recurso é dar uma olhadinha do Histórico de Seções... mas para montar relatórios ou extrair informações baseando-se no histórico de seções é muito penoso, você não concorda? SOLUÇÃO: Pensando a respeito, eu bolei uma forma de minimizar essa questão. Com isso, pelo menos nos relatórios gerados pelo Gerador, Gerador .net e Planilhas você conseguirá ter essa informação de forma rápida e fácil, além de conseguir criar os resumos de valores fielmente conforme a seção e a competência da época. A minha ideia consiste em simplesmente indicar no cadastro de períodos da ficha financeira de qual seção aquele período pertence, ou seja, supondo que tenhamos o ANO 2013, MES 12, PERÍODO 5, CHAPA 005256, daí colocamos uma coluna a mais nessa tabela e dizemos que essa linha pertence a seção 01.01.01.001 por exemplo, facilitando assim identificarmos que o funcionário 005256 era da seção 01.01.01.001 em 12/2013 e além disso que todos os valores desse período deve ser lançado para essa seção. Depois disso, eu precisa elaborar uma forma de criar essa coluna adicionou na tabela de períodos PFPERFF e também o histórico da competências de cada período e de cada funcionário! Eu consegui ! com a elaboração de query's para criar o campo adicional, para criar todo o histórico retroativo e uma forma de meus usuários irem alimentando essa informação nos competências futuras! Para nós isso foi bastante bom, mas não sei exatamente se é interessante para vocês, daí gostaria de saber se possuem interesse nessas query's, pois, poderei posta-las aqui... Grande abraço, Devailton Boa Tarde, Tenho muito interesse seu relatorio parece bastante interessante. Poderia disponibilizar? Obrigada Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Devailton N. Santana Postado 3 de Fevereiro de 2014 Tópicos Que Criei: 30 Tópicos/Dia: 0.01 Meu Conteúdo: 225 Conteúdo/Dia: 0.04 Reputação: 18 Pontos/Conquistas: 1.434 Conteúdo Resolvido: 0 Dias Ganho: 11 Status: Offline Idade: 42 Autor Denunciar Compartilhar Postado 3 de Fevereiro de 2014 Boa Tarde, Tenho muito interesse seu relatorio parece bastante interessante. Poderia disponibilizar? Obrigada Bom dia Bruna, Siga as seguintes etapas. Etapa 01 - Criar coluna adicional na tabela PFPERFF - Essa coluna armazenará o código da seção que o funcionário estava lotado no mês, ano e perído: USE [CORPORERM] GO ALTER TABLE [dbo].[PFPERFF] ADD [CODSECAO] [varchar](35) NULL ALTER TABLE [dbo].[PFPERFF] WITH CHECK ADD CONSTRAINT [FKPFPERFF_PSECAO] FOREIGN KEY([CODCOLIGADA], [CODSECAO]) REFERENCES [dbo].[PSECAO] ([CODCOLIGADA], [CODIGO]) GO Etapa 02 - A query abaixo serve para montar um UPDATE que após ser executado colocará o código da seção do funcionário no período corretamente (ANO, MÊS, NUMERO DO PERÍODO) - Executando a query, você verá o update montado, depois vc deve copiar esse update para nova query e executá-lo também: SELECT 'UPDATE PFPERFF SET CODSECAO='''+ ISNULL(CASE WHEN (select CODSECAO from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AND DTMUDANCA = (select max(pfhstsec.DTMUDANCA) from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) having max(pfhstsec.DTMUDANCA)=max(pfhstsec.DTMUDANCA)) group by codsecao having max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))=max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))) =NULL THEN (SELECT CODSECAO FROM PFUNC WHERE CODCOLIGADA=PFPERFF.CODCOLIGADA AND CHAPA=PFPERFF.CHAPA) ELSE (select CODSECAO from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AND DTMUDANCA = (select max(pfhstsec.DTMUDANCA) from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) having max(pfhstsec.DTMUDANCA)=max(pfhstsec.DTMUDANCA)) group by codsecao having max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))=max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))) END,(SELECT CODSECAO FROM PFUNC WHERE CODCOLIGADA=PFPERFF.CODCOLIGADA AND CHAPA=PFPERFF.CHAPA)) +''' FROM PFPERFF'+' WHERE PFPERFF.ANOCOMP='''+(CAST(ANOCOMP AS VARCHAR(4))) +''' and PFPERFF.MESCOMP='''+(CAST(MESCOMP AS VARCHAR(4))) +''' and PFPERFF.NROPERIODO='''+(CAST(NROPERIODO AS VARCHAR(4))) +''' and PFPERFF.CHAPA='''+(CAST(CHAPA AS VARCHAR(10))) +''' and PFPERFF.CODCOLIGADA='''+(CAST(CODCOLIGADA AS VARCHAR(10)))+'''' FROM PFPERFF ORDER BY CODCOLIGADA,ANOCOMP,MESCOMP,CHAPA,NROPERIODO A partir desse momento você já saberá de qual seção um determinado funcionário era em determinado momento apenas fazendo um select na tabela PFPERFF. Todo o histórico foi criado, agora você já poderá se beneficiar dessa informação. Os funcionários e os períodos existentes até a competência aberta nesse momento já possuem essa informação, mas existirá a necessidade de ir alimentando essa informação nas competências futuras. Para isso você tem duas alternativa, ou você executa o update acima a qualquer momento, ou no momento que for fechar a competência da folha, antes de fechar rodar o update abaixo: UPDATE PFPERFF SET PFPERFF.CODSECAO=PFUNC.CODSECAO FROM PFPERFF,PFUNC WHERE PFPERFF.CODCOLIGADA=PFUNC.CODCOLIGADA AND PFPERFF.CHAPA=PFUNC.CHAPA AND PFPERFF.ANOCOMP=(SELECT PPARAM.ANOCOMP FROM PPARAM) AND PFPERFF.MESCOMP=(SELECT PPARAM.MESCOMP FROM PPARAM) Grande abraço, Devailton 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Maurício da S Barros Postado 3 de Fevereiro de 2014 Tópicos Que Criei: 14 Tópicos/Dia: 0.00 Meu Conteúdo: 123 Conteúdo/Dia: 0.02 Reputação: 3 Pontos/Conquistas: 852 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 66 Denunciar Compartilhar Postado 3 de Fevereiro de 2014 Bom dia Bruna, Siga as seguintes etapas. Etapa 01 - Criar coluna adicional na tabela PFPERFF - Essa coluna armazenará o código da seção que o funcionário estava lotado no mês, ano e perído: USE [CORPORERM] GO ALTER TABLE [dbo].[PFPERFF] ADD [CODSECAO] [varchar](35) NULL ALTER TABLE [dbo].[PFPERFF] WITH CHECK ADD CONSTRAINT [FKPFPERFF_PSECAO] FOREIGN KEY([CODCOLIGADA], [CODSECAO]) REFERENCES [dbo].[PSECAO] ([CODCOLIGADA], [CODIGO]) GO Etapa 02 - A query abaixo serve para montar um UPDATE que após ser executado colocará o código da seção do funcionário no período corretamente (ANO, MÊS, NUMERO DO PERÍODO) - Executando a query, você verá o update montado, depois vc deve copiar esse update para nova query e executá-lo também: SELECT 'UPDATE PFPERFF SET CODSECAO='''+ ISNULL(CASE WHEN (select CODSECAO from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AND DTMUDANCA = (select max(pfhstsec.DTMUDANCA) from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) having max(pfhstsec.DTMUDANCA)=max(pfhstsec.DTMUDANCA)) group by codsecao having max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))=max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))) =NULL THEN (SELECT CODSECAO FROM PFUNC WHERE CODCOLIGADA=PFPERFF.CODCOLIGADA AND CHAPA=PFPERFF.CHAPA) ELSE (select CODSECAO from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AND DTMUDANCA = (select max(pfhstsec.DTMUDANCA) from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) having max(pfhstsec.DTMUDANCA)=max(pfhstsec.DTMUDANCA)) group by codsecao having max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))=max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))) END,(SELECT CODSECAO FROM PFUNC WHERE CODCOLIGADA=PFPERFF.CODCOLIGADA AND CHAPA=PFPERFF.CHAPA)) +''' FROM PFPERFF'+' WHERE PFPERFF.ANOCOMP='''+(CAST(ANOCOMP AS VARCHAR(4))) +''' and PFPERFF.MESCOMP='''+(CAST(MESCOMP AS VARCHAR(4))) +''' and PFPERFF.NROPERIODO='''+(CAST(NROPERIODO AS VARCHAR(4))) +''' and PFPERFF.CHAPA='''+(CAST(CHAPA AS VARCHAR(10))) +''' and PFPERFF.CODCOLIGADA='''+(CAST(CODCOLIGADA AS VARCHAR(10)))+'''' FROM PFPERFF ORDER BY CODCOLIGADA,ANOCOMP,MESCOMP,CHAPA,NROPERIODO A partir desse momento você já saberá de qual seção um determinado funcionário era em determinado momento apenas fazendo um select na tabela PFPERFF. Todo o histórico foi criado, agora você já poderá se beneficiar dessa informação. Os funcionários e os períodos existentes até a competência aberta nesse momento já possuem essa informação, mas existirá a necessidade de ir alimentando essa informação nas competências futuras. Para isso você tem duas alternativa, ou você executa o update acima a qualquer momento, ou no momento que for fechar a competência da folha, antes de fechar rodar o update abaixo: UPDATE PFPERFF SET PFPERFF.CODSECAO=PFUNC.CODSECAO FROM PFPERFF,PFUNC WHERE PFPERFF.CODCOLIGADA=PFUNC.CODCOLIGADA AND PFPERFF.CHAPA=PFUNC.CHAPA AND PFPERFF.ANOCOMP=(SELECT PPARAM.ANOCOMP FROM PPARAM) AND PFPERFF.MESCOMP=(SELECT PPARAM.MESCOMP FROM PPARAM) Grande abraço, Devailton Boa tarde, Devailton! Primeiramente que deixar meus parabéns pela sua iniciativa em compartilhar esse conhecimento! Segundo tenho duas perguntas: podemos adaptar esses updates para utilizar com o Rateio Fixo? E a cada vez que fizermos uma conversão da base teremos que rodar novamente o update? Obrigado. Maurício Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Devailton N. Santana Postado 3 de Fevereiro de 2014 Tópicos Que Criei: 30 Tópicos/Dia: 0.01 Meu Conteúdo: 225 Conteúdo/Dia: 0.04 Reputação: 18 Pontos/Conquistas: 1.434 Conteúdo Resolvido: 0 Dias Ganho: 11 Status: Offline Idade: 42 Autor Denunciar Compartilhar Postado 3 de Fevereiro de 2014 Boa tarde, Devailton! Primeiramente que deixar meus parabéns pela sua iniciativa em compartilhar esse conhecimento! Segundo tenho duas perguntas: podemos adaptar esses updates para utilizar com o Rateio Fixo? E a cada vez que fizermos uma conversão da base teremos que rodar novamente o update? Obrigado. Maurício Boa tarde Maurício, é sempre um prazer compartilhar conhecimentos e experiências, sempre tem alguém para acrescentar e te ajudar em algo... e assim vamos aprendendo mais e mais. Sobre os rateios fixos não precisamos "criar" o histórico porque o sistema já faz isso, ou seja, ele grava a movimentação por centro de custo mensalmente na tabela PFMOVCC, indicando em todas as competências e períodos que aquela movimentação é de determinado centro de custo. O ruim aqui é que na PFMOVCC não conseguimos base de cálculo de inss, de fgts e etc em campos calculados como na PFPERFF... na PFMOVCC são só os valores dos eventos rateados pelos centros de custos. Se você quer valores dos tributos por centro de custo poderá utilizar as informações da PFENCCC, lá tem PROVISÃO, RAT, FPAS (TERCEIROS), INSS EMPRESA e etc e por centro de custo, é um caminho legal. Sobre rodar o UPDATE, é o seguinte, como é uma informação adicional e que o sistema não foi preparado pela Totvs para salva-la você terá que rodar o update menor no momento que for liberar a competência da folha de pagamento (antes de liberar a competência, mas já com a folha totalmente fechada), assim, ele preencherá o campo CODSECAO da PFPERFF com a seção atual do funcionário, desse modo manterá o histórico sempre atualizado, mas supondo que alguma competência você esqueça de fazer isso, dái você poderá executar o update maior que ele irá atualizar todos anos e competências novamente. Mas isso não tem nenhuma relação com conversão ou atualização de versão e sim com as competências da folha. O campo adicional na tabela de períodos se manterá mesmo com as atualizações de versão do sistema não tendo e nem sendo nenhum problema. Ats., Devailton 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Maurício da S Barros Postado 4 de Fevereiro de 2014 Tópicos Que Criei: 14 Tópicos/Dia: 0.00 Meu Conteúdo: 123 Conteúdo/Dia: 0.02 Reputação: 3 Pontos/Conquistas: 852 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 66 Denunciar Compartilhar Postado 4 de Fevereiro de 2014 Boa tarde Maurício, é sempre um prazer compartilhar conhecimentos e experiências, sempre tem alguém para acrescentar e te ajudar em algo... e assim vamos aprendendo mais e mais. Sobre os rateios fixos não precisamos "criar" o histórico porque o sistema já faz isso, ou seja, ele grava a movimentação por centro de custo mensalmente na tabela PFMOVCC, indicando em todas as competências e períodos que aquela movimentação é de determinado centro de custo. O ruim aqui é que na PFMOVCC não conseguimos base de cálculo de inss, de fgts e etc em campos calculados como na PFPERFF... na PFMOVCC são só os valores dos eventos rateados pelos centros de custos. Se você quer valores dos tributos por centro de custo poderá utilizar as informações da PFENCCC, lá tem PROVISÃO, RAT, FPAS (TERCEIROS), INSS EMPRESA e etc e por centro de custo, é um caminho legal. Sobre rodar o UPDATE, é o seguinte, como é uma informação adicional e que o sistema não foi preparado pela Totvs para salva-la você terá que rodar o update menor no momento que for liberar a competência da folha de pagamento (antes de liberar a competência, mas já com a folha totalmente fechada), assim, ele preencherá o campo CODSECAO da PFPERFF com a seção atual do funcionário, desse modo manterá o histórico sempre atualizado, mas supondo que alguma competência você esqueça de fazer isso, dái você poderá executar o update maior que ele irá atualizar todos anos e competências novamente. Mas isso não tem nenhuma relação com conversão ou atualização de versão e sim com as competências da folha. O campo adicional na tabela de períodos se manterá mesmo com as atualizações de versão do sistema não tendo e nem sendo nenhum problema. Ats., Devailton Bom dia, Devailton! Muito obrigado pelos esclarecimentos. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
markitu Postado 4 de Fevereiro de 2014 Tópicos Que Criei: 110 Tópicos/Dia: 0.02 Meu Conteúdo: 1.391 Conteúdo/Dia: 0.21 Reputação: 17 Pontos/Conquistas: 8.047 Conteúdo Resolvido: 0 Dias Ganho: 9 Status: Offline Idade: 47 Dispositivo: Windows Denunciar Compartilhar Postado 4 de Fevereiro de 2014 Cara, muito bom. Já "penei" muito pra conseguir essa informação. Vou adaptar o script para Oracle e testar. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Paula Moreira Postado 4 de Fevereiro de 2014 Tópicos Que Criei: 16 Tópicos/Dia: 0.00 Meu Conteúdo: 77 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 545 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 33 Denunciar Compartilhar Postado 4 de Fevereiro de 2014 Faço meus relatórios utilizando o histórico das seções. Dificil é contabilizar retroativamente, na seção onde o funcionario estava lotado Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Devailton N. Santana Postado 4 de Fevereiro de 2014 Tópicos Que Criei: 30 Tópicos/Dia: 0.01 Meu Conteúdo: 225 Conteúdo/Dia: 0.04 Reputação: 18 Pontos/Conquistas: 1.434 Conteúdo Resolvido: 0 Dias Ganho: 11 Status: Offline Idade: 42 Autor Denunciar Compartilhar Postado 4 de Fevereiro de 2014 Faço meus relatórios utilizando o histórico das seções. Dificil é contabilizar retroativamente, na seção onde o funcionario estava lotado Ainda bem que minha contabilização é por centro de custo. rsrs Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Rodrigo Burgos Postado 4 de Fevereiro de 2014 Tópicos Que Criei: 236 Tópicos/Dia: 0.04 Meu Conteúdo: 798 Conteúdo/Dia: 0.13 Reputação: 3 Pontos/Conquistas: 6.333 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 44 Denunciar Compartilhar Postado 4 de Fevereiro de 2014 Muito boa dica!! Acho incrível como o Labore não possui histórico de centro de custos...e nem sombra de uma solução para isso! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 4 de Fevereiro de 2014 Tópicos Que Criei: 884 Tópicos/Dia: 0.13 Meu Conteúdo: 8.799 Conteúdo/Dia: 1.34 Reputação: 289 Pontos/Conquistas: 106.246 Conteúdo Resolvido: 0 Dias Ganho: 185 Status: Offline Idade: 51 Dispositivo: Linux Denunciar Compartilhar Postado 4 de Fevereiro de 2014 Gente, uma atualização de versão que contemple mudanças em tabelas pode sumir com isso heim !! Cuidado !! Eu sinceramente acho que o melhor seria a leitura nas tabelas de históricos, pois, o sistema guarda isso, e tem que estar certo, pois, é usado para anuais inclusive. E parabéns por compartilhar Devailton ! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Devailton N. Santana Postado 5 de Fevereiro de 2014 Tópicos Que Criei: 30 Tópicos/Dia: 0.01 Meu Conteúdo: 225 Conteúdo/Dia: 0.04 Reputação: 18 Pontos/Conquistas: 1.434 Conteúdo Resolvido: 0 Dias Ganho: 11 Status: Offline Idade: 42 Autor Denunciar Compartilhar Postado 5 de Fevereiro de 2014 Bom dia Rodrigo Burgos, realmente não existe um histórico para o centro de custo nos moldes dos históricos de seção, de afastamento e etc., provavelmente porque muitas empresas fazem rateio dos custos de mão-de-obra por diversos centros de custos e isso pode mudar a todo momento, não tendo a mesma ideia de seção que serve para alocar pessoa em locais ou departamentos por exemplo, que muda, mas não muda tanto e também não tem rateio. Se existisse o histórico de centro de custo, uma pessoa que é rateada por diversos centros de custos em determinada competência teria que ter o histórico desses tantos centros de custo nessa competência, fazendo que você tivesse uma tabela de históricos monstruosa. Você conseguirá montar um histórico de centro de custo utilizando as informações da tabela PFMOVCC, nela você terá CHAPA, ANO, MÊS, E CENTRO DE CUSTO, essas são informações suficiente para agrupar e fazer suas amarrações via sql por exemplo. O minha ideia com o CÓDIGO DA SEÇÃO nos períodos da ficha financeira (PFPERFF) é muito parecida com o que acontece com a PFMOVCC, pois, nela agente sabe exatamente que aquele lançamento para determinado funcionário em determinada competência é de determinado centro de custo... e a minha ideia era determinar que determinado período da ficha financeira é de determinada seção... com isso faço todas as amarrações e agrupamentos muito, mais muito mais fácil que utilizar o histórico de seções. Ats., Devailton Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Devailton N. Santana Postado 5 de Fevereiro de 2014 Tópicos Que Criei: 30 Tópicos/Dia: 0.01 Meu Conteúdo: 225 Conteúdo/Dia: 0.04 Reputação: 18 Pontos/Conquistas: 1.434 Conteúdo Resolvido: 0 Dias Ganho: 11 Status: Offline Idade: 42 Autor Denunciar Compartilhar Postado 5 de Fevereiro de 2014 Olá Jair, as atualizações de versão via Conversor não exclui essa coluna nova, tão pouco essa coluna nova causa algum problema para o conversor... tudo tranquilo. Já passei por duas atualizações e tudo correu bem. Imagino que nas conversões futuras isso também não seja empecilho. Jair e Paula Moreira, sobre utilizar os históricos das seções seria ótimo, daí não precisaríamos criar essa soluções "paliativas", mas eu sempre tive dificuldades com isso, vocês poderiam compartilhar exemplos de relatórios, planilhas e ect que utilizam histórico de seções conosco? preciso de novas visões, rsrs... Obrigado, Devailton Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
brunasantos Postado 5 de Fevereiro de 2014 Tópicos Que Criei: 12 Tópicos/Dia: 0.00 Meu Conteúdo: 44 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 345 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Denunciar Compartilhar Postado 5 de Fevereiro de 2014 Bom dia Bruna, Siga as seguintes etapas. Etapa 01 - Criar coluna adicional na tabela PFPERFF - Essa coluna armazenará o código da seção que o funcionário estava lotado no mês, ano e perído: USE [CORPORERM] GO ALTER TABLE [dbo].[PFPERFF] ADD [CODSECAO] [varchar](35) NULL ALTER TABLE [dbo].[PFPERFF] WITH CHECK ADD CONSTRAINT [FKPFPERFF_PSECAO] FOREIGN KEY([CODCOLIGADA], [CODSECAO]) REFERENCES [dbo].[PSECAO] ([CODCOLIGADA], [CODIGO]) GO Etapa 02 - A query abaixo serve para montar um UPDATE que após ser executado colocará o código da seção do funcionário no período corretamente (ANO, MÊS, NUMERO DO PERÍODO) - Executando a query, você verá o update montado, depois vc deve copiar esse update para nova query e executá-lo também: SELECT 'UPDATE PFPERFF SET CODSECAO='''+ ISNULL(CASE WHEN (select CODSECAO from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AND DTMUDANCA = (select max(pfhstsec.DTMUDANCA) from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) having max(pfhstsec.DTMUDANCA)=max(pfhstsec.DTMUDANCA)) group by codsecao having max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))=max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))) =NULL THEN (SELECT CODSECAO FROM PFUNC WHERE CODCOLIGADA=PFPERFF.CODCOLIGADA AND CHAPA=PFPERFF.CHAPA) ELSE (select CODSECAO from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AND DTMUDANCA = (select max(pfhstsec.DTMUDANCA) from pfhstsec where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) having max(pfhstsec.DTMUDANCA)=max(pfhstsec.DTMUDANCA)) group by codsecao having max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))=max(CONVERT(VARCHAR(6),pfhstsec.DTMUDANCA,112))) END,(SELECT CODSECAO FROM PFUNC WHERE CODCOLIGADA=PFPERFF.CODCOLIGADA AND CHAPA=PFPERFF.CHAPA)) +''' FROM PFPERFF'+' WHERE PFPERFF.ANOCOMP='''+(CAST(ANOCOMP AS VARCHAR(4))) +''' and PFPERFF.MESCOMP='''+(CAST(MESCOMP AS VARCHAR(4))) +''' and PFPERFF.NROPERIODO='''+(CAST(NROPERIODO AS VARCHAR(4))) +''' and PFPERFF.CHAPA='''+(CAST(CHAPA AS VARCHAR(10))) +''' and PFPERFF.CODCOLIGADA='''+(CAST(CODCOLIGADA AS VARCHAR(10)))+'''' FROM PFPERFF ORDER BY CODCOLIGADA,ANOCOMP,MESCOMP,CHAPA,NROPERIODO A partir desse momento você já saberá de qual seção um determinado funcionário era em determinado momento apenas fazendo um select na tabela PFPERFF. Todo o histórico foi criado, agora você já poderá se beneficiar dessa informação. Os funcionários e os períodos existentes até a competência aberta nesse momento já possuem essa informação, mas existirá a necessidade de ir alimentando essa informação nas competências futuras. Para isso você tem duas alternativa, ou você executa o update acima a qualquer momento, ou no momento que for fechar a competência da folha, antes de fechar rodar o update abaixo: UPDATE PFPERFF SET PFPERFF.CODSECAO=PFUNC.CODSECAO FROM PFPERFF,PFUNC WHERE PFPERFF.CODCOLIGADA=PFUNC.CODCOLIGADA AND PFPERFF.CHAPA=PFUNC.CHAPA AND PFPERFF.ANOCOMP=(SELECT PPARAM.ANOCOMP FROM PPARAM) AND PFPERFF.MESCOMP=(SELECT PPARAM.MESCOMP FROM PPARAM) Grande abraço, Devailton ]Muito obrigada irá me ajudar demais. Abraços Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Devailton N. Santana Postado 23 de Abril de 2014 Tópicos Que Criei: 30 Tópicos/Dia: 0.01 Meu Conteúdo: 225 Conteúdo/Dia: 0.04 Reputação: 18 Pontos/Conquistas: 1.434 Conteúdo Resolvido: 0 Dias Ganho: 11 Status: Offline Idade: 42 Autor Denunciar Compartilhar Postado 23 de Abril de 2014 Olá, Para quem testou, implementou e continua utilizando a minha sugestão de incluir o CÓDIGO DA SEÇÃO nos PERÍODOS da Ficha Financeira e tiver interesse em ter um HISTOGRAMA DE MÃO-DE-OBRA, no qual é possível saber exatamente quantos funcionários ATIVOS, DEMITIDOS, AFASTADOS, ETC. de determinada FUNÇÃO em determinada COMPETÊNCIA poderá utilizar a QUERY SQL SERVER abaixo. No cadastro de SEÇÕES na aba DADOS CONTÁBEIS se estiver preenchido o NÚMERO DO CENTRO DE CUSTO (código) essa QUERY irá levar esse CENTRO DE CUSTO ao lado da SEÇÃO, isso serve para termos um quantitativo também por centro de custo (se for o caso). O resultado dessa QUERY no Microsoft Excel utilizando a tabela dinâmica dá para ter uma porção de visões referente a quantitativo de mão-de-obra. Espero que sirva para alguém.... SELECT [COMPETÊNCIA],(select CODSECAO+' - '+DESCRICAO from PSECAO WHERE PSECAO.CODCOLIGADA=CODCOLIGADA AND PSECAO.CODIGO=CODSECAO) AS 'SEÇÃO', (SELECT GCCUSTO.CODCCUSTO+' - '+GCCUSTO.NOME FROM GCCUSTO WHERE GCCUSTO.CODCCUSTO=(select NROCENCUSTOCONT from PSECAO WHERE PSECAO.CODCOLIGADA=CODCOLIGADA AND PSECAO.CODIGO=CODSECAO) AND GCCUSTO.CODCOLIGADA=CODCOLIGADA) AS 'CENTRO DE CUSTO DA SEÇÃO' ,(SELECT PCODSITUACAO.DESCRICAO FROM PCODSITUACAO WHERE CODINTERNO=CODSITUACAO) AS 'SITUAÇÃO',COUNT(CHAPA) AS 'QUANTIDADE' ,(SELECT CODIGO+' - '+NOME FROM PFUNCAO WHERE PFUNCAO.CODCOLIGADA=CODCOLIGADA AND PFUNCAO.CODIGO=CODFUNCAO) AS 'FUNÇÃO' FROM (SELECT DISTINCT(CHAPA), ISNULL(CASE WHEN (select NOVASITUACAO from PFHSTSIT where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),PFHSTSIT.DATAMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AND DATAMUDANCA = (select max(PFHSTSIT.DATAMUDANCA) from PFHSTSIT where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),PFHSTSIT.DATAMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) having max(PFHSTSIT.DATAMUDANCA)=max(PFHSTSIT.DATAMUDANCA)) group by NOVASITUACAO having max(CONVERT(VARCHAR(6),PFHSTSIT.DATAMUDANCA,112))=max(CONVERT(VARCHAR(6),PFHSTSIT.DATAMUDANCA,112))) =NULL THEN 'A' ELSE (select NOVASITUACAO from PFHSTSIT where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),PFHSTSIT.DATAMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AND DATAMUDANCA = (select max(PFHSTSIT.DATAMUDANCA) from PFHSTSIT where CHAPA=PFPERFF.CHAPA and CONVERT(VARCHAR(6),PFHSTSIT.DATAMUDANCA,112)<=(CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) having max(PFHSTSIT.DATAMUDANCA)=max(PFHSTSIT.DATAMUDANCA)) group by NOVASITUACAO having max(CONVERT(VARCHAR(6),PFHSTSIT.DATAMUDANCA,112))=max(CONVERT(VARCHAR(6),PFHSTSIT.DATAMUDANCA,112))) END,'A') AS CODSITUACAO, (CAST(ANOCOMP AS VARCHAR(4))+CAST(CASE WHEN MESCOMP='1' THEN '01' WHEN MESCOMP='2' THEN '02' WHEN MESCOMP='3' THEN '03' WHEN MESCOMP='4' THEN '04' WHEN MESCOMP='5' THEN '05' WHEN MESCOMP='6' THEN '06' WHEN MESCOMP='7' THEN '07' WHEN MESCOMP='8' THEN '08' WHEN MESCOMP='9' THEN '09' WHEN MESCOMP='10' THEN '10' WHEN MESCOMP='11' THEN '11' WHEN MESCOMP='12' THEN '12' ELSE '0' END AS VARCHAR (2))) AS 'COMPETÊNCIA' ,CODSECAO,(SELECT CODFUNCAO FROM PFUNC WHERE PFUNC.CODCOLIGADA=PFPERFF.CODCOLIGADA AND PFUNC.CHAPA=PFPERFF.CHAPA) AS 'CODFUNCAO',CODCOLIGADA FROM PFPERFF ) AS HISTOGRAMADEMAODEOBRA GROUP BY [COMPETENCIA],CODSECAO,CODSITUACAO,CODFUNCAO order by [COMPETENCIA],CODSECAO,CODSITUACAO,CODFUNCAO Grande abraço, Devailton 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Stefanny Postado 13 de Outubro de 2014 Tópicos Que Criei: 0 Tópicos/Dia: 0 Meu Conteúdo: 1 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 5 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Denunciar Compartilhar Postado 13 de Outubro de 2014 Devailton Muito obrigada, por compartilhar seu conhecimento, já estava quase pirando aqui, quando encontrei esse tópico. Já executei o primeiro update para inclusão da coluna, mas o segundo, está com erro de sintaxe. Será que você poderia me ajudar?? Msg 512, Level 16, State 1, Line 1 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 17 de Outubro de 2014 Tópicos Que Criei: 884 Tópicos/Dia: 0.13 Meu Conteúdo: 8.799 Conteúdo/Dia: 1.34 Reputação: 289 Pontos/Conquistas: 106.246 Conteúdo Resolvido: 0 Dias Ganho: 185 Status: Offline Idade: 51 Dispositivo: Linux Denunciar Compartilhar Postado 17 de Outubro de 2014 Olá Jair, as atualizações de versão via Conversor não exclui essa coluna nova, tão pouco essa coluna nova causa algum problema para o conversor... tudo tranquilo. Já passei por duas atualizações e tudo correu bem. Imagino que nas conversões futuras isso também não seja empecilho. Jair e Paula Moreira, sobre utilizar os históricos das seções seria ótimo, daí não precisaríamos criar essa soluções "paliativas", mas eu sempre tive dificuldades com isso, vocês poderiam compartilhar exemplos de relatórios, planilhas e ect que utilizam histórico de seções conosco? preciso de novas visões, rsrs... Obrigado, Devailton Devailton, bom dia. Este post ficou pra trás e acabei não te respondendo a respeito. Sobre relatórios e modelos de querys, não tenho aqui agora, até porque fiquei um pouco afastado da parte de suporte, e atendimento em geral nos sistemas, mas precisando de ajuda, de repente posso tentar dar uma força. Você comentou acima também que não há qualquer problema nas conversões etc. Isso está correto em partes. Normalmente o sistema não mexe no que você alterou, mas eventualmente poderá ser remontada essa tabela ( já vi casos em outras ) e o sistema recria outra, e copia os dados pra lá, e existindo campos extras estes não são tratados, ficando no final, uma nova tabela sem seu campo. Mas isso é bem incomum, então para acontecer não é facil. Caso ocorra, nada que um backup não possa ajudar pra repor. Devailton Muito obrigada, por compartilhar seu conhecimento, já estava quase pirando aqui, quando encontrei esse tópico. Já executei o primeiro update para inclusão da coluna, mas o segundo, está com erro de sintaxe. Será que você poderia me ajudar?? Msg 512, Level 16, State 1, Line 1 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. UPDATE PFPERFF SET PFPERFF.CODSECAO=PFUNC.CODSECAO FROM PFPERFF,PFUNC WHERE PFPERFF.CODCOLIGADA=PFUNC.CODCOLIGADA AND PFPERFF.CHAPA=PFUNC.CHAPA AND PFPERFF.ANOCOMP=(SELECT PPARAM.ANOCOMP FROM PPARAM) AND PFPERFF.MESCOMP=(SELECT PPARAM.MESCOMP FROM PPARAM) Corrija este update para a query abaixo, pois, existindo mais de uma coligada poderá dar problema mesmo: UPDATE PFPERFF SET PFPERFF.CODSECAO=PFUNC.CODSECAO FROM PFPERFF,PFUNC,PPARAM WHERE PFPERFF.CODCOLIGADA=PFUNC.CODCOLIGADA AND PFPERFF.CHAPA=PFUNC.CHAPA AND PPARAM.CODCOLIGADA=PFUNC.CODCOLIGADA AND PFPERFF.ANOCOMP=PPARAM.ANOCOMP AND PFPERFF.MESCOMP=PPARAM.MESCOMP Tente novamente, pois, agora deve corrigir o problema que citou acima. Não testei aqui agora, pois, estou sem o query para poder validar, mas creio que seja isso mesmo. Corrija este update para a query abaixo, pois, existindo mais de uma coligada poderá dar problema mesmo: Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
João Lemos Postado 20 de Outubro de 2014 Tópicos Que Criei: 94 Tópicos/Dia: 0.02 Meu Conteúdo: 400 Conteúdo/Dia: 0.10 Reputação: 0 Pontos/Conquistas: 2.951 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 5 Denunciar Compartilhar Postado 20 de Outubro de 2014 (editado) Pode utilizar esse filtro na consulta. Onde ao executar o relatorio é só colocar o mes posterior na opção MES_N que trará a opção do mês que deseja. Ou seja quero informação do mês de janeiro, logo no filtro MES_N colocarei o mes de fevereiro. C = PFUNC AND C.CODCOLIGADA = PFHSTSEC1.CODCOLIGADA AND C.CHAPA = PFHSTSEC1.CHAPA AND PFHSTSEC1.DTMUDANCA = (SELECT MAX(PFHSTSEC2.DTMUDANCA) FROM PFHSTSEC PFHSTSEC2 WHERE PFHSTSEC2.CODCOLIGADA = C.CODCOLIGADA AND PFHSTSEC2.CHAPA = C.CHAPA AND C.CODCOLIGADA = PSECAO.CODCOLIGADA AND PFHSTSEC1.CODSECAO= PSECAO.CODIGO AND PFHSTSEC2.DTMUDANCA < TO_DATE('01/'|| :MES_N ||'/'|| :ANO_N,'DD/MM/RRRR')) Editado 20 de Outubro de 2014 por João Lemos Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.