Você se interessa pela área de automação comercial? Se sim/não, por quê?
15/10/2018
0
A automação comercial é um área super rica, gigante, e que engloba diversos assuntos que vão desde a área contábil até a programação e infraestrutura. Essa semana estamos começando um bate papo sobre um dos assuntos dentro dessa área, a NF-e, e gostaria de saber o que vocês acham disso, se tem alguma experiência para compartilhar, enfim, vamos trocar uma ideia sobre esse tema ^^^
Digam aí, vocês se interessam pela área de automação comercial? Se sim/não, por que?
Estevão Dias
Post mais votado
17/10/2018
Eu caí de paraquedas na área de automação comercial. Pra mim era bicho de 7 cabeças juntamente com automação industrial e automação financeira.
Comecei a trabalhar fazendo sistemas mais simples como sistemas de consultórios médicos, bibliotecas e outros, mas quando o governo anunciou a chegada da NF-e o mercado de softwares de automação comercial prospectou uma explosão de oportunidades de negócios e lucros.
Eu estava terminando meu estágio como desenvolvedor na DATACI, que fazia sistemas para a prefeitura de Cachoeiro e precisava urgente de um emprego (porque freelancer só não dava pra sustentar família né), e com algumas indicações fui chamado para trabalhar na Prodados Informática.
Para minha surpresa descobri que teria que desenvolver um emissor de NF-e reaproveitando fontes do sistema que já existia ("dois problemões": automação comercial e reaproveitar sistema antigo).
Foi extremamente difícil no começo, principalmente por tantos detalhes da Legislação, mas me apaixonei por este mercado (adoro detalhes).
Indico para qualquer desenvolvedor a experimentar desenvolver dentro do nicho de automação comercial, além de ser lucrativo, é fonte de conhecimento para a vida profissional e para o dia a dia entendendo como pensa o mercado e o governo!
Hélio Devmedia
Mais Posts
18/10/2018
Aylan Boscarino
Como programador PHP confesso que foi um choque o primeiro momento que me deparei com esse tema mas nada que um pouco de paciência e dedicação não torne agradável.
18/10/2018
Estevão Dias
Lá no curso de NF-e você comenta sobre os dados da nota não serem normalizados e o Tone acrescenta que pra ele os dados da nota deveriam ser tratados como algo a parte do sistema. Na sua experiência como isso é feito? Porque a nota em si é preenchida com dados do banco, como descrição de produto, preço, mas também tem dados calculados, como imposto, e ainda tem o retorno da sefaz. Como você costuma armazenar e relacionar esses três conjuntos diferentes de informações?
21/10/2018
Tania Silva
21/10/2018
Hélio Devmedia
Sua pergunta tem três partes. A resposta será longa como um pequeno artigo mas creio que será muito útil...
1º - Quando o Tone fala de tratar os dados da NF -e como algo à parte, acredito que ele esteja se referindo ao fato de que uma grande parte dos dados informados não tem haver com o negócio do cliente e muitas tabelas que serão criadas, existirão só para um especialista preencher. No caso, especialista eu me refiro a um funcionário que entende da tributação e exigências da Sefaz sobre a empresa do cliente.
Imagine por exemplo se numa tela de pedidos o vendedor tivesse que preencher CFOP, CST, saber qual é a tributação do produto para aquela operação e outros… tornaria o trabalho lento e pouco produtivo. É preciso que o sistema saiba tratar estas informações somente na hora que converter um pedido em NF-e, através de regras que o desenvolvedor implementar, e buscará estes dados em tabelas que não ficam disponíveis para a maioria dos usuários, para não fazer confusão.
2º - Quando eu falo que os Dados não serão normalizados, eu me refiro ao fato de não funciona na prática implementarmos as boas práticas em banco de dados e na POO. Acompanhe os Exemplos:
Exe 1 - Se você colocar na tabela de produtos a alíquota do imposto, e na nota selecionar um produto, pelo que aprendemos, não é preciso armazenar na nota a alíquota do imposto. Basta ter uma chave estrangeira apontando para o produto, ter a quantidade e o valor unitário no item da nota, daquele produto, pois dinamicamente o sistema recupera a alíquota, multiplica: quantidade * valor unitário * alíquota e mostra somente o resultado. Mas na verdade isso não pode acontecer. Você precisa armazenar qual a alíquota de imposto foi usada para aquele item naquela data de emissão da NF-e pois a aliquta pode mudar com o tempo, mas o imposto que foi informado na nota não pode mudar por causa disso. Se anos depois o FISCO exigir informações das notas, o valor tem que ser o mesmo de quando você emitiu a nota na época.
Exe 2: Se o valor total é quantidade * valor unitário então não precisa armazenar o valor total correto? não… na NF-e existe situações que no item da nota a quantidade pode estar zerada, o valor unitário também, mas tem um valor total. Esse valor total precisa estar armazenado.
Exe 3: O Total de produtos da nota deveria ser um campo dinâmico que pega o somatório do valor total de cada item correto? Não, há notas em que não há itens mas precisa ter um valor total sendo informado. Assim, é preciso ter tanto o campo do total do item na tabela de itens como o total de produtos da nota na tabela de Nota.
Como armazenar dados do negócio do cliente, dados do retorno e integrá-los?
O Segredo primeiramente é fazer o oposto ao que se aprende na faculdade. Ao invés de se dedicar 80% do tempo no negócio do cliente, deve-se primeiro dedicar esse tempo entendendo a NF-e com cursos como os que estão na DevMedia e entender a fundo o manual da NF-e. Neles estão todos os dados exigidos e todas as regras principais que devem ser tratadas. As regras são basicamente quando usar ou não usar os valores.
Ao estudar o manual você perceberá uma série de informações obrigatórias que não interessam ao seu cliente, por exemplo, o código NCM que é obrigatório (é uma codificação para o mercosul). Porque este código seria interessante para o meu cliente se ele é um revendedor de peças que vende só aqui na cidade? Na verdade o NCM não tem interesse nenhum pro seu cliente mas sem ele a nota não emite, então vai ter que gravar essa informação no seu sistema.
No manual também é possível compreender como as tabelas serão estruturadas no banco: Tabelas de nota, Tabelas de itens, tabelas de dados de cobrança, tabelas de volumes, tabelas de documentos referenciados, ect..
Levando para a Orientação a Objetos, entendendo o manual, percebe-se que praticamente todos os elementos se referem a atributos que podem ser numéricos, strings ou enumerates, e não haverá campos dinâmicos, todos devem ter uma representação no banco de dados.
Por fim, há um pequeno nível de regras de negócios no manual que explica quando informar ou não certos grupos.
Uma dica interessante é não criar propriedades (ou métodos sets) com restrições e validações. As regras mudam bastante e pra isso a sefaz fornece schemas XML atualizados contendo as validações básicas de cada campo. Crie os atributos das classes de forma purista e use as validações dos schemas para validá-los. Você pode ler os schemas e com reflection validar cada propriedade ou pode gerar o xml e usar as classes de xml para validalo pelo scheama.
Após saber como implementar uma NF-e, você pode adentrar nos negócios do cliente e ir identificando o que é do interesse do cliente que já é exigido na NF-e o restante deixar em módulos aparte para especialistas preencher…
Por fim, deve-se ter um controle dos retornos no site da sefaz, salvando a informação de status, mensagem de erro, se houver, número de protocolo e número de recibo retornado. Fica a cargo do desenvolvedor se irá criar estes campos na mesma tabela ou criar uma tabela de log de registros para gravar todas as tentativas de envio de uma Nf-e para sefaz resultando num relacionamento de NF-e e Logs 1 para N.
Tentei ser sucinto em explicar, mas quem se interessar mais pelo assunto estou a disposição para responder as perguntas!
21/10/2018
Francisco Sousa
Gostaria de saber se há possibilidades de desenvolver um software de automação comercial para a plataforma web pois o que tenho visto é uma maior aceitação na plataforma desktop. Vi que um dos principais motivos para se optar pela plataforma desktop é a facilidade de acessar as impressoras fiscais. A Devmedia terá um curso voltado para automação comercial na plataforma web?
Desde já agradeço a atenção!.
22/10/2018
Estevão Dias
Com certeza acesso ao hardware é um limitador porque, embora tenhamos hoje drivers que se conectam ao navegador eles ainda são restritos a alguns aparelhos.
Tivemos um comentário parecido lá na série, então eu vou compartilhar a resposta do Hélio aqui embaixo, beleza? Mas antes disso, pelo conversei com ele durante os dias em que ele esteve aqui, existem dois problemas com aplicativos web para automação comercial:
a) Dificuldade de aceitação por parte de quem vai utilizar o aplicativo, principalmente em áreas mais afastadas dos grandes centros. Se você estiver escrevendo um software para ser usado em áreas rurais isso pode ser um problema.
b) Necessidade de um failback mais elaborado em caso de não haver conexão com a internet. Se o programa funciona via internet e faltar conexão, algo até comum no Brasil, principalmente em áreas mais afastadas dos grandes centros, como fazer para enviar as notas? Uma vez que os aplicativos desktop tem acesso facilitado ao hardware, usar outros meios para enviar a nota fiscal eletrônica nessa plataforma pode ser mais fácil.
---
Segue a resposta do hélio para completar ;)
Para desenvolver uma NF-e em PHP (e em qualquer outra linguagem) é preciso seguir por dois caminhos: Fazer tudo na unha com o que a linguagem oferece, ou utilizar recursos de terceiros que podem ser uma API ou framework.
Se você prefere utilizar algo de terceiros, eu encontrei pouca coisa gratuita. Existem boas APIS em php mas são pagas como por exemplo:
https://webmaniabr.com/smartsales/nota-fiscal-eletronica/
ou
https://www.sbaum.com.br/api-nfe.php
ou
https://focusnfe.com.br/php
Existe também um framework gratuito em formato Back-End que recebe dados (JASON) e gera o XML enviando-o para sefaz. não o limitando somente a aplicações feitas em PHP:
https://github.com/nfephp-org
https://sped-docs.readthedocs.io
É importante salientar que nenhum recurso de terceiro vai suprir treinamento ou pesquisa em legislação tributária para entender os dados que devem ser informados...
De outra forma, se você quer trabalhar com o que a linguagem tem a oferecer sem precisar de tecnologia de terceiros, é só seguir a seguinte ideia:
1º - Saber como montar um XML nos padrões estabelecidos pelo manual da SEFAZ;
2º - Saber manipular Certificados digitais e como assinar o XML;
3º - Aprender a enviar o XML para webservices do tipo SOAP;
4º - Aprender a receber o receber o retorno da Sefaz e fazer o tratamento correto e adequado!
De qualquer forma, estaremos aqui para orienta-la na escolha. Qualquer coisa pode nos chamar...
23/10/2018
Marcos Pereira
Além do mais, é um setor que nunca vai faltar serviço! Quero me aprimorar na NFe.
Abraços.
23/10/2018
Jefferson Santos
Que bacana saber do seu interesse pela área de automação comercial.
Aproveitando seu interesse quero te indicar a série em destaque dessa semana "Nota fiscal eletrônica na prática".
Vou deixar o link dela aqui para você https://www.devmedia.com.br/NF-e/ .
Esta série está muito top, nela temos 1 DevCast, 3 cursos, 1 projeto, documentação, 5 desafios.
Mano tudo o que precisa saber está nela. Confere-lá hein!
Valeu abraços :D
24/10/2018
Fernando Gaspar
Trabalhei algum tempo com NF-e, inicialmente como consultor de um sistema e posteriormente como desenvolvedor do mesmo, grande parte dos clientes eram varejistas e o maior desafio era a gestão dos múltiplos sistemas, como grande parte dos clientes não tinham um ERP ou os que tinham não tinham o modulo de NF-e a gente conseguia captar essa galera.
O X da questão na minha opinião, é que na automação comercial você não pode se prender a um único produto/sistema, o maior desafio é você conseguir modularizar o teu sistema para atender diversas necessidades da empresa, como por exemplo, um sistema PDV que contemple a emissão e envio de uma NF-e, um sistema de retaguarda, um compliance para conciliação notas junto a contabilidade e por ai vai.
Quanto mais módulos conseguir agregar e integrar ao sistema mais competitivo você vai ser nesse mundo da Automação Comercial.
26/10/2018
Hélio Devmedia
O X da questão na minha opinião, é que na automação comercial você não pode se prender a um único produto/sistema, o maior desafio é você conseguir modularizar o teu sistema para atender diversas necessidades da empresa, como por exemplo, um sistema PDV que contemple a emissão e envio de uma NF-e, um sistema de retaguarda, um compliance para conciliação notas junto a contabilidade e por ai vai.
É por aí mesmo Fernando, e olha que nem estamos falando da parte dos Speds ainda.
Obrigado por compartilhar sua opinião!
Clique aqui para fazer login e interagir na Comunidade :)