Giter VIP home page Giter VIP logo

node-mde's Issues

Criar Testes Unitários

Descrição

Criar teste para:

  • Converter o certificado do formato pfx para pem;
  • Assinatura do XML;
  • Serialização e Desserialização do XML;
  • Descompactação do XML;
  • ZeroPad aplicado no NSU;
  • Formatação de data e hora para os timezones brasileiros;
  • Validação de campos obrigatórios para realizar a consulta e manifestação das notas.

Exemplo de código

No response

Contato

Gostei da ideia, parabéns!
Gostaria de conversar com você para ajudar no que for útil.
Entre em contato se for possível:
[email protected]
Abraço

CONSULTA NFE SEFAZ DIFERENTE DO DF.

Descrição

Sou iniciante no mundo web e como projeto pessoal decidi fazer um sistema que consulta as notas de um cnpj num período e totaliza o gasto.
Mas eu não sei nada disso. Tudo que aprendi foi a partir desse código aqui.

Repositósio do projeto com as alterações: https://github.com/skerme/consultarSefazAmClone.git

Desde já agradeço.

ALTERAÇÕES:

DISTRIBUIÇÃO.JS
1: 'https://nfe.sefaz.am.gov.br/services2/services/NfeConsultaNFe?wsdl',

distribuicaoDFe-helper.js
method: 'GET',

INDEX.JS

//const { DistribuicaoDFe } = require('node-mde')
console.log("RESULTADO: ", funcao())
async function funcao(){

const fs = require('fs')

const distribuicao = new DistribuicaoDFe({
pfx: fs.readFileSync('./sabor.pfx'),
passphrase: 'Sabor2022',
cnpj: '48327424000191',
cUFAutor: '41',
tpAmb: '1',
})

const consulta = await distribuicao.consultaChNFe(
'13230734550453000103550010000026821098620239'
)

if (consulta.error) {
throw new Error(consulta.error)
}

console.log(consulta)
}

Captura e manifestação de CT-e?

Descrição

Olá!

Essa biblioteca é excelente! Parabéns!

Gostaria de saber se há alguma possibilidade de captura e manifestação de CT-e também. Procurei na documentação e no código, mas não encontrei nenhuma referência.

Abraços.

Substituir o Moment.js pelo Luxon

Descrição

Hoje é usado a biblioteca moment para formatar a data do evento com o fuso horário correto, mas ela acaba sendo muito grande por causa de todos os seus arquivos de dados de horas, que para a API manifestação de destinatário acaba sendo desnecessário pois só é utilizado os fusos do Brasil.

Como o luxon utiliza a API de Internacionalização (Intl) presente no Node.js ele acaba sendo bem mais leve, por essa razão acho valido fazer a troca das bibliotecas.

Exemplo de código

const moment = require("moment-timezone");
const { DateTime } = require("luxon");

const timezones = [
  "America/Noronha",
  "America/Araguaina",
  "America/Bahia",
  "America/Belem",
  "America/Fortaleza",
  "America/Maceio",
  "America/Recife",
  "America/Sao_Paulo",
  "America/Boa_Vista",
  "America/Campo_Grande",
  "America/Cuiaba",
  "America/Manaus",
  "America/Porto_Velho",
  "America/Rio_Branco",
];
const format = "YYYY-MM-DD[T]HH:mm:ssZ";
const toFormat = "yyyy-MM-dd'T'HH:mm:ssZZ";
const resultado = {};

const m = moment();
const l = DateTime.now();

timezones.forEach((t) => {
  resultado[t] = {
    Moment: m.tz(t).format(format),
    Luxon: l.setZone(t).toFormat(toFormat),
  };
});

