Ir para conteúdo

Emerson_Egs

Consultores
  • Total de itens

    17
  • Registro em

  • Última visita

Sobre Emerson_Egs

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Conquistas de Emerson_Egs

Aprendiz

Aprendiz (3/10)

  • Primeiro Post
  • Colaborador
  • Primeira Semana Concluída
  • Primeiro Mês Completo
  • Um Ano se Passou

Distintivos Recentes

0

Reputação

  1. Bom dia!!! Já faz algum tempo que estamos utilizando está solução qui na empresa (4 Meses). Se alguém tiver interesse esta ai no anexo!! Foi utilizado mais ou menos a ideia do Emanuel, no entando, modificado algumas coisinhas para funcionar de acordo com o RM aqui na empresa. timeout.rar
  2. aqui na empresa ja estamos usando log de auditoria há algum tempo, no entanto não é o q a RM disponibiliza.... O nosso finciona da seguinte forma: Tem uma tabela, por ex: Log_tmov nesta tabela fica registrado todas as alterações na tablela tmov. As alterações são disparadas por uma trigger q esta na tabela tmov....segue abaixo a trigger CREATE TRIGGER TR_LOG_TMOV ON TMOV FOR INSERT, UPDATE, DELETE AS DECLARE @vOperacao varchar(15), @vIsIns INT, @vIsDel INT SET @vIsIns = (CASE WHEN EXISTS(SELECT * FROM INSERTED) THEN 1 ELSE 0 END) SET @vIsDel = (CASE WHEN EXISTS(SELECT * FROM DELETED) THEN 1 ELSE 0 END) IF @vIsIns = 1 AND @vIsDel = 1 SET @vOperacao = 'UPDATE' ELSE IF @vIsIns = 1 SET @vOperacao = 'INSERT' ELSE IF @vIsDel = 1 SET @vOperacao = 'DELETE' IF (@vOperacao = 'DELETE' OR @vOperacao = 'UPDATE' ) BEGIN INSERT INTO LOG_TMOV(IDMOV, NUMEROMOV, DATAEMISSAO, CODFILIAL, CODCFO, SERIE, CODTMV, TIPO, STATUS, VALORBRUTO, VALORLIQUIDO, VALOROUTROS, OBSERVACAO, CODCCUSTO, STATUSEXPORTCONT, CODLOTE, USUARIOCRIACAO, DATACRIACAO, DATACONTABILIZACAO, DATAALTERACAO, TIPOOPERACAO, USUARIOALTERACAO, CODSISTEMA, COMPUTERNAME) SELECT IDMOV, NUMEROMOV, DATAEMISSAO, CODFILIAL, CODCFO, SERIE, CODTMV, TIPO, STATUS, VALORBRUTO, VALORLIQUIDO, VALOROUTROS, OBSERVACAO, CODCCUSTO, STATUSEXPORTCONT, CODLOTE, USUARIOCRIACAO, DATACRIACAO, DATACONTABILIZACAO, GETDATE(), @vOperacao, USERNAME, CODSISTEMA, COMPUTERNAME FROM DELETED TAB LEFT OUTER JOIN GLOGIN CN ON (CN.SPID = @@SPID) END IF (@vOperacao = 'INSERT') BEGIN INSERT INTO LOG_TMOV(IDMOV, NUMEROMOV, DATAEMISSAO, CODFILIAL, CODCFO, SERIE, CODTMV, TIPO, STATUS, VALORBRUTO, VALORLIQUIDO, VALOROUTROS, OBSERVACAO, CODCCUSTO, STATUSEXPORTCONT, CODLOTE, USUARIOCRIACAO, DATACRIACAO, DATACONTABILIZACAO, DATAALTERACAO, TIPOOPERACAO, USUARIOALTERACAO, CODSISTEMA, COMPUTERNAME) SELECT IDMOV, NUMEROMOV, DATAEMISSAO, CODFILIAL, CODCFO, SERIE, CODTMV, TIPO, STATUS, VALORBRUTO, VALORLIQUIDO, VALOROUTROS, OBSERVACAO, CODCCUSTO, STATUSEXPORTCONT, CODLOTE, USUARIOCRIACAO, DATACRIACAO, DATACONTABILIZACAO, GETDATE(), @vOperacao, USERNAME, CODSISTEMA, COMPUTERNAME FROM INSERTED TAB LEFT OUTER JOIN GLOGIN CN ON (CN.SPID = @@SPID) END
  3. Emerson_Egs

    SQL Server

    Então os movimentos que aparecem na visão tem que ter o numero do contrato, faz o seguinte, executa somente o que esta abaixo no quary analyzer, depois da uma olhada nos movimentos que a consulta retorna, estas tem que estar com o numero preenchido...verifique tb se não da nenhum erro na execução: DECLARE @CODIGOCONTRATO VARCHAR (30) DECLARE @IDCNT INT DECLARE @IDMOV INT DECLARE CURSORCONTRATOS CURSOR FOR -- Declarando o cursor. SELECT distinct TCNT.CODIGOCONTRATO,TITMMOV.IDCNT, TMOV.IDMOV FROM TMOV, --- movimento TITMMOV, ---itens TCNT ---contratos WHERE TMOV.IDMOV=TITMMOV.IDMOV AND TCNT.IDCNT=TITMMOV.IDCNT OPEN CURSORCONTRATOS FETCH NEXT FROM CURSORCONTRATOS INTO @CODIGOCONTRATO, @IDCNT, @IDMOV WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TMOV SET TMOV.CAMPOLIVRE1 = @CODIGOCONTRATO WHERE IDMOV = @IDMOV FETCH NEXT FROM CURSORCONTRATOS INTO @CODIGOCONTRATO, @IDCNT, @IDMOV END CLOSE CURSORCONTRATOS DEALLOCATE CURSORCONTRATOS
  4. Emerson_Egs

    SQL Server

    se vc executar esta consulta ela retorna algum dado?? SELECT distinct TCNT.CODIGOCONTRATO,TITMMOV.IDCNT, TMOV.IDMOV FROM TMOV, --- movimento TITMMOV, ---itens TCNT ---contratos WHERE TMOV.IDMOV=TITMMOV.IDMOV AND TCNT.IDCNT=TITMMOV.IDCNT
  5. Emerson_Egs

    SQL Server

    BOM DIA!!! Da uma olhada ai...acho que essa trigger vai te ajudar, teste ela em uma base teste!! CREATE TRIGGER TR_CONTRATOS ON TCNT FOR INSERT, UPDATE AS DECLARE @CODIGOCONTRATO VARCHAR (30) DECLARE @IDCNT INT DECLARE @IDMOV INT DECLARE CURSORCONTRATOS CURSOR FOR -- Declarando o cursor. SELECT distinct TCNT.CODIGOCONTRATO,TITMMOV.IDCNT, TMOV.IDMOV FROM TMOV, --- movimento TITMMOV, ---itens TCNT ---contratos WHERE TMOV.IDMOV=TITMMOV.IDMOV AND TCNT.IDCNT=TITMMOV.IDCNT OPEN CURSORCONTRATOS FETCH NEXT FROM CURSORCONTRATOS INTO @CODIGOCONTRATO, @IDCNT, @IDMOV WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TMOV SET TMOV.CAMPOLIVRE1 = @CODIGOCONTRATO WHERE IDMOV = @IDMOV FETCH NEXT FROM CURSORCONTRATOS INTO @CODIGOCONTRATO, @IDCNT, @IDMOV END CLOSE CURSORCONTRATOS DEALLOCATE CURSORCONTRATOS GO
  6. Emerson_Egs

    SQL Server

    Claudio...vc sabe qual o relacionamento da tabela de contratos com a TMOV...ai te passo uma trigger pra fazer isso...
  7. Bom dia!! Para alterar os titulos da aba ''Outros Dados'' Acesse Opções/Parâmetros/Contratos/Campos Livres o mesmo server para alterar o titulo dos campos da aba ''complemento'' Opções/Parâmetros/Contratos/Campos Livres
  8. tenta utilizar ao inves de null sum(.0000)... SELECT (Select codnat from dnatureza where codcoligada=tmov.codcoligada and idnat=tmov.idnat) as CFOP, (sum(c.quantidade*c.precounitario)/sum(tmov.valorbruto))*sum(tmov.valorliquido) as Valor_TOTAL_IPI, sum(c.quantidade*c.precounitario) as Base_IPI, sum(a.valor) as IPI, sum(.0000) as BASE_ICMS, sum(.0000) as ICMS, sum(.0000) as Valor_TOTAL_ICMS FROM tmov (nolock) inner join titmmov c on (tmov.codcoligada=c.codcoligada and tmov.idmov=c.idmov) inner join (select distinct codcoligada,idmov,codtrb,valor,NSEQITMMOV from ttrbmov (nolock) where codtrb = 'Ipi' and idmov in (select idmov from tmov where status <> 'c')) a on (c.codcoligada = a.codcoligada and c.idmov = a.idmov and a.NSEQITMMOV=c.NSEQITMMOV) WHERE (tmov.codcoligada= '1') and (tmov.status <> 'C') and (tmov.dataemissao>= '2007-12-01') and (tmov.dataemissao<= '2007-12-31') and ( (tmov.CODTMV like '2.2.__' or tmov.CODTMV ='2.6.01')) and (tmov.idnat in (select idnat from dnatureza where codcoligada= '1' and codnat like '_.___.___')) GROUP BY (tmov.idnat), tmov.codcoligada union all SELECT max(dnatureza.codnat) as CFOP, sum(.0000) as Valor_TOTAL_IPI, null as Base_IPI, sum(.0000) as ipi, sum(tmov.valorbruto) as Base_ICMS , sum(b.valor) as ICMS , sum(tmov.valorliquido) as Valor_TOTAL_ICMS FROM tmov (nolock) inner join dnatureza (nolock) on (tmov.codcoligada=dnatureza.codcoligada and tmov.idnat=dnatureza.idnat) inner join (select distinct codcoligada,idmov,codtrb,valor from ttrbmov (nolock) where codtrb = 'ICMS' and idmov in (select idmov from tmov where status <> 'c')) b on (tmov.codcoligada = b.codcoligada and tmov.idmov = b.idmov) WHERE (tmov.codcoligada= '1') and (tmov.status <> 'C') and (tmov.dataemissao>= '2007-12-01') and (tmov.dataemissao<= '2007-12-31') and ( (tmov.CODTMV like '2.2.__' or tmov.CODTMV ='2.6.01')) and (dnatureza.codnat like '_.___.___') group BY (dnatureza.codnat), dnatureza.codcoligada
  9. Ah sim...Qto a GAUTOINC, ela esta sendo atualizada sim...pq se não atualizo depois não consigo inserir movimentos direto pelo rm.... Também descobri qual era o problema....O nucleus está parametrizados para utilizar os tipos de pagamento da tabela TPAGTO...entaum estava faltando eu dar um insert na tabela TMOVPGTO que guarda o relacionamento. Obrigado!!
  10. Bom dia!!! Alguém ja inseriu algum dado no rm diretamente pelo banco....??? Estou precisando de ajunda..hehehe Aqui na empresa trabalhamos com dois sistemas, o RM e o sistema da loja. Todos os dados deste sistema da loja precisam ser integrados ao RM. Eles devem ser lançados no movimento de faturamento...gerar financeiro e contabilidade. Para isto a rm disponibiliza a importação de arquivos de texto, no entando isto não atende nossas necessidades, e por isso desenvolvemos um importador que insere diretamente no banco de dados. O probelam é o seguinte...inserimos em todas as tabelas...tmov, tmovcont,clctlote, tpagto, flan, fcfo, fcfodef,titmmov...no entando na tela de faturamento, aquele botão de faturamento não fica habilitado...alguém sabe se existe mais alguma tabela a ser inserida?? Emerson... evite colocar o título do Post todo em MAIÚSCULAS.
  11. Eu criei uma nova tabela para ficar armazenados os usuários que foram derrubados, dei o nome de usuarios_derrubados, no momento em que a trigger derruba os usuários ela ja inclui um log nesta tabela. A tabela glogin_kill_history eu estou utilizando para fazer a soma do tempo q o usuário está logado, pois a cada 5 minutos o tempo de utilização zera. Então se a pessoa ficou 5 minutos esse tempo fica gravado na tabela glogin_kill_history. Quando o tempo utrapassar 10 minutos ele sera derrubada. Esse Time out ficou show de bola, temos apenas 20 licenças, o pessoal ficava toda hora "não tenho acesso", com o time out, sempre temos uma ou duas licenças livres, pois naum usou, caiu. Não fica logado só pra segurar uma vaga...hehehehe É isso ai...Valeu Emanuel!!!
  12. Boa Tarde!! Emanuel, achei muito interessante essa forma de aconpanhar se os usuários estão realmente utilizando o sistema. Aqui na empresa tinhamos um problemão com acessos. Baseado na sua procedure que monitora usuários, desenvolvi aqui para a empresa o time out, ta funcionando perfeitamente, sem reclamações e sempre com algum acesso livre. Utilizei sua procedure e além dela criei duas triggers. O que acontece: Sua procedure manda para a tabela glogin_kill_histore os usuários q estão sem utilizar o sistema a mais de 4 minutos(este processo roda a cada 2 minutos). Criei uma trigger q soma o tempo, se o usuário ficar sem utilizar o sistema acima de 10 minutos(Tempo estipulado aqui na empresa) ele é deletado da glogin. A procedure rodando de 2 em 2 minutos e pegando apenas usuários q estejam logados a mais de 4 minutos sempre irá pegar usuários VOADORES..hehehe. Se usuário não estiver utilizando o sistema, na primeira vez a procedure ira pegar ele com 4 ou cinco minutos, para a procedure pegar esse usuário novamente, ele precisara ficar pelo menos mais 4 ou 5 minutos sem utilizar. A cada 17 minutos tem uma outra trigger q limpa a tabela glogin_kill_history. Se alguem tiver interesse...é so entrar em contato!
  13. Boa tarde!! JA tentamos fazer isto, também não funciona....O q está acontecendo é o seguinte. EX: No computador X entro com a senha do administrador e acesso o rm Officina via terminal service(no terminal service também utilizo a senha do administrador), consigo incluir novas OS(Utilizo o sistema de forma normal). No computador y entro com a mesma senha de administrador, faço a conexão com o terminal service(com a mesma senha que efetuei o login no computador x), consigo fazer operações de consultas, no entanto quanto tento efetuar alguma alteração ou gravação ele da o erro.... Pregunto..rsrsrsrs Se os usuários de login são os mesmos, como que em um pc consigo acessar normalmente o Officina e em outro PC da esse erro????
  14. Bom dia!! JA tentamos sim! ma não tivemos sucesso, até agora não deram retorno sobre a ocorrência.
×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.