Ir para conteúdo
  • Cadastre-se

Adryelle

Membros
  • Total de ítens

    33
  • Registro em

  • Última visita

Posts postados por Adryelle

  1. Bom dia Italo,

    E não seria possível criar alguma propriedade, que permita atualizar o XML semelhante a AtualizarXMLCancelado, porém que pegue os dados da autorização, já que esses dados são retornados pela Sefaz mesmo depois da nota cancelada? Creio que seria algo interessante para o componente.

    Obrigada

  2. Boa tarde @Amarildo de Matos,

    Esse XMLs que mandei do momento do envio foi apenas para exemplificar como fica diferente o XML do momento que envia para o momento que consulta a nota depois que realiza o cancelamento, mesmo a Sefaz retornando os dados de autorização no grupo infProt ao utilizar o método consulta. O XML é gravado apenas na transmissão da nota.

    O que gostaria era  gerar esse xml do envio, em um período após a transmissão, utilizando o método consulta do componente, mesmo depois que a foi nota cancelada, para casos em que esse xml original foi perdido ou não foi gravado no banco no momento do envio, por alguma falha por exemplo. Nessa situação, quando utilizo o método consultar para uma nota que não foi cancelada o XML gerado fica exatamente igual ao do envio, porém quando a nota foi cancelada ele fica diferente, fica sem as informações de protocolo, igual ao anexo do post anterior.

    Obrigada

    • Curtir 2
  3. Boa tarde

    Agradeço a sugestão @Amarildo de Matos, porém que estava tentando é automatizar esse processo de baixar o XML dentro do próprio sistema.

    @Italo Jurisato Junior, até imaginei que a Sefaz estivesse retornando as informações do cancelament o no grupo infProt, porém ela envia os dados da autorização, mas o componente não salva o XML essa informação nessa condição.

    O arquivo 1 Arquivo_salvo_no_envio.xml, é o XML salvo originalmente, logo após o envio da NFe. Após isso foi feito o cancelamento normalmente. Se em um período posterior qualquer, for carregado no componente as informações originais da nota e tentar consultar a mesma, o retorno da Sefaz é o arquivo 2 retorno_sefaz_consulta.xml com a informação da autorização no grupo infProt, e as informações do evento de cancelamento, como você mesmo citou. O XML salvo após a consulta é o arquivo 3 Arquivo_salvo_consulta_sefaz.xml, sem a informação do grupo infProt.

    O que gostaria é saber se nessa situação, de consultar nota cancelada, se existe alguma possibilidade de salvar o XML  3 Arquivo_salvo_consulta_sefaz.xml com essa informação do grupo infProt e nfeProc, contendo a informação da autorização que é retornada pela Sefaz, para o XML ficar igual ao do envio original.

    Obrigada pela atenção.

     

  4. Boa tarde,

    Gostaria de saber se existe alguma forma de gerar o XML original de uma NFe que já foi cancelada, através do ACBR, para casos em que o emissor perdeu o XML original ou algo do tipo, por exemplo. No nosso sistema, caso seja necessário gerar um XML de uma nota já transmitida anteriormente, geramos o XML no ACBR com os dados originais da venda e utilizamos o método consultar, e então é salvo o XML com os dados da autorização corretamente(tag infProt: protocolo, digest, hora, etc). Porém para nota que já foi cancelada, isso não ocorre, o XML que é salvo não consta os dados da autorização, ele fica apenas assinado. Tentei até utilizar a propriedade AtualizarXMLCancelado = True, porém nesse caso foram salvas os dados do cancelamento, ao invés de autorização. Gostaria saber se existe alguma forma de ao realizar o método consultar, em nota cancelada, o XML salvo ficasse com os dados da autorização, ou se existe alguma outro método para isso.

    Obrigada.

     

  5. 1 hora atrás, Daniel Simoes disse:

    Não me parece ser uma boa ideia... esse tipo de ação geralmente é definido pela cardinalidade da propriedade no Schema

    Boa noite Daniel,

    Entendo, qual seria a sugestão para gerar o grupo ICMS60 e sua tag pST então? Porque da forma como está hoje não é possível gerar a tag, pois o ela está condicionada ao preenchimento dos campos vBCSTRET e/ou vICMSSTRET, porém ao preencher esses campos o componente está "convertendo" o cst60 para cstRep60, deixando de gerar o grupo ICMS60 e passando a gerar apenas o ICMSST, mesmo em operação dentro do mesmo estado.

    Conforme documentação no schema e na nota técnica, o grupo ICMSST deve ser gerado quando a operação for interestadual:

    image.png.7958b05e0a82b1029faf59be89652bdd.png

    Porém se colocar para verificar também se a operação é interestadual na unit pcnNFeW, onde já está sendo verificado se os campos  vBCSTRET e vICMSSTRET estão preenchidos para transformar o cst60 em cstRep60, não irá resolver a situação de: "caso o emitente necessite emitir uma contra nota dele para ele mesmo,  com o objetivo de anular um lançamento" citado pelo Agnaldo Prates, no post anterior:

     

    Por isso sugeri as mudanças nas units postadas, a fim de definir na aplicação essa segunda situação citada pelo Agnaldo, onde a nota de anulação deveria ser igual a nota de origem ou seja se tiver sido gerado o grupo ICMSST deveria ser gerado o mesmo grupo na nota de anulação, e nesse caso a verificação se a nota é interestadual seria inválida. Além disso, imagino que apenas pela aplicação seria viável fazer a verificação se foi gerado o grupo ICMSST na nota de origem para então gerar esse grupo na nota de anulação.

    Obrigada pela atenção, aguardo retorno.

     

  6. Boa tarde,

    Conforme tópico abaixo, fiz uma alteração das units em anexo, para atender a situação de preencher a tag pST no CST 60. Da forma como está atualmente sempre está gerando o grupo de repasse(ICMSST) quando utilizado o CST 60 e os campos vBCSTRET e/ou vICMSSTRET preenchidos, não gera o grupo ICMS60 e consequentemente a tag pST. O que fiz, foi criar uma propriedade para definir se será gerado esse grupo de repasse, colocando como padrão True que é o que o componente está fazendo, sempre criando grupo de repasse para CST 60 quando os campos vBCSTRet ou vICMSSTRet ou vBCSTDest ou vICMSSTDest forem diferentes de zero. Como é algo que tem haver com a "finalidade" da nota, criei uma propriedade que deixa a cargo do desenvolvedor se será gerado ou não o grupo de repasse,  tratando na aplicação tal situação, já que esse grupo deve ser gerado quando a nota for interestadual ou quando for emitida uma contra nota dele para ele mesmo,  com o objetivo de anular um lançamento. Então com essa mudança, caso for situação diferente dessas basta setar a propriedade abaixo, para gerar o grupo ICMS60  normalmente quando preenchidos os campos vBCSTRET e/ou vICMSSTRET:

      ACBrNFe.Configuracoes.Geral.GerarGrupoRepasse := False;

    Aguardo análise. Obrigada.

     

     

    ACBrNFeNotasFiscais.pas

    pcnGerador.pas

    pcnNFeW.pas

    ACBrDFeConfiguracoes.pas

  7.  

    22 horas atrás, Agnaldo Prates disse:

    Em princípio parece pertinente. No entanto, caso o emitente necessite emitir uma contra nota dele para ele mesmo,  com o objetivo de anular um lançamento, o cálculo não será feito, portanto me parece razoável o estudo de outra alternativa.

    Realmente, nessa situação específica apenas a condição verificando o estado do emitente e destinatário não iria resolver. Penso que seria interessante criar uma propriedade booleana ou algo similar, onde fosse possível definir na aplicação qual o grupo deveria ser gerado, e colocar essa propriedade na verificação, como no exemplo abaixo:

    if (GerarGrupoRepasse) and
       (nfe.infNFe.Versao >= 4) and
       (nfe.Ide.modelo = 55) and
       (nfe.Det[i].Imposto.ICMS.CST = cst60) and       //Ajuste para funcionar no ACBrNFeMonitor
       ((nfe.Det[i].Imposto.ICMS.vBCSTRet <> 0) or     //Qdo passar CST 60 e algum campo de repasse de ICMS ST
        (nfe.Det[i].Imposto.ICMS.vICMSSTRet <> 0) or   //estiver preenchido será trocado o cst para cstRep60
        (nfe.Det[i].Imposto.ICMS.vBCSTDest <> 0) or
        (nfe.Det[i].Imposto.ICMS.vICMSSTDest <> 0)) then
       nfe.Det[i].Imposto.ICMS.CST := cstRep60;

    Assim na aplicação poderíamos verificar se a operação é interestadual ou se a nota é com objetivo de anular o lançamento, ou qualquer outra situação que fosse necessário gerar esse grupo, e nessas situações setaria a opção como True para poder gerar o grupo de repasse. 

    Acha que seria válida essa opção Agnaldo?

  8. Boa tarde,

    Na nota técnica que estabelece o layout 4.0 da NFe, foi criada uma nova tag para informarmos alíquota suportada pelo consumidor Final, pST, sendo que no Acbr esse valor está sendo preenchido caso o campo vBCSTRet  ou vICMSSTRET for maior que zero para cst60, conforme trecho abaixo, na unit pcnNFeW:

    if (nfe.Det[i].Imposto.ICMS.vBCSTRET > 0) or (nfe.Det[i].Imposto.ICMS.vICMSSTRET > 0) then
      begin
        Gerador.wCampo(tcDe2, 'N26', 'vBCSTRet  ', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vBCSTRET, DSC_VBCSTRET);
    
        if (NFe.infNFe.Versao >= 4) then
          Gerador.wCampo(IIf(Usar_tcDe4,tcDe4,tcDe2), 'N26.1', 'pST', 01, IIf(Usar_tcDe4,07,05), 0, nfe.Det[i].Imposto.ICMS.pST, DSC_PST);
    
        Gerador.wCampo(tcDe2, 'N27', 'vICMSSTRet', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vICMSSTRET, DSC_VICMSSTRET);
    end;

     

    Porém antes da geração dessas tags existe uma verificação que está sendo feita que altera o cst de cst60 para cstRep60, para que seja gerado o grupo de repasse(ICMSST), e logo não gera o grupo ICMS60 e a nova tag pST, conforme o código abaixo:

    if (nfe.infNFe.Versao >= 4) and
       (nfe.Ide.modelo = 55) and
       (nfe.Det[i].Imposto.ICMS.CST = cst60) and       //Ajuste para funcionar no ACBrNFeMonitor
       ((nfe.Det[i].Imposto.ICMS.vBCSTRet <> 0) or     //Qdo passar CST 60 e algum campo de repasse de ICMS ST
        (nfe.Det[i].Imposto.ICMS.vICMSSTRet <> 0) or   //estiver preenchido será trocado o cst para cstRep60
        (nfe.Det[i].Imposto.ICMS.vBCSTDest <> 0) or
        (nfe.Det[i].Imposto.ICMS.vICMSSTDest <> 0)) then
       nfe.Det[i].Imposto.ICMS.CST := cstRep60;

     

    Porém analisando a documentação da nota, creio que esse grupo de repasse teria que ser gerado apenas para operações interestaduais, já que na nota técnica fala que ele deve ser gerado nessa situação:

    image.thumb.png.eb5536cd6a2468c86d40a453ee359393.png

     

    Diante disso imagino que na verificação para mudar o cst de cst60 para cstRep60, deveria conter a condição abaixo, para ser gerado o grupo ICMSST apenas nas operações interestaduais, e grupo ICMS60 e a nova tag pST serem gerados corretamente:

    (nfe.Dest.EnderDest.UF <> nfe.Emit.EnderEmit.UF)

     

     

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