Ir para conteúdo
  • Cadastre-se

maiconsi

Membros
  • Total de ítens

    13
  • Registro em

  • Última visita

Posts postados por maiconsi

  1. @lkwaszak sim eu adicionei o total do IPI devolvido no calculo do total da NF na hora de gerar a NF e também tive que modificar o código da função "ValidarRegrasdeNegocios" da unit ACBrNFeNotasFiscais.pas.
     

    Parte do código da função que foi modificado na função "ValidarRegrasdeNegocios":

            .
            .
            .
            if Prod.IndTot = itSomaTotalNFe then
            begin
              fsvTotTrib := fsvTotTrib + Imposto.vTotTrib;
              fsvBC      := fsvBC + Imposto.ICMS.vBC;
              fsvICMS    := fsvICMS + Imposto.ICMS.vICMS;
              fsvICMSDeson := fsvICMSDeson + Imposto.ICMS.vICMSDeson;
              fsvBCST    := fsvBCST + Imposto.ICMS.vBCST;
              fsvST      := fsvST + Imposto.ICMS.vICMSST;
              fsvFrete   := fsvFrete + Prod.vFrete;
              fsvSeg     := fsvSeg + Prod.vSeg;
              fsvDesc    := fsvDesc + Prod.vDesc;
              fsvII      := fsvII + Imposto.II.vII;
              fsvIPI     := fsvIPI + Imposto.IPI.vIPI;
              fsvPIS     := fsvPIS + Imposto.PIS.vPIS;
              fsvCOFINS  := fsvCOFINS + Imposto.COFINS.vCOFINS;
              fsvOutro   := fsvOutro + Prod.vOutro;
              fsvIpiDevol:= fsvIpiDevol + vIpiDevol;
              fsvServ   := fsvServ + Imposto.ISSQN.vBC; //VERIFICAR
    
              // quando for serviço o produto não soma do total de produtos, quando for nota de ajuste também irá somar
              if (Prod.NCM <> '00') or ((Prod.NCM = '00') and (NFe.Ide.finNFe = fnAjuste)) then
                fsvProd := fsvProd + Prod.vProd;
            end;
    
            if Prod.veicProd.tpOP = toFaturamentoDireto then
              FaturamentoDireto := True;
    
            if Copy(Prod.CFOP,1,1) = '3'then
              NFImportacao := True;
          end;
        end;
    
        if FaturamentoDireto then
          fsvNF := (fsvProd+fsvFrete+fsvSeg+fsvOutro+fsvII+fsvIPI+fsvServ)-(fsvDesc+fsvICMSDeson)
        else
          fsvNF := (fsvProd+fsvST+fsvFrete+fsvSeg+fsvOutro+fsvII+fsvIPI+fsvIpiDevol+fsvServ)-(fsvDesc+fsvICMSDeson);
        .
        .
        .

    Só não mostrei a criação e inicialização da variável: fsvIpiDevol. 

    • Curtir 1
  2. Bom dia,

    Tive esse mesmo problema com uma NF de devolução, retirei o vIPI e deixei apenas no "vIpiDevol" mas antes de enviar ela eu utilizo a função "ValidarRegrasdeNegocios" que estava me retornando o mesmo erro 610, mas o problema não estava mais no XML e sim na função, para resolver o problema e conseguir enviar essa NFe tive que fazer algumas alterações do ACBr, segue o que fiz, na função "ValidarRegrasdeNegocios" da unit ACBrNFeNotasFicais.pas
    Adicionei uma nova variável fsvIpiDevol do tipo currency e acumulei o valor dela para cada item, no calculo do total da variável fsvNF adicionei fsvIpiDevol na soma.

    Tudo isso conforme a regra de validação da própria NFe.1368380882_Semttulo.thumb.png.926e2f34a848116bd1a50cefe322b0d0.png

    Depois de feito isso a NFe foi validada e transmitida corretamente.

    • Curtir 1
  3. Boa tarde,

     

    A implementação esta pronta e o Banco do Brasil acabou de me avisar que esta tudo certo com o arquivo que enviei. Validado!!

     

    Segue em anexo as Unit's que tive que modificar para funcionar, pouca coisa.

     

    Criado a propriedade "TipoDocumento". ACBrBoleto.

     

    Alterado a Função: GerarRegistroTransacao240 do ACBrBancoBrasil.

     

    Alterado a Função: GerarRegistroTransacao400 do ACBrBancoBRB : Pois utilizava uma variável com o mesmo nome da criada para o "TipoDocumento" renomeei para EspecieDoc.

     

    Att,

    Maicon da Silva Evangelista

    ACBrBoleto.rar

  4. Bom tarde a todos da comunidade!

    Estou homologando um boleto no Banco do Brasil, CNAB240, utilizando a Carteira 11, Carteira Descontada e estou tendo problemas com o Tipo de Documento pois de acordo com o Manual fornecido pelo banco que esta em anexo na pagina 55, campo 60 pede para informar, '1' = Tradicional ou '2' = Escritural.

     

    A função implementada esta mandando o código da carteira passado pela variável "ACaracTitulo", na minha opinião deveria existir uma propriedade para informar esse valor.

     

    De acordo com uma pesquisa no fórum verifiquei que neste que no manual anterior fornecido pelo Banco do Brasil esse campo não era tratado mas agora de acordo com o novo manual(em anexo) ele é necessário.

     

    Gostaria de saber se tem alguma solução sem alterar o código do componente ou terei que implementar uma nova propriedade para resolver esse problema.

     

    Att,

    Maicon da Silva Evangelista

    CNAB240 - versão 8 7.pdf

  5. Boa tarde realizei a implementação do método LerRetorno240 para o ACBrBancoob.

     

    Segue em anexo a Unit com a implementação. 

     

    Obs.: Fiz alguma alterações na função CodMotivoRejeicaoToDescricao, CodOcorrenciaToTipo e TipoOCorrenciaToCod,  pois elas não tinham muitos Motivos, utilizei a tabela da FEBRABAN(conforme manual banco) para gerar os retornos.

    ACBrBancoob.pas

  6. Boa tarde Precisei fazer alguns ajustes no Método GerarRegistroTransacao240, na geração do "SEGMENTO P".

    Conforme manual o campo "Nosso Número:

    - Se emissão a cargo do Sicoob (vide planilha ""Capa"" deste arquivo):      
    NumTitulo - 10 posições (1 a 10) = Zeros      
    Parcela - 02 posições (11 a 12) - ""01"" se parcela única      
    Modalidade - 02 posições (13 a 14) - vide planilha ""Capa"" deste arquivo      
      Tipo Formulário - 01 posição  (15 a 15):          
           ""1"" -auto-copiativo          
           ""3""-auto-envelopável          
           ""4""-A4 sem envelopamento          
           ""6""-A4 sem envelopamento 3 vias     
       Em branco - 05 posições (16 a 20)
    - Se emissão a cargo do Cedente (vide planilha ""Capa"" deste arquivo):
         NumTitulo - 10 posições (1 a 10): Vide planilha ""02.Especificações do Boleto"" deste arquivo item 3.13
         Parcela - 02 posições (11 a 12) - ""01"" se parcela única
         Modalidade - 02 posições (13 a 14) - vide planilha ""Capa"" deste arquivo
         Tipo Formulário - 01 posição  (15 a 15):
             ""1"" -auto-copiativo          
             ""3""-auto-envelopável
             ""4""-A4 sem envelopamento
             ""6""-A4 sem envelopamento 3 vias
         Em branco - 05 posições (16 a 20)"
     
    Por conta disso precisei fazer um ajuste na função segue o código a baixo com o que foi alterado: Linha: 604
    if (ACBrBoleto.Cedente.ResponEmissao = tbCliEmite) then
    begin
       Result := Result+padR(NossoNum, 10, '0')+ 
                 padR(IntToStr(ACBrTitulo.Parcela), 02, '0')+ //--Alterado
                 padR(ACBrBoleto.Cedente.Modalidade, 02, '0')+ //--Alterado
                 '4'+
                 Space(5);
    end
    else
       Result := Result+Space(20);
    

    Espero que o código seja incorporado ao projeto.

     

    Att,

    Maicon da Silva Evangelista

     

  7. Bom dia a todos do forum, gostaria de solicitar uma alteração na função "LerRetorno400" do Bancoob.

     

    Linha Nr. 460 - ACBrBancoob.pas 

     

    errada

    -> ValorDespesaCobranca := StrToFloatDef(Copy(Linha,182,13),0)/100; 

     

    correta

    -> ValorDespesaCobranca := StrToFloatDef(Copy(Linha,182,7),0)/100; 

     

    Alterar o tamanho do corte de 13 para 7, conforme layout fornecido pelo banco.

     

    Desde já agradeço a atenção,

     

    Obrigado.

     

    Att,

    Maicon da Silva Evangelista

  8. Bom dia identifiquei um problema no ACBrRFD mais precisamente no método "TACBrRFDCupom.Le", o problema ocorre quando o aplicativo é interrompido antes da finalização do cupom e ao ativar o ECF posteriormente ele irá localizar o arquivo "cupom.ini" dentro da pasta Log e quando o método tenta carregar os itens é mostrado o erro "Access violation", identifiquei que o problema era causado por que o objeto "ItemCupom" não estava sendo instanciado.

    Solução: Adicionar na linha 499 da Unit ACBrRDF.pas

    ItemCupom := TACBrRFDItemCupom.Create ;

  9. Bom dia Juliana, atualizei o acbr com essas alterações e tive problema com o campo nosso numero, antes eu passava somente a sequencia do nosso numero e o código do cedente o próprio componente se encarregava de unir os dos campos para formar o "nosso número" completo, agora com essa nova versão isso não está ocorrendo, ele esta preencho com (0)zeros a esquerda. gostaria de saber se é assim em todos os outros bancos(pois por enquanto trabalho apenas com o banco do brasil)... se for isso terei que gerar o nosso numero formatado né ?

    Obs: Se for assim mesmo não tem a necessidade e existir o método "FormataNossoNumero", estou certo ?

    De qualquer forma precisei voltar a versão antiga pois meus clientes quase me mataram....

    mas mesmo assim gostaria de saber a forma correta que tenho que trabalhar....

    muito obrigado pela atenção...

    Att.

    Maicon da Silva Evangelista

×
×
  • 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.