-
Total de ítens
903 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Antonio Gomes postou
-
GERAR BOLETO BANCO DO BRASIL VAI API
Antonio Gomes replied to Marcos Antonio Sá's tópico in ACBrBoleto
Que precisa? Uma coisa doida que achei, é eu incrementar nosso numero, no mais, quase igual a do inter, vem o codigo de solicitação, essa api dá erro de duplicidade as vezes, nao mandei em lote, mas mande um a um, salve sempre o cod solicitacao para consultar se o boleto foi emitido. -
O certificado está certo sim, mas ao debugar, nao entra em outro? Lembrando que ao atribuir um, o outro mexe tb.. tem a ordem correta, tente assim: Vale lembrar: os arquivos ali, salvo engano não é conteúdo, mas caminhos/path+arquivo, tanto que precisei fazer treta para salvar o arquivo no hd na hora. O dados pfx confesso nunca tentei usar.
-
limpou as property ou recolocou? Alguma property com if para ser atribuida?
-
Voce manda o zero primeiro, depois passa mandar o que veio, senao vai tomar consumo indevido sim. Salve o max no seu registro da empresa, para sempre usar ele, qdo for fazer a proxima consulta.
-
Uberlândia tinha uma murrinha de mandar RPS sequenciado, não autorizava o 102, se o 101 não tivesse sido enviado, revise seu codigo, as vezes voce tem incremento do numero. No nacional não existe nada dessa bobagem, vai qq sequencia. O que conta é a chave do DPS. Alias, um cliente meu que tira em loop mais de 200 nfse, tem dia que me passa esse aviso, eu dou clear tambem direto no componente, sempre envio o lote com 1 nota apenas.
-
impedir Cancelamento NFe com CTe/MDFe vinculado
Antonio Gomes replied to Cesar.Marcos's tópico in ACBrNFe
Ah sim, ai faz sentido, no retorno da consulta da chave, tem o retorno de eventos. Penso eu, que voce consiga extrair ele, se teve um evento de CT-e ou MDF-e emitido. nessa lista, olha Mas Cesar: Faz uma tentativa, aqui em MG, se voce emite um CT-e vinculado na chave, a nota nao deixam cancelar, o mesmo com MDF-e, vem um retorno diferente. Com voce ai tem deixado cancelar? -
impedir Cancelamento NFe com CTe/MDFe vinculado
Antonio Gomes replied to Cesar.Marcos's tópico in ACBrNFe
Uai, vc mesmo já se respondeu, se tem CT-e sem cancelar, a nf nao pode ser cancelada, ate cancelar o CT-e, o mesmo se aplica ao MDF-e, que é recursivo, se for uma transportadora, o mdfe tem um cte, ja empresa, tem a nfe.. Não precisa voce consultar na sefaz, penso eu. Isso é antigo, é tipo deixar editar receber com boleto emitido e em remessa, é com cautela. -
pasta \ACBr2wc\Fontes\ACBrBoleto\Particularidades.pdf tem um link de um post aqui no forum: 3.17 Banco Santander Necessário o código de transmissão fornecido pelo banco. Carteira, exemplo : 05, 06, 04 Modalidade, exemplo: 101,102,201 Atenção Para que a solução ACBrBoleto crie o DV do nossoNumero automaticamente deixe a propriedade sem preencher: (CNAB) VersaoDF = Para não criar o DV do nossoNumero: (API) VersaoDF = V1 CNAB 400: Para sair Data do Desconto 2 na posição 071 – 076: preencher DataAbatimento. API Santander Quem utiliza a API, se for realizar testes não utilizar SandBox, utilizar testes no ambiente de Homologação. Mais informações, veja este link: Mas sempre olha o pdf...
-
Em particularidades, pede isso ?
-
Já até mandei para o cliente viu.... Saco ficar esperando o estado arrumar as coisas... @Italo Giurizzato Juniortem como subir para o repositório ?
-
Nota Destinada não retorna após manifestação
Antonio Gomes replied to Carlos Júnior's tópico in ACBrNFe
Uai mano, voce precisa acionar o download e gravar no seu banco de dados o xml Ex: class function TFuncoesNFe.DownloadNFe(AACBrNFe: TACBrNFe; ACNPJEmpresa : string; ChaveNFe : string; AMostrarAdvertencia: Boolean; var AAdvertencia: string): string; var UFAutor: Integer; SitDfe : TSituacaoDFe; xMotivo: string; begin AAdvertencia := ''; UFAutor := StrToInt(Copy(ChaveNFe, 1, 2)); Result := ''; if AACBrNFe.DistribuicaoDFePorChaveNFe(UFAutor, ACNPJEmpresa, ChaveNFe) then begin { // snAutorizado, snDenegado, snCancelado, snEncerrado schema: schresNFe, schresEvento, schprocNFe, schprocEventoNFe, schresCTe, schprocCTe, schprocCTeOS, schprocEventoCTe, schresMDFe, schprocMDFe, schprocEventoMDFe, schresBPe, schprocBPe, schprocEventoBPe } if AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count > 0 then begin if AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[0].resDFe.cSitDFe = snAutorizado then begin if AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[0].schema in [schprocNFe { , schresNFe } ] then Result := AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[0].XML; // tem que testar maiusculo o utf em alguns casos vem maiusculo if (Result <> '') and (Pos('<?XML VERSION="1.0" ENCODING="UTF-8"?>', AnsiUpperCase(Result)) = 0) then Result := '<?xml version="1.0" encoding="utf-8"?>' + #13 + Result; end else begin SitDfe := AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[0].resDFe.cSitDFe; case SitDfe of snAutorizado: xMotivo := 'Autorizado'; snDenegado: xMotivo := 'Denegado'; snCancelado: xMotivo := 'Cancelado'; snEncerrado: xMotivo := 'Encerrado'; end; AAdvertencia := 'Não foi possível efetuar Download da NFe ' + ChaveNFe + #13 + xMotivo; end; end else begin AAdvertencia := 'Não foi possível efetuar Download da NFe ' + ChaveNFe + #13 + IntToStr(AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.cStat) + ' - ' + AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo; end; end else AAdvertencia := 'Não foi possível efetuar Download da NFe ' + ChaveNFe + #13 + IntToStr(AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.cStat) + ' - ' + AACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo; if (AAdvertencia <> '') and AMostrarAdvertencia then {$IF DEFINED(AMLSERVER) or DEFINED(AGENDADOR)} raise Exception.Create(AAdvertencia); {$ELSE} TCaixasDeDialogo.Aviso(AAdvertencia); {$ENDIF} end; -
Erro: Total do desconto difere do somatorio dos itens
Antonio Gomes replied to Alberto Frasson's tópico in ACBrNFe
Não sei, programa é seu kkk Eu nao passo nada pro acbr calcular nem refaço cálculos na hora de enviar a nfe, fica tudo salvo no banco de dados anterior, e uso o acbr so como vdesc := campo.ascurrency -
aliquota iss provedor betha nao aparece no danfe
Antonio Gomes replied to Lincoln Soares's tópico in ACBrNFe
uai, devolve em dps ? e o numero da nfse, onde vem ? esse provedor pede impressao de dps antes? -
Erro: Total do desconto difere do somatorio dos itens
Antonio Gomes replied to Alberto Frasson's tópico in ACBrNFe
soma na nf <vDesc>1432.09</vDesc> soma nos itens: 1432,11 -
NFC-e nunca pode ser usado apenas um comando de envio, é fraco alguns estados, demora, como mencionado pelo juliomar, aumente o timeout, e implemente tratamento de erro se ainda assim der timeout ou erro de conexao, acontecem erros de tudo que é jeito nesse modo de transmissão dessa nota. Ainda mais sendo síncrono
-
aliquota iss provedor betha nao aparece no danfe
Antonio Gomes replied to Lincoln Soares's tópico in ACBrNFe
Uma suspeita desse provedor, anterior ele processava esse agrupamento? Na hora da impressão, posta o xml de retorno, a impressao geralmente é baseado no da nfse gerada, ele é gerado no provedor nacional ? <dps:trib> <dps:tribMun> <dps:tribISSQN>1</dps:tribISSQN> <dps:cPaisResult>BR</dps:cPaisResult> <dps:pAliq>3.96</dps:pAliq> <dps:tpRetISSQN>1</dps:tpRetISSQN> </dps:tribMun> <dps:totTrib> <dps:pTotTribSN>3.96</dps:pTotTribSN> </dps:totTrib> </dps:trib> -
Duas transportadoras em uma NFe (Redespacho)
Antonio Gomes replied to Lázaro Santos's tópico in ACBrNFe
-
Provedor: VersaTecnologia ( gerar tag Eventos )
Antonio Gomes replied to Milton Campanhã's tópico in ACBrNFSe
No pacote que enviei, nao contempla essas tags sua. -
tem, se vc puser o cnpj do escritorio dele nas notas sua, teve um cliente, que pusemos, assim ele pesquisa com o certificado dele (lista de download autorizados)
-
dá erro de consumo indevido ? Entao tem outro fazendo junto com voce...
-
teste o especifico, mas espera 1 hora, se deu a falha.
-
Se já atentou para o contador, e se não tinha outro contador antes, e voce está fazendo certo, e tem certeza do uso nao indevido do certificado, é rever o fonte, noutro caso, é revogar o certificado e fazer outro, ai acha o pai feio da criança. Te dar uma dica: no cadastra da empresa eu salvo isso: Na hora da pesquisa: if PesquisarAPartirUltimoNSU then // combo box na tela, qual forma UltimoNSU := ProximoNSU_NFe else UltimoNSU := 0; MaxNsu := MaxNSU_NFe; // usado na funcao de tratar consumo indevido RetornoConsulta := TRetDistDFeInt.Create(ResConsulta); FuncNFe.ConsultaDistribuicao(FuncNFe.ACBrNFe1, Secao.Empresa.Cidade.UF, Secao.Empresa.Cnpj, UltimoNSU.ToString, '', '', RetornoConsulta); class procedure TFuncoesNFe.ConsultaDistribuicao(AACBrNFe: TACBrNFe; AUFEmpresa, ACNPJEmpresa : string; AUltimoNSU, ANSUEspecifico, AChaveEspecifica: string; var RetornoConsulta : TRetDistDFeInt); var Av, I : Integer; UFAutor: Integer; Doc : TdocZipCollectionItem; Averb : TitensAverbadosCollectionItem; begin UFAutor := ACBrUtil.Base.UFparaCodigoUF(AUFEmpresa); AACBrNFe.DistribuicaoDFe(UFAutor, ACNPJEmpresa, AUltimoNSU, ANSUEspecifico, AChaveEspecifica); with AACBrNFe.WebServices.DistribuicaoDFe do begin RetornoConsulta.Versao := retDistDFeInt.Versao; RetornoConsulta.tpAmb := retDistDFeInt.tpAmb; RetornoConsulta.verAplic := retDistDFeInt.verAplic; RetornoConsulta.cStat := retDistDFeInt.cStat; RetornoConsulta.xMotivo := retDistDFeInt.xMotivo; RetornoConsulta.dhResp := retDistDFeInt.dhResp; RetornoConsulta.maxNSU := retDistDFeInt.maxNSU; RetornoConsulta.ultNSU := retDistDFeInt.ultNSU; for I := 0 to retDistDFeInt.docZip.Count - 1 do begin Doc := RetornoConsulta.docZip.New; Doc.XML := retDistDFeInt.docZip.Items[I].XML; Doc.NSU := retDistDFeInt.docZip.Items[I].NSU; Doc.schema := retDistDFeInt.docZip.Items[I].schema; Doc.InfZip := retDistDFeInt.docZip.Items[I].InfZip; // retonro do resdfe // Doc.resDFe := retDistDFeInt.docZip.Items[I].resDFe; Doc.resDFe.chDFe := retDistDFeInt.docZip.Items[I].resDFe.chDFe; Doc.resDFe.CNPJCPF := retDistDFeInt.docZip.Items[I].resDFe.CNPJCPF; Doc.resDFe.xNome := retDistDFeInt.docZip.Items[I].resDFe.xNome; Doc.resDFe.IE := retDistDFeInt.docZip.Items[I].resDFe.IE; Doc.resDFe.dhEmi := retDistDFeInt.docZip.Items[I].resDFe.dhEmi; Doc.resDFe.tpNF := retDistDFeInt.docZip.Items[I].resDFe.tpNF; Doc.resDFe.vNF := retDistDFeInt.docZip.Items[I].resDFe.vNF; Doc.resDFe.digVal := retDistDFeInt.docZip.Items[I].resDFe.digVal; Doc.resDFe.dhRecbto := retDistDFeInt.docZip.Items[I].resDFe.dhRecbto; Doc.resDFe.nProt := retDistDFeInt.docZip.Items[I].resDFe.nProt; Doc.resDFe.cSitDFe := retDistDFeInt.docZip.Items[I].resDFe.cSitDFe; // retonro de resevento // Doc.resEvento := retDistDFeInt.docZip.Items[I].resEvento; Doc.resEvento.cOrgao := retDistDFeInt.docZip.Items[I].resEvento.cOrgao; Doc.resEvento.CNPJCPF := retDistDFeInt.docZip.Items[I].resEvento.CNPJCPF; Doc.resEvento.chDFe := retDistDFeInt.docZip.Items[I].resEvento.chDFe; Doc.resEvento.dhEvento := retDistDFeInt.docZip.Items[I].resEvento.dhEvento; Doc.resEvento.tpEvento := retDistDFeInt.docZip.Items[I].resEvento.tpEvento; Doc.resEvento.nSeqEvento := retDistDFeInt.docZip.Items[I].resEvento.nSeqEvento; Doc.resEvento.xEvento := retDistDFeInt.docZip.Items[I].resEvento.xEvento; Doc.resEvento.dhRecbto := retDistDFeInt.docZip.Items[I].resEvento.dhRecbto; Doc.resEvento.nProt := retDistDFeInt.docZip.Items[I].resEvento.nProt; // retorno de procevento // Doc.procEvento := retDistDFeInt.docZip.Items[I].procEvento; Doc.procEvento.ID := retDistDFeInt.docZip.Items[I].procEvento.ID; Doc.procEvento.cOrgao := retDistDFeInt.docZip.Items[I].procEvento.cOrgao; Doc.procEvento.tpAmb := retDistDFeInt.docZip.Items[I].procEvento.tpAmb; Doc.procEvento.CNPJ := retDistDFeInt.docZip.Items[I].procEvento.CNPJ; Doc.procEvento.chDFe := retDistDFeInt.docZip.Items[I].procEvento.chDFe; Doc.procEvento.dhEvento := retDistDFeInt.docZip.Items[I].procEvento.dhEvento; Doc.procEvento.tpEvento := retDistDFeInt.docZip.Items[I].procEvento.tpEvento; Doc.procEvento.nSeqEvento := retDistDFeInt.docZip.Items[I].procEvento.nSeqEvento; Doc.procEvento.verEvento := retDistDFeInt.docZip.Items[I].procEvento.verEvento; // detevento Doc.procEvento.detEvento.Versao := retDistDFeInt.docZip.Items[I].procEvento.detEvento.Versao; Doc.procEvento.detEvento.descEvento := retDistDFeInt.docZip.Items[I].procEvento.detEvento.descEvento; Doc.procEvento.detEvento.nProt := retDistDFeInt.docZip.Items[I].procEvento.detEvento.nProt; Doc.procEvento.detEvento.xJust := retDistDFeInt.docZip.Items[I].procEvento.detEvento.xJust; Doc.procEvento.detEvento.xCorrecao := retDistDFeInt.docZip.Items[I].procEvento.detEvento.xCorrecao; Doc.procEvento.detEvento.tpAutor := retDistDFeInt.docZip.Items[I].procEvento.detEvento.tpAutor; Doc.procEvento.detEvento.verAplic := retDistDFeInt.docZip.Items[I].procEvento.detEvento.verAplic; // eventos de cte Doc.procEvento.detEvento.CTe.chCTe := retDistDFeInt.docZip.Items[I].procEvento.detEvento.CTe.chCTe; Doc.procEvento.detEvento.CTe.modal := retDistDFeInt.docZip.Items[I].procEvento.detEvento.CTe.modal; Doc.procEvento.detEvento.CTe.dhEmi := retDistDFeInt.docZip.Items[I].procEvento.detEvento.CTe.dhEmi; Doc.procEvento.detEvento.CTe.nProt := retDistDFeInt.docZip.Items[I].procEvento.detEvento.CTe.nProt; Doc.procEvento.detEvento.CTe.dhRecbto := retDistDFeInt.docZip.Items[I].procEvento.detEvento.CTe.dhRecbto; Doc.procEvento.detEvento.emit.CNPJ := retDistDFeInt.docZip.Items[I].procEvento.detEvento.emit.CNPJ; Doc.procEvento.detEvento.emit.IE := retDistDFeInt.docZip.Items[I].procEvento.detEvento.emit.IE; Doc.procEvento.detEvento.emit.xNome := retDistDFeInt.docZip.Items[I].procEvento.detEvento.emit.xNome; for Av := 0 to retDistDFeInt.docZip.Items[I].procEvento.detEvento.itensAverbados.Count - 1 do begin Averb := Doc.procEvento.detEvento.itensAverbados.New; Averb.dhEmbarque := retDistDFeInt.docZip.Items[I].procEvento.detEvento.itensAverbados.Items[Av].dhEmbarque; Averb.dhAverbacao := retDistDFeInt.docZip.Items[I].procEvento.detEvento.itensAverbados.Items[Av].dhAverbacao; Averb.nDue := retDistDFeInt.docZip.Items[I].procEvento.detEvento.itensAverbados.Items[Av].nDue; Averb.nItem := retDistDFeInt.docZip.Items[I].procEvento.detEvento.itensAverbados.Items[Av].nItem; Averb.nItemDue := retDistDFeInt.docZip.Items[I].procEvento.detEvento.itensAverbados.Items[Av].nItemDue; Averb.qItem := retDistDFeInt.docZip.Items[I].procEvento.detEvento.itensAverbados.Items[Av].qItem; Averb.motAlteracao := retDistDFeInt.docZip.Items[I].procEvento.detEvento.itensAverbados.Items[Av].motAlteracao; end; Doc.procEvento.RetinfEvento.ID := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.ID; Doc.procEvento.RetinfEvento.tpAmb := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.tpAmb; Doc.procEvento.RetinfEvento.verAplic := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.verAplic; Doc.procEvento.RetinfEvento.cOrgao := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.cOrgao; Doc.procEvento.RetinfEvento.cStat := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.cStat; Doc.procEvento.RetinfEvento.xMotivo := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.xMotivo; Doc.procEvento.RetinfEvento.chDFe := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.chDFe; Doc.procEvento.RetinfEvento.tpEvento := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.tpEvento; Doc.procEvento.RetinfEvento.xEvento := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.xEvento; Doc.procEvento.RetinfEvento.nSeqEvento := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.nSeqEvento; Doc.procEvento.RetinfEvento.CNPJDest := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.CNPJDest; Doc.procEvento.RetinfEvento.emailDest := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.emailDest; Doc.procEvento.RetinfEvento.cOrgaoAutor := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.cOrgaoAutor; Doc.procEvento.RetinfEvento.dhRegEvento := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.dhRegEvento; Doc.procEvento.RetinfEvento.nProt := retDistDFeInt.docZip.Items[I].procEvento.RetinfEvento.nProt; end; end; end; nota, apos a primeira pesquisa desde o inicio, voce precisa salvar o ultimo nsu e passar ele no lugar do zero, senao toma bam
