Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adaptação do arquivo base.py para funcionar a emissão de Danfe no windows.
O windows não aceita o módulo sh, e por isso não consegue realizar a emissão da danfe e dá um erro no odoo.
Proponho essa melhoria que eu fiz usando o libreoffice e alterando o sh para rodar com o módulo subprocess.
Tive que declarar o endereço completo do libre office, ou precisa que o usuário adicione c:\program files\libreoffice\program\soffice.exe como um path variable do windows.
Precisa adicionar >pip install libreoffice no arquivo requirements.txt
Deixei um tratamento de try e catch para manter a funcionalidade original com Linux, mas não testei em ambiente Linux para ver se está funcionando corretamente, testei apenas no meu ambiente windows e consegui a emissão da Danfe.
Para funcionar no windows a geração dos arquivos template e arquivo odt precisei adicionar delete=false na geração dos arquivos temporários, porque o windows bloqueia o arquivo para uso e não permite a execução das linhas seguintes. O efeito colateral é que o arquivo fica ainda disponível na pasta temp ou precisa fazer uma rotina para deletar o arquivo após a finalização do código. Não fiz essa rotina ainda.
Mesmo assim ainda precisei copiar o arquivo odt porque ele continuava bloqueado pelo windows então criei um arquivo temp odt2 fazendo a copia do arquivo odt original para seguir a execução.
Enfim não é a solução mais elegante, mas consegui gerar a Danfe no windows.