-
Total de ítens
105 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por karlouchoa
-
-
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.
-
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?
-
----- 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;
begindm.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
beginped.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
beginif 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;
beginif Imprimir.Caption = 'Identifique o servidor de Banco de Dados' then
beginif 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;
-
Já está resolvido meus amigos, obrigado.
-
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?
-
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.
-
*Application.run
-
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 -
Ok Juliomar, vou separar e sequenciar bem o material e postarei aqui de forma que d~e para ajudar outros amigos.
- 1
-
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!
- 1
-
Vou testar meus amigos, já agradeço a atenção.
Volto aqui depois pra avisar o andamento.Obrigado.
- 2
-
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
-
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. -
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?
-
Em 01/09/2017 at 14:10, BigWings disse:
Apenas acrescente a linha MidasLib ao uses, não use o "Add to project".
me ajudou muito meu amigo. Estava travado aqui há pelo menos uma semana. Obrigado.
- 1
-
Resolvido.
Apenas troquei o endereço do SVN por este:
svn://svn.code.sf.net/p/acbr/code/trunk2
- 1
-
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?
-
Em 25/02/2018 at 18:05, joveci guedes de almeida disse:
Brother estou desesperado tentando atualizar o trunk2 e nao estou conseguindo se vc poder mim ajudar ficarei grato ainda sou iniciante no delphi se vc tiver disponilidade mim avise blz ..ta foda
Diga qual a dificuldade vocë está encontando.
-
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!!!
-
Ok irmão. obrigado pela informação.
Um forte abraço.
-
Afranio Lucas sou de Manaus também. Você já está emitindo a NFe 4.0 em modo de produção?
-
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.
-
Obrigado meu amigo @hleorj vou fazer uns testes aqui e qualquer coisa eu informo.
Mas uma vez obrigado.
-
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:
Arquivo de Remessa Itaú - gerando o Registro 3
em ACBrBoleto
Postado
Obrigado Vitor. Funcionou.