Ir para conteúdo
  • Cadastre-se

paulocsc

Membros
  • Total de ítens

    75
  • Registro em

  • Última visita

Posts postados por paulocsc

  1. 18 horas atrás, paulocsc disse:

    Boa tarde, pessoa estou tentando cancelar um NF-e pelo XML (XML salvo no banco carrego ele pra dentro do componente(ja fiz até teste de impressão pra ver se esta sendo carregando mesmo)) e apresenta Rejeição -> Rejeição: Chave de Acesso inexistente

    alguém sabe o que pode ser, já se passaram quase 2 horas, ja consultei a NF-e tanto Estadual quanto Nacional e ela lá se encontra!

    Pessoal consegui encontrar o erro, o problema era o ambiente, que estava errado, ajustei o ambiente de 2-homologação para 1-produção e resolveu meu problema!

  2. Boa tarde, pessoa estou tentando cancelar um NF-e pelo XML (XML salvo no banco carrego ele pra dentro do componente(ja fiz até teste de impressão pra ver se esta sendo carregando mesmo)) e apresenta Rejeição -> Rejeição: Chave de Acesso inexistente

    alguém sabe o que pode ser, já se passaram quase 2 horas, ja consultei a NF-e tanto Estadual quanto Nacional e ela lá se encontra!

  3. Olá novamente acabei que fui ajustar alguma coisa e tinha deixado essa situação de CSOSN e CST um pouco de lado, mas agora vou voltar a deixar tudo certinho encontrei uma parte de codigo na internet onde ele me tinha como exemplo assim:

     

    case nfe.Det[i].Imposto.ICMS.CST of
      cst00:
      começar
      NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS
      NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS
      NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto
      NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS
      fim ;
      cst10:
      começar
      NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS
      NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS
      NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto
      NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS
      NFe.Det[i].Imposto.ICMS.modBCST := dbisMargemValorAgregado; // N18 - Modalidade de determinação da BC do ICMS ST
      NFe.Det[i].Imposto.ICMS.pMVAST := 0; // N19 - Percentual da margem de valor Adicionado do ICMS ST
      NFe.Det[i].Imposto.ICMS.pRedBCST := 0; // N20 - Percentual da Redução de BC do ICMS ST
      NFe.Det[i].Imposto.ICMS.vBCST := 0; // N21 - Valor da BC do ICMS ST
      NFe.Det[i].Imposto.ICMS.pICMSST := 0; // N22 - Alíquota do imposto do ICMS ST
      NFe.Det[i].Imposto.ICMS.vICMSST := 0; // N23 - Valor do ICMS ST
      fim ;
      cst20:
      começar
      NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS
      NFe.Det[i].Imposto.ICMS.pRedBC := 0; // N14 - Percentual da Redução de BC do ICMS
      NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS
      NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto
      NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS
     

    fim ;

     

    minha unida e exclusiva duvida, esse é a melhor forma de passar os dados ?

  4. Em 18/06/2021 at 15:39, RicardoVoigt disse:

    As estruturas e propriedades no componente foram criadas com base em toda a documentação, e para atender a tal...

    O normal seria sua aplicação tratar cada forma de tributação quanto ao preenchimento dos campos nas suas tabelas...

    Seguindo o exemplo  q vc deu, se vc informar CSOSN = "102" e também informar valores maiores que zero em "ICMS.pCredSN" ou "ICMS.vCredICMSSN", esses valores serão desconsiderados na hora de gerar o XML...

    
    with Imposto do
    begin
    // ...
      ICMS.CSOSN := StrToCSOSNIcms(ok, QRYNOTA_ITEMCSOSN.AsString);
    
      // CSOSN = 101,201 e 900
      ICMS.pCredSN     := QRYNOTA_ITEMPERC_CREDITO_ICMSSN.AsCurrency;
      ICMS.vCredICMSSN := QRYNOTA_ITEMVALOR_CREDITO_ICMSSN.AsCurrency;
    // ...
    end;

    Espero ter ajudado...

    Att

    Ricardo

    No caso eu posso afirma que se eu passar um uma String vazia aquela tag não será preenchida ? porque eu poderia no meu método de envio de NF-e/NFC-e poderia colocar todas as tags ICMS - IPI - PIS/COFINS e tratar em uma procedure cada CST e suas informações o que for pra preencher ele passa o valor e o que não for necessário ser preenchido ele passa uma String vazia ! ou eu tenho que dentro da minha procedure de envio de NF-e/NFC-e eu eu não posso passar nem uma tag fazia ?

     

    pra resumir todo é uma tag nos grupos de ICMS, IPI, PIS/COFINS se passado String vazia o ACBR vai desconsiderar ?

  5. 39 minutos atrás, Juliana Tamizou disse:

    Bom dia.

    Vale lembrar que a comunidade atual conforme sua própria disponibilidade e não é interessante fazer postagens que não forneçam novas informações... em caso de urgência na resposta, recomendo considerar o SAC ACBr.

    Att.

    Você tem rapaz desculpa!

    14 horas atrás, RicardoVoigt disse:

    Voce usa o AcbrMonitorPlus ou o componente AcbrNfe dentro do teu projeto ? 

    Componente 

    1 hora atrás, Amarildo de Matos disse:

    bom dia..

    No meu caso , aqui o que nao tem deixamos zerado. conforme abaixo

    mandei um exemplo de um ini gerado.

     

    exemplo_nfe.ini 4 kB · 1 download

    No Caso vc usa Monitor né isso ? estou falando de componente ! mas mesmo assim muito obrigado em tentar me ajudar ! 

  6. Olá Pessoal uma duvida, tenho lido o Manual de Orientação do Contribuinte Anexo I – Leiaute e Regras de Validação da NF-e e da NFC-e e lá se encontra as orientações dos CST, CSOSN

     

    minha duvida é devo enviar todas a Tags assim?

    CSOSN 101 Tenho que enviar as Tags:

    orig, CSOSN, pCredSN, vCredICMSSN

     

    Já no CSOSN 102

    Tenho que enviar as tags:
    orig, CSOSN

     

    no caso eu posso por exemplo no CST 102 enviar as Tags:

    Orig, CSOSN e as pCredSN, vCredICMSSN enviar zeradas ou String Fazia ?

     

    ou tenho que fazer as exceções de cada CST, CSOSN ?

     

    e for ter que fazer Exceções qual seria uma melhora pratica eu fazer um IF, ou case dentro do meu método enviar NF-e ?

  7. 29 minutos atrás, Juliomar Marchetti disse:

    Tu está iniciando em que fase?

    Se tu vai fazer para gerar faturamento pois não tem nada e está começando agora é uma coisa e dai pode sim seguir

    mas lembre-se que invetável tu vai ter que comprar a licença seja professional ou outra pois se tu cobra um valor na média do mercado esse valor vai ser em pouco tempo coberto

    agora se tu já tem empresa , usa versões caribenhas e gosta do delphi é comprar a licença pra não se incomodar

    agora também existe o Lazarus pra trabalhar

    sim, estamos iniciando agora, a intenção é sim comprar a licença o mais breve possível assim que formos tendo lucros, o que é versões caribenhas kkkk Lazarus nunca cheguei a utilizar é free já comecei a desenvolver no delphi migrar agora não é muita opção !  

  8. 44 minutos atrás, BigWings disse:

    Está dizendo a empresa.

    Sugiro muito cuidado no uso desse produto... eles vão ficar no seu pé e são bem agressivos com violação de licenças.

    No caso o que você sugere pra empresas que está iniciando o trabalho com desenvolvimento ?

  9. Pessoal uma duvida, questão do Delphi para comercialização, tem alguma questão que posso utilizar a licença Delphi Community para comercialização ? quando é que não é mais permitido se for o caso, já procurei na internet mas tem muita informações divergentes ! espero que alguém possa me ajudar ! 

  10. Em 18/03/2021 at 15:44, BigWings disse:

    Como você está obtendo o valor?

    Essa propriedade é do tipo TpcnCstICMS, que é um enumerado declarado em pcnConversao:

    
      TpcnCSTIcms = (cst00, cst10, cst20, cst30, cst40, cst41, cst45, cst50, cst51,
                     cst60, cst70, cst80, cst81, cst90, cstPart10, cstPart90,
                     cstRep41, cstVazio, cstICMSOutraUF, cstICMSSN, cstRep60); //80 e 81 apenas para CTe

    Veja que o índice 1 corresponde ao CST 10.

    Você pode usar a função CSTICMSToStr, também da pcnConversao pra obter o código '10'.

    Funcionou perfeitamente, vlw mesmo ! 

  11. Olá bom dia, estou carregando o XML dentro do ACBR pra fazer a importação, só estou com uma duvida n CST, essa é minha linha frmListaMDE.ACBrMDe.NotasFiscais.Items[0].NFe.Det.Items[iTemNFe].Imposto.ICMS.CST e o retorno que receber é 1 mas que na verdade era pra mim retornar 10 creio que sejá alguma situação que o ACBR Esta convertendo, mas como faço pra ajusta já pesquisei na internet e já pesquisei no pcnConversao e nada =/

  12. Olá a todos uma duvida é possível carregar o XML da NF-e direto do banco para o Componente ACBRNF-e pra pode fazer a impressão ?

     

    exemplo o *.xml esta salvo(BLOB) no MySQL, sei que tem como eu baixar do banco em uma pasta especifica e depois carregar assim   ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName); mas queria ver se tem a possibilidade de carregar direto do banco assim não se fazendo necessário tá salvando o XML

  13. 23 horas atrás, Juliomar Marchetti disse:

    ele vai te trazer de 50 em 50. mas não quer dizer que vai trazer em ordem

    sim é o nsu enão a nota

    acho que a dúvida já respondi em outro lugar, não não tem manual, mas existe todos os fontes dos componentes que podem e devem ser abertos e lidos e o exemplos de uso

    agora se tu quer saber regra é ler as NT e manuais do sefaz

    Sei que não é caso do forum esta revisando código de ninguém mas a baixo está meu codigo como questão de Manifestação tem que se ter cuidado para não bloqueio e os teste dependem de muita consultas gostaria que verificar por cima se pelo menos minha logica esta correta:

     

    procedure TfrmListaMDE.btnPesquisarNFeManiClick(Sender: TObject);
    var
      cUFAutor, CNPJ, ultNSU, maxNSU1, ultNSU1: string;
      i: integer;
    begin

      cUFAutor  := UFtoCUF(UFEmit);
      CNPJ      := CNPJEmit;
      ultNSU    := ultimoNSUBanco;

      ACBrMDe.DistribuicaoDFePorUltNSU(StrToInt(cUFAutor), CNPJ, ultNSU); //Primeira Consulta


      if ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then
      begin
        if ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU >= ACBRMDe.WebServices.DistribuicaoDFe.retDistDFeInt.maxNSU then
        begin
          //Salvar Ultima NSU ****************
           DMMySQL.queryConEmpresa.Close;
           DMMySQL.queryConEmpresa.SQL.Clear;
           DMMySQL.queryConEmpresa.SQL.Add('update empresa set nsu = :nsu');
           DMMySQL.queryConEmpresa.SQL.Add('where id = :id');
           DMMySQL.queryConEmpresa.ParamByName('id').Value := idEmpresa;
           DMMySQL.queryConEmpresa.ParamByName('nsu').Value := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU;

          end else
          begin
              if ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU < ACBRMDe.WebServices.DistribuicaoDFe.retDistDFeInt.maxNSU then
              ultNSU := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU;        
                  ACBrMDe.DistribuicaoDFePorUltNSU(StrToInt(cUFAutor), CNPJ, ultNSU); //refaz a consulta 
          end;
      end else
          if ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 then
        begin
              for i := 0 to ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count -1 do
        begin
                 if ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].schema = schresNFe then //NFe emitida e não manifestadas
                     begin 

            //Salva NF-e não manifestada
                    DMMySQL.qManifesto.Close;
                    DMMySQL.qManifesto.SQL.Clear;
                    DMMySQL.qManifesto.SQL.Add('insert into manifestacao (id_empresa, chave, cnpj, nome, data, valor, status)');
                    DMMySQL.qManifesto.SQL.Add('values (:id_empresa, :chave, :cnpj, :nome, :data, :valor, :status)');

                    DMMySQL.qManifesto.ParamByName('id_empresa').Value    := idEmpresa;
                    DMMySQL.qManifesto.ParamByName('chave').Value         := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.chDFe;
                    DMMySQL.qManifesto.ParamByName('cnpj').Value          := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.CNPJCPF;;
                    DMMySQL.qManifesto.ParamByName('nome').Value          := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.xNome;
                    DMMySQL.qManifesto.ParamByName('data').Value          := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.dhEmi;
                    DMMySQL.qManifesto.ParamByName('valor').Value         := FloatToStr(ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.vNF);
                    DMMySQL.qManifesto.ParamByName('status').Value        := '0';
                    DMMySQL.qManifesto.ExecSQL;

                     end else
                        if ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].schema = schprocNFe then
                     begin
                //Salva NF-e Manistada já com XML **irei alterar essa questão aqui para salvar ou editar para não tenha duplicidade em NF-e
                          DMMySQL.qManifesto.Close;
                          DMMySQL.qManifesto.SQL.Clear;
                          DMMySQL.qManifesto.SQL.Add('insert into manifestacao (id_empresa, chave, cnpj, nome, data, valor, status, xml)');
                          DMMySQL.qManifesto.SQL.Add('values (:id_empresa, :chave, :cnpj, :nome, :data, :valor, :status, :xml)');

                          DMMySQL.qManifesto.ParamByName('id_empresa').Value    := idEmpresa;
                          DMMySQL.qManifesto.ParamByName('chave').Value         := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.chDFe;
                          DMMySQL.qManifesto.ParamByName('cnpj').Value          := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.CNPJCPF;;
                          DMMySQL.qManifesto.ParamByName('nome').Value          := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.xNome;
                          DMMySQL.qManifesto.ParamByName('data').Value          := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.dhEmi;
                          DMMySQL.qManifesto.ParamByName('valor').Value         := FloatToStr(ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].resDFe.vNF);
                          DMMySQL.qManifesto.ParamByName('status').Value        := '4';
                          DMMySQL.qManifesto.ParamByName('xml').Value           := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i].xml;

                          DMMySQL.qManifesto.ExecSQL;

                 

                     end;
        end;

        begin

        end;
      end;
        //Caso retorno diferente de cStat = 138/137     
           DMMySQL.queryConEmpresa.Close;
           DMMySQL.queryConEmpresa.SQL.Clear;
           DMMySQL.queryConEmpresa.SQL.Add('update empresa set nsu = :nsu');
           DMMySQL.queryConEmpresa.SQL.Add('where id = :id');
           DMMySQL.queryConEmpresa.ParamByName('id').Value := idEmpresa;
           DMMySQL.queryConEmpresa.ParamByName('nsu').Value := ACBrMDe.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU;

    end;

     

  14. 22 horas atrás, Juliomar Marchetti disse:

    ele vai te trazer de 50 em 50. mas não quer dizer que vai trazer em ordem

    sim é o nsu enão a nota

    acho que a dúvida já respondi em outro lugar, não não tem manual, mas existe todos os fontes dos componentes que podem e devem ser abertos e lidos e o exemplos de uso

    agora se tu quer saber regra é ler as NT e manuais do sefaz

    um duvida tem 2 maneira de consulta DistribuicaoDFePorUltNSU e DistribuicaoDFePorNSU (quando usar uma ou outra)

     

    a questão agora não é nem entender como o componente funciona a questão é regras:

    pois temos a seguintes situações:

    1º Empresa que vai fazer a primeira consulta

    2º Empresa que já foi feito por outro Sistemas

    3º Empresa que já fez no mesmo sistema

     

     

    então pra cada caso desse existe uma regra, que acho que pode ser assim, 

    para caso 1º -> Consulta faz as comparações do ultimo NSU e maxNSU, até que ultNSU >= maxNsu e salvar ultNSU (NSU começando com 0)

    para caso 2º -> repete o caso 1º pra que se possa carregar as NF-e e salvar a ultima NSU (NSU começando com 0)

    para caso 3º -> Consulta é feito a partir da ultNSU depois salva a ultNSU

     

    se puder esclarecer melhor agradeço se precisar do código posso postar sem problema ! 

  15. 2 horas atrás, Juliomar Marchetti disse:

    Não tu manda o nsu que ele te retorno e não soma nada

    agora se tu mandar duas vezes ou mais o mesmo nsu ele vai te bloquear por uma hora

    entendi, continuo lendo alguma situações na internet pra entender melhor, minha duvida a respeito do ultima NSU e NSU Máxima é que a ultima é 50 a máxima é 500 então eu sempre tenho que esta fazendo um comparação é isso ? e a cada consulta vai ser realizada consulta de 50 em 50 exemplo: primeira consulta 0 a 50, segunda consulta 51 a 100, terceira 100 a 150... 

     

    outra duvida é que eu salvo sempre a ultima NSU e não a máxima né isso ? 

     

    existe algum manual do componentes ? tipo a onde me informa o que cada componente pode fazer, o que eles retorna e como retorna essa informação ? 

  16. 3 horas atrás, Juliomar Marchetti disse:

    na verdade não existe pra entrada ou saída.

    existe manifestar e baixar xml emitidos contra o cnpj seu.

    e sim tem está no exemplo do svn do ACBrNFe

    isso andei lendo e vendo alguns exemplos, até então ficou claro como fazer e o que se precisa fazer, minha única duvida até agora foi em questão do NSU, como eu sei qual é o ultimo NSU quando se trata de um cliente que já fez uma consulta pra mim passar o NSU correto !

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

The popup will be closed in 10 segundos...