Handerson Xavier Postado 17 de Abril de 2012 Tópicos Que Criei: 10 Tópicos/Dia: 0.00 Meu Conteúdo: 26 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 240 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 54 Dispositivo: Windows Denunciar Compartilhar Postado 17 de Abril de 2012 Bom dia. Preciso gerar a IN86 do primeiro trimestre de 2007. E nossos lancamentos fiscais não tem a informação de PIS/COFINS no campo OUTROS TRIBUTOS do item do lancamento (DTRBITEM)nesse periodo. Precisamos editar manualmente certa de 10.000 registros informando codigo do tributo, base, valor, situacao tributaria e aliquota. No lancamento a tabela de OUTROS TRIBUTOS (DTRBLAF) basta você informar o tributo que todos os campos são preenchidos automaticamente. Então pensei em fazer as alterações manuais na tabela DTRBLAF, onde só informo o tributo e depois fazer um INSERT via banco do dados, porém estou tendo dificuldades com a chave primária. Veja: insert into DTRBITEM (CODCOLIGADA, IDLAF, CODTRB, BASETRB, ALIQTRB, VALORTRB, SITTRIBUTARIA) values (select CODCOLIGADA, IDLAF, CODTRB, BASETRB, ALIQTRB, VALORTRB, SITTRIBUTARIA from DTRBLAF) where DTRBLAF.idlaf = '224495' ERRO: Cannot insert the value NULL into column 'IDTRBITEM', table 'EXEMPLO.dbo.DTRBITEM'; column does not allow nulls. INSERT fails. The statement has been terminated. Se alguem puder ajudar... Obrigado, Handerson Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Nego Del Postado 17 de Abril de 2012 Tópicos Que Criei: 8 Tópicos/Dia: 0.00 Meu Conteúdo: 60 Conteúdo/Dia: 0.01 Reputação: 3 Pontos/Conquistas: 388 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 50 Denunciar Compartilhar Postado 17 de Abril de 2012 Handerson , A mensagem diz que vc não pode incluir um valor nulo no campo IDTRBITEM na tabela DTRBITEM , ou seja , vc também tem que colocar um valor pra essa coluna na sentença e pra achar esse valor vai ter que procurar no próprio lançamento o IDPRD do produto , mas claro que só daria certo se o lançamento tiver apenas um IDPRD . Acho que o ideal é realmente exportar para uma planilha excel a tabela TITMMOV e com as informações do período e formular um script para inserir os dados necessários juntando com a DTRBITEM , pode demorar um pouco mais , mas não vai ter erro na inclusão . Mas o pessoal que tem mais experiência aqui pode ajudar com outras idéias . Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Dani Postado 17 de Abril de 2012 Tópicos Que Criei: 5 Tópicos/Dia: 0.00 Meu Conteúdo: 37 Conteúdo/Dia: 0.01 Reputação: 3 Pontos/Conquistas: 278 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Denunciar Compartilhar Postado 17 de Abril de 2012 Tenta sem parênteses. insert into DTRBITEM (CODCOLIGADA, IDLAF, CODTRB, BASETRB, ALIQTRB, VALORTRB, SITTRIBUTARIA) select CODCOLIGADA, IDLAF, CODTRB, BASETRB, ALIQTRB, VALORTRB, SITTRIBUTARIA from DTRBLAF where DTRBLAF.idlaf = '224495' Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Ronieri Postado 17 de Abril de 2012 Tópicos Que Criei: 27 Tópicos/Dia: 0.00 Meu Conteúdo: 147 Conteúdo/Dia: 0.02 Reputação: 5 Pontos/Conquistas: 1.023 Conteúdo Resolvido: 0 Dias Ganho: 5 Status: Offline Idade: 46 Denunciar Compartilhar Postado 17 de Abril de 2012 Segue exemplo para inserir o cofins, basta vc alterar o filtro e depois criar outro para inserir p PIS.. /* insere COFINS DTRBITEM */ begin tran ins_cof_calc declare @id int set @id = (select VALAUTOINC from gautoinc where CODCOLIGADA = 1 and CODAUTOINC = 'IDTRBITEM') insert dTRBITEM select 1, -- codcoligada (ROW_NUMBER() OVER(partition by di.codcoligada ORDER BY di.codcoligada, di.idlaf, numitem ) + @id), -- idtrbitem d.idlaf, -- idlaf di.numitem, -- numitem 'COFINS' , -- codtrb isnull (di.VALORMERC, (QTDEPRD * precoprd)), -- basetrb 7.6000, -- aliqtrb convert (numeric(18,4),round ((isnull (di.VALORMERC, (QTDEPRD * precoprd)) * 0.0760),2)), 0.0000, -- vlristento Null, -- tipotributacao '50', -- sittributaria Null, -- idperissmunicipio 0.0000, -- aliquotaporvalor Null -- codundreferencia from dlaf d (nolock) inner join DITEM di (nolock) on d.IDLAF = di.IDLAF and d.codcoligada = di.CODCOLIGADA inner join TMOV t (nolock) on t.IDMOV = d.IDMOV where not exists ( select * from dTRBITEM dit where di.IDLAF = dit.IDLAF and di.NUMITEM = dit.NUMITEM and di.codcoligada = dit.CODCOLIGADA and dit.CODTRB = 'COFINS') d.IDLAF = 240044 order by d.IDLAF, di.NUMITEM update gautoinc set VALAUTOINC = (select MAX (idtrbitem) from dTRBITEM where CODCOLIGADA = 1) where CODAUTOINC = 'IDTRBITEM' commit tran ins_cof_calc 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.