Giter VIP home page Giter VIP logo

node-mde's People

Contributors

lucashpmelo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

node-mde's Issues

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'
    }

   // ...
  }

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' │
// └──────────────────────┴─────────────────────────────┴─────────────────────────────┘

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.

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

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

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',
})

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

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',
})

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.