Jump to content

CertaSolucoes

Membros
  • Content Count

    140
  • Joined

  • Last visited

Community Reputation

8 Neutral

About CertaSolucoes

  • Rank
    Membro

Contact Methods

  • Website URL
    http://www.certasolucoes.com.br

Profile Information

  • Sexo
    Masculino
  • Localização
    Crissiumal

Recent Profile Visitors

958 profile views
  1. Pessoal, Achei! Estava enviado a nota sem o parâmetro (False) - ACBrNFSe1.Enviar(vNumLote, False);
  2. Senhores, como procedo caso não queira imprimir a NFSe na conclusão da mesma? Para não visualizar eu uso ACBrNFSeDANFSeRL.MostraPreview := True; Para Imprimir ACBrNFSeDANFSeRL1.MostraPreview := False; Como faço para que não ocorra evento de impressão ou visualização?
  3. Encontrei a solução! Na propriedade LarguraBobina do componente ACBrNFeDANFCe alterei de 302 pixel que seria 80 mm para 290 pixel.
  4. No banco de Dados salva no campo qCom 1.12. O XML é gerado como 1.1201.
  5. Vou testar Cristiano, o problema é o cliente necessita em alguns casos 3 casas. eu achei na linha 309 do arquivo PCNCFeW.pas Gerador.wCampo(tcDe2, 'I08 ', 'qCom ', 05, 15, 1, CFe.Det.Prod.qCom, DSC_QCOM); Que força a quantidade ter sempre 2 casas. Eu alterei para tcDe4 4 casas e deu certo. Se eu enviar 1.12 vai ficar 1.1200(correto) ou se enviar 1.1235 vai ficar 1.1235(correto) Cabe aos moderadores opinar a respeito para ver como podemos resolver... ou subir essa alteração
  6. Não vem a ser um problema as 4 casas, o problema é que gera a 4ª casa com 0,0001. Esse 1 no final que gera problemas nos cálculos e o sefaz não autoriza da NFe. Tem como não gerar esse 1 no final? - <prod> <cProd>265177</cProd> <cEAN>4718390028110</cEAN> <xProd>DRIVE DVD-RW SATA</xProd> <NCM>16023230</NCM> <CFOP>5101</CFOP> <uCom>UND</uCom> <qCom>1.1201</qCom> Valor que está no banco de dados é: 1.12 e o xml é gerado como 1.1201 <vUnCom>96.7620000000</vUnCom> <vProd>108.37</vProd> <cEANTrib>4718390028110</cEANTrib> <uTrib>UND</uTrib> <qTrib>1.1201</qTrib> <vUnTrib>96.7620000000</vUnTrib> <indTot>1</indTot> </prod>
  7. Quando eu digito 1.12 na quantidade e no valor unitário 9,762, o sistema gera no XML a quantidade com 4 casas, porem dessa forma: 1.1201 Esse 0001 a mais, gera diferença de centavos. Se fosse somente esse item, o sefaz iria autorizar, pois permite tolerância de 1 centavo, mas como alguns outros itens também geram esse 0,001 a nota é refugada. Eu já configurei a propriedade Formato da Danfe para tdetMascara. Isso em alguns casos corrigiu, mas em outros não.
  8. Estou reativando esse assunto, pois no começo imaginavamos ser problema da Bematech. Hoje, impressoras Perto Printer, Bematech e Epson são as que nossos clientes possuem. Todos estão com as danfes de NFCe desconfigurados. Impossível ser Driver ou configuração de vídeo. ACBrPosPrinter, e ACBrNFeDANFeESCPOS. Acredito que juntos poderemos resolver isso.
  9. Entendo, conforme comentei. Maravilha se sair esse formato. Um grande passo para o componente. A comunidade agradece desde já.
  10. Perfeito Juliomar Marchetti, fiz um comentário pertinente e agradeço pelo retorno. Os retornos são importantes. Comentei, pois a implementação é de 01/2016. Com certeza deverá ser toda revista novamente antes de subir ao repositório. Grato pelo retorno.
  11. Acredito que se foi desenvolvido, implementado no componente, caberia uma avaliação para disponibilizar a todos no SVN. Ou a ideia é cada um desenvolver por sua conta própria e o componente deixar de agregar uma interessante opção nos boletos?
  12. Olá Juliana, sobre as modificações do Boleto com Fatura sugeridas por Paulo Henrique de Castro, ainda não foram avaliadas? Acredito que muitos estão precisando esta opção, inclusive nós e será uma grande contribuição para a ferramenta.
  13. Veja se consegue algo com isso que usamos aqui. São ideias... Porem, fazemos isso usando o XML baixado manualmente do site do sefaz. Pois não encontramos uma forma de atualizar o XML local baseado somente no meotodo: ACBrNFe1.NotasFiscais.Clear; ACBrNFe1.NotasFiscais.LoadFromFile(ArquivoXML, False); ACBrNFe1.Consultar; ACBrNFe1.NotasFiscais.Clear; ACBrNFe1.NotasFiscais.LoadFromFile(ArquivoXML); for n := 0 to ACBrNFe1.NotasFiscais.Count - 1 do begin with ACBrNFe1.NotasFiscais.Items[n].NFe do begin Application.ProcessMessages; NFeNumeroXML := IntToStr(Ide.nNF); SerieXML := IntToStr(Ide.serie); CNPJRemXML := Emit.CNPJCPF; RemXML := Emit.xNome; ValorXML := FormatFloat('###,###,##0.00', total.ICMSTot.vNF); ValorTotalNF := FormatFloat('###,###,##0.00', MyQrNFevalor_total_nota.AsFloat); CNPJDestXML := Dest.CNPJCPF; DestXML := Dest.xNome; Application.ProcessMessages; // informar o numero caso ainda não estiver postado no banco de dados - ADEMIR 05/01/2016 InputQuery('NÚMERO NF', 'Informe o Número da NF a ser corrigido:', NumeroEsperado); if NFeNumeroXML <> NumeroEsperado then begin ShowMessage('Número da NFe no XML incompatível' + #13 + 'Número XML: ' + NFeNumeroXML + #13 + 'Número NF: ' + NumeroEsperado); abort; end else begin ShowMessage('Número da NFe OK'); end; Application.ProcessMessages; if SerieXML <> MyQrNFeserie.AsString then begin ShowMessage('Série da NFe no XML incompatível' + #13 + 'Série XML: ' + SerieXML + #13 + 'Série NF: ' + MyQrNFeserie.AsString); abort; end else begin ShowMessage('Série da NFe OK'); end; Application.ProcessMessages; if CNPJRemXML <> SomenteNumeros(MyQrNFeemit_cnpj.AsString) then begin ShowMessage('CNPJ do Emitente da NFe no XML incompatível' + #13 + 'CNPJ Emitente XML: ' + CNPJRemXML + #13 + 'CNPJ Emitente NF: ' + MyQrNFeemit_cnpj.AsString); if Application.MessageBox ('Pode conter erro de codificação de caractéres ' + #13 + 'INFORME O ERRO AO SUPORTE. Deseja prosseguir?', 'ATENÇÃO', MB_YESNO + MB_ICONQUESTION) = IDYES then begin ShowMessage('CNPJ do Emitente da NFe confirmado pelo Usuário'); end else begin abort; end; end else begin ShowMessage('CNPJ do Emitente da NFe OK'); end; Application.ProcessMessages; if RemXML <> MyQrNFeemit_nome.AsString then begin ShowMessage('Emitente da NFe no XML incompatível' + #13 + 'Emitente XML: ' + RemXML + #13 + 'Emitente NF: ' + MyQrNFeemit_nome.AsString); if Application.MessageBox ('Pode conter erro de codificação de caractéres ' + #13 + 'INFORME O ERRO AO SUPORTE. Deseja prosseguir?', 'ATENÇÃO', MB_YESNO + MB_ICONQUESTION) = IDYES then begin ShowMessage('Emitente da NFe confirmado pelo Usuário'); end else begin abort; end; end else begin ShowMessage('Emitente da NFe OK'); end; Application.ProcessMessages; if ValorXML <> ValorTotalNF then begin ShowMessage('Valor Total da NFe no XML incompatível' + #13 + 'Valor Total XML: ' + ValorXML + #13 + 'Valor Total NF: ' + MyQrNFevalor_total_nota.AsString); if Application.MessageBox ('Pode conter erro de codificação de caractéres ' + #13 + 'INFORME O ERRO AO SUPORTE. Deseja prosseguir?', 'ATENÇÃO', MB_YESNO + MB_ICONQUESTION) = IDYES then begin ShowMessage('Valor Total da NFe confirmado pelo Usuário'); end else begin abort; end; end else begin ShowMessage('Valor Total da NFe OK'); end; Application.ProcessMessages; if CNPJDestXML <> SomenteNumeros(MyQrNFedest_cnpj.AsString) then begin ShowMessage('CNPJ do Destinatário da NFe no XML incompatível' + #13 + 'CNPJ Desttinatário XML: ' + CNPJDestXML + #13 + 'CNPJ Desttinatário NF: ' + MyQrNFedest_cnpj.AsString); if Application.MessageBox ('Pode conter erro de codificação de caractéres ' + #13 + 'INFORME O ERRO AO SUPORTE. Deseja prosseguir?', 'ATENÇÃO', MB_YESNO + MB_ICONQUESTION) = IDYES then begin ShowMessage ('CNPJ do Destinatário da NFe confirmado pelo Usuário'); end else begin abort; end; end else begin ShowMessage('CNPJ do Destinatário da NFe OK'); end; Application.ProcessMessages; if (DestXML <> MyQrNFedest_nome.AsString) and (DestXML <> 'NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL') then begin ShowMessage('Destinatário da NFe no XML incompatível' + #13 + 'Destinatário XML: ' + DestXML + #13 + 'Destinatário NF: ' + MyQrNFedest_nome.AsString); // Em alguns casos os nomes são aparentemente iguais // por isso coloquei o Application.MessageBox para poder prosseguir // isso se o nome for igual - ADEMIR 17/11/2016 if Application.MessageBox ('Pode conter erro de codificação de caractéres ' + #13 + 'INFORME O ERRO AO SUPORTE. Deseja prosseguir?', 'ATENÇÃO', MB_YESNO + MB_ICONQUESTION) = IDYES then begin ShowMessage('Destinatário da NFe confirmado pelo Usuário'); end else begin abort; end; end else begin ShowMessage('Destinatário da NFe OK'); end; end; end; end else begin Application.ProcessMessages; ShowMessage('Arquivo: ' + ArquivoXML + #13 + ' não encontrado!'); abort; end; // caso ocorram bem as validações, sistema continua - ADEMIR 08/09/2016 ACBrNFe1.NotasFiscais.Clear; ACBrNFe1.NotasFiscais.LoadFromFile(ArquivoXML, False); ACBrNFe1.Consultar; MemoResp.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetornoWS); memoRespWS.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Consulta.RetornoWS); LoadXML(MemoResp, WBResposta); LoadConsulta201(ACBrNFe1.WebServices.Consulta.RetornoWS); memoLog.Lines.Add(''); memoLog.Lines.Add('CONSULTA DE NFe'); memoLog.Lines.Add(' '); memoLog.Lines.Add('Versão da Aplicação Sefaz: ' + ACBrNFe1.WebServices.Consulta.verAplic); memoLog.Lines.Add('UF NFe: ' + IntToStr(ACBrNFe1.WebServices.Consulta.cUF)); memoLog.Lines.Add('Código do Status: ' + IntToStr(ACBrNFe1.WebServices.Consulta.cStat)); memoLog.Lines.Add('Descrição do Motivo: ' + ACBrNFe1.WebServices.Consulta.xMotivo); memoLog.Lines.Add('Protocolo: ' + ACBrNFe1.WebServices.Consulta.Protocolo); memoLog.Lines.Add('Chave: ' + ACBrNFe1.WebServices.Consulta.NFeChave); memoLog.Lines.Add('Recebimento: ' + DateToStr(ACBrNFe1.WebServices.Consulta.dhRecbto)); if Copy(ACBrNFe1.WebServices.Consulta.NFeChave, 26, 9) = FormatFloat('000000000', ProximoNumero) then begin if (ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.cStat = 100) then begin conteudoXML := TStringList.Create; MyTbStatus.Active := True; MyTbStatus.Insert; MyTbStatusnotasfiscais_id.AsString := MyQrNFeid.AsString; MyTbStatuscod_status.AsString := IntToStr(ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.cStat); MyTbStatusrecibo.AsString := ACBrNFe1.WebServices.Retorno.Recibo; MyTbStatusprotocolo.AsString := ACBrNFe1.NotasFiscais.Items[0] .NFe.procNFe.nProt; MyTbStatuschave.AsString := ACBrNFe1.NotasFiscais.Items[0] .NFe.procNFe.chNFe; MyTbStatusdata.AsDateTime := ACBrNFe1.NotasFiscais.Items[0] .NFe.procNFe.dhRecbto; MyTbStatusdescr_status.AsString := ACBrNFe1.NotasFiscais.Items[0] .NFe.procNFe.xMotivo; MyTbStatuslote.Value := vNumLote; MyTbStatususuario_id.AsInteger := frmSenha.MyQrUsuariosusu_sis_id.AsInteger; Ano := IntToStr(YearOf(date)); mesinteiro := MonthOf(date); mes := FormatFloat('00', mesinteiro); anomes := Ano + mes; if FilesExists(ArquivoXML) then begin conteudoXML.LoadFromFile(ArquivoXML); MyTbStatusxml.AsString := conteudoXML.Text; end else begin ShowMessage('Arquivo: ' + ArquivoXML + ' não encontrado!'); end; // apaga arquivo temp XML -ADEMIR 30/06/2015 if FilesExists(PathWithDelim(ExtractFileDir(Application.ExeName)) + NomeArquivoXMLTemp + '.xml') then begin DeleteFile(PathWithDelim(ExtractFileDir(Application.ExeName)) + NomeArquivoXMLTemp + '.xml'); end; NomeArquivoXMLTemp := ''; MyTbStatus.Post; MyQrStatus.Active := False; MyQrStatus.Params.ParamValues['pNotaFiscal'] := MyQrNFeid.AsInteger; MyQrStatus.Active := True; conteudoXML.Free; MyTbStatus.Active := False; end else begin ShowMessage('Status não está confirmado como Autorização de uso!'); PostMessage(Self.handle, WM_CLOSE, 0, 0); abort; end;
  14. Isso, pq eu guardo o XML no banco de dados, depois gero ele em disco para transmitir exatamente como foi em nodo offline. Ele não pode sofrer alteração alguma. Ao invez de mandar o ABCR gerar o XML, eu só carrego o componente: if MyQrNFetipoemissao.AsString = 'contingencia' then begin ACBrNFe1.NotasFiscais.LoadFromString(MyQrNFexmloffline.AsString); ACBrNFe1.NotasFiscais.GerarNFe; end else begin GerarNFe(vAux); end;
×
×
  • Create New...