Ir para conteúdo
  • Cadastre-se

karlouchoa

Membros
  • Total de ítens

    105
  • Registro em

  • Última visita

Contact Methods

  • Website URL
    http://www.sistemaraposa.com.br

Últimos Visitantes

1.351 visualizações

karlouchoa's Achievements

Collaborator

Collaborator (7/14)

  • Reacting Well Rare
  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done

Recent Badges

6

Reputação

6

Community Answers

  1. Obrigado Vitor. Funcionou.
  2. 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.
  3. 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?
  4. ----- 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;
  5. Já está resolvido meus amigos, obrigado.
  6. 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?
  7. 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.
  8. 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
  9. Ok Juliomar, vou separar e sequenciar bem o material e postarei aqui de forma que d~e para ajudar outros amigos.
  10. 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!
  11. Vou testar meus amigos, já agradeço a atenção. Volto aqui depois pra avisar o andamento. Obrigado.
  12. 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.
  13. 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?
×
×
  • 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.