Ir para conteúdo
  • Cadastre-se

Luis Ricardo

Membros Pro
  • Total de ítens

    118
  • Registro em

  • Última visita

Tudo que Luis Ricardo postou

  1. Luis Ricardo

    Remessa Arquivo

    Boa tarde! Estou com um problema e näo sei como resolver, o sistema esta gerando boleto, imprimindo, gerando o arquivo para remessa ate ai parece estar blz, ocorre que o arquivo enviado para o banco Bradesco esta sendo aceito sem rejeição, mas quando o cliente entra no site para verificar a lista dos boleto em banco eles näo aparece. segue abaixo um arquivo de remessa e a estrutura do sistema (fonte) espero que alguém indique a besteira que estou fazendo desde já fico agradecido. procedure TF_GerarRemessaBoletos.lb_gerarClick(Sender: TObject); var TD: TTransactionDesc; MyString:TstringList; ic:Cardinal; vrche:TListItem; Titulo : TACBrTitulo; I : Integer; NrTitulos,Seq,mxseq : Integer; NrTitulosStr :String; Convertido: Boolean; dia,mes:String; begin lb_gerar.Enabled := False; dia:=FormatDateTime('DD',Date); mes:=FormatDateTime('MM',Date); for ic := 0 to lv_boletos.items.count-1 do if lv_boletos.items.item[ic].checked then begin vrche:=lv_boletos.Items.Item[ic]; //obtém o item da linha X MyString := TstringList.Create; MyString.Clear; MyString.Add('select a.bol_codigo, a.bol_codcc, a.bol_nossonumero, a.bol_numtitulo, a.bol_vrtitulo, a.bol_dataemissao,'); MyString.Add('a.bol_datavenc, a.bol_codparceiro, a.bol_nome, a.bol_ntitulo, a.bol_inscricao, a.bol_endereco,'); MyString.Add('a.bol_numero, a.bol_complemento, a.bol_bairro, a.bol_cidade, a.bol_cep, a.bol_uf, a.bol_vrjrsdia,'); MyString.Add('a.bol_vrdescdia, a.bol_abat, a.bol_datajrs, a.bol_datadesc, a.bol_dataabat, a.bol_dataprotesto,'); MyString.Add('a.bol_inst_1, a.bol_inst_2, a.bol_mensagens, a.bol_especie,'); MyString.Add('b.cof_codigo, b.cof_codcc, b.cof_localpgto, b.cof_diasprotesto, b.cof_instrucao_1, b.cof_instrucao_2, b.cof_carteira '); MyString.Add('from st_boleto a '); MyString.Add('inner join st_configboleto b '); MyString.Add('on a.bol_codcc = b.cof_codcc '); MyString.Add('where a.bol_codigo = :a.bol_codigo'); F_GerarRemessaBoletos.cds_bol.Close; F_GerarRemessaBoletos.cds_bol.CommandText:=MyString.Text; F_GerarRemessaBoletos.cds_bol.Params[0].AsInteger := StrToInt(vrche.Caption); F_GerarRemessaBoletos.cds_bol.Open; MyString.Free; while not F_GerarRemessaBoletos.cds_bol.Eof do begin Titulo:= ACBrBoleto1.CriarTituloNaLista; F_DMdados.cdsCCbancos.Close; F_DMdados.cdsCCbancos.CommandText := 'SELECT * FROM STCOTCORRENTE WHERE CC_CODIGO = :CC_CODIGO'; F_DMdados.cdsCCbancos.Params[0].AsInteger := F_GerarRemessaBoletos.cds_bolCOF_CODCC.AsInteger; F_DMdados.cdsCCbancos.Open; if (F_DMdados.cdsCCbancos.RecordCount <> 0) then begin F_DMdados2.cdsParBolBco.Close; F_DMdados2.cdsParBolBco.CommandText := 'SELECT * FROM ST_PARAMBOLETOBCO WHERE COB_CODCC = :COB_CODCC'; F_DMdados2.cdsParBolBco.Params[0].AsInteger := F_GerarRemessaBoletos.cds_bolCOF_CODCC.AsInteger; F_DMdados2.cdsParBolBco.Open; ACBrBoleto1.Cedente.Nome := F_DMdados.cdsCCbancosCC_TITULAR.AsString; if Length(Trim(F_DMdados2.cdsParBolBcoCOB_CNPJ_CPF.AsString)) = 11 then begin ACBrBoleto1.Cedente.TipoInscricao := pFisica; end else begin ACBrBoleto1.Cedente.TipoInscricao := pJuridica; end; ACBrBoleto1.Cedente.CNPJCPF := F_DMdados2.cdsParBolBcoCOB_CNPJ_CPF.AsString; ACBrBoleto1.Cedente.Logradouro := F_DMdados2.cdsParBolBcoCOB_END.AsString+' '+F_DMdados.cdsCCbancosCC_CIDADE.AsString+' '+F_DMdados.cdsCCbancosCC_ESTADO.AsString; ACBrBoleto1.Cedente.Agencia := F_DMdados.cdsCCbancosCC_AGENCIA.AsString; ACBrBoleto1.Cedente.AgenciaDigito := IntToStr(F_DMdados.cdsCCbancosCC_DIGITOAG.AsInteger); ACBrBoleto1.Cedente.Conta := F_DMdados.cdsCCbancosCC_CONTCOR.AsString; ACBrBoleto1.Cedente.ContaDigito := IntToStr(F_DMdados.cdsCCbancosCC_DIGITOCC.AsInteger); ACBrBoleto1.Cedente.CodigoCedente := IntToStr(F_DMdados2.cdsParBolBcoCOB_CODCOBRANCA.AsInteger); ACBrBoleto1.Cedente.TipoCarteira := tctRegistrada; ACBrBoleto1.Cedente.CaracTitulo := tcSimples; end; with Titulo do begin Vencimento := IncMonth(F_GerarRemessaBoletos.cds_bolBOL_DATAVENC.AsDateTime); DataDocumento := F_GerarRemessaBoletos.cds_bolBOL_DATAEMISSAO.AsDateTime; NumeroDocumento := F_GerarRemessaBoletos.cds_bolBOL_NTITULO.AsString; EspecieDoc := F_GerarRemessaBoletos.cds_bolBOL_ESPECIE.AsString; Aceite := atSim; EspecieMod := 'R$'; DataProcessamento := Now; // Parcela := F_GerarRemessaBoletos.cds // TotalParcelas NossoNumero := IntToStr(F_GerarRemessaBoletos.cds_bolBOL_NOSSONUMERO.AsInteger); Carteira := '01'; ValorDocumento := F_GerarRemessaBoletos.cds_bolBOL_VRTITULO.AsCurrency; Sacado.NomeSacado := F_GerarRemessaBoletos.cds_bolBOL_NOME.AsString; Sacado.CNPJCPF := F_GerarRemessaBoletos.cds_bolBOL_INSCRICAO.AsString; Sacado.Logradouro := F_GerarRemessaBoletos.cds_bolBOL_ENDERECO.AsString; Sacado.Numero := F_GerarRemessaBoletos.cds_bolBOL_NUMERO.AsString; Sacado.Bairro := F_GerarRemessaBoletos.cds_bolBOL_BAIRRO.AsString; Sacado.Cidade := F_GerarRemessaBoletos.cds_bolBOL_CIDADE.AsString; Sacado.UF := F_GerarRemessaBoletos.cds_bolBOL_UF.AsString; Sacado.CEP := F_GerarRemessaBoletos.cds_bolBOL_CEP.AsString; ValorAbatimento := F_GerarRemessaBoletos.cds_bolBOL_ABAT.AsCurrency; LocalPagamento := F_GerarRemessaBoletos.cds_bolCOF_LOCALPGTO.AsString; //MEnsagem exigida pelo bradesco ValorMoraJuros := F_GerarRemessaBoletos.cds_bolBOL_VRJRSDIA.AsCurrency; ValorDesconto := F_GerarRemessaBoletos.cds_bolBOL_VRDESCDIA.AsCurrency; DataMoraJuros := F_GerarRemessaBoletos.cds_bolBOL_DATAJRS.AsDateTime; DataDesconto := F_GerarRemessaBoletos.cds_bolBOL_DATADESC.AsCurrency; DataAbatimento := F_GerarRemessaBoletos.cds_bolBOL_DATAABAT.AsDateTime; DataProtesto := F_GerarRemessaBoletos.cds_bolBOL_DATAPROTESTO.AsDateTime; PercentualMulta := 0; Mensagem.Text := F_GerarRemessaBoletos.cds_bolBOL_MENSAGENS.AsString; OcorrenciaOriginal.Tipo := toRemessaRegistrar; CarteiraEnvio := tceCedente; Instrucao1 := F_GerarRemessaBoletos.cds_bolBOL_INST_1.AsString; Instrucao2 := F_GerarRemessaBoletos.cds_bolBOL_INST_2.AsString; ACBrBoleto1.AdicionarMensagensPadroes(Titulo,Mensagem); end; try TD.TransactionID:=1; TD.IsolationLevel:= xilREADCOMMITTED; F_DMdados.SQLConn.StartTransaction(TD); F_DMdados2.cdsBoleto.Close; F_DMdados2.cdsBoleto.CommandText := 'SELECT * FROM ST_BOLETO WHERE BOL_CODIGO = :BOL_CODIGO'; F_DMdados2.cdsBoleto.Params[0].AsInteger := F_GerarRemessaBoletos.cds_bolBOL_CODIGO.AsInteger; F_DMdados2.cdsBoleto.Open; if (F_DMdados2.cdsBoleto.RecordCount <> 0) then begin MyString := TstringList.Create; MyString.Clear; MyString.Add('UPDATE ST_BOLETO SET BOL_REMESSA=:BOL_REMESSA WHERE BOL_CODIGO = :BOL_CODIGO'); F_DMdados2.sdsBoleto.CommandText := MyString.Text; MyString.Free; F_DMdados2.sdsBoleto.ParamByName('BOL_CODIGO').AsInteger := F_GerarRemessaBoletos.cds_bolBOL_CODIGO.AsInteger; F_DMdados2.sdsBoleto.ParamByName('BOL_REMESSA').AsString := 'S'; F_DMdados2.sdsBoleto.ExecSQL; end; F_DMdados.SQLConn.Commit(TD); except on E:Exception do begin F_DMdados.SQLConn.Rollback(TD); ShowMessage('Erro ao tentar INCLUIR o registro: ' + E.Message); Abort; end; end; F_GerarRemessaBoletos.cds_bol.Next; end; F_GerarRemessaBoletos.cds_bol.Close; end; F_DMdados2.cdsSegBol.Close; F_DMdados2.cdsSegBol.CommandText := 'SELECT * FROM ST_BOLNUMEROREMESSA WHERE NRE_CODIGO = :NRE_CODIGO'; F_DMdados2.cdsSegBol.Params[0].AsInteger := 1; F_DMdados2.cdsSegBol.Open; if (F_DMdados2.cdsSegBol.RecordCount <> 0) then begin seq := F_DMdados2.cdsSegBolNRE_NUMERO.AsInteger+1; mxseq := F_DMdados2.cdsSegBolNRE_MXNUMERO.AsInteger+1; end; ACBrBoleto1.NomeArqRemessa := 'CB'+dia+mes+IntToStr(seq)+'.REM'; ACBrBoleto1.GerarRemessa(mxseq); //criar uma seencia em uma base de dados CB070382.REM
  2. Luis Ricardo

    Arquivo de Retorno Boleto

    Bom dia! Estou acabando de implementar o retorno do arquivo de boleto, surgiu uma duvida a propriedade de Retorno ValorRecebido é o valor creditado na conta corrente junto ao banco e o mesmo já esta incluído o valor do juros e multa pago pelo cliente ?
  3. Bom dia! Daniel, desculpe a minha pressa, mas vc tem uma previsão para implementação do modelo das balança já enviado, o que mais estou com problema e o modelo Toleto 8580 por IP o cliente que uma resposta, e näo tenho mais argumentos. só essa já resolvia um bocado de problema. fico grato,
  4. No meu caso, o sistema tem um função para capturar o protocolo da nf-e, no exemplo do ACBRNFE tem uma parte sobre isso. está funcionando em todos os clientes.
  5. BoA tarde, resolvi o problema da seguinte forma, apos o erro de rejeição, vou em CAPTURAR PROTOCOLO e pronto é só imprimir.
  6. lucas não é problema de dois certificados instalado na, pq ja fiz isso em um cliente removi e deixei só um certificado, o erro continua.
  7. Feliz Ano Novo!!!! estou com o mesmo problema Rejeição: CNPJ do Transmissor do lote diferente do CNPJ do transmissor da consulta. o que podemos fazer
  8. boa noite, hoje testei na balança por IR , ela parece que esta encontrando porque traz o peso zerado. segue o arquivo de log balLog
  9. Daniel, só para informar estou possando a configuração direto, esta capturando o peso só tem um problema, no display da balanca o peso esta 20900 no sistema quanto captura ele traz 2090 um zero a menos. nao e um peso ou outro é todos faz este corte. este teste é com serial, amanha vou fazer teste com IP posto o resultado. grato.
  10. Bom dia! o arquivo enviado esta correto ?
  11. bom dia! voltando ao trabalho da balança, a toledo mando o protocolo segue em anexo. Protocolos de balanças industriais.pdf
  12. Daniel, bom o sistema em questão é para duas balança distintas, a primeira é para Toledo 9091 rodoviária conexão serial COM1 e a outra é Todelo 8580 rodoviária está por IP MU9091Rodoviario3474053Rev160907.pdf MU_8540_NUMERICO_ANALOGICO_3474192_03-06-07.pdf
  13. acabei de fazer um teste, tirei configuração do componente via codigo, configurei direto no componente, qto aos parametros da balança o tecnico da toledo esteve aqui de deixou configura a serial, neste teste näo foi com IP, no Hiperterminal esta ok, feito isso no arquivo de log aparece tipo de balança, parida, e outras configuraçöes diferente aquelas que coloquei no componente, lembrando que foi direto no componente.
  14. Bom dia! hoje é um novo dia, problema de ontem soluções para hoje. Daniel, desculpa esta insistindo, ontem estava revisando o sistema e apareceu algumas duvidas no ACBrBal para escolher o modelo da balança eu estou fazendo assim (código abaixo) mas na hora que passo os paramentros no log aparece outro tipo de equipamento. bom resolvi omitir e coloque direto no componente o tipo de balança para ver no dava. ficou rápido para capturar o peso no log aparece o tipo de equipamento correto que selecionei, mas ai tem um problema, peso que era para ser 62800 aparece como 6280 o que sera que esta errado. código if acb_Balanca.Ativo then acb_Balanca.Desativar; if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balDigitron') then acb_balanca.Modelo := TACBrBALModelo(0); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balFilizona') then acb_balanca.Modelo := TACBrBALModelo(1); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balLider') then acb_balanca.Modelo := TACBrBALModelo(2); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balLucasTec') then acb_balanca.Modelo := TACBrBALModelo(3); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balMagellan') then acb_balanca.Modelo := TACBrBALModelo(4); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balMagna') then acb_balanca.Modelo := TACBrBALModelo(5); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balNenhum') then acb_balanca.Modelo := TACBrBALModelo(6); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balToledo') then acb_balanca.Modelo := TACBrBALModelo(7); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balToledo2180') then acb_balanca.Modelo := TACBrBALModelo(8); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balUrano') then acb_balanca.Modelo := TACBrBALModelo(9); if (F_DMdados.cdsConfBalCFG_MODELO.AsString = 'balUranoPOP') then acb_balanca.Modelo := TACBrBALModelo(10); // --------------------------------------------------------------------------------- if (F_DMdados.cdsConfBalCFG_FLUXO.AsString = 'hsDTR_DSR') then acb_balanca.Device.HandShake := TACBrHandShake(0); if (F_DMdados.cdsConfBalCFG_FLUXO.AsString = 'hsNenhum') then acb_balanca.Device.HandShake := TACBrHandShake(1); if (F_DMdados.cdsConfBalCFG_FLUXO.AsString = 'hsRTS_CTS') then acb_balanca.Device.HandShake := TACBrHandShake(2); if (F_DMdados.cdsConfBalCFG_FLUXO.AsString = 'hsXON_XOFF') then acb_balanca.Device.HandShake := TACBrHandShake(3); // --------------------------------------------------------------------------------- if (F_DMdados.cdsConfBalCFG_PARIDADE.AsString = 'pEven') then acb_balanca.Device.Parity := TACBrSerialParity(0); if (F_DMdados.cdsConfBalCFG_PARIDADE.AsString = 'pMark') then acb_balanca.Device.Parity := TACBrSerialParity(1); if (F_DMdados.cdsConfBalCFG_PARIDADE.AsString = 'pNone') then acb_balanca.Device.Parity := TACBrSerialParity(2); if (F_DMdados.cdsConfBalCFG_PARIDADE.AsString = 'pOdd') then acb_balanca.Device.Parity := TACBrSerialParity(3); if (F_DMdados.cdsConfBalCFG_PARIDADE.AsString = 'pSpace') then acb_balanca.Device.Parity := TACBrSerialParity(4); // --------------------------------------------------------------------------------- if (F_DMdados.cdsConfBalCFG_PARADA.AsString = 's1') then acb_balanca.Device.Stop := TACBrSerialStop(0); if (F_DMdados.cdsConfBalCFG_PARADA.AsString = 's1eMeio') then acb_balanca.Device.Stop := TACBrSerialStop(1); if (F_DMdados.cdsConfBalCFG_PARADA.AsString = 's2') then acb_balanca.Device.Stop := TACBrSerialStop(2); // ---------------------------------------------------------------------------------- acb_balanca.Device.Data := F_DMdados.cdsConfBalCFG_BITDADOS.AsInteger; acb_balanca.Device.Baud := F_DMdados.cdsConfBalCFG_TRANSMISSAO.AsInteger; acb_balanca.Intervalo := F_DMdados.cdsConfBalCFG_INTERVALO.AsInteger; // --------------------------------------------------------------------------------- if (F_DMdados.cdsConfBalCFG_MONITORAR.AsString = 'S') then acb_balanca.MonitorarBalanca := True else acb_balanca.MonitorarBalanca := False; acb_balanca.Porta := Trim(F_DMdados.cdsConfBalCFG_SERIAL.AsString); acb_Balanca.Ativar; balLog
  15. Daniel, a toledo mandou um sistema para verificar o IP e Porta da balança, mesmo assim aparece -9 segue anexo a tela do sistema da toledo.
  16. Daniel baixei as atualizacöes dos componentes, o log esta correto vou fazer um teste no cliente com IP , amanhä posto o resultado.
  17. Daniel, para ser sincero näo se esta ativo ou näo ?
  18. Bom dia, desculpe, a configuração do arquivo de log no meu caso a propriedade do componente ArqLOG esta em branco, deixei assim. outra duvida que surgiu, foi o ACBrBAL no TCP tem que ser conectado com o ACBrTCServer ou não, mas vou tentar com a configuração acima, estou aguardando o técnico da Toledo, passar os parâmetros. grato.
  19. no arquivo apareceu conforme abaixo -9 ---------------------------------------------------------------------------------------------------------- -9
  20. Ok, vou faze novas verificações.
  21. Daniel, fiz um teste na balança do cliente. obtive as seguintes informações. a principio parece que esta encontrando a balança, porque me retornou um erro dizendo peso instável com valor -9, caso näo desse conexão o erro seria outro. coloque os paramentos de que me passaram TRANSMISSAO = 9600 BIT = 8 PARIDADE = pEven PARADA = s2 FLUXO = hsNenhum INTERVALO = 5000 MONITORAR = S SERIAL = TCP:192.168.0.189:8880 vou verificar com a toledo ou sera que tem algo mais para configurar neste caso ?
  22. Daniel, vou fazer as atualizações e um teste, assim que tiver resultados posto o mesmo.
  23. o que quero dize, qdo mando capturar o peso, ex: o correto seria 10500 e retorno 1050, não da para saber quando esta correto. em virtude disso eu criei uma checagem que lê novamente o peso e se for igual continua, mas da um pequeno delei. e qto a conectar TCP/IP estou pesquisando mas estou confuso. grato
  24. Boa tarde, Daniel estou reabrindo este poste para dar continuidade ao projeto. Modelo da Balança Toledo 9190 Rodoviário. estou testando mas ate agora näo deu o erro de valor, fiz uma rotina abaixo o único problema é que a captura näo é instantânea segue abaixo o codigo. acb_Balanca.Ativar; try TimeOut := acb_balanca.Intervalo; //F_DMdados.cdsConfBalCFG_INTERVALO.AsInteger; except TimeOut := 5000 ; end ; ACB_balanca.LePeso(TimeOut); if (ce_valor.Value = 0) then begin if (valor = 0) and (valor > 1000) then begin valor := ce_valor.Value; end; if capitura > 100 then begin ShowMessage('Näo foi possivel conectar a balança, O Ticket será fechado, tente novamente !'); lb_sair.OnClick(Sender); end else begin capitura := capitura+1; if acb_Balanca.MonitorarBalanca = False then acb_balanca.MonitorarBalanca := True; lb_reconectar.OnClick(Sender); end; end else begin if (ce_valor.Value <> valor) then begin capitura := capitura+1; valor := ce_valor.Value; lb_reconectar.OnClick(Sender); end else begin gb_placa.Enabled := True; mk_placa.SetFocus; end; end; procedure TF_Ticket.ACB_balancaLePeso(Peso: Double; Resposta: String); var valid : integer; begin if (not Assigned(FRespostaList)) then FRespostaList := TStringList.Create; if FRespostaList.Count > 0 then FRespostaList.Add(StringOfChar('-', 80)); pn_resposta.Caption := formatFloat('######0.000', Peso); Me_mensagem.Text := Converte(Resposta) ; FRespostaList.Add(pn_resposta.Caption); ce_valor.Value := Peso; if Peso > 0 then begin Me_mensagem.Lines.Text := 'Leitura OK !'; end else begin valid := Trunc(ACB_balanca.UltimoPesoLido); case valid of 0 : Me_mensagem.Lines.Text := 'TimeOut !'+sLineBreak+ 'Coloque o produto sobre a Balança!' ; -1 : Me_mensagem.Lines.Text := 'Peso Instavel ! ' +sLineBreak+ 'Tente Nova Leitura' ; -2 : Me_mensagem.Lines.Text := 'Peso Negativo !' ; -9 : Me_mensagem.Lines.Text := 'Erro de leitura, balança Instável '; -10 : Me_mensagem.Lines.Text := 'Sobrepeso !' ; end; end ; end; um outro problema vai ser o mesmo modelo de balança via TCP/IP näo tenho nem ideia de como ajusta o sistema com essa condição. grato.
  25. Sm problema pode sair sempre na danfe
×
×
  • 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.