Git Product home page Git Product logo

woo-nfe's People

Contributors

andrekutianski avatar gblmarquez avatar joaovictorlnacional avatar linsmeyer avatar luiznfeio avatar renatonascalves avatar sidneydemoraes avatar souzadavi avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

woo-nfe's Issues

Permitir emissão de notas fiscais sem endereço

No futuro próximo, o plugin precisará emitir nota sem necessariamente ter os endereços corretos. Esse feature será opcional, e irá precisar de uma opção nas configurações do NFe.io.

Erro no CURL request

LOG DE ERRO:

Warning: curl_close(): supplied resource is not a valid cURL handle resource in /home/reciclacnh/public_html/reciclacnh/wp-content/plugins/woo-nfe/li/client-php/lib/NFe/APIRequest.php on line 158

Warning: array_merge(): Expected parameter 2 to be an array, bool given in /home/reciclacnh/public_html/reciclacnh/wp-content/plugins/woo-nfe/includes/admin/class-settings.php on line 56

Notificação de Falta da Chave API Inexistente

Quando o plugin está ativo, porém sem a chave de API, antes aparecia uma mensagem de erro pedindo ao usuário adicionar essa informação. Já que sem ela, ele não iria consegui conectar com a API do NFe.io.

Esse erro não está aparecendo no momento, mesmo o campo estando vázio.

aafhqxilttclvltcduslka

Aplicar padrão WPCS (WordPress Coding Standards)

Observei que alguém está colocando um padrão de código diferente do WPCS, que é o que o WordPress usa.

A ativação do #19 vai ajudar pois posso colocar o PHPCS nele e assim, isso irá forçar outros devs a seguirem o padrão utilizado pelo WordPress.

Remover pastas desnecessárias presentes no plugin

Seu plug-in inclui pastas e arquivos que não são necessários para a execução do plug-in. Alguns exemplos são:

  • pastas de fornecedores (bower, node, grunt, etc)
  • documentação
  • demonstrações
  • testes de unidade

A biblioteca inteira não será usada por seus usuários, e ter todos esses arquivos incluídos é apenas um peso extra para um plugin.

Duplicação da Emissão de Nota Fiscal

Estamos com um problema intermitente, em algum cenário de racing condition no momento do gatilho da emissão da nota fiscal, seja via mudança do status ou mesmo usando a ação dentro do pedido para emissão da nota fiscal, duas ou mais solicitações são enviadas para a API da NFE.io.

Na analise que fizemos notamos que em todos os casos, sempre existe a Anotação no Pedido que indica que o processo de emissão foi solicitado mais de uma vez.

Acredito que esse problema se trata dessa linha

$invoice = NFe_ServiceInvoice::create( $company_id, $datainvoice );

E que para resolvermos devemos fazer uma alteração na ordem em que o código é executado, veja na linha abaixo, que só é alterado os dados do pedido depois que a chamada para API é executada

