Jump to content

mkvendas2006

Membros
  • Posts

    39
  • Joined

  • Last visited

Everything posted by mkvendas2006

  1. Amigo to com o mesmo problema, como vc fez? Poste o codigo... Maicon
  2. Bom Dia, Estou tentando fazer uma NF exportação, já estou passando os campos: Dest.EnderDest.cMun := 9999999; Dest.EnderDest.xMun := 'EXTERIOR'; Dest.EnderDest.UF := 'EX'; E exporta.xLocEmbarq := quDadoEmit.FieldByName('NOMECID').AsString; exporta.UFEmbarq := 'RS'; Porem ele não cria a tag xLocEmbarq e UFEmbraq. Alguem pode me ajudar? 43140502660465000102550010000001321000001327-NFe.xml
  3. Boa Tarde, CFOP é especifico de cada operação, o usuário deverá informar. Sendo que quando iniciar do 1 ao 3 é uma operação de entrada, do 5 ao 7 saída. Mas denovo, essa informação de vai usar 5102, 5403, 5910 é por conta do usuário. Te aconselho a conversar com um contador para entender melhor do assunto, pois é bem amplo. Maicon
  4. Boa Tarde, Estou com o mesmo problema, se algum puder ajudar... Maicon
  5. Boa Tarde Essa Consulta de CNPJ/CPF foi incorporado no ACBR ou não? Não consegui localizar ele. Maicon
  6. Boa Noite! Minha cidade não é atendida pelo ACBR que é Blumenau - SC o layout aqui é SP com algumas mudanças, quero implementar ele no meu sistema mas quero aproveitar algumas funções do ACBR, alguem pode me dar uma Luz por onde começar ou qualquer outra dica? Para que serve os Schemas eu uso eles para gerar o xml? Maicon
  7. CavaloMarinho, Lhe recomendo sempre gravar no BD o XML cancelado e o XML autorizado, veja abaixo a minha rotina, eu busco o XML salvo no HD e insiro no BD: Assim, você organiza e tem mais segurança. procedure TfrmNotaFiscal.CancelarNFe1Click(Sender: TObject); var idLote, CNPJ, Justificativa : string; quGeral, quCrTit: TADOQuery; begin quCrTit := TADOQuery.Create(Self); quCrTit.Connection := frmPrincipal.BD; quCrTit.SQL.Add('SELECT 1 FROM NOTAVENPARCEL T0'); quCrTit.SQL.Add('WHERE T0.CODIGO = '+Codigo.Text); quCrTit.SQL.Add('AND T0.CODEMP = '+frmPrincipal.EmpAtiva); quCrTit.SQL.Add('AND T0.VALORPARCELA <> T0.VALORABERTO'); quCrTit.Open; if quCrTit.IsEmpty then begin IniciaComponente; CNPJ := copy(ChaveNFe.Text,7,14); Justificativa := 'Justificativa do Cancelamento'; if not(InputQuery('WebServices Eventos: Cancelamento', 'Justificativa do Cancelamento', Justificativa)) then exit; ACBNF.EventoNFe.Evento.Clear; with ACBNF.EventoNFe.Evento.Add do begin infEvento.chNFe := ChaveNFe.Text; infEvento.CNPJ := copy(ChaveNFe.Text,7,14); infEvento.dhEvento := now; infEvento.tpEvento := teCancelamento; infEvento.detEvento.xJust := Justificativa; infEvento.detEvento.nProt := Protocolo.Text; end; try ACBNF.EnviarEventoNFe(StrToInt(Codigo.Text)); //verificar ainda se foi baixado o titulo CodigoNFe.Text := IntToStr(ACBNF.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat); MsgSefaz.Lines.Add('Justificativa: '+Justificativa); MsgSefaz.Lines.Add( DateTimeToStr(ACBNF.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento) + ': ' + ACBNF.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo); if CodigoNFe.Text = '135' then begin Status.ItemIndex := 6; EstornaEstoque; InserirXMLdaNFe(ChaveNFe.Text + '1101111-ProcEventoNFe.xml', 'Can'); ACBNF.Free; ShowMessage('Nota Fiscal Cancelada com Exito.'); end else begin quGeral := TADOQuery.Create(Self); quGeral.Connection := frmPrincipal.BD; quGeral.SQL.Add('UPDATE NOTAVENCAB'); quGeral.SQL.Add('SET MSGSEFAZ = :MSGSEFAZ'); quGeral.SQL.Add('WHERE CODIGO = '+Codigo.Text); quGeral.SQL.Add('AND CODEMP = '+frmPrincipal.EmpAtiva); quGeral.Parameters.ParamByName('MSGSEFAZ').Value := MsgSefaz.Text; quGeral.ExecSQL; quGeral.Free; ACBNF.Free; MessageDlg('Erro ao cancelar a NF: '+#13+ACBNF.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo, mtError, [mbOK], 0); end; Except on e:exception do begin CodigoNFe.Text := IntToStr(ACBNF.WebServices.EnvEvento.cStat); MsgSefaz.Lines.Add(DateTimeToStr(now) + ': '+ACBNF.WebServices.EnvEvento.xMotivo); MsgSefaz.Lines.Add(DateTimeToStr(now) + ': '+E.Message); ACBNF.Free; MessageDlg('Erro ao cancelar a NF: '+#13+E.Message, mtError, [mbOK], 0); end; end; end else begin MessageDlg('Erro ao cancelar a nota fiscal já possui baixas.'+sLineBreak+'Cancele a baixa e tente baixar novamente.', mtError, [mbOK], 0); end; end;
  8. Muito Obrigado Jeter/Juliana, Tudo Certo agora.... Valeu.
  9. Se fizer um novo Projeto e colocar o FrxReport do Fast no Form, da erro também? Maicon
  10. Eu também uso o Fast, funciona 100%, veja se a pasta \Logos esta abaixo da pasta do executável. Maicon
  11. Boa Tarde, Estou iniciando o SPED fiscal do zero no meu sistema, mas antes de começar gerei um arquivo pelo exemplo do ACBR e apresentaram vários erros no PVA, alguem tem um exemplo que não gere erros? Tenho medo de me guiar por lá pra fazer e eu faça errado. Estou usando o PVA 2.0.30. Em anexo os erros. Maicon
  12. Bom Dia Jeter, Sim, o de semana passada ele adicionava o '0' na linha digitavel, mas adicionando no Código cedente: Agencia + Código Cedente ele leva isso tudo pra linha digitavel, aonde acaba ficando errado, por exemplo: Agencia: 01660 Codigo Cedente: 1660870000000322 se deixar assim fecha a Remessa, mas ai quebra a linha digitavel do boleto, pois ele manda o código inteiro: 1660870000000322 Agora se informar o código cedente sem a agencia, fecha 100%. SDS Maicon
  13. Sim amigo, Funciona sim amigo, os parametros são os necessarios para fazer o envio, SMTP, usuario, senha etc... Maicon
  14. Bom Dia Juliana, Se informar a agencia junto ao código cedente ele não fecha a linha digitável do boleto, ele acaba jogando o 1660 para a linha. Se eu retirar o 1660 o boleto fecha em 100%, mas ai não fecha na remessa. Neste caso acho que na geração da remessa ele deve pegar a Agencia + Codigo Cedente. OK? Maicon
  15. Olá amigo, O Acbr já faz isso: ACBrBoleto1.EnviarEmail(parametros.......); Maicon
  16. Amigo segue minha procedure para geração de boletos, faço um select e imprimo conforme cadastro. var Titulo : TACBrTitulo; I, SeqR : Integer; NossoNu, NumDc : String; quTitulos, quGeral: TADOQuery; ACBrBoleto1 : TACBrBoleto; ACBrBoletoFCFR1 : TACBrBoletoFCFR; begin quTitulos := TADOQuery.Create(nil); quTitulos.Connection := frmPrincipal.BD; quGeral := TADOQuery.Create(nil); quGeral.Connection := frmPrincipal.BD; ACBrBoleto1 := TACBrBoleto.Create(nil); ACBrBoletoFCFR1 := TACBrBoletoFCFR.Create(nil); quTitulos.SQL.Add('SELECT T0.DTLANCAMENTO, T0.NRNOTA, T2.LOCALPAGAMENTO, T1.DTVENCIMENTO, T1.NOSSONUM, T1.NUMDOC NUMDOCP, '); quTitulos.SQL.Add('T1.VALORPARCELA, T1.LINHA, T2.ESPECIEDOC, T2.ESPECIE, T2.ACEITE, T2.NOSSONUMERO, T2.CARTEIRA, '); quTitulos.SQL.Add('T2.AGENCIA, T2.DIGITOAG, T2.CONTACORRENTE, T2.DIGITOCC, T2.LAYOUT, T2.CAMINHOREMESSA, '); quTitulos.SQL.Add('T2.CONVENIO, T2.CODIGOCEDENTE, T2.TAMANHONOSSONUM, T2.CNAB, T2.NOMEARQ, T2.CODIGO TIPOCOB,'); quTitulos.SQL.Add('T2.MSG1, T2.MSG2, T2.NDIASPROTESTO, T2.CARACTBOLETO, T2.NUMDOC, T3.PESSOA, '); quTitulos.SQL.Add('T3.NOME, T3.PESSOA, CASE WHEN T3.PESSOA = 0 THEN '); quTitulos.SQL.Add('T3.CNPJ WHEN T3.PESSOA = 1 THEN '); quTitulos.SQL.Add('T3.CPF ELSE T3.CNPJESTRANGEIRO END CNPJCPF, '); quTitulos.SQL.Add('T3.NOME, T3.PESSOA, T3.RUACOB, T3.NOCOB, T3.BAIRROCOB, T3.CEPCOB,'); quTitulos.SQL.Add('T4.NOME CIDADE, T5.NOME ESTADO'); quTitulos.SQL.Add('FROM NOTAVENCAB T0'); quTitulos.SQL.Add('INNER JOIN NOTAVENPARCEL T1 ON (T1.CODIGO = T0.CODIGO AND T1.CODEMP = T0.CODEMP)'); quTitulos.SQL.Add('INNER JOIN TIPOCOB T2 ON (T2.CODIGO = T0.TIPOCOB)'); quTitulos.SQL.Add('INNER JOIN NEGOCIO T3 ON (T3.CODIGO = T0.CODNEGOCIO)'); quTitulos.SQL.Add('LEFT OUTER JOIN CIDADE T4 ON (T4.CODIGO = T3.CIDADECOB)'); quTitulos.SQL.Add('LEFT OUTER JOIN ESTADO T5 ON (T5.CODIGO = T3.ESTADOCOB)'); quTitulos.SQL.Add('WHERE T0.CODIGO = '+ CodigoDoc +' AND T0.CODEMP = '+frmPrincipal.EmpAtiva); quTitulos.Open; {Dados do cedente} ACBrBoleto1.Banco.TipoCobranca := TACBrTipoCobranca(quTitulos.FieldByName('LAYOUT').AsInteger); ACBrBoleto1.Cedente.Nome := frmPrincipal.NomeEmp; ACBrBoleto1.Cedente.CNPJCPF := frmPrincipal.CNPJ; ACBrBoleto1.Cedente.CodigoCedente := quTitulos.FieldByName('CODIGOCEDENTE').AsString; ACBrBoleto1.Cedente.Convenio := quTitulos.FieldByName('CONVENIO').AsString; ACBrBoleto1.Cedente.Agencia := quTitulos.FieldByName('AGENCIA').AsString; ACBrBoleto1.Cedente.AgenciaDigito := quTitulos.FieldByName('DIGITOAG').AsString; ACBrBoleto1.Cedente.Conta := quTitulos.FieldByName('CONTACORRENTE').AsString; ACBrBoleto1.Cedente.ContaDigito := quTitulos.FieldByName('DIGITOCC').AsString; ACBrBoleto1.ACBrBoletoFC := ACBrBoletoFCFR1; ACBrBoletoFCFR1.FastReportFile := ExtractFilePath(Application.ExeName)+ '\Reports\BoletoFR.fr3'; ACBrBoleto1.Banco.TamanhoMaximoNossoNum := quTitulos.FieldByName('TAMANHONOSSONUM').AsInteger; ACBrBoleto1.DirArqRemessa := quTitulos.FieldByName('CAMINHOREMESSA').AsString; ACBrBoleto1.NomeArqRemessa := IntToStr(SeqR) + quTitulos.FieldByName('NOMEARQ').AsString; ACBrBoleto1.LayoutRemessa := iif(quTitulos.FieldByName('CNAB').AsInteger = 240, c240, c400); ACBrBoleto1.Cedente.TipoInscricao := iif(quTitulos.FieldByName('PESSOA').AsInteger = 0, pJuridica, pFisica); ACBrBoleto1.Cedente.CaracTitulo := TAcbrCaracTitulo(quTitulos.FieldByName('CARACTBOLETO').AsInteger); while (not quTitulos.Eof) do begin if (not Reimpressao) then begin quGeral.SQL.Clear; quGeral.SQL.Add('SELECT MAX(CAST(T1.NOSSONUM AS NUMERIC(30,0))) +1 MAXNOSSONUM, '); quGeral.SQL.Add('MAX(CAST(T1.NUMDOC AS NUMERIC(30,0))) +1 MAXNUMDOC FROM NOTAVENCAB T0 '); quGeral.SQL.Add('INNER JOIN NOTAVENPARCEL T1 ON (T1.CODIGO = T0.CODIGO AND T1.CODEMP = T0.CODEMP) '); quGeral.SQL.Add('WHERE T0.CODEMP = '+frmPrincipal.EmpAtiva); quGeral.SQL.Add('AND T0.TIPOCOB = '+quTitulos.FieldByName('TIPOCOB').AsString); quGeral.Open; if quGeral.FieldByName('MAXNOSSONUM').AsFloat > quTitulos.FieldByName('NOSSONUMERO').AsFloat then NossoNu := quGeral.FieldByName('MAXNOSSONUM').AsString else NossoNu := quTitulos.FieldByName('NOSSONUMERO').AsString; if quGeral.FieldByName('MAXNUMDOC').AsFloat > quTitulos.FieldByName('NUMDOC').AsFloat then NumDc := quGeral.FieldByName('MAXNUMDOC').AsString else NumDc := quTitulos.FieldByName('NUMDOC').AsString; end else begin NossoNu := quTitulos.FieldByName('NOSSONUMERO').AsString; NumDc := quTitulos.FieldByName('NUMDOCP').AsString; end; Titulo:= ACBrBoleto1.CriarTituloNaLista; with Titulo do begin LocalPagamento := quTitulos.FieldByName('LOCALPAGAMENTO').AsString; Vencimento := IncMonth(quTitulos.FieldByName('DTVENCIMENTO').AsDateTime ,I); DataDocumento := quTitulos.FieldByName('DTLANCAMENTO').AsDateTime; NumeroDocumento := padR(NumDc,6,'0'); EspecieDoc := quTitulos.FieldByName('ESPECIEDOC').AsString; EspecieMod := quTitulos.FieldByName('ESPECIE').AsString; Aceite := iif(quTitulos.FieldByName('ACEITE').AsString = 'S', atSim, atNao); DataProcessamento := Now; NossoNumero := NossoNu; Carteira := quTitulos.FieldByName('CARTEIRA').AsString; ValorDocumento := quTitulos.FieldByName('VALORPARCELA').AsFloat;; Sacado.NomeSacado := quTitulos.FieldByName('NOME').AsString; Sacado.CNPJCPF := quTitulos.FieldByName('CNPJCPF').AsString; Sacado.Logradouro := quTitulos.FieldByName('RUACOB').AsString; Sacado.Numero := quTitulos.FieldByName('NOCOB').AsString; Sacado.Bairro := quTitulos.FieldByName('BAIRROCOB').AsString; Sacado.Cidade := quTitulos.FieldByName('CIDADE').AsString; Sacado.UF := quTitulos.FieldByName('ESTADO').AsString; Sacado.CEP := quTitulos.FieldByName('CEPCOB').AsString; ValorAbatimento := 0; if quTitulos.FieldByName('NDIASPROTESTO').AsInteger > 0 then DataProtesto := quTitulos.FieldByName('DTVENCIMENTO').AsDateTime + quTitulos.FieldByName('NDIASPROTESTO').AsInteger; Mensagem.Text := Msg; Instrucao1 := '00'; Instrucao2 := '00'; Mensagem.Add(quTitulos.FieldByName('MSG1').AsString); Mensagem.Add(quTitulos.FieldByName('MSG2').AsString); ACBrBoleto1.AdicionarMensagensPadroes(Titulo,Mensagem); end; if (not Reimpressao) then begin quGeral.SQL.Clear; quGeral.SQL.Add('UPDATE NOTAVENPARCEL '); quGeral.SQL.Add('SET NOSSONUM = '+''''+Titulo.NossoNumero+''','); quGeral.SQL.Add('RMSEXPORTADO = ''N'', '); quGeral.SQL.Add('SEQRMSMAX = 0,'); quGeral.SQL.Add('NUMDOC = '+''''+Titulo.NumeroDocumento+''''); quGeral.SQL.Add('WHERE CODIGO = '+CodigoDoc); quGeral.SQL.Add('AND CODEMP = '+frmPrincipal.EmpAtiva); quGeral.SQL.Add('AND LINHA = '+quTitulos.FieldByName('LINHA').AsString); quGeral.ExecSQL; end; quTitulos.Next; end; ACBrBoleto1.Imprimir; quTitulos.Free; quGeral.Free; ACBrBoleto1.Free; ACBrBoletoFCFR1.Free;
  17. Boa Noite Juliana, A Questão da data do desconto vou analisar mais e te passo. Mas no segmento Q o manual diz o seguinte: 17.3Q Tipo Tipo de Inscrição 154 154 1 - Num *G005 G005 Tipo de Inscrição da Empresa Código que identifica o tipo de inscrição da Empresa ou Pessoa Física. '1' = CPF '2' = CGC / CNPJ G005 E o ACBR está enviando sempre '0'. OK? Conversamos sobre a outra questão ainda. SDS Maicon
  18. Você qual gerador de relatório para impressão? Maicon
  19. Bom Dia Juliana, Esqueci novamente, SICOB. Maicon
  20. Olá. No Segmento Q também precisa informar o tipo de inscrição da empresa, estou passando no validador e também da erro. '0' + // 154 a 154 - Tipo de inscrição: Não informado Deve vir: ATipoInscricao + // 154 a 154 - Tipo de inscrição do cedente Em anexo uma remessa gerada pelo próprio sistema da CAIXA. Maicon E1300196.rar E1300196.rar
  21. Boa Tarde, Se eu não preencher o valor de desconto ele não preenche a data de desconto do titulo, que é obrigatório informar. A data de desconto fica na posição: 31.3P Data Desc. Data do Desconto 143 150 8 - Num C022 Deixando o valor de desconto 0 ele preenche a DataDesconto = 00000000 if (ValorDesconto > 0) then begin if (DataDesconto <> Null) then ADataDesconto := FormatDateTime('ddmmyyyy', DataDesconto) else ADataDesconto := padR('', 8, '0'); end else ADataDesconto := padR('', 8, '0'); Este seria o ultimo erro encontrado para validar essa remessa. SDS Maicon
  22. Correto Juliana, Fiz uma pequena confusão nos .pas aqui, atualizei novamente está perfeito agora. Muito obrigado. Maicon
  23. Muito obrigado pelo Retorno Juliana. Maicon
  24. Boa Tarde Juliana, Observei que mudou alguma coisa, mas ainda falta um detalhe: if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia)) or (rConta <> OnlyNumber(Cedente.Conta))) then raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido')); Quando da o OnlyNumber ele retira os zeros a esquerda aonde que não fecha. E a Conta quando lê do arquivo precisa pular os 3 primeiros algarismos, pois eles é a operação 870 ou 003. Pois no arquivo tá lendo: 87000000051 Alterando isso irá resolver, Maicon
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.