-
Total de ítens
484 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por volmir
-
-
boa tarde a todos,
estou desenvolvendo minha rotida de tef com a nfce
estou usando o tef Daruma hoje pertencente a Linx
uso para isso o ACBrTEFD
nao sei se é eu que estou fazendo algo errado mas nao estava conseguindo cancelar visto que uso uma impressora nao fiscal Bematech MP4200
mas tive que alterar uma funcao do componete e ai consegui efetuar o cancelamento
segue funcao onde tive que mexer pra analize
Function TACBrTEFDCliDTEF.FazerRequisicao( Funcao : Integer; AHeader : AnsiString = '';
Valor : Double = 0; Documento : AnsiString = ''; QuantidadeCheques : AnsiString = '';
PeriodicidadeCheques : AnsiString = ''; DataPrimeiroCheque : AnsiString = '';
CarenciaPrimeiroCheque : AnsiString = '') : Integer ;
Var
ValorStr, DataStr, HoraStr : AnsiString;
ANow : TDateTime ;
pValorTransacao, pNumeroCupomVenda, pNumeroControle,
pQuantidadeCheques, pPeriodicidadeCheques, pDataPrimeiroCheque,
pCarenciaPrimeiroCheque : AnsiString;
SL, ArquivoResposta : TStringList;
Voltar, Parar : Boolean;
ItemSelecionado : integer;
begin
if fpAguardandoResposta then
raise Exception.Create( ACBrStr( 'Requisição anterior não concluida' ) ) ;if AHeader = 'CRT' then
begin
ItemSelecionado := -1 ;
fOnObtemInformacao( ItemSelecionado ) ;
if ItemSelecionado > 0 then
Funcao := ItemSelecionado
else
raise EACBrTEFDErro.Create( ACBrStr( 'Tipo de cartão não informado' ) );
end;if AHeader = 'ADM' then
begin
SL := TStringList.Create;
try
SL.Add('Cancelamento');
SL.Add('Consulta de Parcelas');
SL.Add('Reimpressão');
SL.Add('Resumo das Vendas');
SL.Add('Resgate de Prêmios');Parar := False;
while not Parar do
begin
if ItemSelecionado = 30 then Exit;Voltar := False;
ItemSelecionado := -1;
OnExibeMenu( 'Selecione a operação desejada', SL, ItemSelecionado, Voltar ) ;if (not Voltar) then
begin
if (ItemSelecionado >= 0) and (ItemSelecionado < SL.Count) then
begin
case ItemSelecionado of
0: Funcao := 6;
1: Funcao := 9;
2: Funcao := 7;
3: Funcao := 8;
4: Funcao := 11;
end;Parar := True;
end;
end;
end;
finally
SL.Free ;
end ;
end;Result := -1 ;
ANow := Now ;
DataStr := FormatDateTime('YYYYMMDD', ANow );
HoraStr := FormatDateTime('HHNNSS', ANow );
ValorStr := FormatFloat( '0.00', Valor );
ValorStr := StringReplace( ValorStr, ',', '', [rfReplaceAll]) ;
ValorStr := StringReplace( ValorStr, '.', '', [rfReplaceAll]) ;fDocumentosProcessados := '' ;
GravaLog( '*** IniciaFuncaoDPOS. Modalidade: '+AHeader+
' Valor: ' +ValorStr+
' Documento: ' +Documento+
' Data: ' +DataStr+
' Hora: ' +HoraStr) ;pValorTransacao := PadLeft(ValorStr, 12, '0') ;
pNumeroCupomVenda := PadLeft(Documento, 6, '0') ;
pNumeroControle := HoraStr ;if Funcao = 1 then // Cartão de Crédito
Result := xTransacaoCartaoCredito( PAnsiChar( pValorTransacao ),
PAnsiChar( pNumeroCupomVenda ),
PAnsiChar( pNumeroControle ) );
if Funcao = 2 then // Cartão de Débito
Result := xTransacaoCartaoDebito( PAnsiChar( pValorTransacao ),
PAnsiChar( pNumeroCupomVenda ),
PAnsiChar( pNumeroControle ) );
if Funcao = 3 then // Cartão Voucher
Result := xTransacaoCartaoVoucher( PAnsiChar( pValorTransacao ),
PAnsiChar( pNumeroCupomVenda ),
PAnsiChar( pNumeroControle ) );
if Funcao = 5 then // Cheque
begin
pQuantidadeCheques := '00' ;
pPeriodicidadeCheques := '000' ;
pDataPrimeiroCheque := '00000000' ;
pCarenciaPrimeiroCheque:= '000' ;Result := xTransacaoCheque( PAnsiChar( pValorTransacao ),
PAnsiChar( pNumeroCupomVenda ),
PAnsiChar( pNumeroControle ),
PAnsiChar( pQuantidadeCheques ),
PAnsiChar( pPeriodicidadeCheques ),
PAnsiChar( pDataPrimeiroCheque ),
PAnsiChar( pCarenciaPrimeiroCheque ) );
end;if Funcao = 6 then //Volmir
begin
//pNumeroControle := ' '; //Aqui tive que comentar pois dava erro "acess violation""
Result := xTransacaoCancelamentoPagamento( PAnsiChar( pNumeroControle ) );
end;if Funcao = 7 then
Result := xTransacaoReimpressaoCupom;if Funcao = 8 then
Result := xTransacaoResumoVendas( PAnsiChar( pNumeroControle ) );if Funcao = 9 then
Result := xTransacaoConsultaParcelas( PAnsiChar( pNumeroControle ) );if Funcao = 10 then
Result := xTransacaoCartaoFrota( PAnsiChar( pValorTransacao ),
PAnsiChar( pNumeroCupomVenda ),
PAnsiChar( pNumeroControle ) );
if Funcao = 11 then
Result := xTransacaoResgatePremio( PAnsiChar( pNumeroCupomVenda),
PAnsiChar( pNumeroControle ) );if Result <> 0 then
raise EACBrTEFDErro.Create( ACBrStr( 'Retorno DTEF -> ' + IntToStr(Result) ) )
else
if Funcao <> 11 then
begin
Resp.Clear;with TACBrTEFDRespCliDTEF( Resp ) do
begin
fpIDSeq := fpIDSeq + 1 ;
if Documento = '' then
Documento := IntToStr(fpIDSeq) ;ArquivoResposta := TStringList.Create;
try
if ((Funcao = 7) or (Funcao = 9)) then
begin
ArquivoResposta.LoadFromFile(ArqResp + 'ULTIMO.PRN');
DeleteFile(ArqResp + 'ULTIMO.PRN');
ImprimirComprovantes(ArquivoResposta);
ApagaEVerifica( ArqBackup );
end
else
begin
ArquivoResposta.LoadFromFile(ArqResp + pNumeroControle + '.' + NumeroTerminal);if Funcao = 8 then
begin
ImprimirComprovantes(ArquivoResposta);
ApagaEVerifica( ArqResp + pNumeroControle + '.' + NumeroTerminal );
end;if Funcao = 6 then
begin
ImprimirComprovantes(ArquivoResposta);
ApagaEVerifica( ArqResp + pNumeroControle + '.' + NumeroTerminal );
ApagaEVerifica( ArqBackup );
xConfirmaCartaoCredito( PAnsiChar( pNumeroControle ) );
xFinalizaTransacao;
end
else
begin
MontaArquivoResposta(pNumeroControle, ArquivoResposta);Conteudo.Conteudo.Text := ArquivoResposta.Text;
Conteudo.GravaInformacao(899,100, AHeader ) ;
Conteudo.GravaInformacao(899,101, IntToStr(fpIDSeq) ) ;
Conteudo.GravaInformacao(899,102, Documento ) ;
Conteudo.GravaInformacao(899,103, IntToStr(Trunc(SimpleRoundTo( Valor * 100 ,0))) );
Conteudo.GravaInformacao(899,104, IntToStr(Funcao) );
Conteudo.GravaInformacao(899,130, 'IMPRIMINDO...' ) ;Resp.TipoGP := fpTipo;
end;
end;
finally
try
ArquivoResposta.Free; //volmir
except //Aqui tive que colocar um Try Except pois dava erro "acess violation""
end;
end ;
end;
end;
end;fazendo isso consegui cancelar
lembrando que cacenlei pelo ADM => cancelamento
unit ACBrTEFDCliDTEF;
-
havia pensado em imprimir o evento porem ele so existe para papel A4
-
bom dia
como fica a questao do cancelamento da nfce
existe uma forma de imprimir algum comprovante de cancelamento sem que seja aquele do evento da nfe
pois preciso imprimir em uma impressora nao fiscal bematech MP4200
-
boa tarde
UF da empresa consultada = SP
UF da empresa configurada (UF webservice = RS)
-
boa tarde daniel;
o que eu fiz foi configurar o demo do acbr da pasta
\..\ACBR\Exemplos\ACBrDFe\ACBrNFe\Delphi\
configurando certificado - dados empresa etc..
ai clico no botao Consulta cadastro cuja codificacao é esta:
procedure TForm1.btnConsCadClick(Sender: TObject);
var
UF, Documento : String;
begin
if not(InputQuery('WebServices Consulta Cadastro ', 'UF do Documento a ser Consultado:', UF)) then
exit;
if not(InputQuery('WebServices Consulta Cadastro ', 'Documento(CPF/CNPJ)', Documento)) then
exit;
Documento := Trim(OnlyNumber(Documento));ACBrNFe1.WebServices.ConsultaCadastro.UF := UF;
if Length(Documento) > 11 then
ACBrNFe1.WebServices.ConsultaCadastro.CNPJ := Documento
else
ACBrNFe1.WebServices.ConsultaCadastro.CPF := Documento;
ACBrNFe1.WebServices.ConsultaCadastro.Executar;MemoResp.Lines.Text := ACBrNFe1.WebServices.ConsultaCadastro.RetWS;
memoRespWS.Lines.Text := ACBrNFe1.WebServices.ConsultaCadastro.RetornoWS;
LoadXML(ACBrNFe1.WebServices.ConsultaCadastro.RetornoWS, WBResposta);pgRespostas.ActivePageIndex := 1;
MemoDados.Lines.Add('');
MemoDados.Lines.Add('Consulta Cadastro');
MemoDados.Lines.Add('versao: ' +ACBrNFe1.WebServices.ConsultaCadastro.versao);
MemoDados.Lines.Add('verAplic: ' +ACBrNFe1.WebServices.ConsultaCadastro.verAplic);
MemoDados.Lines.Add('cStat: ' +IntToStr(ACBrNFe1.WebServices.ConsultaCadastro.cStat));
MemoDados.Lines.Add('xMotivo: ' +ACBrNFe1.WebServices.ConsultaCadastro.xMotivo);
MemoDados.Lines.Add('DhCons: ' +DateTimeToStr(ACBrNFe1.WebServices.ConsultaCadastro.DhCons));end;
porem o que percebi é se eu colocar nas configuracoes
ACBrNFe1.Configuracoes.Geral.VersaoDF:=ve310;
nao funciona, tenho que colocar
ACBrNFe1.Configuracoes.Geral.VersaoDF:=ve200;
encontrei isso no manual da nfe versao 2.00 e no manual da versao 3.10 nao encontrei nada
por isso acredito que deve ser enviado com a versao 200
Método: consultaCadastro2
4.7.1 Leiaute da Mensagem de Entrada
Entrada: Estrutura XML para consulta ao cadastro de contribuintes ICMS.
Schema XML: consCad_v2.00.xsd -
Vou postar aqui minhas configuracoes entao:
Ambiente:homologacao
Uf Webservice:RS
Forma Emissao:normal
Modelo documento fiscal : moNFe
versao documento fiscal : ve310
emitente de SC (certificado digital A1)
rotina:
ACBrNFe1.WebServices.ConsultaCadastro.UF := 'MG';
ACBrNFe1.WebServices.ConsultaCadastro.CNPJ := '50116185001225';
ACBrNFe1.WebServices.ConsultaCadastro.Executar;são este os dados informado e retornou este erro que postei anteriormente
desculpa pessoal descobri o que era
para o consulta cadastro tive que mudar aqui
versao documento fiscal : ve310
acredito que este servico ainda esteja na versao 200
pois mudei para
versao documento fiscal : ve200
e ai funcionou
-
bom dia resolvi usar o consulta cadastro da nfe mas nao estou conseguindo
ja pesquizei aqui no forum mas nao consegui resolver o problema
simulei no demo e retorna esta mensagem:
Consulta Cadastro
versao: 3.10
verAplic: 13_2_88_MQ7
cStat: 239
xMotivo: Rejeicao: Cabecalho - Versao do arquivo XML nao suportada
DhCons: 27/10/2015 10:09:07o xml esta em anexo
-
boa tarde
estou com um problema desenvolvi um sistema pra emisao de boletos
mas nenhum componente gerador de relatorios reconhece um impressora hp multifuncional em um de meus clientes
a impressora nao esta instalada no proprio micro esta instala em um outro micro da rede.
porem meu sistema ERP reconhece normalmente sem problemas
em meus gerodores de relatorio utilizo o FastReport
e funciona normal,
porem nao sei porque com o acbrBoleto nao reconhece
ja pesquizei aqui no forum porem nada que conseguisse resolver meu problema
-
ok.
Obg
Problema resolvido.
-
bom dia a todos estou com problema apos atualizar meu fontes do acbr
ao enviar uma nfce acontece a seguiente mensagem
1824 - Element '{http://www.portalfiscal.inf.br/nfe}uTrib': 'PC' is not a valid value of the local atomic type.
atualizei os schemas peguei os mesmos do demo da nfe e nao resolveu
ai baixei da zefas e nao resolveu
pesquizando aqui no forum vi alguns post dizendo pra alterar os schemas
mas fiquei com duvida se isso seria o correto
utilizo openssl
delphi xe3
-
Ok.
agora consegui resolver deveria ser algum .dcu pois limpei tudo o que encontrei e agora resolveu
-
-
Hum mesmo em homologação ?
-
boa tarde
oq vcs colocaram com CSC
estou colocando assim:
DM.NFe1.Configuracoes.Geral.IdCSC:='000001';
DM.NFe1.Configuracoes.Geral.CSC :='';porem esta retornando um erro de CSC nao cadastrado na Sefaz
-
Blz
Agora nao deu mais erros de validacao do xml na sefaz resolveu com o cIdToken
porem a mesagem de erro do sefaz persiste
-
Hum,
Vou arumar isso entao
Obg
-
Bom dia tamebem estou com mesmo problema porem pra min ao validar meu xml na sefaz retornou este erro:
Resultado da Validação do Schema e de Regras de Negócio: - Parser XML: Nenhum erro encontrado
- Tipo de Mensagem: Documento de NF-e
-
Schema XML: The 'http://www.portalfiscal.inf.br/nfe:qrCode' element is invalid - The value 'https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?chNFe=43151091241034000123650020000000991000000063&nVersao=100&tpAmb=2&cDest=14372807000160&dhEmi=323031352D31302D30325430383A33353A33342D30333A3030&vNF=142.02&vICMS=0.00&digVal=675A374667446E5734566D42324D4744586D565A743564434346733D&cIdToken=&cHashQRCode=3BF4F2E6EB165A60543DEC37EE1A3BFE901A0C2E' is invalid according to its datatype 'String' - The Pattern constraint failed.Caminho: NFe[1]/infNFeSupl/qrCode/
-
Bom dia.
esta era minha duvida, se o manual que estou usando é realmente o ultimo atualizado, pois o pessoal do banco aqui nao souberam me responder ou me deixaram com duvidas
mas se é este entao realmente temos que corrigir o componente pois esta errado, seria interassante tambem revisar a parte que gera o arquivo, pois é possivel tambem que haja falhas;
-
bom dia estive problemas ao ler retorno cnab240 do banco sicoob,
ai pedi o manual pro pessoal do banco e fiu analizar e percebi que tem muita coisa que nao bate com o manual estao em possicoes diferentes,
por isso fiquei com uma duvida
sera que me passaram um manual errado?
sera que houve alguma alteracao e nao foi ajusta no componente?
estou anexando o manual do sicoob (segundo pessoal do banco este é o ultimo atualizado)
quem puder dar uma olhada pra me ajudar fico grato.
sopra exemplificar a procedure TACBrBancoob.LerRetorno240(ARetorno: TStringList); (Unit AcbrBancoBancoob)
neste trecho
ACBrBanco.ACBrBoleto.DataArquivo := StringToDateTimeDef(Copy(ARetorno[1],144,2)+'/'+
Copy(ARetorno[1],146,2)+'/'+
Copy(ARetorno[1],148,4),0, 'DD/MM/YY' );esta assim quando deveria ser assim segundo o manual
ACBrBanco.ACBrBoleto.DataArquivo := StringToDateTimeDef(Copy(ARetorno[0],144,2)+'/'+
Copy(ARetorno[0],146,2)+'/'+
Copy(ARetorno[0],148,4),0, 'DD/MM/YY' );a data do arquivo esta na primeira linha do registro header do arquivo
-
percebi um erro na unit {ACBRSintegra}
procedure TACBrSintegra.GerarRegistros60I(Registros60I: TRegistros60I);
var
wregistro: string;
i: Integer;
begin
for I := 0 to Registros60I.Count - 1 do
begin
wregistro:='60I';
wregistro:=wregistro+FormatDateTime('yyyymmdd',Registros60I.Emissao);
wregistro:=wregistro+PadRight(Trim(Registros60I.NumSerie),20);
wregistro:=wregistro+PadRight(Trim(Registros60I.ModeloDoc),2);
wregistro:=wregistro+TBStrzero(Registros60I.Cupom,6);
wregistro:=wregistro+TBStrzero(IntToStr(Registros60I.Item),3);
wregistro:=wregistro+PadRight(Registros60I.Codigo,14);
wregistro:=wregistro+TBStrZero(TiraPontos(
FormatFloat('#,###0.000',Registros60I.Quantidade)),13);
{Valor líquido (valor bruto diminuído do desconto) da mercadoria/produto (com 2 decimais)}
wregistro:=wregistro+TBStrZero(TiraPontos(
FormatFloat('#,##0.00',Registros60I.Valor)),13);//2 decimais alterado por volmir em 15-09-2015
wregistro:=wregistro+TBStrZero(TiraPontos(
FormatFloat('#,##0.00',Registros60I.BaseDeCalculo)),12);
wregistro:=wregistro+PadRight(TiraPontos(Registros60I.StAliquota),4);
wregistro:=wregistro+TBStrZero(TiraPontos(
FormatFloat('#,##0.00',Registros60I.ValorIcms)),12);
wregistro:=wregistro+Space(16);
WriteRecord(wregistro);
end;
end;estava gerando com 3 decimais mas deve ser gerado com 2 decimais apartir de
Nova redação dada ao campo 10 do subitem 16.5, pelo Conv. ICMS 76/03, efeitos a partir de 16.10.03
Arquivo anexado
-
percebi um erro na unit {ACBRSintegra}
procedure TACBrSintegra.GerarRegistros60I(Registros60I: TRegistros60I);
var
wregistro: string;
i: Integer;
begin
for I := 0 to Registros60I.Count - 1 do
begin
wregistro:='60I';
wregistro:=wregistro+FormatDateTime('yyyymmdd',Registros60I.Emissao);
wregistro:=wregistro+PadRight(Trim(Registros60I.NumSerie),20);
wregistro:=wregistro+PadRight(Trim(Registros60I.ModeloDoc),2);
wregistro:=wregistro+TBStrzero(Registros60I.Cupom,6);
wregistro:=wregistro+TBStrzero(IntToStr(Registros60I.Item),3);
wregistro:=wregistro+PadRight(Registros60I.Codigo,14);
wregistro:=wregistro+TBStrZero(TiraPontos(
FormatFloat('#,###0.000',Registros60I.Quantidade)),13);
{Valor líquido (valor bruto diminuído do desconto) da mercadoria/produto (com 2 decimais)}
wregistro:=wregistro+TBStrZero(TiraPontos(
FormatFloat('#,##0.00',Registros60I.Valor)),13);//2 decimais alterado por volmir em 15-09-2015
wregistro:=wregistro+TBStrZero(TiraPontos(
FormatFloat('#,##0.00',Registros60I.BaseDeCalculo)),12);
wregistro:=wregistro+PadRight(TiraPontos(Registros60I.StAliquota),4);
wregistro:=wregistro+TBStrZero(TiraPontos(
FormatFloat('#,##0.00',Registros60I.ValorIcms)),12);
wregistro:=wregistro+Space(16);
WriteRecord(wregistro);
end;
end;estava gerando com 3 decimais mas deve ser gerado com 2 decimais apartir de
Nova redação dada ao campo 10 do subitem 16.5, pelo Conv. ICMS 76/03, efeitos a partir de 16.10.03
-
Atualizei meus fontes a apartir de entao comecou a aparecfe um erro ao consutar uma nfe carrregando o xml
Erro: "Enable to parse"
-
Boa tarde estou com um problema ao gerar arquivo de remessa cnab 400 para o sicoob pois segundo manual deve ser informado o percentual de mora/juros e o acbr esta pedido pra informar o valor da mora/juros ai nao esta aceitando no banco. na verdade até aceita porem esta com as informacoes errada.
-
boa tarde estou usando o quickreport na impresao de boletos
porem encontrei um probleminha na unit (ACBrBoletoFCQuickFr)
procedure TACBrBoletoFCQuickFr.RLMemo6_1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);txtLocalPagamento6_2.Caption := lblLocalPagto6_0.Caption;//volmir 07-08-2015
estava assim
txtLocalPagamento6_2.Caption := lblLocalPagto.Caption;
porem lblLocalPagto.Caption esta com o caption erado pois nao passou por uma chamada
visto que pertence a outro relatorio
outra coisa que tenho que arruma a cada vez que baixo os fontes do zero é
-o zoom o prewewInatilezeState e o prewewDefoultSaveType e devo adicionar um componente de exportacao para pdf
-descomentar esta parte do codigo para que seja possivel enviar o email com pdf:
case Filtro of
fiPDF :
begin
FiltroExportacao := TQRPDFDocumentFilter.Create(NomeArquivo);
try
TQRPDFDocumentFilter(FiltroExportacao).CompressionOn := true;
RLLayout.ExportToFilter(FiltroExportacao);
finally
FiltroExportacao.Free;
end;na funcao Imprimir.
é claro que sei das imcompatibilidades no caso que usa quickreport com Delphi 7 nao posiu opcao pra exportar pra PDF
acbrTEFDTEF
em Dúvidas sobre TEF
Postado
boa tarde,
alguem ja conseguiu imprimir os comprovantes de credito ou debito usando uma impressora nao fiscal com TEF.
se alguem consegui e tiver dispostos a compartilhar esta informacao pois nao estou conseguindo
pois com impressora fiscal funciona normal porem pelo visto que dispara esta impressao é o componente acbrECF,
como para a nfce nao tem impressora fiscal ai nao estou conseguindo imprimir este comprovante