Jump to content

zemarcio

Membros Pro
  • Posts

    134
  • Joined

  • Last visited

Everything posted by zemarcio

  1. Boa tarde! O ACBrMail1.clear apaga todas essas propriedades? ACBrMail1.AddAddress(); ACBrMail1.AddCC(); AcbrMail1.AddREplyTo(); ACBrMail1.Subject := ACBrMail1.Body.Text:=
  2. A midas.dll tá igual aqui no meu também, vou tentar pegar o BD e certificado do cliente para testar na minha máquina.
  3. Como podemos melhorar as mensagens de erro da NF-e que são retornadas no código abaixo: TVENDASMOTIVO_REJEICAO.AsString := Copy(IntToStr(dmACBr.ACBrNFe1.WebServices.Consulta.cStat) + ' - ' + dmACBr.ACBrNFe1.WebServices.Consulta.xMotivo,1,1500); Pegamos por exemplo um caso de um cliente que o erro estava no CNPJ da TRANSPORTADORA, porém a mensagem dizia somente CNPJ, e nosso suporte ficou mais de 1 hora tentando encontrar o problema, sendo que caso a mensagem tivesse mais clara, talvez o próprio cliente teria resolvido sem dar nenhum suporte.
  4. o erro ocorre na máquina do cliente, por isso não consigo debugar, já coloquei uns showmessage e descobri que o erro ocorre na linha dmAcbr.ACBrNFe1.ImprimirInutilizacao e mesmo assim não é toda hora que acontece.
  5. Não consigo debugar, mas segue o trecho completo abaixo: var iID_Inutilizacao : Integer; sXML, sArq : string; begin if length(Memo1.Text) <= 15 then begin iMessageBox(handle,'Favor preencher no mínimo 15 caracteres!','Inutilizar',MB_OK); Exit; end; if iMessageBox(Handle,'Deseja realmente inutilizar a numeração?','Inutilizar Numeração',MB_YESNO) <> IDYES then Exit; dmAcbr.ACBrNFe1.WebServices.Inutiliza( sApenasNumeros(dmConexao.TFILIALCNPJ.AsString), Memo1.Text, edtAno.Value, 55, edtSerie.Value, edtNumInicial.Value, edtNumFinal.Value); if dmAcbr.ACBrNFe1.WebServices.Inutilizacao.cStat = 102 then begin fInutilizacao.TInutilizacaoID_INUTILIZACAO.Required := False; fInutilizacao.TInutilizacao.Insert; fInutilizacao.TInutilizacaoID_INUTILIZACAO.IsNull; fInutilizacao.TInutilizacaoID_FILIAL.AsInteger := iID_FILIAL; fInutilizacao.TInutilizacaoANO.AsInteger := edtAno.Value; fInutilizacao.TInutilizacaoMODELO.AsInteger := 55; fInutilizacao.TInutilizacaoSERIE.AsInteger := edtSerie.Value; fInutilizacao.TInutilizacaoNUMERO_INICIAL.AsInteger := edtNumInicial.Value; fInutilizacao.TInutilizacaoNUMERO_FINAL.AsInteger := edtNumFinal.Value; fInutilizacao.TInutilizacaoJUSTIFICATIVA.AsString := Memo1.Text; fInutilizacao.TInutilizacaoPROTOCOLO.AsString := dmAcbr.ACBrNFe1.WebServices.Inutilizacao.Protocolo; fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime := dmAcbr.ACBrNFe1.WebServices.Inutilizacao.dhRecbto; if dmAcbr.ACBrNFe1.WebServices.Inutilizacao.tpAmb = taProducao then fInutilizacao.TInutilizacaoAMBIENTE.AsString := 'Produção' else fInutilizacao.TInutilizacaoAMBIENTE.AsString := 'Homologação'; //retorna proximo id do generator iID_Inutilizacao := iRetornarID('GEN_INUTILIZACAO_ID'); fInutilizacao.TInutilizacao.Post; dmConexao.IBTCONEXAO.CommitRetaining; sArq := dmConexao.TFILIALCODIGO_ESTADO.AsString + Copy(IntToStrZero(fInutilizacao.TInutilizacaoANO.AsInteger, 4), 3, 2) + sApenasNumeros(dmConexao.TFILIALCNPJ.AsString) + IntToStrZero(fInutilizacao.TInutilizacaoMODELO.AsInteger, 2) + IntToStrZero(fInutilizacao.TInutilizacaoSERIE.AsInteger, 3) + IntToStrZero(fInutilizacao.TInutilizacaoNUMERO_INICIAL.AsInteger, 9) + IntToStrZero(fInutilizacao.TInutilizacaoNUMERO_FINAL.AsInteger, 9); bInserirXMLDB('INUTILIZACAO', 'INUTILIZACAO', IntToStr(iID_Inutilizacao), fInutilizacao.TInutilizacaoPROTOCOLO.AsString, 'Inutilizada', dmACBr.ACBrNFe1.WebServices.Inutilizacao.XML_ProcInutNFe, sArq+'-procInutNFe.xml', fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime, 0); // dmAcbr.ACBrNFe1.NotasFiscais.Clear; sXML := sVerificaArquivo('Inutilizada', 'INUTILIZACAO', ExtractFileDir(Application.ExeName)+'\XML_NFE\Inu\'+FormatDateTime('YYYYMM', fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime)+'\'+sArq+'-procInutNFe.xml', iID_Inutilizacao , 0); if not FileExists(sXML) then begin iMessageBox(handle,pchar('Não foi possível imprimir!'+#13+#13+'XML não encontrato em: '+sXML),'Imprimir',MB_OK+MB_ICONWARNING); Exit; end; dmAcbr.ACBrNFe1.DANFE:=dmAcbr.ACBrNFeDANFEFR1; dmAcbr.ACBrNFe1.InutNFe.XML:=''; dmAcbr.ACBrNFe1.InutNFe.LerXML( sXML ); dmAcbr.ACBrNFe1.ImprimirInutilizacao; fInutilizacao.TInutilizacao.Close; fInutilizacao.TInutilizacao.ParamByName('ID_FILIAL').AsInteger := iID_FILIAL; fInutilizacao.TInutilizacao.Open; iMessageBox(handle,'Numeração inutilizada com sucesso! Favor excluir as notas fiscais que foram inutilizadas (caso houver)!','Inutilizar Numeração',MB_OK); Close; end else begin iMessageBox(handle,pchar('Não foi possível inutilizar a numeração!'+#13+IntToStr(dmAcbr.ACBrNFe1.WebServices.Inutilizacao.cStat)+' - '+dmAcbr.ACBrNFe1.WebServices.Inutilizacao.xMotivo),'Inutilizar Numeração',MB_OK); end;
  6. Estou tentando fazer inutilização de NF-e mas dá o erro abaixo no comando: dmAcbr.ACBrNFe1.ImprimirInutilizacao; ro
  7. Resumo da NFC-e em SC pelo que entendi. O cliente solicita autorização para emitir NFC-e para SEFAZ que pode autorizar ou recursar de acordo com vários critérios que usam para avaliar a condição do cliente. Postos de combustíveis por exemplo não podem usar NFC-e. A parte mais enroscada é a emissão em contingência, o que deve ser feito se não tiver internet para emitir a NFC-e? A sefaz oferece duas alternativas sendo a primeira o uso do PAF-ECF e a segunda o PAF-NFC-e. Para quem não quer mexer com ECF, pode optar pelo PAF-NFC-e. Tirei essas informações nesse link: http://legislacao.sef.sc.gov.br/html/atos_diat/2020/atodiat_20_038.htm que diz o seguinte: “§ 1º Ao realizar seu credenciamento, o contribuinte interessado deverá optar pela emissão em contingência no: I – ECF, nos termos do art. 94 do Anexo 11 do RICMS/SC-01 e do Ato DIAT nº 22, de 27 de junho de 2020, disciplinada no Capítulo II deste Ato, oportunidade em que... II – Programa Aplicativo Fiscal - Nota Fiscal de Consumidor Eletrônica (PAF-NFC-e), nos termos do art. 94-A do Anexo 11 do RICMS/SC-01, disciplinada no Capítulo III deste Ato, oportunidade em que...” Agora se você quer saber os requisitos do PAF-NFC-e acesse esse PDF: http://legislacao.sef.sc.gov.br/legtrib_internet/html/atos_diat/2020/atodiat_20_038_anexo_iii.pdf
  8. E qual CodigoMora devo utilizar para informar o Juros em Percentual no Banco do Brasil?
  9. É possível informar o valor do juros em percentual no Acbr boleto?
  10. Obrigado Juliomar, mas não deu certo com vírgula. Daniel, não entendi muito bem seu exemplo, meu problema é no XML da NF-e não no envio de e-mail.
  11. Não tem como então enviar dois e-mails?
  12. Estou tentando informar mais de um e-mail na propriedade: NotaF.NFe.Dest.Email:='[email protected];[email protected]' Mas está dando erro de validação.
  13. do e-mail já consegui. Já deu certo também o número da nota. Muito obrigado pessoal! Suporte rápido e direto do ACBR! Parabéns!
  14. Não deu certo nenhum dos dois, retorna vazio, será algum outro parâmetro que preciso configurar?
  15. Tenho uma função no ACBrNFe1StatusChange que verifica o seguinte: Teria como nesse caso adicionar o número da NF-e? Qual propriedade usar? Teria como nesse caso adicionar o endereço de e-mail do destinatário? Qual propriedade usar?
  16. Estou tendo erro de access violation ao executar o seguinte comando: dmAcbr.ACBrNFe1.ImprimirInutilizacao; Estranho que só dá o erro na segunda vez que executa. Segue abaixo a procedure completa: procedure TfInutilizacaoAdd.bbSalvarClick(Sender: TObject); var iID_Inutilizacao : Integer; sXML, sArq : string; begin if length(Memo1.Text) <= 15 then begin iMessageBox(handle,'Favor preencher no mínimo 15 caracteres!','Inutilizar',MB_OK); Exit; end; if iMessageBox(Handle,'Deseja realmente inutilizar a numeração?','Inutilizar Numeração',MB_YESNO) <> IDYES then Exit; dmAcbr.ACBrNFe1.WebServices.Inutiliza( sApenasNumeros(dmConexao.TFILIALCNPJ.AsString), Memo1.Text, edtAno.Value, 55, edtSerie.Value, edtNumInicial.Value, edtNumFinal.Value); if dmAcbr.ACBrNFe1.WebServices.Inutilizacao.cStat = 102 then begin fInutilizacao.TInutilizacaoID_INUTILIZACAO.Required := False; fInutilizacao.TInutilizacao.Insert; fInutilizacao.TInutilizacaoID_INUTILIZACAO.IsNull; fInutilizacao.TInutilizacaoID_FILIAL.AsInteger := iID_FILIAL; fInutilizacao.TInutilizacaoANO.AsInteger := edtAno.Value; fInutilizacao.TInutilizacaoMODELO.AsInteger := 55; fInutilizacao.TInutilizacaoSERIE.AsInteger := edtSerie.Value; fInutilizacao.TInutilizacaoNUMERO_INICIAL.AsInteger := edtNumInicial.Value; fInutilizacao.TInutilizacaoNUMERO_FINAL.AsInteger := edtNumFinal.Value; fInutilizacao.TInutilizacaoJUSTIFICATIVA.AsString := Memo1.Text; fInutilizacao.TInutilizacaoPROTOCOLO.AsString := dmAcbr.ACBrNFe1.WebServices.Inutilizacao.Protocolo; fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime := dmAcbr.ACBrNFe1.WebServices.Inutilizacao.dhRecbto; if dmAcbr.ACBrNFe1.WebServices.Inutilizacao.tpAmb = taProducao then fInutilizacao.TInutilizacaoAMBIENTE.AsString := 'Produção' else fInutilizacao.TInutilizacaoAMBIENTE.AsString := 'Homologação'; //retorna proximo id do generator iID_Inutilizacao := iRetornarID('GEN_INUTILIZACAO_ID'); fInutilizacao.TInutilizacao.Post; dmConexao.IBTCONEXAO.CommitRetaining; sArq := dmConexao.TFILIALCODIGO_ESTADO.AsString + Copy(IntToStrZero(fInutilizacao.TInutilizacaoANO.AsInteger, 4), 3, 2) + sApenasNumeros(dmConexao.TFILIALCNPJ.AsString) + IntToStrZero(fInutilizacao.TInutilizacaoMODELO.AsInteger, 2) + IntToStrZero(fInutilizacao.TInutilizacaoSERIE.AsInteger, 3) + IntToStrZero(fInutilizacao.TInutilizacaoNUMERO_INICIAL.AsInteger, 9) + IntToStrZero(fInutilizacao.TInutilizacaoNUMERO_FINAL.AsInteger, 9); bInserirXMLDB('INUTILIZACAO', 'INUTILIZACAO', IntToStr(iID_Inutilizacao), fInutilizacao.TInutilizacaoPROTOCOLO.AsString, 'Inutilizada', dmACBr.ACBrNFe1.WebServices.Inutilizacao.XML_ProcInutNFe, sArq+'-procInutNFe.xml', fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime, 0); // dmAcbr.ACBrNFe1.NotasFiscais.Clear; sXML := sVerificaArquivo('Inutilizada', 'INUTILIZACAO', ExtractFileDir(Application.ExeName)+'\XML_NFE\Inu\'+FormatDateTime('YYYYMM', fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime)+'\'+sArq+'-procInutNFe.xml', iID_Inutilizacao , 0); dmAcbr.ACBrNFe1.DANFE:=dmAcbr.ACBrNFeDANFEFR1; dmAcbr.ACBrNFe1.InutNFe.XML:=''; dmAcbr.ACBrNFe1.InutNFe.LerXML( sXML ); dmAcbr.ACBrNFe1.ImprimirInutilizacao; fInutilizacao.TInutilizacao.Close; fInutilizacao.TInutilizacao.ParamByName('ID_FILIAL').AsInteger := iID_FILIAL; fInutilizacao.TInutilizacao.Open; iMessageBox(handle,'Numeração inutilizada com sucesso! Favor excluir as notas fiscais que foram inutilizadas (caso houver)!','Inutilizar Numeração',MB_OK); Close; end else begin iMessageBox(handle,pchar('Não foi possível inutilizar a numeração!'+#13+IntToStr(dmAcbr.ACBrNFe1.WebServices.Inutilizacao.cStat)+' - '+dmAcbr.ACBrNFe1.WebServices.Inutilizacao.xMotivo),'Inutilizar Numeração',MB_OK); end; end;
  17. Descobri aqui a solução para o problema, tem que tirar a SQL do FetchRow para funcionar o autoinc, tem que deixar em branco lá no FDUpdateSQL.
  18. Pessoal, por acaso alguém conhece uma empresa que comercializa ou desenvolve ícones para serem usados nos botões/menus do Delphi?
  19. Juliomar, sim, é o campo autoincremento do MYSQL, por fim resolvi fazendo isso mesmo LAST_INSERT_ID e depois mudei para a função FDConnection1.GetLastAutoGenValue() e com isso faço o locate.Mas ainda gostaria de saber uma outra forma que funcionasse sem que precisasse fazer isso.
  20. Tentei de todas as formas mas ainda não consegui, o problema é que preciso dar o refresh para ele atualizar o generator e com isso ele acaba voltando no primeiro registro ao invés de permanecer posicionado no registro atual.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.