Ir para conteúdo
  • Cadastre-se

Luis Ricardo

Membros Pro
  • Total de ítens

    118
  • Registro em

  • Última visita

Posts postados por Luis Ricardo

  1. 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. 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. 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.  

  5. 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.

  6. 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

  7. 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.   

     

  8. 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 ?

  9. 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 

     

  10. 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.

     

×
×
  • 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.

The popup will be closed in 10 segundos...