Ir para conteúdo
  • Cadastre-se

karlouchoa

Membros
  • Total de ítens

    105
  • Registro em

  • Última visita

Posts postados por karlouchoa

  1. Boa tarde
    33516466E-4DD2-49A4-9E80-72926A9E94A0 
    o meu arquivo Remessa está gerando essa linha, mas eu não encontrei nada sobre ela no layout do Itau. (editado)
    Como eu posso fazer para que o componente não gere essa linha?
    Eu não estou conseguindo validar os arquivos de remessa da cobrança deste a semana passada.
    Nos arquivo gerados antes da semana passada não tinha essa linha.

    Como faço para gerar o arquivo remessa Cnab400 sem essa linha?

  2. ----- Olá eu uso esse código para montar o txt antes de enviar para a impressora.

    E o código seguinte para acionar a impressão. O ACBrPosPrinter não está acionando a guilhotina, qual será o problema?

     

    procedure TF_Menu.Pedido40Cols(T_VENDAS : TT_VENDAS);
    const
      cINegrito = #27#71;
      cFNegrito = #27#72;

      cIItalico = #27#52;
      cFItalico = #27#53;

      c10cpi = #18;
      c12cpi = #27#77;
      c17cpi = #15;

    var
      char12, ImpDesbloq: Boolean;
      ped: TStrings;
      qtdeimp,ii: Integer;
      peso, totpro, des, totven: Currency;
      _ende, _comp, _bair, _cep, _cida, _uf, _pref, _cnpj, _iest, _fone,
        obsitem: string;
      cdcli, decli, detpg, emissao, przent, defpg, deven, sepa, obsven, cdfpg,
        codcautela, empcli: String;
      FANTEMP, endemp, numemp, baiemp, cidemp, estemp, fonemp: String;
      ConsFinal: Boolean;
      percentualdesconto, valopedido, valorpraticado: double;
      sistema: string;
      Conn: iSimpleQuery;
      DAOT_ENDENT: iSimpleDAO<TT_ENDENT>;
      DAOT_VENDAS: iSimpleDAO<TT_VENDAS>;
      DAOT_ITSVEN: iSimpleDAO<TT_ITSVEN>;
      DAOT_CLI: iSimpleDAO<TT_CLI>;
      DAOT_VENDE: iSimpleDAO<TT_VENDE>;
      DAOT_TPGTO: iSimpleDAO<TT_TPGTO>;
      DAOT_FPGTO: iSimpleDAO<TT_FPGTO>;
      DAOT_EMP: iSimpleDAO<TT_EMP>;
      DAOT_SEPCON : iSimpleDAO<TT_SEPCON>;
      T_SEPCON : TT_SEPCON;
      T_EMP: TT_EMP;
      T_FPGTO: TT_FPGTO;
      T_TPGTO: TT_TPGTO;
      T_VENDE: TT_VENDE;
      T_CLI: TT_CLI;
      T_ITSVEN: TT_ITSVEN;
      T_ENDENT: TT_ENDENT;
      itsven: TObjectList<TT_ITSVEN>;
      obj_itsven: TT_ITSVEN;
      endent: TObjectList<TT_ENDENT>;
      obj_endent: TT_ENDENT;
      _cel: string;
      RichEdit1, RichEdit2: TRichEdit;
      sSql: string;
    begin

      dm.ACBrPosPrinter1.ColunasFonteNormal := 48;
      dm.ACBrPosPrinter1.EspacoEntreLinhas := 20;

      Conn := TSimpleQueryFiredac.New(dm.fdfoxbeta);
      DAOT_ENDENT := TSimpleDAO<TT_ENDENT>.New(Conn);
      DAOT_VENDAS := TSimpleDAO<TT_VENDAS>.New(Conn);
      DAOT_ITSVEN := TSimpleDAO<TT_ITSVEN>.New(Conn);
      DAOT_CLI := TSimpleDAO<TT_CLI>.New(Conn);
      DAOT_VENDE := TSimpleDAO<TT_VENDE>.New(Conn);
      DAOT_FPGTO := TSimpleDAO<TT_FPGTO>.New(Conn);
      DAOT_TPGTO := TSimpleDAO<TT_TPGTO>.New(Conn);
      DAOT_EMP := TSimpleDAO<TT_EMP>.New(Conn);
      DAOT_SEPCON := TSimpleDAO<TT_SEPCON>.New(conn);
      T_SEPCON := TT_SEPCON.create;;
      T_ENDENT := TT_ENDENT.Create;
      T_ITSVEN := TT_ITSVEN.Create;
      T_CLI := TT_CLI.Create;
      T_VENDE := TT_VENDE.Create;
      T_EMP := TT_EMP.Create;
      T_FPGTO := TT_FPGTO.Create;
      T_TPGTO := TT_TPGTO.Create;

      RichEdit1 := TRichEdit.Create(nil);
      RichEdit1.Width := 219;
      RichEdit1.Visible := false;
      RichEdit1.Parent := Application.MainForm;
      RichEdit1.Text := trim(T_VENDAS.obslongped);

      endent := TObjectList<TT_ENDENT>.Create;
      DAOT_ENDENT.sql.where('NRVEN = ' + #39 + T_VENDAS.NRVEN_V.ToString + #39)
        .&End.Find(endent);
      try
        for obj_endent in endent do
        begin
          T_ENDENT := DAOT_ENDENT.Find(obj_endent.regendent);
        end;
      finally
        endent.Free;
      end;

      T_EMP := DAOT_EMP.Find(T_VENDAS.CDEMP_V);
      T_CLI := DAOT_CLI.Find(T_VENDAS.cdcli_v);
      T_VENDE := DAOT_VENDE.Find(T_VENDAS.cdven_v);
      T_FPGTO := DAOT_FPGTO.Find(T_VENDAS.CDFPG_V);
      T_TPGTO := DAOT_TPGTO.Find(T_VENDAS.CDTPG_V);
      T_SEPCON := DAOT_SEPCON.find(T_VENDAS.CODCONF_V);

      sistema := 'Sistema Raposa';

      // espelho do pedido
      ImpDesbloq := false;
      if T_VENDAS.NRVEN_V < 0 then
      begin
        T_VENDAS.NRVEN_V := T_VENDAS.NRVEN_V * -1;
        ImpDesbloq := true;
      end;

      codcautela := IntToStr(ConfiguracaoGeral.codcautela);
      itemcomple_iv := ConfiguracaoGeral.itemcomple_iv = 'S';
      empcli := T_CLI.cdemp.ToString;
      qtdeimp := T_VENDAS.QTDIMPRES;
      _cel := T_CLI.CELCLI;
      _fone := iif(trim(T_CLI.DDDCLI)='',T_EMP.DDDEMP,T_CLI.DDDCLI) + T_CLI.FONECLI;
      cdfpg := T_VENDAS.CDFPG_V.ToString;
      cdcli := T_CLI.cdcli.ToString;
      decli := iif((trim(T_ENDENT.nome) <> '') and
        (trim(T_ENDENT.nome) <> trim(T_CLI.decli)), trim(T_ENDENT.nome),
        trim(T_CLI.decli));

      detpg := T_TPGTO.detpg;
      emissao := FormatDateTime('dd/mm/yyyy', T_VENDAS.EMISVEN_V);
      przent := FormatDateTime('dd/mm/yyyy', T_VENDAS.PRZENT_V);
      defpg := T_FPGTO.defpg;
      deven := T_VENDE.deven;

      sepa := 'IMEDIATA';

      if T_VENDAS.TPENT = 'D' then
        sepa := 'DELIVERY';

      if T_VENDAS.TPENT = 'V' then
        sepa := 'VEM BUSCAR';

      if ((T_VENDAS.TPENT = 'E') or (T_VENDAS.TPENT = 'F')) then
        sepa := 'ENTREGAR';

      obsven := T_VENDAS.OBSVEN_V;
      peso := T_VENDAS.PESOVOL_V;
      totpro := T_VENDAS.totpro_v;
      des := T_VENDAS.VDESC_V;
      totven := T_VENDAS.TOTVEN_V;

      ped := Tstringlist.Create;

      char12 := T_EMP.SALTARPAGPED = 'S';
      FANTEMP := trim(T_EMP.FANTEMP);
      endemp := trim(T_EMP.endemp);
      numemp := trim(T_EMP.numemp);
      baiemp := trim(T_EMP.baiemp);
      cidemp := trim(T_EMP.cidemp);
      estemp := trim(T_EMP.estemp);
      fonemp := trim(T_EMP.fonemp);

      // Registra se é venda para Consumidor Final
      codcons := T_CONFIG.getCodcons;
      codcheque := T_CONFIG.getCodche;
      if IntToStr(T_CONFIG.getCodcons) = cdcli then
        ConsFinal := true
      else
        ConsFinal := false;
      if trim(T_ENDENT.ENDE) = '...' then
      begin
        T_ENDENT.ENDE := '';
        T_ENDENT.COMPLEM := '';
        T_ENDENT.BAIR := '';
        T_ENDENT.CEP := '';
        T_ENDENT.CIDA := '';
        T_ENDENT.UF := '';
        T_ENDENT.PREF := '';
      end;

      if trim(T_ENDENT.ENDE) <> '' then
         _ende := trim(T_ENDENT.ENDE);

      if _ende = ''  then
         if T_CLI.ENDENT <> '' then
            _ende := T_CLI.ENDENT
         else
            if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
               _ende := T_CLI.ENDCLI;

       if trim(T_ENDENT.BAIR) <> '' then
         _bair := trim(T_ENDENT.BAIR);
      if _bair = ''  then
         if T_CLI.BAIENT <> '' then
            _bair := T_CLI.BAIENT
         else
            if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
               _bair := T_CLI.BAICLI;


       if trim(T_ENDENT.PREF) <> '' then
         _pref := trim(T_ENDENT.PREF);
      if _pref = ''  then
         if T_CLI.PREFCLI <> '' then
            _pref := T_CLI.PREFCLI
         else
            _pref := T_CLI.OBSCLI1;


       if trim(T_ENDENT.COMPLEM) <> '' then
         _comp := trim(T_ENDENT.COMPLEM);
      if _comp = ''  then
         if T_CLI.COMENT <> '' then
            _comp := T_CLI.COMENT
         else
            if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
               _comp := T_CLI.COMPCLI;

      if trim(T_ENDENT.CEP) <> '' then
         _cep := trim(T_ENDENT.CEP);
      if _cep = ''  then
         if T_CLI.CEPENT <> '' then
            _cep := T_CLI.CEPENT
         else
            if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
               _cep := T_CLI.CEPCLI;

      if trim(T_ENDENT.CIDA) <> '' then
         _cida := trim(T_ENDENT.CIDA);
      if _cida = ''  then
         if T_CLI.cident <> '' then
            _cida := T_CLI.cident
         else
            if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
               _cida := T_CLI.CIDCLI;

      if trim(T_ENDENT.uf) <> '' then
         _uf := trim(T_ENDENT.uf);
      if _uf = ''  then
         if T_CLI.ESTent <> '' then
            _uf := T_CLI.ESTent
         else
            if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
               _uf := T_CLI.ESTCLI;


      _cnpj := FormatarCPFCNPJ(T_CLI.CNPJ_CPFCLI);
      _iest := trim(T_CLI.INSC_RGCLI);

      if (T_CLI.cdcli = ConfiguracaoGeral.codcons) then
      begin
        _cel := '';
        _fone := '';
      end;

      ped.add('</zera>');
      ped.add('<n>'+Centraliza('DOCUMENTO NAO FISCAL',46));
      //  ped.add('</fn></ce><n>DOCUMENTO NAO FISCAL</N>');
      ped.add(Centraliza(T_EMP.FANTEMP,46));
      //  ped.add('<n>' + T_EMP.FANTEMP + '</N>');
      ped.add(Centraliza(FormatarCPFCNPJ(T_EMP.CNPJEMP),46));
      //  ped.add('<n>' + FormatarCPFCNPJ(T_EMP.CNPJEMP) + '</N>');
      ped.add(Centraliza( T_EMP.endemp + ', ' + T_EMP.numemp,46));
      //  ped.add('<n>' + T_EMP.endemp + ', ' + T_EMP.numemp + '</N>');
      ped.add(Centraliza(T_EMP.baiemp + ', ' + T_EMP.cidemp + '/' + estemp,46));
      //  ped.add('<n>' + T_EMP.baiemp + ', ' + T_EMP.cidemp + '/' + estemp + '</N>');
      ped.add(Centraliza('TELEFONE: ' + '('+T_EMP.DDDEMP+')' + ' '+ formatarFone(T_EMP.fonemp),46)+'</n>');
      //  ped.add('<n>TELEFONE: ' + '('+T_EMP.DDDEMP+')' + ' '+ formatarFone(T_EMP.fonemp) + '</N>');

      ped.add(concatstr('-','-','R',46));
      //  ped.add('</fn><n></linha_simples></N>');

      ped.add('<n>' + concatstr('PEDIDO: ' + formatfloat('0000000', T_VENDAS.NRVEN_V), ' ',
        'R', 15) + concatstr('DATA: ' + FormatDateTime('DD/MM/YYYY HH:MM',
        T_VENDAS.EMISVEN_V), ' ', 'L', 29) + '</N>');

      ped.add(concatstr('-','-','R',46));
      //ped.add('</fn><n></linha_simples></N>');

      ped.add('<n>'+concatstr('CLIENTE: '+Copy(decli,1,38),' ','R',46)+'</N>');
      if trim(_ende) <> '' then
      begin
        ped.add('<n>'+concatstr('END.   : '+Copy(_ende,1,38),' ','R',46)+'</N>');
        if length(_ende) > 38 then
          ped.add('<n>'+concatstr('         ' + Copy(_ende,39,38),' ','R',46)+'</N>');
        ped.add('<n>'+concatstr('BAIRRO : '+Copy(_bair+', '+_cida+'/'+_uf,1,38),' ','R',46)+'</N>');
        ped.add('<n>'+concatstr('COMPLEMENTO: '+Copy(_comp,1,34),' ','R',46)+'</N>');
        if length(_comp) > 34 then
          ped.add('<n>'+'             '+concatstr(Copy(_comp,35,47),' ','R',46)+'</N>');
        if _pref <> '' then
          ped.add('<n>'+concatstr('PONTO REF.: '+Copy(_pref, 1, 35),' ','R',46)+'</N>');
        if length(_pref) > 35 then
          ped.add('<n>'+'            '+concatstr(Copy(_pref, 36, 47),' ','R',46)+'</N>');

        ped.add('<n>' + concatstr('FONE: ' + formatarFone(_fone), ' ', 'R', 46) + '</N>');
        ped.add('<n>' + concatstr('OBS.: ' + Copy(T_VENDAS.OBSVEN_V, 1, 46), ' ', 'R',
        40) + '</N>');
      end;

      if T_VENDAS.NRCOMAN <>  '' then
      begin
        ped.add(' ');
        ped.add('<n>'+Centraliza('REF. COMANDA NR.: ' + T_VENDAS.NRCOMAN, 46)+'</N>');
        ped.add(' ');
      end;

      ped.add(concatstr('-','-','R',46));
      //ped.add('</fn><n></linha_simples></N>');

      ped.add('<n>' + concatstr('PAGTO: ' + trim(T_FPGTO.defpg), ' ', 'R', 18)+
                      concatstr('CONSULTOR: ' +Copy(trim(T_VENDE.DEVEN), 1, 12),
                      ' ','L',26)+'</N>');
      ped.add('<n>' + concatstr('       '+trim(T_TPGTO.detpg), ' ', 'R', 18) +
                      concatstr('FONE: '+ Copy(trim(T_VENDE.RAMAL), 1, 12),
                      ' ','L',26)+'</N>');

      ped.add(concatstr('=','=','R',46));
      //ped.add('</fn><n></linha_dupla></N>');

      ped.add('<n>' + concatstr('CODIGO DESCRICAO   QTDE  UN   PRECO',
        ' ', 'R', 35) +
        concatstr('TOTAL',
        ' ', 'L', 9) + '</N>');

      ped.add(concatstr('=','=','R',46));
      //ped.add('</fn><n></linha_dupla></N>');

      if qtdeimp >= 1 then
      begin
        ped.add(' ');
        ped.add('</fn>'+Centraliza('*** IMPRESSAO NR: ' + IntToStr(qtdeimp + 1) +
          ' ***',46)+'</N>');
        ped.add(' ');
      end;

      itsven := TObjectList<TT_ITSVEN>.Create;
      DAOT_ITSVEN.sql.fields('registro,cdemp_iv,cditem_iv,qtdesol_iv,' +
        ' unditem_iv,deitem_iv,' + ' qtdesol_iv,marca_iv, ' +
        ' precpra_iv, precven_iv,precopig, ' +
        ' perdes_iv,pesobr_iv,Numserie,obs,obs2,' +
        ' MP,EntImed_SN,t_itsven.mp,temform')
        .where(' isnull(t_itsven.st,''S'') = ''S'' ' +
        iif(empresa.IMPMPNOPV='S','',' and isnull(t_itsven.MP,''N'') = ''N'' ')+
        ' and  nrven_iv = ' + #39 +
        T_VENDAS.NRVEN_V.ToString + #39 + ' and empven =  ' + #39 +
        T_VENDAS.CDEMP_V.ToString + #39).OrderBy('registro').&End.Find(itsven);

      try
        for obj_itsven in itsven do
        begin
          T_ITSVEN := DAOT_ITSVEN.Find(obj_itsven.registro);

          // ****************************************************************************
          with ped do
          begin
            add('</fn><n>' + concatstr(formatfloat('000000', T_ITSVEN.cditem_iv) +
              ' ' + Copy(T_ITSVEN.deitem_iv, 1, 40), ' ', 'R', 46) + '</N>');

            if length(T_ITSVEN.deitem_iv) > 40 then
              add('<n>' + concatstr('      ' + iif(Copy(T_ITSVEN.deitem_iv, 41,
                1) = ' ', ' ' + trim(Copy(T_ITSVEN.deitem_iv, 41, 40)),
                trim(Copy(T_ITSVEN.deitem_iv, 42, 41))), ' ', 'R', 46) + '</N>');

            add('<n>' + concatstr(
                        concatstr(formatfloat(',0.####', T_ITSVEN.QtdeSol_iv),' ','L',12) + // 12
                        concatstr(T_ITSVEN.unditem_iv,' ','L',3) +                         // 3
                        concatstr('X ',' ','L',3) +                                         //3
                        concatstr(formatfloat(',0.00',
                                  iif(T_ITSVEN.MP = 'S',
                                      iif(((T_EMP.ImpMPnoPV = 'S') and
                                           (T_EMP.VerPrcMp = 'S')),
                                            T_ITSVEN.precpra_iv, 0),
                                      iif(((T_EMP.ImpMPnoPV = 'S') and
                                           (T_EMP.VerPrcMp = 'S')), 0,
                                            T_ITSVEN.precpra_iv))),' ','L',9)+            //9
                        concatstr('= ',' ','L',3) +                                        //3
                        concatstr(formatfloat(',0.00',
                                       iif(T_ITSVEN.MP = 'S',
                                       iif(((T_EMP.ImpMPnoPV = 'S') and
                                            (T_EMP.VerPrcMp = 'S')),
                                             T_ITSVEN.precpra_iv, 0),
                                       iif(((T_EMP.ImpMPnoPV = 'S') and
                                            (T_EMP.VerPrcMp = 'S')), 0,
                                             T_ITSVEN.precpra_iv)) *
                                             T_ITSVEN.QtdeSol_iv), ' ', 'L', 9), ' ', 'L', 45) + '</N>'); //9
          end;

        end;
      finally
        itsven.Free;
      end;

      // ****************************************************************************
      with ped do
      begin
        if ImpDesbloq then
          ped.add('<n><i>' + concatstr('PEDIDO ' + IntToStr(T_VENDAS.NRVEN_V) +
            ' DESBLOQUEADO POR ' + UsuarioLogado.CDUSU, ' ', 'R', 44) + '</i></N>');
        ped.add(' ');

        ped.add(concatstr('-','-','R',46));
        //ped.add('</fn><n></linha_simples></N>');

        if qtdeimp >= 1 then
        begin
          ped.add(' ');
          ped.add('<n>'+Centraliza('ENTREGA SOMENTE C/ GERENCIA *REIMPRESSAO*',46)
            + '</N>');
          ped.add(' ');
        end;

        if cdfpg = codcautela then
          ped.add('</fn></ce><n><i>CAUTELA FATURADA ANTES DO FIM DO MES!!!' +
            '</i></N>');

        ped.add('<n>' + concatstr('TOTAL DOS PRODUTOS --> ',' ','L',25) +
          concatstr(formatfloat(',0.00', T_VENDAS.totpro_v), ' ', 'L', 19) + '</N>');
        ped.add('<n>' + concatstr('DESCONTO --> ',' ','L',25) +
                concatstr(formatfloat(',0.00',T_VENDAS.VDESC_V), ' ', 'L', 19) + '</N>');
        if T_VENDAS.VLR_ACRESC > 0 then
          ped.add('<n>' + concatstr('TAXA DE ENTREGA --> ',' ','L',25) +
               concatstr(formatfloat(',0.00',T_VENDAS.VLR_ACRESC), ' ', 'L', 19) + '</N>');
        ped.add('<n>' + concatstr('----------------', ' ', 'L', 46) + '</N>');
        ped.add('<n>' + concatstr('VALOR A PAGAR --> ',' ','L',25) +
                        concatstr(formatfloat(',0.00',
                 T_VENDAS.TOTVEN_V + T_VENDAS.VLR_ACRESC), ' ', 'L', 19) + '</N>');


        if T_VENDAS.VLRTROCO > 0  then
        begin
          ped.add('');

          ped.add(concatstr('-','-','R',46));
          //ped.add('</fn><n></linha_simples></N>');

          ped.add('<n>' + concatstr('FORMA DE PAGAMENTO: ', ' ', 'R', 20)+
                                   concatstr('VALOR R$',' ','L',24)+ '</N>');
          ped.add('<n>' + concatstr('DINHEIRO' , ' ', 'R', 20)+
                                   concatstr(formatfloat(',0.00',T_VENDAS.VLRPGDINH)
                                             ,' ','L',24)+ '</N>');
          ped.add('<n>' + concatstr('TROCO' , ' ', 'R', 20)+
                             concatstr(formatfloat(',0.00',T_VENDAS.VLRTROCO)
                                       ,' ','L',24)+ '</N>');

        end;
        ped.add(' ');
        ped.add(' ');

        ped.add('<n>' + concatstr(':.' + sistema,' ','L', 40) + '</N>');
        ped.add(' ');
        ped.add(' ');
        ped.add(' ');
        ped.add(' ');

        if (copy(Empresa.TipoEmp, 1, 2) = '05') or // Oficina Mecânica
          (copy(Empresa.TipoEmp, 1, 2) = '03') then //PetShop
        begin
          dm.FDAgenda.close;
          dm.FDAgenda.sql.Text := 'Select placa,modelo,marcaveic,anofab, ' +
            ' anomod,autrepet,idchassi,cidorig,uforig,ciddest,ufdest,td,cdemp, ' +
            ' DataNasc,cdcli,empcli from t_veiculos ' + '  where numdoc = ' +
            QuotedStr(T_VENDAS.NRVEN_V.ToString) + '   and empdoc = ' +
            QuotedStr(Empresa.cdemp.ToString);
          dm.FDAgenda.open;

          if (copy(Empresa.TipoEmp, 1, 2) = '03') then
          begin
            if trim(dm.FDAgenda.fieldbyname('placa').Text)<>'' then
            begin
                ped.add('<n>DADOS E OBSERVACOES DO PET: </N>');

                ped.add(concatstr('-','-','R',46));
                //ped.add('</fn><n></linha_simples></N>');

                ped.add(' ');
                ped.add('</fn></ce><n>Nome: ' +
                  uppercase(Copy(dm.FDAgenda.fieldbyname('placa').Text, 1, 44))
                  + '</N>');
                ped.add('</fn><n>Raca: ' +
                  fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('modelo').Text, 1, 34)
                  ), ' ', 34) + '</N>');
                ped.add('<n>Resp: ' +
                  fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('marcaveic').Text, 1,
                  34)), ' ', 34) + '</N>');
                ped.add(' ');
                if length(dm.FDAgenda.fieldbyname('idchassi').Text) > 35 then
                begin
                  ped.add('<n>' + 'Obs: ' +
                    fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 1,
                    35)), ' ', 35) + '</N>');
                  ped.add('<n>' + '     ' +
                    fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 36,
                    35)), ' ', 35) + '</N>');
                end
                else
                  ped.add('<n>' + 'Obs: ' +
                    fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 1,
                    35)), ' ', 35) + '</N>');
                ped.add(fullFil('<n>' + 'Aniversario: ' +
                  uppercase(Copy(FormatDateTime('DD/MM/YYYY',
                  dm.FDAgenda.fieldbyname('Datanasc').AsDatetime), 1, 35)), ' ', 35)
                  + '</N>');
                ped.add(' ');

                ped.add(concatstr('-','-','R',46));
                //ped.add('</fn><n></linha_simples></N>');

                dm.FDAgenda.close;
                ped.add(' ');
                ped.add(' ');
                ped.add(' ');
            end;
          end;


          if (copy(Empresa.TipoEmp, 1, 2) = '05') then
          begin
            if trim(dm.FDAgenda.fieldbyname('placa').Text)<>'' then
            begin

              ped.add('<n>DADOS DO VEICULO: </N>');

              ped.add(concatstr('-','-','R',46));
              //ped.add('</fn><n></linha_simples></N>');
              ped.add('</fn></ce><n>Placa: ' +
                uppercase(Copy(dm.FDAgenda.fieldbyname('placa').Text, 1, 40))
                + '</N>');
              ped.add('</fn><n>Modelo: ' +
                fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('modelo').Text, 1, 34)
                ), ' ', 34) + '</N>');
              ped.add('<n>Marca: ' +
                fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('marcaveic').Text, 1,
                34)), ' ', 34) + '</N>');

              if trim(dm.FDAgenda.fieldbyname('idchassi').Text)<>'' then
              begin
                if length(dm.FDAgenda.fieldbyname('idchassi').Text) > 35 then
                begin
                  ped.add('<n>' + 'Chassi: ' +
                    fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 1,
                    35)), ' ', 35) + '</N>');
                  ped.add('<n>' + '     ' +
                    fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 36,
                    35)), ' ', 35) + '</N>');
                end
                else
                  ped.add('<n>' + 'Chassi: ' +
                    fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 1,
                    35)), ' ', 35) + '</N>');

                ped.add(' ');
              end;

              ped.add(concatstr('-','-','R',46));
              //ped.add('</fn><n></linha_simples></N>');

              dm.FDAgenda.close;
              ped.add(' ');
            end;
          end;

        end;

        if trim(RichEdit1.Text) <> '' then
        begin
          ped.add('</fn><n>' + 'OBSERVACOES:'+'</N>');

          ped.add(concatstr('-','-','R',46));
          //ped.add('</fn><n></linha_simples></N>');

          FOR ii := 0 TO RichEdit1.Lines.Count - 1 do
          begin
            ped.add('<n>'+RichEdit1.Lines[ii]+'</N>');
          end;
          ped.add(' ');
          ped.add(' ');
          ped.add('<n>' + 'EM: ' + datetostr(date())+'</N>');
          ped.add(' ');
          ped.add(' ');
          ped.add('<n>' + concatstr('ASS. CLIENTE:_________________________'
                                    ,' ', 'L', 44)+'</N>');

          ped.add('');
          ped.add('');
          ped.add('');
          ped.add('');
          ped.add('');
          ped.add('');
          ped.add('');
          ped.add('');
          ped.add('');
          ped.add('');
          ped.add('');
        end;

        RichEdit1.free;

        if (F_Menu.impressora_modo = 'MODO TEXTO 40 cols') and
          (T_EMP.CONSULTARFONE = 'S') then
        begin

          if trim(_ende) <> '' then
          begin
            ped.add(concatstr('-','-','R',46));
            ped.add('<n>' + concatstr('CLIENTE  : ' + Copy(decli, 1, 36), ' ', 'R',
              47) + '</N>');
            ped.add('<n>' + concatstr('ENDERECO.: ' + Copy(trim(_ende), 1, 36), ' ',
              'R', 47) + '</N>');
            if length(_ende) > 36 then
              ped.add('<n>' + '           ' + concatstr(Copy(_ende, 36, 46), ' ', 'R',
                46) + '</N>');
            ped.add('<n>' + concatstr('BAIRRO: ' + Copy(_bair, 1, 46), ' ', 'R', 46)
              + '</N>');
            ped.add('<n>' + concatstr('FONE: ' + formatarFone(_fone), ' ', 'R', 22) +
              concatstr('CELULAR: ' + formatarFone(_cel), ' ', 'L', 22) + '</N>');

            if (_comp <> '') then
              ped.add('<n>' + concatstr('COMPLEMENTO: ' + Copy(_comp, 1, 34), ' ',
                'R', 24) + '</N>');
            if (length(_comp) > 34) then
              ped.add('<n>' + '             ' + concatstr(Copy(_comp, 35, 46), ' ',
                'R', 24) + '</N>');

            if (_pref <> '') then
              ped.add('<n>' + concatstr('PONTO REF.: ' + Copy(_pref, 1, 35), ' ', 'R',
                24) + '</N>');
            if (length(_pref) > 35) then
              ped.add('<n>' + '            ' + concatstr(Copy(_pref, 36, 46), ' ',
                'R', 47) + '<n>');

            ped.add(' ');
            ped.add('<n>' + concatstr('OBS.: ' + Copy(T_VENDAS.OBSVEN_V, 1, 41), ' ',
              'R', 46) + '</N>');

            ped.add(concatstr('-','-','R',46));
            ped.add('<n>' + concatstr('PRE-VENDA: ' + IntToStr(T_VENDAS.NRVEN_V), ' ', 'R', 24)
              + concatstr('VALOR: R$ ' + formatfloat(',0.00',
              roundx(T_VENDAS.TOTVEN_V + T_VENDAS.VLR_ACRESC, 3)), ' ', 'L', 20)+'</N>');
            ped.add('<n>' + concatstr('EMISSAO: ' + DateTimeToStr(now), ' ', 'R', 46)
              + '</N>');

            ped.add(concatstr('-','-','R',46));
            if T_VENDAS.CODCONF_V > 0  then
            ped.add('<n>' + concatstr('MOTORISTA: ',' ','R',10) +
                            concatstr(T_SEPCON.DESEP,' ','L',33)+ '</N>');

            ped.add(' ');
            ped.add(' ');
            ped.add(' ');
            ped.add('<n>' + concatstr('ENTREGA NO DIA: ______/______/__________', ' ',
              'R', 46) + '</N>');
            ped.add(' ');
            ped.add('<n>' + concatstr('POR..:__________________________________', ' ',
              'R', 46) + '</N>');

            add('');
            add('');
            add('');
            add('');
            add('');
            add('');
          end;

        end;
        ped.add('</corte_total>');

        Application.createform(Timprimir, imprimir);
        imprimir.Caption := 'Impressão Pedido Nº ' + IntToStr(T_VENDAS.NRVEN_V);
        if imprimir.execute(ped) then
        begin
          qtdeimp := qtdeimp + 1;

          sSql := ' update t_vendas ';
          sSql := sSql + ' set DTSTAT_V = getdate() ';
          sSql := sSql + '    ,QTDIMPRES = '+#39+IntToStr(qtdeimp)+#39;
          sSql := sSql + ' where autocod_v = '+#39+IntToStr(T_VENDAS.AUTOCOD_V)+#39;
          dm.FDFoxbeta.ExecSQL(sSQL);
        end;
        imprimir.destroy;
      end;

      T_SEPCON.free;
      T_FPGTO.Free;
      T_TPGTO.Free;
      T_EMP.Free;
      T_ENDENT.Free;
      T_ITSVEN.Free;
      T_CLI.Free;
      T_VENDE.Free;
      ped.Free;

    end;


    ---------------------------------------------------------------------------

     

    procedure TImprimir.BitBtn1Click(Sender: TObject);
    var
      f: TextFile;
      Alias, servidor, bancodedados: String;
      registro: TRegistry;
      itenstxt: TStrings;
    begin

      if Imprimir.Caption = 'Identifique o servidor de Banco de Dados' then
      begin

        if lb.ItemIndex < 0 then
        begin
          aviso('Identifique o servidor de Banco de Dados');
          exit;
        end;

        itenstxt := TStringList.create;
        itenstxt.LoadFromFile(ExtractFilePath(Application.ExeName) +
          'servidor.txt');

        Alias := uppercase(trim(Copy(itenstxt[lb.ItemIndex], 1, 30)));
        servidor := uppercase(trim(Copy(itenstxt[lb.ItemIndex], 31, 30)));
        bancodedados := uppercase(trim(Copy(itenstxt[lb.ItemIndex], 61, 30)));
        f_menu.LogoFundo :=
          trim(uppercase(trim(Copy(itenstxt[lb.ItemIndex], 91, 50))));

        itenstxt.Destroy;

        if dm.FDFoxBeta.Connected then
        begin
          try
            begin
              dm.FDFoxBeta.Connected := false;
              dm.FDFoxBeta.Connected := true;
            end;
          except
            aviso('Ocorreu um problema na conexão com o servidor, favor entrar em contato com o suporte técnico!');
            Application.terminate;
          end;
        end;
        dm.FDFoxBeta.Connected := false;
        retorno := false;
        close;
        exit;
      end;

      if lb.ItemIndex < 0 then
      begin
        aviso('Informar a Impressora!');
        exit;
      end;

      processando.msg.Caption := 'Imprimindo em ' + portas[lb.ItemIndex] + '...';
      processando.Show;
      processando.Update;

      if FileExists(ExtractFilePath(Application.ExeName) + 'DefPrn.txt') then
        deletefile(ExtractFilePath(Application.ExeName) + 'DefPrn.txt');

      AssignFile(f, ExtractFilePath(Application.ExeName) + 'DefPrn.txt');
      rewrite(f);
      writeln(f, portas[lb.ItemIndex]);
      writeln(f, #27 + #109);
      system.closefile(f);

      if FileExists(ExtractFilePath(Application.ExeName) + 'UltimaImp.txt') then
        deletefile(ExtractFilePath(Application.ExeName) + 'UltimaImp.txt');

      if F_Menu.impressora_modo = 'MODO TEXTO 40 cols' then
      begin
          dm.ACBrPosPrinter1.Desativar;
          dm.ACBrPosPrinter1.ColunasFonteNormal := 48;
          dm.ACBrPosPrinter1.EspacoEntreLinhas := 20;
          dm.ACBrPosPrinter1.Device.Porta := portas[lb.ItemIndex];
          dm.ACBrPosPrinter1.Ativar;
          dm.ACBrPosPrinter1.Buffer.Text := TEXTO.Text;
          dm.ACBrPosPrinter1.Imprimir;
          dm.ACBrPosPrinter1.CortarPapel(true);
          dm.ACBrPosPrinter1.Desativar;
          retorno := true;
          processando.hide;

          AssignFile(f, ExtractFilePath(Application.ExeName) + 'UltimaImp.txt');
          rewrite(f);
          writeln(f, texto[0]);
          writeln(f, #27 + #109);
          system.closefile(f);

          texto.Clear;
          exit;
      end;

      if trim(texto[0]) <> '' then
      begin
          AssignFile(f, ExtractFilePath(Application.ExeName) + 'UltimaImp.txt');
          rewrite(f);
          writeln(f, texto[0]);
          writeln(f, #27 + #109);
          system.closefile(f);

          AssignFile(f, portas[lb.ItemIndex]);
          rewrite(f);
          writeln(f, texto[0]);
          writeln(f, #27 + #109);
          system.closefile(f);
      end;

      retorno := true;
      processando.hide;

    end;

  3. Olá, estou tentando implementar a nota fiscal de serviços no meu sistema. Já iniciei pelo novo componente, o ACBrNFSeX, mas não consigo deixar o danfe, nem de perto, parecido com o danfe emitido no site da Prefeitura.
    Como faço para incluir as informações destacadas na imagem anexada?

    Estou incluindo o Danfe gerado pela própria prefeitura e o Danfe gerado pelo ACBr.

    20211222_115847.jpg

    Sem título.jpg

  4.  

    Migrei o meu banco de dados para o SQL 2019 em uma EC2 Ubuntu na Aws.
    Sempre trabalhei com o SQL Server, mas somente agora com ele em Linux.
    A conexão funciona normalmente, todos os selects para a validação de datas e acessos de usuários funcionam, mas o aplicativo.rum não funciona de jeito nenhum, pior que nem dá uma exception para que eu possa entender o problema.
    Alguém do grupo consegue me ajudar a passar desta fase?10:12

     
  5. Em 30/05/2020 at 21:33, Waldir Paim disse:

    Depende muito de como você estruturou essa integração.
    Lá na AWS você tem uma api?
    Como você monta o pacote de envio? você tem algum flag para indicar que já foram enviados?
    Se sim! quando ocorre o erro você pode faz uma requisição para confirmar se foram gravados.
    Mas eu consigo pensar várias formas de fazer esse controle!

    Se conseguir explicar um pouco melhor talvez fique mais fácil de ajudar.

    me dá uma luz Waldir

  6. Bom dia Waldir,

    Não posso controlar com flag´s, já que trata-se de uma transferência de mãos duplas, onde o status do Pedido de vendas, por exemplo, pode ser alterado por qualquer dos pontos de envio, e depois precisará retornar ao ponto original.

    Minha estrurura é:      Matriz <-> AWS <->Filial

    mais ou menos assim, pois ainda entra o app de vendas. 

    Tenho uma aplicação Datasnap/Rest nos dois lados. Faço integração um campo auto-incremento, testando a existência no campo no update ( where Autocod = AutocodExt), caso o retorno do update seja  = 0,  faço o insert, editando o campo do json traduzido para a FDMemtable com o ultimo autocod gerado. O result da function put gera o relacionamento no lado cliente, como descrito em um dos episódios da Delphi Academy, mas se o result não chega ao lado cliente, por uma quebra no link de internet, não consigo efetuar o rollback no lado servidor.    

     

  7. Boa tarde meus amigos, posso tirar uma dúvida aqui pelo nosso grupo?
    Estou implementando uma integração entre um banco de dados local e outro na nuvem da Amazon.
    Estou com um problema sério aqui: ao fazer o Putclientes, por exemplo, ou seja, ao enviar ao servidor as alterações e inserções do Banco local, se, após um insert em lote na tabela da nuvem, o Result da função Put não conseguir retornar ao cliente rest que o chamou, por uma queda do link de internet, por exemplo, esses inserts já foram commitados na nuvem, mas os relacionamentos entre o código externo gerado e o código interno enviado, não pode ser concebida.
    Sendo assim, no próximo Put, os clientes sem a relação entre os códigos, serão inseridas novamente, gerando duplicidade de cadastros na nuvem.
    Meu problema é saber como commitar a transação na nuvem somente após o Result chegar ao cliente rest que fez a chamada.
    Alguém pode me ajudar com isso?
  8. Em ‎09‎/‎12‎/‎2015 at 23:00, renatojosecampos disse:

    Olá Amigos,

    Passei pelo mesmo problema e realmente a instalação padrão do ACBR / Fortes no Windows 10 ira apresentar os problemas acima mencionados.

    Estes procedimentos resolveram o problemas nos pacotes que usam OpenSSL:

    - Ao instalar o o ACBR marque a opção Copiar DLL pasta bin do DELPHI.

    - Copie todas as DLLS da pasta  DLL do Acbr para a pasta SYSTEM32 e SYSWOW64

    - Registre a DLL capicom manualmente e certifique-se que o comando obteve êxito.

     

    Estes procedimentos resolveram o problemas nos pacotes que usam FORTES:

    - No IDE do Delphi remova o pacote do FORTES caso já tenha instalado.

    - Não instale o fortes pelo instalador, abra o Pacote no Delphi Compile e instale,

    - Agora basta Reinstalar o ACBR que os pacotes irão carregar normalmente no delphi.

     

    Renato Campos.

     

    Obrigado meu amigo. já estava pirando por aqui. Valeu!!!

  9. Amigos, 

    Uma boa tarde.

    Recebi o aviso de um de meus clientes quanto às novas regras de validação que exigiram os dados da operadora de cartão de crédito.

    Minhas dúvidas são:

    a) Para implementar isso eu terei que desenvolver o módulo Tef em meu Frente de Caixa?

      - Se sim, uma fez feito o modulo TEF eu terei ainda que certificar e homologar  (em pleno ano de 2016, agora na era NFC-e) ?

    b.) Será nescessário, ou mesmo obrigatório eu fazer o PAF?

    c) Quais serão os primeiros passos para que eu implemente o TEF em meu Emissor de NFCe, que usa o ACBFNFe (Trunk2), usando o componente ACBrTEF?

     

    Desde já, obrigado amigos.

     

     

     

  10. Bom dia Senhores,

    Peço perdão por me intrometer neste post, mas eu acho que minha duvida está relacionada a ele.

    Depois que atualizei o componente para a implementação do Fundo Contra a Pobreza meu Danfe (FortesReport) da NFe (Nota Fiscal grande - A4) não está mostrando a linha de fatura como mostro nas imagens abaixo. 

    Em um Danfe emitido anteriormente à atualização do componente a linha referente a a FATURA aparece e no outro , o atualizado, ela deixou de aparecer.

    Eu gostaris de saber se isso foi uma alteração do layout do modelo no Fortes report ou se sou eu que estou omitindo alguma chave na geração do arquivo xml.

    Alguém poderia me dar uma dica disso?

     

    Desde já, muito obrigado!

     

      

    anexos:

    nfe.jpg

    nfe2.jpg

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