Ir para conteúdo
  • Cadastre-se

Hetosoft Sistemas

Membros Pro
  • Total de ítens

    495
  • Registro em

  • Última visita

Tudo que Hetosoft Sistemas postou

  1. Obrigado pela dica Rômulo Mayworm mas não vai servir eu preciso saber qual comando vai substituir o NFe.ConsultaNFeDest, por que até o momento não achei no manual do ACBrNFeMonitor ou ainda não foi criado. o que é preocupante já que o ConsultaNFeDest vai ser desativado.
  2. Obrigado pela resposta Rômulo Mayworm, estou usando NFe.ConsultaNFeDest(cCNPJ,nIndicadorNFe,nIndicadorEmissor,cultimoNSU) via socket para enviar comandos para o ACBrNFeMonitor se alguem souber qual o novo procedimento e puder me passar agradeço.
  3. Ola, Estou implementando uma rotina para consultar Manifestação do Destinatário usando o ACBrNFeMonitor e me deparei com a Nota Técnica 2014/002 onde diz "Este Web Service possibilitará a descontinuidade, no futuro, do Web Service de Consulta da Relação de Documentos Destinados (NfeConsultaDest). Desativação do Web Service NfeConsultaDest: 02/02/15". Nos teste que estou fazendo em 10/09/2015 o servidor ainda funciona. A minha duvida é: 1) este serviço vai ser decontinuado? 2) no ACBrNFeMonitor existe o comando DistribuicaoDFe?
  4. InfEvento.DescEvento:= 'JUSTIFICATIVA'; nfEvento.detEvento.descEvento:= 'JUSTIFICATIVA'; nenhum dos dois funciona, qual seria ?
  5. if tipo=1 then infEvento.tpEvento := teManifDestConfirmacao else if tipo=2 then infEvento.tpEvento := teManifDestDesconhecimento else if tipo=3 then infEvento.tpEvento := teManifDestOperNaoRealizada else if tipo=4 then infEvento.tpEvento := teManifDestCiencia; todos funciona , mais o teManifDestOperNaoRealizada ta dando este erro ////////////////////////////////////////////// function TForm_Manifesto.Manifestar(tipo: Integer): Boolean; var Chave, idLote, CNPJ, vXMotivo: string; lMsg: string; begin try Chave:=DM11.Client_ManifestoCHAVE_NFE.Text; CNPJ:=Form_NFe.edtEmitCNPJ.Text; Chave := Trim(OnlyNumber(Chave)); idLote := '1'; //Form_NFe.ACBrNFe1.NotasFiscais.Clear; Form_NFe.ACBrNFe1.EventoNFe.Evento.Clear; Form_NFe.ACBrNFe1.EventoNFe.idLote := StrToInt(IDLote); with Form_NFe.ACBrNFe1.EventoNFe.Evento.Add do begin infEvento.chNFe := Chave; infEvento.CNPJ := CNPJ; infEvento.dhEvento := now; if tipo=1 then infEvento.tpEvento := teManifDestConfirmacao else if tipo=2 then infEvento.tpEvento := teManifDestDesconhecimento else if tipo=3 then infEvento.tpEvento := teManifDestOperNaoRealizada else if tipo=4 then infEvento.tpEvento := teManifDestCiencia; end; //Form_NFe.ACBrNFe1.EnviarEventoNFe(StrToInt(IDLote)); if DM11.Client_ManifestoCIDADE.Text='MATO GROSSO - MT' then Form_NFe.ACBrNFe1.EventoNFe.Evento.Items[0].InfEvento.cOrgao := 91; if Form_NFe.ACBrNFe1.EnviarEventoNFe(StrToInt(IDLote)) then begin if Form_NFe.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 657 then begin Form_NFe.ACBrNFe1.EventoNFe.Evento.Items[0].InfEvento.cOrgao := Form_NFe.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.cOrgao; if not Form_NFe.ACBrNFe1.EnviarEventoNFe(StrToInt(IDLote)) then begin { with Form_NFe.ACBrNFe1.WebServices.EnvEvento do begin raise Exception.Create('Ocorreram erros ao tentar efetuar a manifestação:' + sLineBreak + 'Lote: ' + IntToStr(EventoRetorno.idLote) + sLineBreak + 'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb) + sLineBreak + 'Orgao: ' + IntToStr(EventoRetorno.cOrgao) + sLineBreak + 'Status: ' + IntToStr(EventoRetorno.cStat) + sLineBreak + 'Motivo: ' + EventoRetorno.xMotivo); end; } end; end; end; with Form_NFe.AcbrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento do begin vXMotivo:=xMotivo; lMsg:= 'Id: '+Id+#13+ 'tpAmb: '+TpAmbToStr(tpAmb)+#13+ 'verAplic: '+verAplic+#13+ 'cOrgao: '+IntToStr(cOrgao)+#13+ 'cStat: '+IntToStr(cStat)+#13+ 'xMotivo: '+xMotivo+#13+ 'chNFe: '+chNFe+#13+ 'tpEvento: '+TpEventoToStr(tpEvento)+#13+ 'xEvento: '+xEvento+#13+ 'nSeqEvento: '+IntToStr(nSeqEvento)+#13+ 'CNPJDest: '+CNPJDest+#13+ 'emailDest: '+emailDest+#13+ 'dhRegEvento: '+DateTimeToStr(dhRegEvento)+#13+ 'nProt: '+nProt; end; if Pos('registrado e vinculado', vXMotivo )>0 then begin try DM.SQL_PRATUDO.Close; DM.SQL_PRATUDO.CommandText:= 'UPDATE N_MANIFESTO SET DATAMANIFESTO=:A, TIPOMANIFESTO='+IntToStr(tipo)+' '+ 'WHERE ID='+DM11.Client_ManifestoID.Text+' '; DM.SQL_PRATUDO.ParamByName('A').AsDate:= StrToDate( FormatDateTime('dd/mm/yyyy',Now) ); DM.SQL_PRATUDO.ExecSQL; Commit( DM.SQL_PRATUDO ); except MessagemH(1,'Erro ao salvar o evento do manifesto !'); end; end else begin if tipo=1 then NFEM_CancelarProcesso:=1; ShowMessage(lMsg); end; Form_NFe.MemoResp.Lines.Text := UTF8Encode(Form_NFe.ACBrNFe1.WebServices.EnvEvento.RetWS); Form_NFe.memoRespWS.Lines.Text := UTF8Encode(Form_NFe.ACBrNFe1.WebServices.EnvEvento.RetornoWS); // ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].XXXX Form_NFe.LoadXML(Form_NFe.MemoResp, Form_NFe.WBResposta); except on E: Exception do begin if tipo=1 then NFEM_CancelarProcesso:=1; MessagemH(2,'Erro ao enviar evento de manifesto !'+#13+ E.Message); end; end; end;
  6. Resolvir assim Ide.dEmi := StrToDate(DM12.Client_NotaFiscalC_EMISSAO.Text);// Date; Ide.dSaiEnt := StrToDate(DM12.Client_NotaFiscalC_ENTREGA.Text);// Date; Ide.hSaiEnt := Now; Ide.dEmi := StrToDateTime(DM12.Client_NotaFiscalC_EMISSAO.Text+' '+FormatDateTime('hh:mm:ss',Now)); Ide.dSaiEnt := StrToDateTime(DM12.Client_NotaFiscalC_ENTREGA.Text+' '+FormatDateTime('hh:mm:ss',Now));
  7. 2.00 mudei para ACBrNFe1.Configuracoes.Geral.VersaoDF := ve310; e pedio a tag Dest.indIEDest := inNaoContribuinte; mais a tag Ide.hSaiEnt := Now; nao aperece mais no xml 3.10 e no DANFE fica 00:00:00 o que devo fazer?
  8. Desativei o CONSULTALOTEAPOSENVIO = False e mudei minha rotina de enviar try if Form_NFSe.ACBrNFSe1.Enviar(vNumLote) then begin //MessagemH( 0, 'Form_NFSe.ACBrNFSe1.Enviar(vNumLote)' ); DM12.Client_NotaFiscal.edit; DM12.Client_NotaFiscalNFS_PROTOCOLO.Text:= Form_NFSe.ACBrNFSe1.WebServices.Enviar.Protocolo; DM12.Client_NotaFiscalNFS_PROTOCOLO_LOTE.Text:= Form_NFSe.ACBrNFSe1.WebServices.ConsLote.Protocolo; DM12.Client_NotaFiscalNFS_CODVERIFICACAO.Text:= Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.CodigoVerificacao; DM12.Client_NotaFiscalNUMERO.Text:= Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.Numero; DM12.Client_NotaFiscal.ApplyUpdates(-1); Form_NFSe.ACBrNFSe1.NotasFiscais.Clear; //COSNULTA 1 SEGUNDOS 5 TENTATIVA //CONSUTA RPS RPS + 12 - RPS.XML // // try Form_NFSe.ACBrNFSe1.NotasFiscais.Clear; Form_NFSe.ACBrNFSe1.NotasFiscais.LoadFromFile( RAIZ+'\Controles_SQL\NFSe\EnvioDeResposta\'+ Copy( DM12.Client_NotaFiscalC_EMISSAO.Text,7,4 )+ Copy( DM12.Client_NotaFiscalC_EMISSAO.Text,4,2 )+ '\RPS\'+DM12.Client_NotaFiscalNFS_RPS.Text+Form_NFSe.Edit2.Text+'-RPS.XML' ); Form_NFSe.ACBrNFSe1.ConsultarNFSeporRps(Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero, Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie, TipoRPSToStr(Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Tipo), Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.Prestador.Cnpj, Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.Prestador.InscricaoMunicipal); Form_NFSe.MemoResp.Lines.Text := UTF8Encode(Form_NFSe.ACBrNFSe1.WebServices.ConsNfseRps.RetWS); Form_NFSe.memoRespWS.Lines.Text := UTF8Encode(Form_NFSe.ACBrNFSe1.WebServices.ConsNfseRps.RetWS); Form_NFSe.LoadXML(Form_NFSe.MemoResp, Form_NFSe.WBResposta); DM12.Client_NotaFiscal.edit; DM12.Client_NotaFiscalNFS_CODVERIFICACAO.Text:= Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.CodigoVerificacao; DM12.Client_NotaFiscalNUMERO.Text:= Form_NFSe.ACBrNFSe1.NotasFiscais.Items[0].NFSe.Numero; DM12.Client_NotaFiscal.ApplyUpdates(-1); if Tipo=0 then begin //IMPRIMIR Form_NotaFiscal.BitBtn99Click(nil); end; Form_NFSe.ACBrNFSe1.NotasFiscais.Clear; except MessagemH(2,'NFS-e NºPED:'+DM12.Client_NotaFiscalCOD.Text+' RPS:'+FormatFloat('#########0', StrToInt(NumNFSe))+''+#13+ 'Sem Retorno !'); Abort; end; end else begin MessagemH(2,'NFS-e NºPED:'+DM12.Client_NotaFiscalCOD.Text+' RPS:'+FormatFloat('#########0', StrToInt(NumNFSe))+''+#13+ 'Não Enviada !'); Abort; end; except on E: Exception do begin MessagemH(2,'NFS-e NºPED:'+DM12.Client_NotaFiscalCOD.Text+' RPS:'+FormatFloat('#########0', StrToInt(NumNFSe))+''+#13+ 'Não Enviada !'+#13+ E.Message); Form_NFSe.ACBrNFSe1.NotasFiscais.Clear; Abort; end; end;
  9. Essa semana comerçou acontecer isto, Da erro ao enviar a NFS, mais a nota ta no Site ISS.NET e ja atualizei o acbr com a Revisão 8457
  10. Estou com o demo do Consultar CNPJ mais executar da este erro
  11. Senhores, Consegui resolver o problema faltou simplesmente colocar onde esta: Errado: NFe.ImprimirDanfe("'+odOpenNFe.FileName+'","MP4200TH01",1) Certo: NFe.ImprimirDanfe("'+odOpenNFe.FileName+'","\\ESTACAO01\MP4200TH01")
  12. Senhores, Estou precisando de ajuda com a seguinte situação: Tenho 4 estações cada uma com uma impressora Bematech MP-4200 TH, um servidor com o ACBrNFeMonitor. Quando mando imprimir a NFC-e de uma das estações usando comando (NFe.ImprimirDanfe) para o monitor impressão e gerada no servidor. Já pesquisei aqui no fórum e não encontrei uma forma para que a impressão saia na estação que foi solicitada a impressão. (Foi feito mapeamento das impressoras no servidor ex: MP4200TH01/MP4200TH02/MP4200TH03/MP4200TH04) (Quando defino uma das impressoras como padrão no ACBrNFeMonitor ai funciona) Já usei os comandos mencionados no manual e exemplos aqui do fórum mas não funciona. Ex: NFe.ImprimirDanfe("'+odOpenNFe.FileName+'","MP4200TH01",1) Existe uma outra opção para que a impressão saia na estação que gerou a NFC-e?
  13. Tem necessidade, porque no retorno da caixa economica , em todos os retorno sempre vem 2 linhas no fical incorretas e o acbr ler, como sao incorretas vem a data 00000000 ai o acbr tenta convverter com StringToDateTimeDef e da ERRO. Olha no primiero post, tem a imagem de erro de data 00/00/0000 coloquei o continuar, para nao ler a linha = 'U' pos a primeira linha que é 'T ta incorreta.
  14. tem como min mostrar qual a melhor maneira para verifica cSata do enviar da nfc-e
  15. Conseguir USERNAME = nome do usuario conexao remota CLIENTNAME = nome da maquina que abrio a conexao remota USERPROFILE = caminho da pasta de meus documentos do usuario Edit1.Text := GetEnv('USERNAME'); function TForm1.GetEnv(Variable: string): string; var Buffer : Integer; begin Buffer := GetEnvironmentVariable(PChar(Variable), nil, 0); if Buffer > 0 then begin SetLength(Result, Buffer - 1); GetEnvironmentVariable(PChar(Variable), PChar(Result), Buffer); end else Result := ''; end; essa é pra saber se esta em uma conexao remota ou desktop procedure TForm1.Button1Click(Sender: TObject); begin if IsRemoteSession=True then Edit1.Text:='Conexao Remota' else Edit1.Text:= 'Desktop' ; end; function TForm1.IsRemoteSession: boolean; var res : integer; begin res := GetSystemMetrics (SM_REMOTESESSION); Result := (res <> 0); end;
  16. Tem como o exe que esta em um Servidor saber qual o Nome do cumputador REMOTO ; ex: SERVIDOR ex: HETOPROG pc que chamou via conexao remota o SERVIDOR quero saber o nome do pc do cliente nao do servidor que no caso seria HETOPROG
  17. Na verdade tem se data for vazio nao façar. if StrToIntDef(Copy(Linha,74,2),0) <> 0 then ACBrCaixaEconomica.pas
  18. Obrigado pela anteção, sobre copiar codigo , é mehor manda em txt ou proprio unit do codigo?
  19. Deu uma olhada amigo, estavo com mesmo problema.
  20. Corrigir o erro da data e dos erros de Rejeicao Temporario. function TACBrCaixaEconomica.GerarRegistroTrailler240( ARemessa : TStringList ): String; var wQTDTitulos: Integer; begin wQTDTitulos := ARemessa.Count - 1; {REGISTRO TRAILER DO LOTE} Result:= IntToStrZero(ACBrBanco.Numero, 3) + //Código do banco '0001' + //Lote de Serviço '5' + //Tipo do registro: Registro trailer do lote Space(9) + //Uso exclusivo FEBRABAN/CNAB IntToStrZero((3* wQTDTitulos + 2 ), 6) + //Quantidade de Registro no Lote (Registros P,Q,R, header e trailer do lote) IntToStrZero((wQTDTitulos), 6) + //Quantidade títulos em cobrança IntToStrZero( round( fValorTotalDocs * 100), 17) + //Valor dos títulos em carteiras} padL('', 6, '0') + //Quantidade títulos em cobrança padL('',17, '0') + //Valor dos títulos em carteiras} padL('',6, '0') + //Quantidade títulos em cobrança padL('',17, '0') + //Quantidade de Títulos em Carteiras padL('',31, ' ') + //Uso exclusivo FEBRABAN/CNAB padL('',117,' ') ; //Uso exclusivo FEBRABAN/CNAB} {GERAR REGISTRO TRAILER DO ARQUIVO} Result:= Result + #13#10 + IntToStrZero(ACBrBanco.Numero, 3) + //Código do banco '9999' + //Lote de serviço '9' + //Tipo do registro: Registro trailer do arquivo padL('',9,' ') + //Uso exclusivo FEBRABAN/CNAB} '000001' + //Quantidade de lotes do arquivo (Registros P,Q,R, header e trailer do lote e do arquivo) IntToStrZero((3* wQTDTitulos)+4, 6) + //Quantidade de registros do arquivo, inclusive este registro que está sendo criado agora} padL('',6,' ') + //Uso exclusivo FEBRABAN/CNAB} padL('',205,' '); //Uso exclusivo FEBRABAN/CNAB} end; procedure TACBrCaixaEconomica.LerRetorno240(ARetorno: TStringList); var ContLinha: Integer; Titulo : TACBrTitulo; Linha, rCedente, rCNPJCPF: String; rAgencia, rConta,rDigitoConta: String; MotivoLinha, I, CodMotivo: Integer; Continuar: Boolean; begin ContLinha := 0; if (copy(ARetorno.Strings[0],1,3) <> '104') then raise Exception.Create(ACBrStr(ACBrBanco.ACBrBoleto.NomeArqRetorno + 'não é um arquivo de retorno do '+ Nome)); rCedente := trim(Copy(ARetorno[0],73,30)); rAgencia := trim(Copy(ARetorno[0],53,5)); rConta := trim(Copy(ARetorno[0],59,5)); rDigitoConta := Copy(ARetorno[0],64,1); ACBrBanco.ACBrBoleto.NumeroArquivo := StrToIntDef(Copy(ARetorno[0], 158, 6), 0); ACBrBanco.ACBrBoleto.DataArquivo := StringToDateTimeDef(Copy(ARetorno[1],192,2)+'/'+ Copy(ARetorno[1],194,2)+'/'+ Copy(ARetorno[1],198,2),0, 'DD/MM/YY' ); if StrToIntDef(Copy(ARetorno[1],200,6),0) <> 0 then ACBrBanco.ACBrBoleto.DataCreditoLanc := StringToDateTimeDef(Copy(ARetorno[1],200,2)+'/'+ Copy(ARetorno[1],202,2)+'/'+ Copy(ARetorno[1],204,4),0, 'DD/MM/YY' ); rCNPJCPF := trim( Copy(ARetorno[0],19,14)) ; if ACBrBanco.ACBrBoleto.Cedente.TipoInscricao = pJuridica then begin rCNPJCPF := trim( Copy(ARetorno[1],19,15)); rCNPJCPF := RightStr(rCNPJCPF,14) ; end else begin rCNPJCPF := trim( Copy(ARetorno[1],23,11)); rCNPJCPF := RightStr(rCNPJCPF,11) ; end; with ACBrBanco.ACBrBoleto do begin if (not LeCedenteRetorno) and (rCNPJCPF <> OnlyNumber(Cedente.CNPJCPF)) then raise Exception.Create(ACBrStr('CNPJ\CPF do arquivo inválido')); if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia)) or (rConta+rDigitoConta <> OnlyNumber(Cedente.CodigoCedente))) then raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido')); if LeCedenteRetorno then begin Cedente.Nome := rCedente; Cedente.CNPJCPF := rCNPJCPF; Cedente.Agencia := rAgencia; Cedente.AgenciaDigito:= '0'; Cedente.Conta := rConta; Cedente.ContaDigito:= rDigitoConta; Cedente.CodigoCedente:= rConta+rDigitoConta; case StrToIntDef(Copy(ARetorno[1],18,1),0) of 1: Cedente.TipoInscricao:= pFisica; 2: Cedente.TipoInscricao:= pJuridica; else Cedente.TipoInscricao:= pJuridica; end; end; ACBrBanco.ACBrBoleto.ListadeBoletos.Clear; end; for ContLinha := 1 to ARetorno.Count - 2 do begin Linha := ARetorno[ContLinha] ; {Segmento T - Só cria após passar pelo seguimento T depois U} //if Copy(Linha,14,1)= 'T' then // Titulo := ACBrBanco.ACBrBoleto.CriarTituloNaLista; if (Copy(Linha,14,1)= 'T') AND (StrToIntDef(Copy(Linha,74,2),0) <> 0) then Titulo := ACBrBanco.ACBrBoleto.CriarTituloNaLista; with Titulo do begin {Segmento T} if Copy(Linha,14,1)= 'T' then begin if StrToIntDef(Copy(Linha,74,2),0) <> 0 then begin Continuar := True; SeuNumero := copy(Linha,59,11); NumeroDocumento := copy(Linha,59,11); OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(StrToIntDef(copy(Linha,16,2),0)); //05 = Liquidação Sem Registro Vencimento := StringToDateTimeDef( Copy(Linha,74,2)+'/'+ Copy(Linha,76,2)+'/'+ Copy(Linha,80,2),0, 'DD/MM/YY' ); ValorDocumento := StrToFloatDef(Copy(Linha,82,15),0)/100; ValorDespesaCobranca := StrToFloatDef(Copy(Linha,199,15),0)/100; NossoNumero := Copy(Linha,42,15); Carteira := Copy(Linha,40,2); CodigoLiquidacao := Copy(Linha,214,02); CodigoLiquidacaoDescricao := CodigoLiquidacao_Descricao( StrToIntDef(CodigoLiquidacao,0) ); { //COMENTEI ESSA LINHA // DONE -oJacinto Junior: Implementar a leitura dos motivos das ocorrências. MotivoLinha := 214; for I := 0 to 4 do begin CodMotivo := StrToIntDef(IfThen(Copy(Linha, MotivoLinha, 2) = '00', '00', Copy(Linha, MotivoLinha, 2)), 0); if CodMotivo <> 0 then begin MotivoRejeicaoComando.Add(IfThen(Copy(Linha, MotivoLinha, 2) = '00', '00', Copy(Linha, MotivoLinha, 2))); DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao(OcorrenciaOriginal.Tipo, CodMotivo)); end; MotivoLinha := MotivoLinha + 2; // Incrementa a coluna dos motivos. end; } end else begin Continuar := False; end; end {Ssegmento U} else if Copy(Linha,14,1)= 'U' then begin if Continuar = True then begin if StrToIntDef(Copy(Linha,138,6),0) <> 0 then DataOcorrencia := StringToDateTimeDef( Copy(Linha,138,2)+'/'+ Copy(Linha,140,2)+'/'+ Copy(Linha,142,4),0, 'DD/MM/YYYY' ); if StrToIntDef(Copy(Linha,146,6),0) <> 0 then DataCredito:= StringToDateTimeDef( Copy(Linha,146,2)+'/'+ Copy(Linha,148,2)+'/'+ Copy(Linha,150,4),0, 'DD/MM/YYYY' ); ValorMoraJuros := StrToFloatDef(Copy(Linha,18,15),0)/100; ValorDesconto := StrToFloatDef(Copy(Linha,33,15),0)/100; ValorAbatimento := StrToFloatDef(Copy(Linha,48,15),0)/100; ValorIOF := StrToFloatDef(Copy(Linha,63,15),0)/100; ValorRecebido := StrToFloatDef(Copy(Linha,93,15),0)/100; ValorOutrasDespesas := StrToFloatDef(Copy(Linha,108,15),0)/100; ValorOutrosCreditos := StrToFloatDef(Copy(Linha,123,15),0)/100; end; end {Segmento W} else if Copy(Linha, 14, 1) = 'W' then begin //verifica o motivo de rejeição MotivoRejeicaoComando.Add(copy(Linha,29,2)); DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao( CodOcorrenciaToTipo( StrToIntDef(copy(Linha, 16, 2), 0)), StrToInt(Copy(Linha, 29, 2)))); end; end; end; end;
  21. tenho o executavel antigo e executou o mesmo arquivo de boa. as atualizacao do acbr na minha umilde opcao, estao muito brusca , estou com um problema no nfc-e ate agora nao conseguir resolver, e agora no boleto, so porque min deu na ideia de atualiza o acbr. CACBrBoleto_Versao = '0.0.90a' ; CACBrBoleto_Versao = '0.0.104a' ; Erro da data eu corrigir, mais as messagem de rejeicao nao. procedure TACBrCaixaEconomica.LerRetorno240(ARetorno: TStringList); for ContLinha := 1 to ARetorno.Count - 2 do begin Linha := ARetorno[ContLinha] ; {Segmento T - Só cria após passar pelo seguimento T depois U} if Copy(Linha,14,1)= 'T' then Titulo := ACBrBanco.ACBrBoleto.CriarTituloNaLista; with Titulo do begin {Segmento T} if Copy(Linha,14,1)= 'T' then begin if StrToIntDef(Copy(Linha,74,2),0) <> 0 then begin Continuar := True; SeuNumero := copy(Linha,59,11);
  22. Depois que atualizei o acbr ta dando esse erro ao ler o arquivo de retorno da caixa economica
  23. Alguma solução ? qual a maneira correta para verificacao de cStat oi, alguem min ajuda.
  24. Preciso tratrar o cSat no exception , porque façor algumas coisa tipo se ..... //703 - SE A DATA OU A HORA FOR DEPOIS QU EHORARIO DA SEFAZ EX 11:00PD 10:00SEFAZ //704 - data menor que a da sefaz //558 - DATA POSTERIOR DE CONTIGENCIA //610 - VALORES INCORRETOS //750 - TOTAL MAIOR QUE PERMINTIDO PARA CLIENTE SEM CPF //752 - TOTAL MAIOR QUE PERMINTIDO PARA CLIENTE SEM ENDERECO //564 - DIFERENCA NOS ITEM IF (varcStat=703)OR (varcStat=704)OR (varcStat=558)OR (varcStat=610)or (varcStat=750)OR (varcStat=752)OR (varcStat=564) THEN BEGIN ///MEUS CODIGOS END; // AUMENTAR NUMERO NFC-E //539 - DUPLICAMENTO DA NFC-e //204 - DUPLICIDADE DA CHAVE IF (varcStat=539) or (varcStat=204) THEN BEGIN //MEUS CODIOGS END; Mais mostra 100 e na verdade como deu erro o cStar tinha que ser no minimo 0 to mudando os 2 sistema aqui, pos antes de atualizar acbr , so dava exeception quando tava sem internet ou sefaz fora do ar agora se nao for cSat = 100 cai no exeception
×
×
  • 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.