Ir para conteúdo
  • Cadastre-se

Marcos Mentz_5837

Membros
  • Total de ítens

    42
  • Registro em

  • Última visita

Tudo que Marcos Mentz_5837 postou

  1. Bom dia! Fazendo o seguinte procedimento: - emitir o boleto: o nosso número sai certo no boleto, salvo o campo "nossonumero" no registro da duplicata, ao salvar não é salvo a modalidade, a modalidade é gerada na montagem durante a emissão do boleto. - em outro momento vou gerar a remessa das duplicatas, no final do dia por exemplo, como tenho o "nossonumero" salvo na duplicata (não está salvo a modalidade junto) e vou gerar o arquivo o "nossonumero" na remessa fica incompleto para gerar a informação na linha PadRight(Copy(ANossoNumero,1,2), 2, '0') . Fiz a depuração e rastreamento do código e não fica a remessa de acordo com o layout do banco. Marcos
  2. Bom dia! Eu também guardo somente o "nosso número", mas o código para a geração da remessa está utilizando somente esta propriedade para a geração da "modalidade", dessa forma a remessa não gera corretamente. Marcos
  3. Boa tarde! Eu encontrei um problema ao gerar cnab 240, no seguinte processo, emitir o boleto e em outro momento gerar a remessa. Na geração da transação do 240, linhas 578 e 579 PadRight(Copy(ANossoNumero,1,2), 2, '0') + //41 a 42 - Modalidade da Carteira PadLeft(Copy(ANossoNumero,3,17), 15, '0') + //43 a 57 - Nosso número - identificação do título no banco Acontece que o NossoNumero não tem a modalidade da carteira quando é salvo no registro do banco de dados, fiz uma alteração interna no sistema para guardar a geração do nosso numero que é usado na impressão do boleto, mas no momento de gerar a remessa se eu passo o número integral de 17 dígitos é gerado mensagem de erro que aceita no máximo 15. E se tenho salvo somente o "NossoNumero" se a modalidade na hora de gerar onde vai ler da propriedade não tem os 17 dígitos para ler a modalidade... Ao meu ver não deveria fazer a leitura da modalidade pelo "nossoNumero" e sim passar a modalidade como parâmetro ao gerar a linha da remessa no segmento P. Marcos
  4. Bom dia! O valor de abatimento não tem data de limite como acontece com o valor do desconto que tem, a até na impressão do boleto sai essa mensagem com data. Nos manuais dos bancos não tem esse campo de data de abatimento para nem ser informado na remessa. Até onde conheço cobrança bancária nunca vi data de limite para o abatimento, somente para o desconto. Os campos impressos de boleto acredito que o acbr está correto em não imprimir nos campos, pois é preenchido no momento do pagamento no caixa ou tem a instrução na remessa. No caso do boleto impresso eu fiz um ajuste para contornar a data de abatimento, pois este o cliente teria direito independente do dia pago, para não afetar os que usam dessa forma no meu ajuste retirei a data de vencimento usada no lugar da data de abatimento. Exemplo do código alterado na linha 1710: if ValorAbatimento <> 0 then begin if DataAbatimento <> 0 then AStringList.Add(ACBrStr('Conceder abatimento de ' + FormatCurr('R$ #,##0.00',ValorAbatimento) + ' para pagamento ate ' + FormatDateTime('dd/mm/yyyy',DataAbatimento))) else AStringList.Add(ACBrStr('Conceder abatimento de ' + FormatCurr('R$ #,##0.00',ValorAbatimento))); //' para pagamento ate ' + FormatDateTime('dd/mm/yyyy',Vencimento))); end; Marcos Softbox ACBrBoleto.pas
  5. Boa noite! Fiz as alterações nos fontes e arquivo "boletonovo.fr3" para imprimir o nome do sacador avalista e seu CNPJ que não estavam no layout e o campo do CNPJ não tinha suporte. Unit alterada = ACBrBoletoFCFR Arquivo fr3 alterado = BoletoNovo.fr3 Em anexo os arquivos para analise e atualização. Marcos Softbox Informática Ltda BoletoNovo.fr3 ACBrBoletoFCFR.dfm ACBrBoletoFCFR.pas
  6. Boa tarde! Eu tenho a mesma situação e visualizando a versão anterior de sexta está ok, e atual está com esta duplicidade e não valida o XML, segue os fontes de antes funcionando e os atuais para comparação. Eu copiei as 2 functions anteriores e substitui na versão atual e validou. ----------- anterior valida o XML ------------------------ // CST ICMS ******************************************************************** function CSTICMSToStr(const t: TpcnCSTIcms): string; begin // ID -> N02 - Tributada integralmente // ID -> N03 - Tributada e com cobrança do ICMS por substituição tributária // ID -> N04 - Com redução de base de cálculo // ID -> N05 - Isenta ou não tributada e com cobrança do ICMS por substituição tributária // ID -> N06 - Isenta // ID -> N06 - Não tributada // ID -> N06 - Suspensão // ID -> N07 - Diferimento A exigência do preenchimento das informações do ICMS diferido fica à critério de cada UF. // ID -> N08 - ICMS cobrado anteriormente por substituição // ID -> N09 - Com redução de base de cálculo e cobrança do ICMS por substituição tributária // ID -> N10 - ICMS pagto atribuído ao tomador ou ao terceiro previsto na legislação p/ ST // ID -> N10a - Operação interestadual para consumidor final com partilhado ICMS devido na operaçãoentre a UF de origem e a UF do destinatário ou a UF definida na legislação. (Ex. UF daconcessionária de entrega do veículos) (v2.0) // ID -> N10b - Grupo de informação do ICMS ST devido para a UF de destino,nas operações interestaduais de produtos que tiveram retenção antecipada de ICMS por ST na UF do remetente. Repasse via Substituto Tributário. (v2.0) // ID -> N11 - ICMS devido para outras UF // ID -> N12 - Outros result := EnumeradoToStr(t, ['00' , '10' , '20' , '30' , '40' , '41' , '50' , '51' , '60' , '70' , '80' , '81', '90', '10', '90', '41', '90', 'SN', '60'], [cst00, cst10, cst20, cst30, cst40, cst41, cst50, cst51, cst60, cst70, cst80, cst81, cst90, cstPart10 , cstPart90 , cstRep41, cstICMSOutraUF, cstICMSSN, cstRep60]); end; function StrToCSTICMS(out ok: boolean; const s: string): TpcnCSTIcms; begin result := StrToEnumerado(ok, s, ['00', '10', '20', '30', '40', '41', '50', '51', '60', '70', '80', '81', '90', '91', '92'], [cst00, cst10, cst20, cst30, cst40, cst41, cst50, cst51, cst60, cst70, cst80, cst81, cst90, cstICMSOutraUF, cstICMSSN]); end; ------------------- nova que não valida o XML ----------------------- // CST ICMS ******************************************************************** function CSTICMSToStr(const t: TpcnCSTIcms): string; begin // ID -> N02 - Tributada integralmente // ID -> N03 - Tributada e com cobrança do ICMS por substituição tributária // ID -> N04 - Com redução de base de cálculo // ID -> N05 - Isenta ou não tributada e com cobrança do ICMS por substituição tributária // ID -> N06 - Isenta // ID -> N06 - Não tributada // ID -> N06 - Suspensão // ID -> N07 - Diferimento A exigência do preenchimento das informações do ICMS diferido fica à critério de cada UF. // ID -> N08 - ICMS cobrado anteriormente por substituição // ID -> N09 - Com redução de base de cálculo e cobrança do ICMS por substituição tributária // ID -> N10 - ICMS pagto atribuído ao tomador ou ao terceiro previsto na legislação p/ ST // ID -> N10a - Operação interestadual para consumidor final com partilhado ICMS devido na operaçãoentre a UF de origem e a UF do destinatário ou a UF definida na legislação. (Ex. UF daconcessionária de entrega do veículos) (v2.0) // ID -> N10b - Grupo de informação do ICMS ST devido para a UF de destino,nas operações interestaduais de produtos que tiveram retenção antecipada de ICMS por ST na UF do remetente. Repasse via Substituto Tributário. (v2.0) // ID -> N11 - ICMS devido para outras UF // ID -> N12 - Outros result := EnumeradoToStr(t, ['00' , '10' , '20' , '30' , '40' , '41' , '50' , '51' , '60' , '70' , '80' , '81', '90', '10', '90', '41', '90', 'SN', '60'], [cst00, cst10, cst20, cst30, cst40, cst41, cst50, cst51, cst60, cst70, cst80, cst81, cst90, cstPart10 , cstPart90 , cstRep41, cstICMSOutraUF, cstICMSSN, cstRep60]); end; function StrToCSTICMS(out ok: boolean; const s: string): TpcnCSTIcms; begin result := StrToEnumerado(ok, s, ['00', '10', '20', '30', '40', '41', '50', '51', '60', '70', '80', '81', '90', '90', 'SN'], [cst00, cst10, cst20, cst30, cst40, cst41, cst50, cst51, cst60, cst70, cst80, cst81, cst90, cstICMSOutraUF, cstICMSSN]); end;
  7. Boa tarde! Mais um ajuste necessário após a última atualização. Unit pnfsNFSeR linha 2679, está invertido a avaliação do "if" , se gue o ajuste feito a unit anexada. function TNFSeR.LerNFSe_Infisc: Boolean; begin Result := False; Leitor.Grupo := Leitor.Arquivo; if (Pos('<NFS-e>', Leitor.Arquivo) > 0) then begin if VersaoNFSe = ve110 then Result := LerNFSe_Infisc_V11 <<-- else Result := LerNFSe_Infisc_V10; <<-- end; end; pnfsNFSeR.pas
  8. Boa tarde! Na unit "pnfsNFSeW_Infisc" tive que comentar 3 linhas que acredito estarem incorretas, pois o valor líquido da NFSe não ficou correto com retenção, estava o valor cheio. Desta maneira validou, antes acusava o valor liquido da NFSe incorreto. else begin Gerador.wGrupoNFSe('total'); Gerador.wCampoNFSe(tcDe2, '', 'vServ', 01, 15, 1, NFSe.Servico.Valores.ValorServicos, ''); Gerador.wCampoNFSe(tcDe2, '', 'vDesc', 01, 15, 1, NFSe.Servico.Valores.DescontoIncondicionado, ''); Gerador.wCampoNFSe(tcDe2, '', 'vtNF' , 01, 15, 1, NFSe.Servico.Valores.ValorServicos, ''); //--- 573 aqui if NFSe.CondicaoPagamento.Parcelas.Count > 0 then Gerador.wCampoNFSe(tcDe2, '', 'vtLiq', 01, 15, 1, NFSe.Servico.Valores.ValorLiquidoNfse, ''); //--- 575 aqui else //---576 aqui Gerador.wCampoNFSe(tcDe2, '', 'vtLiq', 01, 15, 1, NFSe.Servico.Valores.ValorServicos, ''); Gerador.wCampoNFSe(tcDe2, '', 'totalAproxTrib', 01, 15, 1, 0, ''); Em anexo a unit alterada. Marcos Softbox pnfsNFSeW_Infisc.pas
  9. Boa tarde! Eu estava com o mesmo problema se espaço a mais no segmento "P", verifiquei que eu estava passando CodigoMora='1' e mesmo assim havia um caracter a mais. Baseado nos relatos fui olhar a unit ACBrBancoBancoob e na linha 860 estava ' '; (um espaço em branco), retirei o espaço conforme o código abaixo e gerou a linha com 240. Result := Result+Carteira + // 58 a 58 carteira '0' + // 59 Forma de cadastramento no banco ' ' + // 60 Brancos ATipoBoleto + // 61 Identificação da emissão do boleto '2' + // 62 Identificação da distribuição PadRight(NumeroDocumento, 15, ' ') + // 63 a 77 - Número que identifica o título na empresa [ Alterado conforme instruções da CSO Brasília ] {27-07-09} FormatDateTime('ddmmyyyy', Vencimento) + // 78 a 85 - Data de vencimento do título IntToStrZero( round( ValorDocumento * 100), 15) + // 86 a 100 - Valor nominal do título '00000' + // 101 a 105 - Agência cobradora. // Ficando com Zeros o Itaú definirá a agência cobradora pelo CEP do sacado ' ' + // 106 - Dígito da agência cobradora PadRight(AEspecieTitulo, 2) + // 107 a 108 - Espécie do documento ATipoAceite + // 109 - Identificação de título Aceito / Não aceito FormatDateTime('ddmmyyyy', DataDocumento) + // 110 a 117 - Data da emissão do documento CodigoMora + // 118 - Codigo Mora (juros) - 1) Por dia, 2) Taxa mensal e 3) Isento ADataMoraJuros + //119 a 126 - Data a partir da qual serão cobrados juros IfThen(ValorMoraJuros > 0, IntToStrZero( round(ValorMoraJuros * 100), 15), PadLeft('', 15, '0')) + // 127 a 141 - Valor de juros de mora por dia '0' + // 142 - Zeros ADataDesconto + // 143 a 150 - Data limite para desconto IfThen(ValorDesconto > 0, IntToStrZero( round(ValorDesconto * 100), 15), PadLeft('', 15, '0')) + // 151 a 165 - Valor do desconto por dia IntToStrZero( round(ValorIOF * 100), 15) + // 166 a 180 - Valor do IOF a ser recolhido IntToStrZero( round(ValorAbatimento * 100), 15) + // 181 a 195 - Valor do abatimento PadRight(SeuNumero, 25, ' ') + // 196 a 220 - Identificação do título na empresa '1' + // 221 - Código de protesto: Protestar em XX dias corridos DiasProtesto + // 222 a 223 - Prazo para protesto (em dias corridos) '0' + // 224 - Código de Baixa space(3) + // 225 A 227 - Dias para baixa '09' + // '0000000000' + // Numero contrato da operação ''; Marcos Softbox
  10. Atualizado 2 vezes e inclusive apagando a pasta do acbr, desistalando e reinstalando os componentes e usado o arquivo .ini alterado e o problema continua. Vou fazer o procedimento todo novamente e retorno o resultado. Obrigado.
  11. Bom dia! Estou usando ISSNet e ontem após a atualização do componente também começou a dar a mensagem, usando o arquivo ISSNet.ini também atualizado. Usando libCapicom Erro ao enviar Impossível assinar. Componente configurado para não usar Certificado
  12. Bom dia! Atualizei os fontes e ocorreu erro ao compilar o pacote MDF-e, erro na linha 395 para identificador não declarado: is_qtdRat_UnidCarga := False; Marcos Mentz Softbox
  13. Testado e funcionando com o ajuste. Obrigado Marcos Mentz
  14. Unit ACBrCTeDACTEFRDM linha 658 Erro reportado nesta linha de código: NroNota := StrToInt(Copy(chave, 26, 9)); // Adicionado por Rodrigo Cardilo em 11/08/2014 Quando há mais de um documento vinculado com o CT-e o loop passa além da quantidade de documentos e gera erro na linha acima por tentar transformar a chave em branco para inteiro. Resolvido temporariamente colocando o código abaixo na linha 659: if Chave = '' then Continue;
  15. Na geração da Danfe/PDF há erro na geração do valor líquido quando o valor do desconto é acima de 999,99. Ex: '1.000,00' is not a valid floating poit value Linha 464 da unit ACBrNFeDANFEFRDM: FieldByName('Valorliquido').AsString := FormatFloatBr( Prod.vProd - StrToFloat( FieldByName('vDesc').AsString ) ,'###,###,##0.00'); Resolvido temporariamente: aux := FieldByName('vDesc').AsString; aux := StringReplace(aux, '.', '', [rfReplaceAll]); FieldByName('Valorliquido').AsString := FormatFloatBr( Prod.vProd - StrToFloat( aux{FieldByName('vDesc').AsString} ) ,'###,###,##0.00');
×
×
  • 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.