nfewizard-org / nfewizard-io

NFeWizard é uma biblioteca Node.js que simplifica a interação com os serviços da SEFAZ, oferecendo uma solução robusta para automação de processos relacionados à Nota Fiscal Eletrônica (NF-e).
https://nfewizard-org.github.io/
GNU General Public License v3.0
77 stars 9 forks source link

Documentação: Melhor descrição #23

Closed Tubaleviao closed 1 week ago

Tubaleviao commented 1 week ago

Olá! Primeiramente obrigado pelo desenvolvimento deste projeto!

Eu sou meio leigo no assunto, então para mim ainda não está muito claro o que cada função faz (os nomes não estão muito intuitivos e a documentação não está muito clara).

Pretendo construir um sistema onde são vendidos serviços (mão de obra) e peças utilizadas no processo. Então preciso:

Copiei o exemplo principal da documentação e adicionei alguns comentarios para saber o mínimo que preciso fazer para executar os passos acima:

import NFeWizard from 'nfewizard-io';

// Instanciar
const nfewizard = new NFeWizard();

// Inicializar: Quais destes campos são mandatórios e opcionais?
await nfewizard.NFE_LoadEnvironment({
    config: {
        dfe: {
            baixarXMLDistribuicao: true, // Isso define se o documento abaixo será baixado? é um campo obrigatório?
            pathXMLDistribuicao: "tmp/DistribuicaoDFe", // Esse é um documento que preciso ter localmente? ou será baixado?
            armazenarXMLAutorizacao: true, // Este é outro documento que será baixado? Ele será baixado quando qual função for chamada?
            pathXMLAutorizacao: "tmp/Autorizacao", // O que é este documento? Qual destes docs uso na declaração de imposto?
            armazenarXMLRetorno: true, // ?
            pathXMLRetorno: "tmp/RequestLogs", // ?
            armazenarXMLConsulta: true, // ?
            pathXMLConsulta: "tmp/RequestLogs", // ?
            armazenarXMLConsultaComTagSoap: false, // ?
            armazenarRetornoEmJSON: true, // Se eu configurar dessa forma, todos estes documentos serão baixados?
            pathRetornoEmJSON: "tmp/DistribuicaoDFe", // Quais destes documentos posso imprimir e entregar para o cliente?

            pathCertificado: "certificado.pfx", // O que é isso e onde eu consigo?
            senhaCertificado: "123456", // Isso é mandatório? 
            UF: "SP",
            CPFCNPJ: "99999999999999", // Este é o CNPJ da empresa que está vendendo, ou do cliente que está pagando?
        },
        nfe: {
            ambiente: 2,
            versaoDF: "4.00",
            idCSC: 1,
            tokenCSC: '99999999-9999-9999-9999-999999999999' // O que é este token e onde eu consigo ele?
        },
        email: { // Essa configuração é mandatória se eu não for enviar NF-e por email?
            host: 'smtp.example.com',
            port: 587,
            secure: false,
            auth: {
                user: 'seu-email@example.com',
                pass: 'sua-senha'
            },
            emailParams: {
                from: '"Seu Nome" <seu-email@example.com>',
                to: 'destinatario@example.com',
            }
        },
        lib: { // O que é isso? É mandatório? Se não, qual o valor default?
            connection: {
                timeout: 30000, // Este tempo é em segundos?
            },
        }
    }
});

// Exemplo de Utilização
const chaveNFe: DFePorChaveNFe = {
    cUFAutor: 35, // ?
    CNPJ: '99999999999999', // Este é o CNPJ da empresa que está vendendo, ou do cliente que está pagando?
    consChNFe: {
        chNFe: '00000000000000000000000000000000000000000000' // Que chave é essa e onde eu consigo ela?
    },
}

await nfewizard.NFE_DistribuicaoDFePorChave(chaveNFe); // O que esta função faz??? Ela emite a NF-e? 

Agradeço o esforço até agora! E ficaria lisonjeado se pudessem me ajudar, para conseguir usar o seu código.

Maurelima commented 1 week ago

Bom dia @Tubaleviao!

Sobre suas dúvidas, a biblioteca foi criada utilizando typescript, então todos os métodos e propriedades possuem tipagem e descrição. A tipagem do método NFE_LoadEnvironment pode ser encontrada em "src\protocols\Classes\NFeWizard\index.ts".

apagar

Sobre o método NFE_DistribuicaoDFePorChave, ele é responsável por baixar uma NF já emitida. O método responsável pela emissão é o NFE_Autorizacao.

Para a documentação completa você pode acessar esse link: NFeWizard-Docs.

Pode me chamar no Linkedin para tirar as duvidas que tiver. Só peço para que não abra novas issues para sanar duvidas, pois essa sessão do github é direcionada a bugs e problemas que possam ser encontradas no projeto.

Uma ótima semana!