console.table(resultado);
// ┌──────────────────────┬─────────────────────────────┬─────────────────────────────┐
// │       (index)        │           Moment            │            Luxon            │
// ├──────────────────────┼─────────────────────────────┼─────────────────────────────┤
// │   America/Noronha    │ '2022-11-29T11:42:46-02:00' │ '2022-11-29T11:42:46-02:00' │
// │  America/Araguaina   │ '2022-11-29T10:42:46-03:00' │ '2022-11-29T10:42:46-03:00' │
// │    America/Bahia     │ '2022-11-29T10:42:46-03:00' │ '2022-11-29T10:42:46-03:00' │
// │    America/Belem     │ '2022-11-29T10:42:46-03:00' │ '2022-11-29T10:42:46-03:00' │
// │  America/Fortaleza   │ '2022-11-29T10:42:46-03:00' │ '2022-11-29T10:42:46-03:00' │
// │    America/Maceio    │ '2022-11-29T10:42:46-03:00' │ '2022-11-29T10:42:46-03:00' │
// │    America/Recife    │ '2022-11-29T10:42:46-03:00' │ '2022-11-29T10:42:46-03:00' │
// │  America/Sao_Paulo   │ '2022-11-29T10:42:46-03:00' │ '2022-11-29T10:42:46-03:00' │
// │  America/Boa_Vista   │ '2022-11-29T09:42:46-04:00' │ '2022-11-29T09:42:46-04:00' │
// │ America/Campo_Grande │ '2022-11-29T09:42:46-04:00' │ '2022-11-29T09:42:46-04:00' │
// │    America/Cuiaba    │ '2022-11-29T09:42:46-04:00' │ '2022-11-29T09:42:46-04:00' │
// │    America/Manaus    │ '2022-11-29T09:42:46-04:00' │ '2022-11-29T09:42:46-04:00' │
// │ America/Porto_Velho  │ '2022-11-29T09:42:46-04:00' │ '2022-11-29T09:42:46-04:00' │
// │  America/Rio_Branco  │ '2022-11-29T08:42:46-05:00' │ '2022-11-29T08:42:46-05:00' │
// └──────────────────────┴─────────────────────────────┴─────────────────────────────┘

Dúvidas

Descrição

Olá, muito bom a lib gostei bastante. Fiquei apenas com algumas dúvidas

1 - Como sei qual é o NCU para consulta, pois quero saber as notas emitidas contra meu CNPJ, porém não tenho esse número.
2 - Quando eu passar o NCU, ele retorna todas notas do mês/dia/semana ou tudo mesmo?

Obrigado

Adicionar suporte para CPF

Descreva a melhoria
Atualmente a biblioteca só possui suporte para consulta e manifesto de pessoa jurídica, mas os Web Services permitem informar o CPF do interessado no DF-e e do autor do Evento.

Forneça um exemplo de código

const distribuicao = new DistribuicaoDFe({
  pfx: fs.readFileSync('./certificado.pfx'),
  passphrase: 'senha',
  cpf: '12345678901',
  cUFAutor: '41',
  tpAmb: '1',
})

const recepcao = new RecepcaoEvento({
  pfx: fs.readFileSync('./certificado.pfx'),
  passphrase: 'senha',
  cpf: '12345678901',
  tpAmb: '1',
})

Permitir o tipo Buffer para as propriedades cert e key

Descreva a melhoria
Essas propriedades só aceitam o tipo String, o que impede que seja passado diretamente o Buffer do arquivo igual pode ser feito na propriedade pfx.

Forneça um exemplo de código

const distribuicao = new DistribuicaoDFe({
  cert: fs.readFileSync('./cert.pem'),
  key: fs.readFileSync('./key.pem'),
  cnpj: '12345678901234',
  cUFAutor: '41',
  tpAmb: '1',
})

const recepcao = new RecepcaoEvento({
  cert: fs.readFileSync('./cert.pem'),
  key: fs.readFileSync('./key.pem'),
  cnpj: '12345678901234',
  tpAmb: '1',
})

Código desnecessário na consulta por NSU

Descrição

A ferramenta sonarcloud está acusando um bug na função de consultaNSU() por causa de uma validação que é realizada caso o NSU seja enviado como valor 0.

Analisando melhor o serviço percebi que essa validação é desnecessária já que a Sefaz inicia a contagem de NSU a partir do 1.

Exemplo de reprodução

  consultaNSU(nsu) {
    if (nsu === 0) {  // <-- Validação desnecessária
      nsu = '000000000000000'
    }

   // ...
  }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.