Ir para conteúdo
  • Cadastre-se

karlouchoa

Membros
  • Total de ítens

    105
  • Registro em

  • Última visita

Tudo que karlouchoa postou

  1. Victor, não estou enviando, pelo menos, não que eu tenha configurado isso, mas vou atrás aqui no código e te aviso por aqui.
  2. 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?
  3. ----- 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;
  4. Boa noite, o Arquivo remessa gerado pelo componente ACBrBoleto está sem a informação na posição 82, referente ao dígito do nossos numero. Como faço para pegar o dígito gerado pelo componente para guardar ele no banco de dados?
  5. 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.
  6. 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
  7. Ok Juliomar, vou separar e sequenciar bem o material e postarei aqui de forma que d~e para ajudar outros amigos.
  8. Para fechar esse Post, já agradecendo as dicas dos amigos, venho dizer que consegui resolver com a implementação de Call Backs. Se algum outro participante tiver interesse eu posso postar o código aqui. Obrigado mesmo gente. Valeu!
  9. Vou testar meus amigos, já agradeço a atenção. Volto aqui depois pra avisar o andamento. Obrigado.
  10. 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.
  11. 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?
  12. me ajudou muito meu amigo. Estava travado aqui há pelo menos uma semana. Obrigado.
  13. Bom dia, Não estou conseguindo atualizar minha pasta do ACBr, removi os apontamentos no meu Library Path, executei o Apaga_ACbr, exclui completamente a minha pasta do componente, criei uma pasta nova e não consigo completar a o download dos arquivos. Há algum problema com os servidores?
  14. Ok irmão. obrigado pela informação. Um forte abraço.
  15. Afranio Lucas sou de Manaus também. Você já está emitindo a NFe 4.0 em modo de produção?
  16. 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.
  17. Obrigado meu amigo @hleorj vou fazer uns testes aqui e qualquer coisa eu informo. Mas uma vez obrigado.
  18. 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:
×
×
  • 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.