Ir para conteúdo
  • Cadastre-se

volmir

Membros
  • Total de ítens

    484
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por volmir

  1. boa tarde,

    alguem ja conseguiu imprimir os comprovantes de credito ou debito usando uma impressora nao fiscal com TEF.

    se alguem consegui e tiver dispostos a compartilhar esta informacao pois nao estou conseguindo

    pois com impressora fiscal funciona normal porem pelo visto que dispara esta impressao é o componente acbrECF,

    como para a nfce nao tem impressora fiscal ai nao estou conseguindo imprimir este comprovante

  2. boa tarde a todos,

    estou desenvolvendo minha rotida de tef com a nfce

    estou usando o tef Daruma hoje pertencente a Linx

    uso para isso o ACBrTEFD

    nao sei se é eu que estou fazendo algo errado mas nao estava conseguindo cancelar visto que uso uma impressora nao fiscal Bematech MP4200

    mas tive que alterar uma funcao do componete e ai consegui efetuar o cancelamento

    segue funcao onde tive que mexer pra analize

    Function TACBrTEFDCliDTEF.FazerRequisicao( Funcao : Integer;  AHeader : AnsiString = '';
      Valor : Double = 0; Documento : AnsiString = ''; QuantidadeCheques : AnsiString = '';
      PeriodicidadeCheques : AnsiString = ''; DataPrimeiroCheque : AnsiString = '';
      CarenciaPrimeiroCheque : AnsiString = '') : Integer ;
    Var
      ValorStr, DataStr, HoraStr : AnsiString;
      ANow : TDateTime ;
      pValorTransacao, pNumeroCupomVenda, pNumeroControle,
        pQuantidadeCheques, pPeriodicidadeCheques, pDataPrimeiroCheque,
        pCarenciaPrimeiroCheque : AnsiString;
      SL, ArquivoResposta : TStringList;
      Voltar, Parar : Boolean;
      ItemSelecionado : integer;
    begin
      if fpAguardandoResposta then
        raise Exception.Create( ACBrStr( 'Requisição anterior não concluida' ) ) ;

      if AHeader = 'CRT' then
      begin
         ItemSelecionado := -1 ;
         fOnObtemInformacao( ItemSelecionado ) ;
         if ItemSelecionado > 0 then
            Funcao := ItemSelecionado
         else
            raise EACBrTEFDErro.Create( ACBrStr( 'Tipo de cartão não informado' ) );
      end;

      if AHeader = 'ADM' then
      begin
         SL := TStringList.Create;
         try
            SL.Add('Cancelamento');
            SL.Add('Consulta de Parcelas');
            SL.Add('Reimpressão');
            SL.Add('Resumo das Vendas');
            SL.Add('Resgate de Prêmios');

            Parar := False;
            while not Parar do
            begin
               if ItemSelecionado = 30 then Exit;

               Voltar := False;
               ItemSelecionado := -1;
               OnExibeMenu( 'Selecione a operação desejada', SL, ItemSelecionado, Voltar ) ;

               if (not Voltar) then
               begin
                  if (ItemSelecionado >= 0) and (ItemSelecionado < SL.Count) then
                  begin
                     case ItemSelecionado of
                       0: Funcao := 6;
                       1: Funcao := 9;
                       2: Funcao := 7;
                       3: Funcao := 8;
                       4: Funcao := 11;
                     end;

                     Parar := True;
                  end;
               end;
            end;
         finally
            SL.Free ;
         end ;
      end;

       Result   := -1 ;
       ANow     := Now ;
       DataStr  := FormatDateTime('YYYYMMDD', ANow );
       HoraStr  := FormatDateTime('HHNNSS', ANow );
       ValorStr := FormatFloat( '0.00', Valor );
       ValorStr := StringReplace( ValorStr, ',', '', [rfReplaceAll]) ;
       ValorStr := StringReplace( ValorStr, '.', '', [rfReplaceAll]) ;

       fDocumentosProcessados := '' ;

       GravaLog( '*** IniciaFuncaoDPOS. Modalidade: '+AHeader+
                                      ' Valor: '     +ValorStr+
                                      ' Documento: ' +Documento+
                                      ' Data: '      +DataStr+
                                      ' Hora: '      +HoraStr) ;

       pValorTransacao   := PadLeft(ValorStr, 12, '0') ;
       pNumeroCupomVenda := PadLeft(Documento, 6, '0') ;
       pNumeroControle   := HoraStr ;

       if Funcao = 1 then // Cartão de Crédito
          Result := xTransacaoCartaoCredito( PAnsiChar( pValorTransacao ),
                                             PAnsiChar( pNumeroCupomVenda ),
                                             PAnsiChar( pNumeroControle ) );
       if Funcao = 2 then // Cartão de Débito
          Result := xTransacaoCartaoDebito( PAnsiChar( pValorTransacao ),
                                            PAnsiChar( pNumeroCupomVenda ),
                                            PAnsiChar( pNumeroControle ) );
       if Funcao = 3 then // Cartão Voucher
          Result := xTransacaoCartaoVoucher( PAnsiChar( pValorTransacao ),
                                             PAnsiChar( pNumeroCupomVenda ),
                                             PAnsiChar( pNumeroControle ) );
       if Funcao = 5 then // Cheque
       begin
          pQuantidadeCheques     := '00' ;
          pPeriodicidadeCheques  := '000' ;
          pDataPrimeiroCheque    := '00000000' ;
          pCarenciaPrimeiroCheque:= '000' ;

          Result := xTransacaoCheque( PAnsiChar( pValorTransacao ),
                                      PAnsiChar( pNumeroCupomVenda ),
                                      PAnsiChar( pNumeroControle ),
                                      PAnsiChar( pQuantidadeCheques ),
                                      PAnsiChar( pPeriodicidadeCheques ),
                                      PAnsiChar( pDataPrimeiroCheque ),
                                      PAnsiChar( pCarenciaPrimeiroCheque ) );
       end;

       if Funcao = 6 then   //Volmir
       begin
          //pNumeroControle := '      ';  //Aqui tive que comentar pois dava erro "acess violation""
          Result := xTransacaoCancelamentoPagamento( PAnsiChar( pNumeroControle ) );
       end;

       if Funcao = 7 then
          Result := xTransacaoReimpressaoCupom;

       if Funcao = 8 then
          Result := xTransacaoResumoVendas( PAnsiChar( pNumeroControle ) );

       if Funcao = 9 then
          Result := xTransacaoConsultaParcelas( PAnsiChar( pNumeroControle ) );

       if Funcao = 10 then
          Result := xTransacaoCartaoFrota( PAnsiChar( pValorTransacao ),
                                           PAnsiChar( pNumeroCupomVenda ),
                                           PAnsiChar( pNumeroControle ) );
       if Funcao = 11 then
          Result := xTransacaoResgatePremio( PAnsiChar( pNumeroCupomVenda),
                                           PAnsiChar( pNumeroControle ) );

       if Result <> 0 then
          raise EACBrTEFDErro.Create( ACBrStr( 'Retorno DTEF -> ' + IntToStr(Result) ) )
       else
       if Funcao <> 11 then
        begin
          Resp.Clear;

          with TACBrTEFDRespCliDTEF( Resp ) do
          begin
             fpIDSeq := fpIDSeq + 1 ;
             if Documento = '' then
                Documento := IntToStr(fpIDSeq) ;

             ArquivoResposta := TStringList.Create;
             try
               if ((Funcao = 7) or (Funcao = 9)) then
                begin
                  ArquivoResposta.LoadFromFile(ArqResp + 'ULTIMO.PRN');
                  DeleteFile(ArqResp + 'ULTIMO.PRN');
                  ImprimirComprovantes(ArquivoResposta);
                  ApagaEVerifica( ArqBackup );
                end
               else
                begin
                  ArquivoResposta.LoadFromFile(ArqResp + pNumeroControle + '.' + NumeroTerminal);

                  if Funcao = 8 then
                  begin
                     ImprimirComprovantes(ArquivoResposta);
                     ApagaEVerifica( ArqResp + pNumeroControle + '.' + NumeroTerminal );
                  end;

                  if Funcao = 6 then
                  begin
                     ImprimirComprovantes(ArquivoResposta);
                     ApagaEVerifica( ArqResp + pNumeroControle + '.' + NumeroTerminal );
                     ApagaEVerifica( ArqBackup );
                     xConfirmaCartaoCredito( PAnsiChar( pNumeroControle ) );
                     xFinalizaTransacao;
                  end
                  else
                   begin
                     MontaArquivoResposta(pNumeroControle, ArquivoResposta);

                     Conteudo.Conteudo.Text := ArquivoResposta.Text;
                     Conteudo.GravaInformacao(899,100, AHeader ) ;
                     Conteudo.GravaInformacao(899,101, IntToStr(fpIDSeq) ) ;
                     Conteudo.GravaInformacao(899,102, Documento ) ;
                     Conteudo.GravaInformacao(899,103, IntToStr(Trunc(SimpleRoundTo( Valor * 100 ,0))) );
                     Conteudo.GravaInformacao(899,104, IntToStr(Funcao) );
                     Conteudo.GravaInformacao(899,130, 'IMPRIMINDO...' ) ;

                     Resp.TipoGP := fpTipo;
                   end;
                end;
             finally
               try
                  ArquivoResposta.Free;  //volmir
               except  //Aqui tive que colocar um Try Except pois dava erro "acess violation""  
               end;
             end ;
          end;
        end;
    end;

     

    fazendo isso consegui cancelar 

    lembrando que cacenlei pelo ADM => cancelamento

    unit ACBrTEFDCliDTEF;

     

  3. boa tarde daniel;

    o que eu fiz foi configurar o demo do acbr da pasta

    \..\ACBR\Exemplos\ACBrDFe\ACBrNFe\Delphi\

    configurando certificado - dados empresa etc..

    ai clico no botao Consulta cadastro cuja codificacao é esta:

    procedure TForm1.btnConsCadClick(Sender: TObject);
    var
     UF, Documento : String;
    begin
     if not(InputQuery('WebServices Consulta Cadastro ', 'UF do Documento a ser Consultado:',    UF)) then
        exit;
     if not(InputQuery('WebServices Consulta Cadastro ', 'Documento(CPF/CNPJ)',    Documento)) then
        exit;
      Documento :=  Trim(OnlyNumber(Documento));

      ACBrNFe1.WebServices.ConsultaCadastro.UF  := UF;
      if Length(Documento) > 11 then
         ACBrNFe1.WebServices.ConsultaCadastro.CNPJ := Documento
      else
         ACBrNFe1.WebServices.ConsultaCadastro.CPF := Documento;
      ACBrNFe1.WebServices.ConsultaCadastro.Executar;

      MemoResp.Lines.Text := ACBrNFe1.WebServices.ConsultaCadastro.RetWS;
      memoRespWS.Lines.Text := ACBrNFe1.WebServices.ConsultaCadastro.RetornoWS;
      LoadXML(ACBrNFe1.WebServices.ConsultaCadastro.RetornoWS, WBResposta);

      pgRespostas.ActivePageIndex := 1;

      MemoDados.Lines.Add('');
      MemoDados.Lines.Add('Consulta Cadastro');
      MemoDados.Lines.Add('versao: ' +ACBrNFe1.WebServices.ConsultaCadastro.versao);
      MemoDados.Lines.Add('verAplic: ' +ACBrNFe1.WebServices.ConsultaCadastro.verAplic);
      MemoDados.Lines.Add('cStat: '    +IntToStr(ACBrNFe1.WebServices.ConsultaCadastro.cStat));
      MemoDados.Lines.Add('xMotivo: '  +ACBrNFe1.WebServices.ConsultaCadastro.xMotivo);
      MemoDados.Lines.Add('DhCons: ' +DateTimeToStr(ACBrNFe1.WebServices.ConsultaCadastro.DhCons));

    end;

     

    porem o que percebi é se eu colocar nas configuracoes

    ACBrNFe1.Configuracoes.Geral.VersaoDF:=ve310;

    nao funciona, tenho que colocar

    ACBrNFe1.Configuracoes.Geral.VersaoDF:=ve200;

     

    encontrei isso no manual da nfe versao 2.00 e no manual da versao 3.10 nao encontrei nada

    por isso acredito que deve ser enviado com a versao 200

    Método: consultaCadastro2
    4.7.1 Leiaute da Mensagem de Entrada
    Entrada: Estrutura XML para consulta ao cadastro de contribuintes ICMS.
    Schema XML: consCad_v2.00.xsd

  4. Vou postar aqui minhas configuracoes entao:

    Ambiente:homologacao

    Uf Webservice:RS

    Forma Emissao:normal

    Modelo documento fiscal : moNFe

    versao documento fiscal : ve310

    emitente de SC (certificado digital A1)

    rotina:

    ACBrNFe1.WebServices.ConsultaCadastro.UF  := 'MG';
    ACBrNFe1.WebServices.ConsultaCadastro.CNPJ := '50116185001225';
    ACBrNFe1.WebServices.ConsultaCadastro.Executar;

     

    são este os dados informado e retornou este erro que postei anteriormente

     

    desculpa pessoal descobri o que era

    para o consulta cadastro tive que mudar aqui

    versao documento fiscal : ve310

    acredito que este servico ainda esteja na versao 200

    pois mudei para 

    versao documento fiscal : ve200

    e ai funcionou

     

  5. bom dia resolvi usar o consulta cadastro da nfe mas nao estou conseguindo

    ja pesquizei aqui no forum mas nao consegui resolver o problema

    simulei no demo e retorna esta mensagem:

    Consulta Cadastro
    versao: 3.10
    verAplic: 13_2_88_MQ7
    cStat: 239
    xMotivo: Rejeicao: Cabecalho - Versao do arquivo XML nao suportada
    DhCons: 27/10/2015 10:09:07

     

    o xml esta em anexo

    ret.xml

  6. boa tarde 

    estou com um problema desenvolvi um sistema pra emisao de boletos

    mas nenhum componente gerador de relatorios reconhece um impressora hp multifuncional em um de meus clientes

    a impressora nao esta instalada no proprio micro esta instala em um outro micro da rede.

    porem meu sistema ERP reconhece normalmente sem problemas

    em meus gerodores de relatorio utilizo o FastReport

    e funciona normal,

    porem nao sei porque com o acbrBoleto nao reconhece

    ja pesquizei aqui no forum porem nada que conseguisse resolver meu problema

     

  7. bom dia a todos estou com problema apos atualizar meu fontes do acbr 

    ao enviar uma nfce acontece a seguiente mensagem

    1824 - Element '{http://www.portalfiscal.inf.br/nfe}uTrib': 'PC' is not a valid value of the local atomic type.

    atualizei os schemas peguei os mesmos do demo da nfe e nao resolveu 

    ai baixei da zefas e nao resolveu

    pesquizando aqui no forum vi alguns post dizendo pra alterar os schemas 

    mas fiquei com duvida se isso seria o correto

    utilizo openssl

    delphi xe3

  8. bom dia 

    atualizei meu fortes report e agora estou com um problema ao imprimir um cte

    na minha maquina funciona normal porem em meus clientes aparece esta mensagem

    ja pesquizei aqui no forum mas nao consegui uma solucao para o problema

    erro fortes report.png

  9. Bom dia tamebem estou com mesmo problema porem pra min ao validar meu xml na sefaz retornou este erro:

    Resultado da Validação do Schema e de Regras de Negócio:
    • valid.pngParser XML: Nenhum erro encontrado
    • valid.pngTipo de Mensagem: Documento de NF-e
    • erro.pngSchema XML: The 'http://www.portalfiscal.inf.br/nfe:qrCode' element is invalid - The value 'https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?chNFe=43151091241034000123650020000000991000000063&nVersao=100&tpAmb=2&cDest=14372807000160&dhEmi=323031352D31302D30325430383A33353A33342D30333A3030&vNF=142.02&vICMS=0.00&digVal=675A374667446E5734566D42324D4744586D565A743564434346733D&cIdToken=&cHashQRCode=3BF4F2E6EB165A60543DEC37EE1A3BFE901A0C2E' is invalid according to its datatype 'String' - The Pattern constraint failed.
      Caminho: NFe[1]/infNFeSupl/qrCode/
  10. Bom dia.

    esta era minha duvida, se o manual que estou usando é realmente o ultimo atualizado, pois o pessoal do banco aqui nao souberam me responder ou me deixaram com duvidas

    mas se é este entao realmente temos que corrigir o componente pois esta errado, seria interassante tambem revisar a parte que gera o arquivo, pois é possivel tambem que haja falhas;

  11. bom dia estive problemas ao ler retorno cnab240 do banco sicoob,

    ai pedi o manual pro pessoal do banco e fiu analizar e percebi que tem muita coisa que nao bate com o manual estao em possicoes diferentes,

    por isso fiquei com uma duvida

    sera que me passaram um manual errado?

    sera que houve alguma alteracao e nao foi ajusta no componente?

    estou anexando o manual do sicoob (segundo pessoal do banco este é o ultimo atualizado)

    quem puder dar uma olhada pra me ajudar fico grato.

    sopra exemplificar a procedure TACBrBancoob.LerRetorno240(ARetorno: TStringList); (Unit AcbrBancoBancoob)

    neste trecho

    ACBrBanco.ACBrBoleto.DataArquivo   := StringToDateTimeDef(Copy(ARetorno[1],144,2)+'/'+
                                                                 Copy(ARetorno[1],146,2)+'/'+
                                                                 Copy(ARetorno[1],148,4),0, 'DD/MM/YY' );

    esta assim quando deveria ser assim segundo o manual

    ACBrBanco.ACBrBoleto.DataArquivo   := StringToDateTimeDef(Copy(ARetorno[0],144,2)+'/'+
                                                                 Copy(ARetorno[0],146,2)+'/'+
                                                                 Copy(ARetorno[0],148,4),0, 'DD/MM/YY' );

    a data do arquivo esta na primeira linha do registro header do arquivo

    Layouts para troca de informaçõesdede (1).xls

  12. percebi um erro na unit {ACBRSintegra}

    procedure TACBrSintegra.GerarRegistros60I(Registros60I: TRegistros60I);
    var
      wregistro: string;
      i: Integer;
    begin
    for I := 0 to Registros60I.Count - 1 do
    begin
      wregistro:='60I';
      wregistro:=wregistro+FormatDateTime('yyyymmdd',Registros60I.Emissao);
      wregistro:=wregistro+PadRight(Trim(Registros60I.NumSerie),20);
      wregistro:=wregistro+PadRight(Trim(Registros60I.ModeloDoc),2);
      wregistro:=wregistro+TBStrzero(Registros60I.Cupom,6);
      wregistro:=wregistro+TBStrzero(IntToStr(Registros60I.Item),3);
      wregistro:=wregistro+PadRight(Registros60I.Codigo,14);
      wregistro:=wregistro+TBStrZero(TiraPontos(
        FormatFloat('#,###0.000',Registros60I.Quantidade)),13);
      {Valor líquido (valor bruto diminuído do desconto) da mercadoria/produto (com 2 decimais)}
      wregistro:=wregistro+TBStrZero(TiraPontos(
        FormatFloat('#,##0.00',Registros60I.Valor)),13);//2 decimais alterado por volmir em 15-09-2015
      wregistro:=wregistro+TBStrZero(TiraPontos(
        FormatFloat('#,##0.00',Registros60I.BaseDeCalculo)),12);
      wregistro:=wregistro+PadRight(TiraPontos(Registros60I.StAliquota),4);
      wregistro:=wregistro+TBStrZero(TiraPontos(
        FormatFloat('#,##0.00',Registros60I.ValorIcms)),12);
      wregistro:=wregistro+Space(16);
      WriteRecord(wregistro);
    end;
    end;

     

    estava gerando com 3 decimais mas deve ser gerado com 2 decimais apartir de 

    Nova redação dada ao campo 10 do subitem 16.5, pelo Conv. ICMS 76/03, efeitos a partir de 16.10.03

    ACBrSintegra.pas

    Arquivo anexado

  13. percebi um erro na unit {ACBRSintegra}

    procedure TACBrSintegra.GerarRegistros60I(Registros60I: TRegistros60I);
    var
      wregistro: string;
      i: Integer;
    begin
    for I := 0 to Registros60I.Count - 1 do
    begin
      wregistro:='60I';
      wregistro:=wregistro+FormatDateTime('yyyymmdd',Registros60I.Emissao);
      wregistro:=wregistro+PadRight(Trim(Registros60I.NumSerie),20);
      wregistro:=wregistro+PadRight(Trim(Registros60I.ModeloDoc),2);
      wregistro:=wregistro+TBStrzero(Registros60I.Cupom,6);
      wregistro:=wregistro+TBStrzero(IntToStr(Registros60I.Item),3);
      wregistro:=wregistro+PadRight(Registros60I.Codigo,14);
      wregistro:=wregistro+TBStrZero(TiraPontos(
        FormatFloat('#,###0.000',Registros60I.Quantidade)),13);
      {Valor líquido (valor bruto diminuído do desconto) da mercadoria/produto (com 2 decimais)}
      wregistro:=wregistro+TBStrZero(TiraPontos(
        FormatFloat('#,##0.00',Registros60I.Valor)),13);//2 decimais alterado por volmir em 15-09-2015
      wregistro:=wregistro+TBStrZero(TiraPontos(
        FormatFloat('#,##0.00',Registros60I.BaseDeCalculo)),12);
      wregistro:=wregistro+PadRight(TiraPontos(Registros60I.StAliquota),4);
      wregistro:=wregistro+TBStrZero(TiraPontos(
        FormatFloat('#,##0.00',Registros60I.ValorIcms)),12);
      wregistro:=wregistro+Space(16);
      WriteRecord(wregistro);
    end;
    end;

     

    estava gerando com 3 decimais mas deve ser gerado com 2 decimais apartir de 

    Nova redação dada ao campo 10 do subitem 16.5, pelo Conv. ICMS 76/03, efeitos a partir de 16.10.03

  14. Boa tarde estou com um problema ao gerar arquivo de remessa cnab 400 para o sicoob pois segundo manual deve ser informado o percentual de mora/juros e o acbr esta pedido pra informar o valor da mora/juros ai nao esta aceitando no banco. na verdade até aceita porem esta com as informacoes errada.

  15. boa tarde estou usando o quickreport na impresao de boletos

    porem encontrei um probleminha na unit (ACBrBoletoFCQuickFr)

    procedure TACBrBoletoFCQuickFr.RLMemo6_1BeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);

    txtLocalPagamento6_2.Caption      := lblLocalPagto6_0.Caption;//volmir 07-08-2015

    estava assim

    txtLocalPagamento6_2.Caption      := lblLocalPagto.Caption;

    porem lblLocalPagto.Caption esta com o caption erado pois nao passou por uma chamada

    visto que pertence a outro relatorio

    outra coisa que tenho que arruma a cada vez que baixo os fontes do zero é 

    -o zoom o prewewInatilezeState e o prewewDefoultSaveType e devo adicionar um componente de exportacao para pdf 

    -descomentar esta parte do codigo para que seja possivel enviar o email com pdf:

    case Filtro of
              fiPDF  :
                begin
                  FiltroExportacao := TQRPDFDocumentFilter.Create(NomeArquivo);
                  try
                    TQRPDFDocumentFilter(FiltroExportacao).CompressionOn := true;
                    RLLayout.ExportToFilter(FiltroExportacao);
                  finally
                    FiltroExportacao.Free;
                  end;

    na funcao Imprimir.

    é claro que sei das imcompatibilidades no caso que usa quickreport com Delphi 7 nao posiu opcao pra exportar pra PDF

     

     

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