$meta = update_post_meta( $order_id, 'nfe_issued', [

Minha sugestão para resolver seria, no momento do gatilho para emissão da nota fiscal, alterarmos algum campo no pedido indicando que ele está em processamento, depois que essa alteração no pedido tenha sucesso então podemos realizar a requisição para a API da NFE.io. Sendo assim seria necessário ainda incluir uma condição que faça a verificação se o pedido já está em processamento, para evitar esse cenário.

Atualizar Classe NFe_Woo

Esse issue está relacionado a esse problema aqui: nfe/client-php#11

Depois que for resolvido lá, é necessário atualizar a class NFe_Woo no plugin WooCommerce NFe com a nova solução, seja ela namespace ou a nova classe, caso contrário, as emissões não serão realizadas.

Testar Plugin para compatibilidade com WordPress 6

O valor testado em seu plugin não está definido para a versão atual do WordPress. Isso significa que seu plug-in não aparecerá nas pesquisas, pois exigimos que os plug-ins sejam compatíveis e documentados conforme testados até a versão mais recente do WordPress.

Atualize seu readme para mostrar que ele foi testado até a versão mais recente do WordPress. Você não pode configurá-lo além da versão atual, pois isso fará com que seu plug-in não esteja disponível nas pesquisas.

Exemplo(s) do seu plugin:

woo-nfe/README.txt:5:Testado até: 5.9.3

Cancelar nota fiscal no NFe.io quando o pedido é cancelado na loja

Algo que estava debatendo com um cliente hoje. Se um pedido for cancelado por qualquer motivo e a nota já tiver sido emitida, o dono da loja precisa ir no painel do NFe.io e cancelar a nota manualmente.

Sugiro integrar isso ao plugin para que automaticamente quando ele cancelar uma pedido concluído no WordPress/WooCommerce, atualizar também o NFe.io, cancelando a nota.

Seria interessante mostrar uma messagem para o usuário no ato do cancelamento do pedido. Ele até poderia optar por não cancelar a nota antes de cancelar o pedido.

@gblmarquez Algo a se pensar para o futuro.

Problema ao instalar plugin

Estou instalando meu plugin, tenho uma conta ativa e esse erro aparece no momento da ativação do plugin.

Fatal error: Can't use function return value in write context in /home/mogco806/public_html/metodogestalt.com.br/wp-content/plugins/woo-nfe/includes/admin/class-settings.php on line 234

Prefer composition over inheritance

Currently Nfe_ServiceInvoice extends APIResource to make requests to the API.
And APIResource extends Nfe_Object to use random utility methods.
This makes the code very hard to understand, change and maintain.

The Service Invoice is not an API caller, it should use an API caller to send requests. So it should use composition.
The first task I would start would be: Refactor APIResource to be used as composition instead of inheritance.


Some reference about composition over inheritance:
https://www.thoughtworks.com/insights/blog/composition-vs-inheritance-how-choose
https://en.wikipedia.org/wiki/Composition_over_inheritance

Inconsistent indentation

The file admin/class-wc-admin.php is indenting with tabs on line 28 and with spaces on line 30.
This cause problems to read the code in some places (like Github) and can introduce unnecessary git diffs resulting in harder code reviews.
The project should have a indentation conventing (like 2 spaces) documented in some place (like README) and follow it.

Habilitar e desabilitar emissão na prefeitura

Em conversa com um cliente que usa o plugin, algo mencionado foi a opção de emissão no modo de desenvolvimento.

Atualmente, a pessoa precisa ir para o painel do NFe.io, em determinada empresa, para ativar a emissão na prefeitura.

Existe alguma API para ativar/desativar a emissão @gblmarquez? Assim, o cliente pode ativar e emitir notas no modo que escolher. A empresa selecionada é verificada na hora de ativar/desativar.

off-on

Feature Request: impedir reemissão de nota fiscal

Enquanto __analista financeiro__,
Quero ser impedido de emitir uma nova nota fiscal caso o pedido já tenha uma emitida
Para evitar cobrança duplicada de impostos.

Conforme conversamos com o Gabriel, surgiu a hipótese de um chaveamento nas configurações do plugin permitindo ou não a reemissão. Atualmente, se realizarmos uma emissão de nota através do comando manual do plugin em um pedido que há tenha nota emitida, uma nova nota é emitida na prefeitura e, na visualização do woocommerce, continua constando os dados apenas da última nota emitida.

Isso prejudica o processo de conciliação do financeiro e torna bem difícil a auditoria pra identificar qual pedido teve nota fiscal duplicada.

Remover informações do NFe quando o plugin é desativado

Atualmente, as informações do NFe ficam salvas no banco de dados quando o plugin é desativado. O correto seria remover essas informações.

Uma mensagem deve ser apresentada para o usuário, para que ele entenda as consequências.

Remover o arquivo .pot

Esse arquivo é irrelevante no momento e só é usado se o plugin não tiver instalado nenhuma tradução após ser ativo.

Remover o suporte do Composer

Estamos utilizando o Composer caso o dono do site queria usá-lo para carregar o plugin. O problema é que isso pode trazer conflitos no caso do pacote client-php ter sido carregado em outro local.

Assim, para o WordPress, recomendo remover o suporte do Composer do plugin e atualizar o client-php como estamos atualizando agora, manualmente.

Endereço pendente

Acontece muito do plugin não conseguir emitir a nota por falta de alguma informação no endereço, inclusive aquelas que são opcionais como bairro.

Normalmente eu tenho que completar esses campos de endereço com um "-" para que a nota possa ser emitida.

Um caso recente, o plugin acusa endereço pendente mesmo de um usuário que possui o endereço completo, sendo assim não consigo emitir a nota dela.

1- Como fazer para conseguir emitir essa nota?
2- É possível que o plugin não precise de todos os campos do endereço para evitar esse trabalho de conferência e edição?

CTA da Página de Pedidos

Na versão mais recente do WooCommerce, os CTA do plugin não aparecem mais. O WooCommece deixou a opções de fazer certas ações na página de edição do pedido.

O WooCommerce NFe irá também mudar nesse sentido ou irá recriar as CTA na página de pedidos?

screenshot_2

Campo de Atividade Fiscal Extremamente Confuso

Eu acho essa opção extremamente complicada para um usuário leigo.

fcunmgj8sfcrccqdvbmt6w

Sem mencionar que não fica claro que é possível adicionar um valor específico dentro do produto. Nem o que exatamente esses códigos significam e onde o usuário deve pegar essa informação.

Sugiro mudar os nomes para algo mais comum, ou adicionar links para página de documentação com uma explicação mais clara, ensinando ao usuário onde ele deve pegar esse tipo de informação.

Isso vai evitar que usuários leigos não deixe o campo vázio ou adicionem informações erradas.

Add automated tests to the project

The project is missing automated tests.
We should have at least some unit tests for all classes.
Some classes will probably need a refactoring to become testable.
It's better to do this in the beginning to avoid a big refactor in the future.

Post Types NFE, Produto

  1. Pedido pode ter mais de uma nota.
  2. Pedido considera multiplos serviços, e cada serviço suporta multiplos codigos de serviço.

Plugin deve realizar higienização, escape e validação de dados

Quando você inclui chamadas POST/GET/REQUEST/FILE em seu plugin, é importante sanitizar, validar e escapar delas. O objetivo aqui é evitar que um usuário envie acidentalmente dados de lixo pelo sistema, além de protegê-los de possíveis problemas de segurança.

SANITIZE: Os dados inseridos (por um usuário ou automaticamente) devem ser higienizados o mais rápido possível. Isso diminui a possibilidade de vulnerabilidades XSS e ataques MITM onde os dados postados são subvertidos.

VALIDAR: Todos os dados devem ser validados, não importa o quê. Mesmo quando você higienizar, lembre-se que você não quer que alguém coloque 'cão' quando os únicos valores válidos são números.

ESCAPE: Os dados que são emitidos devem ser escapados corretamente quando são ecoados, para que não possam seqüestrar as telas de administração. Existem muitas funções esc_*() que você pode usar para garantir que não mostre às pessoas os dados errados.

Variáveis ​​e opções devem ser escapadas quando houver echo

Muito relacionado à higienização de tudo, todas as variáveis ​​que são ecoadas precisam ser escapadas quando são ecoadas, para que não possa sequestrar usuários ou (pior) telas de administração. Existem muitas funções esc_*() que você pode usar para certificar-se de que não mostrará às pessoas os dados errados, assim como algumas que permitirão ecoar HTML com segurança.

Neste momento, pedimos que você escape de todas as variáveis ​​$, opções e qualquer tipo de dado gerado quando estiver sendo ecoado. Isso significa que você não deve estar escapando ao construir uma variável, mas quando você a produz no final. Chamamos isso de 'fugir tarde'.

Conflict with new CRUD functions for Woocommerce

White testing with the new WooCommerce version, I noticed this error:

[10-Jun-2017 22:56:29 UTC] PHP Notice: id foi chamada <strong>incorretamente</strong>. Order properties should not be accessed directly. Backtrace: WP_List_Table->display, WP_List_Table->display_rows_or_placeholder, WP_Posts_List_Table->display_rows, WP_Posts_List_Table->_display_rows, WP_Posts_List_Table->single_row, WP_List_Table->single_row_columns, WP_Posts_List_Table->column_default, do_action('manage_shop_order_posts_custom_column'), WP_Hook->do_action, WP_Hook->apply_filters, WC_NFe_Admin->order_status_column_content, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong Leia como <a href="https://codex.wordpress.org/pt-br:Depurando_uma_Rede_WordPress">Depurar o WordPress</a> para mais informações. (Esta mensagem foi adicionada na versão 3.0.) in /srv/www/b/htdocs/wp-includes/functions.php on line 4139

I'm aware of the error and I'm preparing a fix for it.

Feature Request: Mostrar link para a nota no site NFE.io

Enquanto __analista financeiro__, 
Quero encontrar um link direto para a nota no site do NFE.io na ordem do WooCommerce 
Para facilitar meu trabalho na hora de ver informações adicionais ou cancelar uma nota fiscal.

O local onde o link seria útil está marcado no print abaixo.

O format do link seria algo como: https://app.nfe.io/companies/<company_id>/service-invoices/<invoice_id>

Atualizar screenshots

Nessa nova versão do plugin, houve várias alterações de layout no WooCommerce. Issue criado para lembrar de colocar os screenshots mais recentes.

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.