Ir para conteúdo
  • Cadastre-se

bnobre

Membros Pro
  • Total de ítens

    1.491
  • Registro em

  • Última visita

  • Days Won

    4

Tudo que bnobre postou

  1. Olá a todos, Gostaria de saber, tanto para NFCe quanto para NFe, se no Rio de Janeiro o valor do ICMS desonerado (vICMSDeson) é subtraído ao valor do total do documento (vNF)? Desde já agradeço a atenção de todos.
  2. Gostaria de alertar os amigos que o cálculo que eu coloquei no 1º item serve apenas para CSTs de isenção, 30 e 40 no caso. Para os CSTs com Redução de Base de Cálculo, 20 e 70 no caso, deve-se usar a fórmula abaixo: Valor do ICMS desonerado = Preço na Nota Fiscal * (1 - (Alíquota * (1 - Percentual de redução da BC))) / (1 - Alíquota) - Preço na Nota Fiscal Fonte: A mesma do 1º item
  3. Olá EMBarbosa, Tudo bom? Realmente tentei escrever 65 à esquerda da vírgula e 30 decimais e ele não aceitou. Mas o formato (21,10) APARENTEMENTE funcionou e só nesse, pois tentei escrever números nesse comprimento e gravou aparentemente normal. Estou usando o formato certo para a minha necessidade (21,10) ? Qual você usa em seu banco para armazenas todas essas casas decimais possíveis da tag vUnCom?
  4. bnobre

    Casas Decimais no MySQL

    Olá a todos, Precisei agora mudar o número de casas decimais de um campo DOUBLE chamado "vuncom" em minha base de dados MySQL. Até então tal campo era DOUBLE(10,3), mas para seguir a regra do manual da NFe, precisei modificar o mesmo para (21,10), de modo que o mesmo passasse a aceitar até 11 dígitos à esquerda da vírgula com até 10 casas decimais . Nisso descobri que o campo DOUBLE não aceitava tal intervalo, e precisaria usar o tipo DECIMAL para tal e com o mesmo funcionou perfeitamente. Pesquisei sobre a diferença entre o FLOAT, DOUBLE e DECIMAL no seguinte link: https://dev.mysql.com/doc/refman/8.0/en/numeric-type-overview.html. Mas alguns pontos do texto me geraram dúvidas, pois conflitaram com testes que realizei em meu computador Windows XP. 1º - O texto é exato ao falar que o tipo DECIMAL aceita até 65 números à esquerda da vírgula e 30 DECIMAIS, já ao falar sobre o FLOAT e DOUBLE o texto passa valores aproximados de acordo com o hardware. Como assim o hardware? O hardware seria o sistema operacional? 2º - O texto menciona que o tipo FLOAT tem aproximadamente uma precisão de até 7 casas decimais, mas em meus testes o mesmo só aceitou valores numéricos com até 6 dígitos INCLUINDO as casas decimais. Ex.: 1234,56 - 123,456 - 12,3456... Porque isso? 2º - O texto menciona que o tipo DOUBLE tem aproximadamente uma precisão de até 15 casas decimais, mas em meus testes o mesmo só aceitou valores numéricos com até 15 dígitos INCLUINDO as casas decimais. Ex.: 123456789123,456 - 123456789,123456 - 12345678912345,6... Porque isso? Desde já agradeço a atenção de todos
  5. Valeu BigWings... Você sabe qual o manual mais recente que sugere os itens que compõe a vNF?
  6. Olá a todos, Gostaria de saber se o Total do Imposto de Importação (ICMSTot.vII) deve ser incluído no Total do Valor da Nota Fiscal (ICMSTot.vNF)???? PS: Em homologação a SEFAZ aceita SEM INCLUIR. Desde já agradeço a atenção de todos
  7. Eu imaginei, mas queria uma confirmação... Obrigado pela rápida resposta... Abraços
  8. Olá a todos, Tenho uma dúvida que pode parecer trivial para muitos, mas na falta de certeza resolvi perguntar. Nas NTs, quando se explica as tags, algumas colunas TAMANHO vem com valores como por exemplo: Observem a IdEstrangeiro, o tamanho da mesma é 5-20. O que significa esse "5-20"? Desde já agradeço a atenção de todos
  9. Rapaz, entao vai demorar mesmo pois eu também não sei trabalhar com classes e nem sei o que é ORM. Vou tentar criar esses valores de ID temporariamente com inteiro negativos (pois evito conflitos com os IDs em uso que são positivos) e depois associar aos mesmos os valores corretos gerados pelo banco ao CONFIRMAR.
  10. A grande complexidade que eu vejo é associar corretamente os registros das subtelas às telas antes de enviar tudo ao banco, pois mesmo em memória se eu não especificar um ID relacionando eles não irá ocorrer a separação, ex: Adição 1 da D1 do Item1, Adição 2 da DI2 do Item2... Ao meu ver terei que criar valores de IDs temporários para que essa associação entre as telas aconteça, com isso as Adições serão associadas às DIs que serão associadas aos Itens da NFe corretamente. Aí na hora de confirmar jogo tudo no banco substituindo os IDs pelo valores gerados pelo mesmo... Estou certo?
  11. Boas dicas... Você disse já ter feito algo similar jogando tudo na memória e enviando ao fim no banco, o problema é que depois de confirmado o cadastro da NFe o usuário AINDA pode modificar ela posteriormente, tornando mais complexo o tratamento, pois ele poderia adicionar/editar/excluir DIs posteriormente, mas creio que a saída está nas suas sugestões. Ainda tem parte desse código que usou ou algum exemplo para eu me basear? Desde já agradeço a ajuda
  12. Olá EMBarbosa, tudo bom meu amigo? Vamos lá, infelizmente mesmo se existir essa mudança de comportamento no componente irá surgir um problema MUITO maior, que também me impede de forçar o post na tabela master antes, vou explicar com maior riqueza de detalhes o que ocorre, pois com certeza alguém já passou por isso e poderá compartilhar a solução: Eu possuo um emissor de NFe e o preenchimento dos campos principais referentes a tela principal ficam na TBL_NFE, tais como serie, nnf, emitente, demi, etc. Porém é óbvio que precisaria de outras tabelas se relacionando com a TBL_NFE, tais como TBL_NFE_ITENS(onde ficam detalhes dos produtos da nota), TBL_NFE_REFERENCIADAS (onde armazeno os detalhes de notas referenciadas a essa NFe), dentre outras, cada uma com sua própria tela de preenchimento de campos que é chamada pela tela principal do emissor. Vou simular a utilização do sistema: 1° - O usuário na tela principal clica em incluir, a TBL_NFE fica em modo Insert e o mesmo começa a preencher os dados da referida tela/tabela, tais como série, número da nota, emitente, etc. Observe que não houve até então um Post através do botão CONFIRMAR da tela, portanto o PK dessa tabela (id_nfe) está 0, pois é um campo AutoIncrement do MySQL. 2° - O usuário através da tela principal chama a subtela para preenchimento dos produtos que alimentarão a TBL_NFE_ITENS que está associada a TBL_NFE através da FK id_nfe presente em ambas. Como ainda não sei se o usuário vai CONFIRMAR ou irá cancelar a inserção dessa NFe, abro a TBL_NFE_ITENS em CachedUpdates = True para armazenar os dados em memória e só Commitar se o botão CONFIRMAR na tela principal for clicado. Aqui já tem uma situação "atípica" pois observe que carrego a TBL_NFE_ITENS com a FK tendo valor 0, pois é o valor da PK da TBL_NFE no momento, como não existe nenhuma NFe com essa ID = 0 ele exibe corretamente só os itens que estou cadastrando na hora, mas na hora de clicar no botão CONFIRMAR da tela principal preciso gravar primeiro (conforme você sugeriu) a TBL_NFE, descobrir o valor gerado na PK da mesma (pois é AutoIncrement) e alimentar os itens da TBL_NFE_ITENS com esse valor correto (pois até o momento não esqueça que está 0). Faço isso com todas as telas/tabelas vinculadas a TBL_NFE que preciso há anos e deu certo até o momento. Só que agora... 3º - Agora tenho a TBL_NFE_ITENS_DI que tem a sua própria tela para preenchimento de seus campos assim como as tabelas vinculadas a TBL_NFE, só que ela é DIFERENTE pois é vinculada a TBL_NFE_ITENS que por sua vez é vinculada a TBL_NFE. Se eu usar a metodologia descrita na segunda parte irei ter problemas, pois vamos supor que eu queira ver as DIs do PRODUTO1, vou clicar em Editar o PRODUTO1 na tela principal, irá me abrir a tela de preenchimento desse produto que possui como PK (id_nfe_itens) o valor 0 (pois TAMBÉM está em Insert) da TBL_NFE_ITENS, depois vou clicar em DIs que vai me abrir a tela de preenchimento das DIs desse produto da TBL_NFE_ITENS_DI com a FK (id_nfe_itens) = 0, após preencher todos as DIs irei fechar a tela de DI, depois fechar a tela de produtos e voltar a tela principal de emissão da NFe. Aí ao tentar abrir a tela de preenchimento de outro produto, depois a tela de DIs desse outro produto irá aparecer todas as DIs do primeiro, pois todos os produtos no momento estão com a PK (id_nfe_itens) = 0. E como pode constatar eu não posso simplesmente gravar a tabela PAI antes, pois quero possibilitar ao meu cliente a possibilidade de CANCELAR toda a inserção. E isso ainda piora com a outra subtela de "Adições de DI", que é uma subtela da DI, que por sua vez é de Itens que é da tela principal. Espero que eu tenha conseguido passar todo o cenário, pois é meio complexo. Eu nunca precisei ter mais de uma subtela/subtabela, então o procedimento realizado no segundo passo sempre funcionou comigo durante anos, mas agora que precisei acrescentar essa parte de DIs em meu emissor fui gerar essa nova hierarquia de subtela e me deparei com essa problemática. Como vocês agem nesse caso?
  13. Olá a todos, Utilizo Delphi 2010 + Zeos para conexão com MySQL no seguinte esquema de Banco de dados: //Tabela de Declarações de Importação tbl_nfe_itens_di: id_nfe_itens_di - [integer, not null, auto_increment, pk], ndi [varchar(12)], ddi [date] //Tabela de Adições de Declarações de Importação tbl_nfe_itens_di_adi: id_nfe_itens_di_adi - [integer, not null, auto_increment, pk], id_nfe_itens_di - [integer, not null, fk], nadi [integer] No Delphi, utilizo a propriedade MasterSource do componente para tbl_nfe_itens_di_adi do tipo TZQuery para ligá-lo à tbl_nfe_itens_di, funciona perfeitamente para TUDO, exceto quando se dá o seguinte quadro: preciso inserir uma Adição quando a Declaração de Importação ainda não tem um ID (tbl_nfe_itens_di está com um registro novo também, portanto ID ainda está nulo), o campo tbl_nfe_itens_di_adi.id_nfe_itens_di é preenchido com 0. Quando dou o POST na tabela tbl_nfe_itens_di, ele primeiro dá POST nos datasets DETALHES (no caso, tbl_nfe_itens_di_adi), gerando uma exceção do banco de dados, porque a Adição está tentando ser salva antes da Declaração de Importação, com o campo que identifica a Declaração de Importação(id_nfe_itens_di) nulo. Como os amigos contornam isso? Desde já agradeço a atenção de todos
  14. Olá a todos, Um cliente meu precisou emitir uma nota de importação e como meu emissor NFe ainda não está preparado para tal, usei o emissor gratuito do Sebrae para resolver temporariamente o problema. Agora implementando as devidas tags em meu emissor observei que a NFe gerada no gratuito foi autorizada com a tag idEstrangeira sem ser preenchida, conforme imagem abaixo: A questão é que de acordo com a Nota Técnica 2013/005 (final da página 11), consta na coluna Ocor. da tag idEstrangeira o valor 1-1, que até então eu entendo que significa campo obrigatório, estou errado? Caso eu esteja certo, como a Fazenda autorizou essa NFe sem o preenchimento da tag idEstrangeiro? Desde já agradeço a atenção de todos
  15. Olá BigWings... Então, quando estava configurado para tzPCN o componente ignorava o fuso horário do Windows e usava seu próprio código para definir o fuso horário, isso era bom pois nem sempre o Windows acertava. Mas como daqui para frente não tem mais horário de verão eu fiquei curioso se tal código havia sido atualizado. Desde já agradeço a ajuda
  16. Olá a todos, Em uma parte de meu sistema eu permito que o usuário configure a propriedade ACBrNFe1.Configuracoes.WebServices.TimeZoneConf.ModoDeteccao para: Sistema, PCN ou Manual. No ano passo o PCN configurava manualmente o horário de verão com as datas vigentes da época, mas agora com o fim do horário de verão o PCN foi ajustado para tal? Desde já agradeço a atenção de todos
  17. Olá a todos, Entrou em vigor hoje a NT 2019.001 versão 1.30 e na mesma surgem novas validações relacionadas ao Benefício Fiscal. Ao menos aqui no RJ, produtos com CST 40 são obrigados a informar o código de Benefício Fiscal, Valor do ICMS Desonerado e Motivo do Desoneramento. Até aí tudo bem, pois meu aplicativo contempla tal configuração, o problema é que como sempre o contador não sabe o que fazer. Apenas um cliente meu usa esse CST em seus produtos e seu contador está "perdido". Então fiz o seguinte: 1º - De acordo com http://www.fazenda.rj.gov.br/sefaz/faces/oracle/webcenter/portalapp/pages/navigation-renderer.jspx?_afrLoop=22750049148221306&datasource=UCMServer%23dDocName%3AWCC342616&_adf.ctrl-state=bnatvtk0h_42 o cálculo para descobrir o Valor do ICMS Desonerado é Valor do ICMS desonerado = (Preço na Nota Fiscal / (1 - Alíquota)) * Alíquota. Estou usando essa fórmula com a alíquota de 20%, pois de acordo com o contador ele ACHA que é 20% pois seria a alíquota padrão do RJ. O que vocês estão fazendo para calcular o Valor do ICMS Desonerado? 2º - No Motivo do Desoneramento coloquei 9 que é Outros, mas também têm o 90 que é Solicitado pelo Fisco. Qual motivo vocês estão usando? 3 - A tabela dos códigos de Benefício Fiscal está no link http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=u3vMflqEe6w=. A mesma possui inúmeros códigos e o contador disse que varia de produto para produto. Qual código vocês estão usando? Desde já agradeço a atenção de todos.
  18. Olá EMBarbosa, Tudo bom? Na verdade é um Form comum, adicionado pelo menu File -> New -> Form Delphi.
  19. Então o ImprimirCancelado faz exatamente o código abaixo???? ACBrNFe1.DANFE.Cancelada := True; ACBrNFe1.NotasFiscais.Imprimir; ACBrNFe1.DANFE.Cancelada := False;
  20. É que eu coloquei essa tarja nos documentos NF-e cancelados, como eu achei legal eu queria colocar também nos documentos NFC-e cancelados, mas 99% dos meus clientes imprimem os DANFEs NFC-e em ESCPos dado todas as vantagens desse tipo de impressão em relação a impressão pelo driver. De qualquer forma agradeço pela atenção meu amigo. Abraços
  21. Atualmente estou usando o comando abaixo para imprimir DANFEs NF-e com a tarja de cancelamento: ACBrNFe1.NotasFiscais.ImprimirCancelado; Depois descobri que consigo o mesmo resultado fazendo da seguinte forma: dtm_banco.ACBrNFe1.DANFE.Cancelada := True; ACBrNFe1.NotasFiscais.Imprimir; dtm_banco.ACBrNFe1.DANFE.Cancelada := False; Qual é a finalidade e diferença de cada comando? Existe um mais recomendável para a impressão da Tarja de Cancelamento no DANFE NF-e?
  22. Consegui... Nesse caso ele não coloca apenas uma tarja de Cancelamento, mas na verdade ele mostra várias informações sobre o Evento de Cancelamento. É isso mesmo? Não teria uma opção apenas com a exibição da tarja de Cancelamento igual a "ACBrNFe1.DANFE.Cancelada := True"(Essa só funciona com DANFE NFC-e em Fortes)?
  23. Como eu carrego esse evento de cancelamento?
  24. Eu estou recebendo o erro "List index out of bounds(0)". Acho que estou fazendo errado. Não entendi essa parte de carregar no componente o evento de cancelamento. Tentei fazer assim: ACBrNFe1.NotasFiscais.Clear; ACBrNFe1.NotasFiscais.LoadFromString(xml); ACBrNFe1.DANFE.ImprimirDanfeCancelado; Aonde eu estou errado? Poderia exemplificar para mim?
  25. Seria a ACBrNFe1.DANFE.Cancelada := True??? Se sim, não deu certo.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...