Jump to content

Marcos Santos

Pessoal da TecnoSpeed
  • Contagem de Conteúdo

    5
  • Ingressou

  • Última visita

Informações Pessoais

  • Cidade
    Juiz de Fora
  • Estado
    Minas Gerais (MG)

Clientes & Parceiros

  • Você é um cliente TecnoSpeed?
    Não
  • Você é um parceiro da Casa do Desenvolvedor?
    Não

Visitantes Recentes do Perfil

O bloco de visitantes recentes está desativado e não está sendo mostrado a outros usuários.

Conquistas de Marcos Santos

  • Positividade Raro

Emblemas Recentes

5

Reputação na Comunidade

  1. Olá Dev, como vai? Eu sou o Marcos desenvolvedor da operação PlugDfe da TecnoSpeed e vou te apresentar o passo a passo para realizar sua primeira emissão de uma Nota do Consumidor no Plugnotas. Para a sua primeira emissão de NFC-e é necessário realizar alguns passos para conseguir ser bem sucedida. É necessário seguir os passos a seguir, que estão também em uma outra documentação nossa sobre como realizar a emissão de uma NF-e no Plugnotas. Cadastro de Software-house O token da API. Um cadastro de certificado digital vinculado a sua empresa, a API Plugnotas também possui uma rota de cadastro de certificados e com esse certificado você como DEV consegue emitir não apenas uma NFC-e e sim todos os outros documentos que a carteira do Plugnotas oferece. Cadastro de software-house: Após a assinatura do contrato, é necessário se cadastrar no: https://conta.tecnospeed.com.br/ e criar sua conta. https://conta.tecnospeed.com.br/register Obter o token: O Token (ou x-api-key) é o que utilizamos para te identificar em nossa base de dados, é com ele que nós identificamos se a requisição que estamos recebendo pertence a você ou a outra software-house e ele é único por software-house, independente do CNPJ. Para obter o token, é necessário estar logado, ir até o nome da sua organização, e depois em Exibir Token: Obs.: Este token é utilizado em todas as requisições da API, e deve ser informado nos headers da requisição como ‘x-api-key’ Cadastro de Certificado Digital: Para podermos prosseguir, é necessário o cadastro do certificado digital do emissor em nossa plataforma, para podermos assinar as notas que iremos emitir, e para realizar este cadastro é muito simples e você também pode realizar este passo ou por interface, ou por API: Interface: Primeiro é necessário ir até a página de certificados clicando no menu lateral, após isso, podemos selecionar a opção “Novo” para escolher e inserir o novo certificado, informando o e-mail caso você queira ser avisado sobre o vencimento dele, e a senha do certificado. API: Para realizar o cadastro via api, é necessário chamar o endpoint com o método post: https://api.plugnotas.com.br/certificado, informando a senha e o diretório do arquivo no body (multipart/form-data) curl --location 'https://api.plugnotas.com.br/certificado' \ --header 'x-api-key: {{token}}' \ --form 'senha="123456"' \ --form 'arquivo=@"/path/to/file"' Resposta: { "message": "Cadastro efetuado com sucesso", "data": { "id": "5ecc441a4ea3b318cec7f999" } } Cadastro de empresa: O próximo passo é o de cadastrar a empresa emissora, ou seja, o emitente da NFC-e, que também pode ser realizado via interface, ou via API caso você queira deixar esta parte para o seu cliente. Interface: O módulo de cadastro de empresa é localizado na aba de empresas https://app2.plugnotas.com.br/#/empresas Ao selecionar a opção “Novo”, irão aparecer as opções de cadastro que devem ser preenchidos de acordo com as informações do emitente (essa informação costuma a ser disponibilizada pelo emitente ou pelo contador dele), nesta configuração também é possível e necessário vincular o certificado já cadastrado na empresa. API: Para realizar o cadastro via API, é necessário utilizar o seguinte endpoint com o método POST: https://api.plugnotas.com.br/empresa Informando no body da requisição um JSON com as informações do emitente(exemplo de JSON de cadastro disponível aqui Resposta: { "message": "Cadastro efetuado com sucesso", "data": { "cpfCnpj": "93879866000103" } } Realizando sua primeira emissão de NFC-e: Aṕos realizado os passos anteriores você como DEV está apto a realizar sua primeira impressão NFC-e no Plugnotas. Será necessário enviar o JSON com todos os campos preenchidos e corretos para a rota da API (exemplo de JSON de cadastro aqui Resposta: { "documents": [ { "idIntegracao": "XXXYY999999", "Emitente": "08187168000160", "id": "5f6cb8936d8b321859b8fxxx" } ], "message": "Nota(as) em processamento", "protocol": "d6aafd45-c85f-40eb-ab02-c46d1855002f" } Um detalhe importante e interessante sobre a API dos Plugnotas é a padronização no envio dos documentos fiscais, todas as emissões possuem um mesmo padrão que facilita e torna muito mais fácil a integração com outros documentos. O processamento da emissão é feita de forma assíncrona será necessário consultar esse ID na rota de consulta para verificar o status dela (também possuímos uma funcionalidade de notificação/webhook, que notifica sua aplicação quando o processamento é concluído) Como realizar a consulta da nota? A consulta da nota é feita através da rota de Consulta, onde é necessário passar o id gerado no momento da emissão. curl --request GET \ --url https://api.plugnotas.com.br/nfce/{idNota}/resumo Resposta: [ { "id": "5f6cb8936d8b321859b8fxxx", "idIntegracao": "XXXYY999999", "emissao": "24/09/2020", "status": "CONCLUIDO", "emitente": "08187168000160", "destinatario": "08114280956", "valor": 4.6, "numero": "985201", "serie": "774", "chave": "41200908187168000160657740009852011712708654", "protocolo": "141200000499373", "dataAutorizacao": "24/09/2020", "mensagem": "Autorizado o uso da NFC-e", "pdf": "https://api.plugnotas.com.br/nfce/5f6cb8936d8b321859b8fxxx/pdf", "xml": "https://api.plugnotas.com.br/nfce/5f6cb8936d8b321859b8fxxx/xml" } ] Como obter o xml da nota? Para ter acesso ao XML é necessário consumir nossa rota de Obter XML, utilizando o mesmo id retornado no envio ou chave da nota. curl --request GET \ --url https://api.plugnotas.com.br/nfce/{idNota}/xml \ --header 'x-api-key: ' Resposta: RETORNA O XML DESTINATÁRIO Como obter o PDF da nota? Para ter acesso ao PDF é necessário consumir nossa rota de Obter PDF, utilizando o mesmo id retornado no envio ou chave da nota. curl --request GET \ --url https://api.plugnotas.com.br/nfce/{idNota}/pdf \ --header 'x-api-key: ' Resposta: RETORNA O PDF EM BYTES Realizando esses passos você vai conseguir realizar as emissões de NFC-e utilizando a API do Plugnotas, a nossa API oferece também muitas outras funcionalidades que vão facilitar sua vida como dev. Até e obrigado pela leitura deste artigo, espero que tenha te ajudado. Documentação: https://docs.plugnotas.com.br/
  2. Atualmente escutamos muito falar de metodologias como Scrum, Kanban, no cenário do Desenvolvimento de Software, mas não são apenas essas que existem. Já ouviu falar do XP ? O XP (Extreme Programming) é uma metodologia ágil, que possui seu foco no Desenvolvimento de Software, possui valores e princípios que moldam e organizar dando assim um norte para os envolvidos no desenvolvimento. Diferentemente do SCRUM o XP foi criado focado exclusivamente em agilizar o Desenvolvimento de Softwares. Valores: Simplicidade: O XP prega em seus valores a simplicidade no processo de desenvolvimento, quando se fala em simplicidade no XP é o foco da equipe em fazer aquilo que apenas é necessário no momento, concentrar as suas forças nesse objetivo. Coragem: A coragem de sair da zona de conforto, implementar mudanças, um projeto em seu processo de desenvolvimento tende a ter diversas mudanças, então o XP prega ter coragem em realizar essas mudanças, não apenas isso, aprender com os erros, fazer o que é necessário, refazer, entre outros exemplos. Feedback: O Feedback no XP é aplicado com o objetivo de diminuir o tempo entre o momento de que uma ação é executada e o seu resultado é ser observado, assim tendo uma comunicação constante e um alinhamento de ideias e expectativas. Respeito: O respeito é um valor básico da vida, se não há respeito entre os membros de equipe, não há uma forma que o projeto seja bem sucedido. Saber ouvir, compreender e respeitar os diferentes pontos de vista dentro de uma equipe é a chave para o sucesso e criação de um ambiente de time muito saudável. Comunicação: Comunicação é outro pilar importantíssimo no Desenvolvimento de Software, seja a comunicação entre o cliente e o time de desenvolvimento, passando o feedback de seus problemas ou o que precisa ser melhorado, e também a comunicação interna do time com o repasse de sabedorias e ajudas. Princípios: Cliente Presente: Tendo como valores a comunicação, feedback o XP tem como principio, ter sempre o cliente presente durante o desenvolvimento. Essa comunicação próxima com o cliente, gera resultados importantíssimos, pois com o cliente onde que vai ser identificado novas melhorias, problemas e assim agilizando o resultado final mais polido possível. Metáfora: O uso de metáforas é uma forma de alinhar ideias difícil em um cenário desconhecido, metáforas auxilia na comunicação com o cliente. Planejamento: Planejar é a melhor forma de organizar um projeto, planejar o que deve ser desenvolvido, o tempo que vai ser levado para o desenvolvimento. O planejamento é importante para que seja feito tudo o que há de mais importante dentro do projeto. Stand-up Meeting: São reuniões curtas, feitas para manter o alinhamento da equipe e cada um saber o que exatamente cada um está fazendo, em que ponto está o projeto e se possui algum impedimento nas tarefas. No cenário presencial essa reuniões são feitas em pé. User Story: Descreve o comportamento geral do sistema, nessa descrição deve se concentrar no comportamento externo do sistema, é descrito um cenário de uso do usuário. Testes constantes: No XP é utilizado o TDD (Test Driven Development), o teste é uma peça central, pois nos teste que vão se antecipar problemas futuros que o sistema possa apresentar e assim corrigi-lo o quanto antes possível. Pair Programming: No XP as pessoas desenvolvem em pares, pois duas cabeças pensam melhor do que uma. Essa programação em par sempre a um piloto que tem como função escrever o código e a outra pessoa que está ali para auxiliar e dar ideias. Essa programação em par tende reduzir drasticamente a ocorrência de bugs, melhorar a disseminação de conhecimento entre os integrantes do time e aumentar a velocidade do desenvolvimento. Integração Contínua: No XP sempre que há uma feature nova, nunca se deve esperar muito tempo para integrá-la a versão mais atual do sistema, assim diminuindo os conflitos e erros de código. Releases curtos: A liberação esporádica de novas versões do projeto, ajuda muito no feedback final do cliente, pois com a liberação de pequenas funcionalidades, o cliente consegue dar um feedback mais focado e objetivo e assim auxiliando nas futuras melhorias ou aceitação do projeto por parte do cliente. Conclusão: O XP é uma metodologia muito flexível e com seus processos bem definidos, melhorando assim o Desenvolvimento de Software e também podendo ser acoplada a outra metodologias como até mesmo os próprio SCRUM. Não existe a melhor metodologia ou aquela que faz milagre e garante uma organização e um desenvolvimento bem sucedido, mas sim a que se encaixa melhor para o cenário do projeto.
  3. Opa, tudo bom você? Nesse tópico vamos abortar um assunto muito importante em bancos SQL, que é as questões dos JOINS entre tabelas. Os JOINS em um primeiro momento, cria muitas duvidas na nossa cabeça e pode ser difícil de entender o conceito no inicio, mas nesse tópico iremos abordar de uma forma sucinta para tentar te ajudar. Conceito O conceito do SQL JOIN é um comando SQL utilizado em querys de busca para trazer colunas relacionadas de tabelas distintas, com relação entre as mesmas, podendo ser chaves estrangeiras, colunas que possui registros iguais entre outros. Existem diferentes tipos de JOINS e nessa tópico iremos abordar os 4 mais utilizados no dia a dia: INNER JOIN RIGHT JOIN LEFT JOIN FULL JOIN Aplicando na prática Para o entendimento dos JOINS iremos aplicar um pequeno exemplo utilizando um banco simples com duas tabelas, uma tabela de gatos e outras de cachorros, que vão possuir uma coluna em comum que vai ser a de nomes. Tabela de cachorros CREATE TABLE cachorros(id int,nome varchar(200)); insert into cachorros(id, nome) values (1,'Mel'), (2,'Bob'), (3,'Luna'), (4,'Zeca'), (5,'Zeus'), (6,'Nina'); Tabela de gatos: CREATE TABLE gatos(id int,nome varchar(200)); insert into gatos(id, nome) values (1,'Junior'), (2,'Mia'), (3,'Luna'), (4,'Bob'), (5,'Félix'), (6,'Nina'); INNER JOIN: O INNER JOIN é comando mais comum e mais fácil de se entender, ele basicamente irá retornar os registros em comum entre as tabelas relacionadas. No nosso exemplo o retorno vai ser de registros que possuem nomes iguais em ambas as tabelas de gatos e cachorros. Representação gráfica INNER JOIN: Comando SQL: select gt.id, gt.nome, c.id, c.nome from gatos gt inner join cachorros c on gt.nome = c.nome; Rodando esse comando obtivemos esses registros com nomes comuns em ambas as tabelas de cachorros e gatos. RIGHT JOIN: Quando usamos o RIGHT JOIN será retornado todo os retornos da tabela direita juntamente com com os registros que possui algo em comum com a tabela a esquerda. Representação gráfica RIGHT JOIN: Comando SQL: select gt.id, gt.nome, c.id, c.nome from gatos gt right join cachorros c on gt.nome = c.nome; Rodando o comando obtivemos esses registros retornados, como foi ditos todos os registros da tabela de cachorros e os registros na tabela de gatos com nomes em comum. LEFT JOIN: Com o LEFT JOIN conseguimos retornar todos os registros da tabela a esquerda, além de todos os registros em comuns com a tabela a direita. Representação gráfica LEFT JOIN: Comando SQL: select gt.id, gt.nome, c.id, c.nome from gatos gt left join cachorros c on gt.nome = c.nome; Rodando o comando SQL foram retornados esses registros, todos os gatos da tabela de gatos e os cachorros que possuem nomes em com os gatos. FULL JOIN: O FULL JOIN por sua vez, irá retornar todos os registros de ambas as tabelas relacionadas, no nosso exemplo vai ser retornado todos os gatos e cachorros de nosso banco de teste. Representação gráfica FULL JOIN: Comando SQL: select gt.id, gt.nome, c.id, c.nome from gatos gt full join cachorros c on gt.nome = c.nome; Resultado obtido com o FULL JOIN: Conclusão: Esse tópico foi um resumo bem básico sobre os JOINS com um pequeno exemplo para tentar auxiliar no entendimento sobre o assuntos. Espero que tenha ajudado. Qual quer coisa que pode ser adicionado deixe um comentário, que vai auxiliar no desenvolvimento do nosso fórum e ajudara nossa comunidade. Muito obrigado e até a próxima!
×
×
  • Create New...