Jump to content

Karina Harumi

Administradores
  • Contagem de Conteúdo

    933
  • Ingressou

  • Última visita

  • Dias Ganhos

    185

Postagens postado por Karina Harumi

  1. Olá desenvolvedor!

    Neste post iremos disponibilizar a você algumas informações referente a “Como organizar as cobranças de seu cliente”

    Neste caso vamos imaginar que existe uma escola de inglês que acaba emitindo boletos de vários alunos, vários alunos sempre acabam ligando para a escola de inglês solicitando a segunda via do boleto, realmente isso é algo que acaba tomando muito o tempo dos colaboradores.

    Desta forma, nós desenvolvemos uma ferramenta em nossa aplicação chamada Portal do Sacado, onde você realiza o cadastro do Sacado no sistema e o mesmo tem acesso a todos os boletos que foram emitidos para ele, ou seja, através desta plataforma, como o aluno terá acesso a todos os boletos emitidos para ele, ele não precisará efetuar ligações para a escola de inglês para emitir a segunda via dos boletos, pois ele mesmo poderá realizar esta função, evitando assim tempo e qualquer tipo de estresse.

    Para mais informações sobre esta ferramenta inovadora, basta Clicar aqui

    Caso tenha qualquer dúvida sobre o cenário explicado ou se quiser conhecer nossas soluções voltadas a automatização na geração de boletos, estaremos sempre à disposição, será um prazer ajudar!

     

    Tópico originalmente criado por: @Pedro.Bravin

  2. Olá desenvolvedor!

    Neste post iremos disponibilizar à você algumas informações referente a “Como informar mais de 1 data de desconto”

    Passo a passo:

    Primeiramente no momento da emissão do boleto, para informarmos o 2° desconto, é necessário informar também o 1° desconto. Neste caso devemos incluir no Json ou TX2 todos os campos referente ao primeiro desconto, sendo eles:

    TituloCodDesconto | TituloDataDesconto e TituloValorDescontoTaxa conforme a documentação abaixo, sendo eles:

    TituloCodDesconto = Campo onde pode ser informado o código para aplicar um determinado desconto.

    Códigos disponíveis:

    0 - Sem instrução de desconto.
    1 - Valor Fixo Até a Data Informada.
    2 - Percentual Até a Data Informada.
    3 - Valor por Antecipação Dia Corrido…
    4 - Valor por Antecipação Dia Útil.
    5 - Percentual Sobre o Valor Nominal Dia Corrido.
    6 - Percentual Sobre o Valor Nominal Dia Útil.

    TituloDataDesconto = Campo onde pode ser informada a data limite para descontar um determinado valor. Formato DD/MM/YYYY

    TituloValorDescontoTaxa = Campo onde pode ser informado o valor/taxa de um determinado desconto. (Valor irá sair na remessa, para ser descontado automaticamente, quando for pago)

    Clique aqui para ter acesso a nossa documentação

    Após realizar a inclusão do 1° desconto, você pode também informar o 2° desconto, Para informar mais de um desconto basta seguir as recomendações passadas acima onde neste caso os campos para serem inclusos seriam os seguintes:

    TituloCodDesconto2 | TituloDataDesconto2 e e TituloValorDescontoTaxa2

    Caso tenha qualquer dúvida sobre o cenário explicado ou se quiser conhecer nossas soluções voltadas a automatização na geração de boletos, estaremos sempre à disposição, será um prazer ajudar!Texto pré-formatadoTexto pré-formatado

  3. Contingência DPEC

    A Declaração Prévia de Emissão em Contingência (DPEC) é alternativa de emissão de NF-e em contingência com o registro prévio do resumo das NF-e emitidas. O registro prévio das NF-e permite a impressão do DANFE em papel comum. A validade do DANFE está condicionada à posterior transmissão da NF-e para a SEFAZ de Origem.

    Configurando DPEC

    1º) Inicialmente, se o ambiente de desenvolvimento for Delphi 7 ou superior, adicione o componente spdNFeDPEC em seu formulário e configure suas propriedades, caso a linguagem consuma o componente via Activex (OCX) declare no projeto a classe spdNFeDPECX.

    2º) Altere a tag tpemis_B22 recebendo o valor 4 que é referente à contingência DPEC, lembrando que este tipo deve permanecer igual mesmo após o retorno dos serviços.

    3º) Gere e assine a nota normalmente utilizando os métodos normais do componente, por exemplo spdNFe.AssinarNota .

    4º) Depois que a nota estiver gerada e assinada, utiliza-se o método spdNFeDPEC.MontarDPEC onde o xml DPEC será montado apartir do XML normal gerado anteriormente. Esse XML DPEC deve ser assinado utilizando o método spdNFeDPEC.AssinarDPEC e finalmente enviado utilizando o método spdNFeDPEC.EnviarDPEC, onde este envio é feito para os servidores de Ambiente Nacional. Após a correção dos problemas técnicos o emitente deve enviar o arquivo XML normal(primeiro que foi gerado), pelo método spdNFe.EnviarNota e este será enviado para o SEFAZ de origem.

    5º) No arquivo Config.ini já existe o bloco [NFE], por exemplo:

    [NFE]

    UF=PR

    CNPJ=0000000000000

    ArquivoServidoresHom=“nfeServidoresHom.ini”

    DiretorioEsquemas=Esquemas\

    DiretorioTemplates=Templates\

    DiretorioLog=Log\

    TipoCertificado=File

    NomeCertificado=

    VersaoManual=6.0

    6º) Crie o bloco [DPEC] abaixo do [NFE], por exemplo:

    [DPEC]

    UF=PR

    CNPJ=00000000000000

    ArquivoServidoresHom=“nfeServidoresHomDPEC.ini”

    DiretorioEsquemas=Esquemas\

    DiretorioTemplates=Templates\

    DiretorioLog=Log\

    TipoCertificado=File

    NomeCertificado=

    VersaoManual=6.0

    Impressão DPEC

    Para realizar a impressão de um DANFE em DPEC é importante seguir alguns passos:

    1º) Gera-se a nota normalmente pelo spdNFeDataSets e assina pelo componente spdNFe .

    2º) Montar o XML

    …
    
    //Gera o XML por DPEC
    
    mOutput.Text := spdNFeDPEC.MontarDPEC (mOutput.Text);
    
    //Assina o XML
    
    mOutput.Text := spdNFeDPEC.AssinarDPEC (mOutput.Text);
    
    …

    3º) Envio DPEC

    …
    
    //Envia o XML
    
    mOutput.Text := spdNFeDPEC.EnviarDPEC (mOutput.Text,‘0001’);
    
    …

    4º) Consulta o DPEC a partir do código retornado pelo ENVIO

    …
    
    //Consulta o DPEC
    
    mOutput.Text := spdNFeDPEC.ConsultarDPEC (pcRegDpec,‘910000000194131’);
    
    …

    5º) Outra forma de consulta que pode ser utilizada pelo desenvolvedor é a consulta pela chave da Nota.

    …
    
    //Consulta o DPEC
    
    mOutput.Text := spdNFeDPEC.ConsultarDPEC (pcChaveNota,'91 0000000194131 ');
    
    …

    6º) Com o retorno do envio do DPEC você já tem as tags.

    2010-09-16T09:19:49
    
    910000000194131

    7º) Feito os passos anteriores você já pode imprimir o DANFE utilizando o método spdNFeDPEC.ImprimirDanfe conforme exemplo abaixo:

    …
    
    //Método que possibilita a impressão do DANFE
    
    spdNFeDPEC.ImprimirDanfe (mOutput.Text,‘910000000194131’,‘2010-09-16T09:19:49’);
    
    …

    8º) DANFE DPEC impresso

    image
  4. Quando ocorre? Ao tentar o envio da NFe.

    Como resolver? Em casos de mensagem OUT OF MEMORY:

    Primeiro, veja se a máquina é 64 bits, caso seja então pode haver problemas no uso da memória por aplicativos feitos para rodar em 32 bits, nesse caso clique em propriedades no executável e peça para executar em modo de compatibilidade windows xp, assim o acesso a memoria vai se como se fosse 32 bits.

    Segundo, veja também o arquivo de paginação do windows se esta grande o suficiente e se a unidade em que esta direcionado tem espaço suficiente.

    Terceiro, caso a máquina seja 32 bits e tenha bastante memória, inicialmente verifique o arquivo de paginação de memória ou memoria virtual do windows, geralmente definem ela no C:\ e a unidade que esta definida talvez possa não ter espaço para criação e manipulação dessa página de alocação de memoria.

    Caso nada funcione peça para que o cliente veja com um tecnico para que seja feito testes de memoria com um aplicativo benchmark, pode ser erro de leitura ou gravação.

  5. 6 horas atrás, nfservice disse:

    Certo, e os valores informados no grupo de ICMSST com CST 60 e CSOSN 500 são calculados da mesma forma que no grupo de ICMS? 

    Segundo o @Augusto

    Conforme mencionado anteriormente, os valores informados no grupo de ICMS-ST nas NF-e de venda com CST=60 ou CSOSN=500, não são calculados quando da emissão da NF-e, e sim retratar os valores do ICMS-ST  recolhidos anteriormente, por isso eles devem ser importados da NF-e do Fornecedor do produto.

  6. Olá. 

    Segundo o @Augusto:

    Na Substituição Tributária do PIS/COFINS o imposto é recolhido uma única vez pelo fabricante de alguns produtos específicos, sendo que momento da revenda o revendedor de produto sujeito à ST de PIS e COFINS deve classificar a operação de revenda com o CST 05 (grupos de PIS e de COFINS tributado) informando o valor zero (R$ 0,00) no campo de base de cálculo (em decorrência da substituição).
     

  7. Olá 🙂

    Segundo o @Augusto:

    No manual do contribuinte, o ICMS Efetivo considera como sendo o ICMS pago na saída para o consumidor final caso estiver em regime comum de tributação, ou no caso de saída subsequente amparada por isenção ou não incidência.
    Na sequência, o Manual diz que é um campo facultativo para todas as UFs.
    Na realidade o campo do ICMS efetivo foi solicitado pela SEFAZ-SP para ser utilizado com base em sua tabela de produtos pautados.
    Produtos pautados são todos aqueles que seu valor efetivo para cobrança do ICMS é determinado pelo fisco estadual com base em um preço médio de venda.
    Nos casos de NF-e de venda com CST 60 ou CSOSN 500, essas informações devem ser extraídas da NF-e do fornecedor do produto, ou seja, o mesmo ICMS ST recolhido na etapa anterior pelo fornecedor do produto.


     

  8. 5 horas atrás, nfservice disse:

    Então no caso do ICMSPart, o cálculo será feito da mesma forma que o grupo de ICMSUFDest ou há alteração nos cálculos? 

    Boa tarde, 

    Segundo o @Augusto
    Sim, o cálculo continua sendo o mesmo definido pela EC 87/ 2015, como segue:

    A partilha de ICMS passou a valer a partir de 01/01/2016, onde foi implementada uma nova sistemática de recolhimento do ICMS Interestadual nas operações com consumidores finais, não contribuintes do ICMS que realizem operações de venda de mercadorias para outros estados (operações interestaduais).
     O Convênio ICMS 152/2015, dispõe sobre os procedimentos a serem observados nas operações e prestações que destinam bens e serviços a consumidor final não contribuinte do ICMS, localizado em outra Unidade Federada, determinando a sistemática de cálculo do imposto devido às Unidades Federadas de origem e destino, definido na Nota Técnica 2015.003.
    A proporção dessa partilha foi mudando ano após ano:

    • 2016: 40% Destino 60% Origem;
    • 2017: 60% Destino 40% Origem;
    • 2018: 80% Destino 20% Origem;
    • A partir de 2019: 100% recolhido ao estado de Destino.
  9. Olá @nfservice, tudo bem?

    Segundo o @Augusto:

    Nas operações de venda com CST 60 , ou CSOSN 500 (Simples Nacional), com o  CFOP  5.405,  sujeita ao regime de substituição tributária, na condição de contribuinte-substituído, algumas UF's exigem que o emitente da NF-e de venda,  informe o valor da Base de Cálculo e o valor do ICMS-ST , retido e recolhido pelo fornecedor da mercadoria, cujas informações deverão ser extraídas da NF-e de aquisição dos produtos.
     

  10. Olá @nfservice, tudo bem?

    Segundo o @Augusto:

    Conforme definido pela Nota Técnica 2015.003, este Grupo deve ser informado nas vendas interestaduais para consumidor final, não contribuinte do ICMS. Observação: Este grupo não deve ser utilizado nas operações com veículos automotores novos efetuadas por meio de faturamento direto para o consumidor (Convênio ICMS 51/00), as quais possuem grupo de campos próprio (ICMSPart). Outro ponto a ser observado, é que a partir de janeiro de 2019, na partilha do ICMS o  campo ICMSUFDest passou a ser 100% para a UF de Destino.

  11. O Grupo W. Total da NFe , esse campo você informa os valores totais da NFe.

    Se tem a criação dos campos totalizadores do FCP, do IPI no caso de devolução.

    3f305b56fc70204c86583214dd6d32fcc818f416_2_439x499.png.318eebbe707a0f5ac95c4715b1545572.png

    Como podemos ver na imagem acima, ocorreu o acréscimos de vários campos, como o do vFCP, vFCPST, vFCPSTRet e vIPIDevol.

    O que preencher nos novos campo?

    • vFCP, segundo a regra de validação deverá ser preenchido com o valor total da soma dos campo vFCP_N17c de cada item;
    • vFCPST, segundo a regra de validação, deverá ser preenchido com o valor total da soma dos campo vFCPST_N23d de cada item;
    • vFCPSTRet, segundo a regra de validação, deverá ser preenchido com o valor total da soma dos campo vFCPSTRet_N27d de cada item;
    • vIPIDevol, segundo a regra de validação, deverá ser preenchido com o valor total da soma dos campo vIPIDevol_UA04 de cada item;

    Rejeições:

    É possível receber uma destas quatro rejeições:

    Rejeição 863

    Total do IPI devolvido difere do somatório dos itens

    • Regra de validação : Total do IPI devolvido (id: W12a) difere do somatório do valor dos itens (id:UA04)
    • Solução : O campo vIPIDevol_W12a deverá conter a soma de todos os campos vIPIDevol_UA04 de cada item.
    • Fórmula: vIPIDevol_UA04(item 1) + vIPIDevol_UA04(item 2) = vIPIDevol_W12a

    Rejeição 859

    Total do FCP retido anteriormente por Substituição Tributária difere do somatório dos itens

    • Regra de validação : Total do FCP ST retido anteriormente (id: W06b) difere do somatório do valor dos itens (id:N27d)
    • Solução : O campo vFCPSTRet_W06b deverá conter a soma dos campos vFCPSTRet_N27d de cada item.
    • Fórmula: vFCPSTRet_N27d (item 1) + vFCPSTRet_N27d (item 2) = vFCPSTRet_W06b

    Rejeição 862

    Total do FCP ST difere do somatório dos itens

    • Regra de validação : Total do FCP ST (id: W06a) difere do somatório do valor dos itens (id:N23d). Ou seja, o campo vFCPST_W06a está diferente da soma dos campos vFCPST_N23d de cada item.
    • Solução : O campo vFCPST_W06a devera conter a soma dos campos vFCPST_N23d de cada item
    • Fórmula: vFCPST_N23d (item 1) + vFCPST_N23d (item 2) = vFCPST_W06a

    Rejeição 861

    Total do FCP difere do somatório dos itens

    • Regra de validação : Total do FCP (id: W04b) difere do somatório do valor dos itens (id:N17c).
    • Solução : O campo vFCP_W04b deverá conter a soma dos campos vFCP_N17c de cada item.
    • Fórmula: vFCP_N17c (item 1) + vFCP_N17c (item 2) = vFCP_W04b

    Como preencher esses campos novos?

    Se você utiliza o Componente NFe Componente NFCe ou o Manager eDoc , veja como preencher as informações do Grupo W. nos três possíveis formatos de integração:

    REC:

    W|

    W02|vBC|vICMS|vICMSDeson|vFCP|vBCST|vST|

    vFCPST|vFCPSTRet|vProd|vFrete|vSeg|vDesc|vII|vIPI|vIPIDevol|vPIS|vCOFINS|

    vOutro|vNF|vTotTrib|

    W04c|vFCPUFDest|vICMSUFDest|vICMSUFRemet|

    /* 0-1/Grupo facultativo */

    W17|vServ|vBC|vISS|vPIS|vCOFINS|dCompet|vDeducao|vOutro|vDescIncond|
    

    vDescCond|vISSRet|cRegTrib|

    W23|vRetPIS|vRetCOFINS|vRetCSLL|vBCIRRF|vIRRF|vBCRetPrev|vRetPrev|

    TX2:

    …campos antigos…

    vFCP_W04b=0.00

    vFCPST_W06a=0.00

    vFCPSTRet_W06b=0.00

    vIPIDevol_W12a=0.00

    …campos antigos…

    DataSet:

    undefined.campo(‘vFCP_W04b’).Value := ‘0.00’;

    undefined.campo(‘vFCPST_W06a’).Value := ‘0.00’;

    undefined.campo(‘vFCPSTRet_W06b’).Value := ‘0.00’;

    undefined.campo(‘vIPIDevol_W12a’).Value := ‘0.00’;

  12. Para a NF-e 4.0, o grupo " I. Produtos e Serviços", exige que sejam informados novos campos para identificar se o produto foi fabricado em escala relevante, ou não.

    Para saber se seu produto é fabricado em escala relevante, deve-se consultar a c láusula 23ª do Convênio ICMS 52/2017. 1

    Em caso de produção em escala NÃO relevante, o campo CNPJ do Fabricante deve ser informado.

    O que mudou?

    Neste grupo foram acrescentados três novos campos, sendo eles:

    • indEscala
    • CNPJFab
    • cBenef

    Veja na imagem abaixo:

    96713b3d25e3ed3fb5bd4b395522a94f50d2c023_2_690x217.png.340333bcd7cbea7369d499e0bf130626.png

     

    Rejeições

    É possível receber uma destas três rejeições:

    Rejeição 879

    Informado item “Produzido em Escala NÃO Relevante” e não informado CNPJ do Fabricante [nItem:nnn]

    • Regra de validação : Se informado indEscala=”N- não relevante” (id: I05d), deve ser informado CNPJ do Fabricante da Mercadoria (id: I05e)
    • Solução : Essa rejeição foi apresentada porque o indEscala=”N- não relevante” (id: I05d) não estava com o CNPJ do Fabricante da Mercadoria informado, deverá colocar o mesmo.

    Rejeição 489

    CNPJ informado inválido (DV ou zeros)

    • Regra de validação : Se informado CNPJFab (id: I05e)
    • Solução : Deverá informar o CNPJFab_I05e pois o mesmo é obrigatório.

    Rejeição 854

    Unidade Tributável (tag:uTrib) incompatível com produto informado [nItem:nnn]

    • Regra de validação : Informado campo cProdANP (id: LA02) = 210203001 (GLP) e campo uTrib (id: I13) <> “kg” (ignorar a diferenciação entre maiúsculas e minúsculas)
    • Solução : Se o campo uTrib tiver como produto 210203001 no campo cProdANP

    Como preencher os novos campos na 4.00?

    Se você utiliza o Componente NFe, Componente NFCe ou o Manager eDoc , veja como preencher as informações do Grupo K. nos três possíveis formatos de integração:

    REC:

    I05c|CEST|indEscala|CNPJFab|cBenef|

    TX2:

    indEscala_I05d=

    CNPJFab_I05e=

    cBenef_I05f=

    DataSet:

    undefined.campo(‘indEscala_I05d’).Value := ‘’;

    undefined.campo(‘CNPJFab_I05e’) .Value := ‘’;

    undefined.campo(‘cBenef_I05f’) .Value := ‘’;

     
    Tópico originalmente criado por: @renan
  13. O Grupo K. Detalhamento Específico de Medicamento e de matérias-primas farmacêuticas , tem a criação de campo para informar o código de Produto da ANVISA para medicamentos e matérias-primas farmacêuticas. Exclusão dos campos específicos de medicamento que passam a fazer parte do Grupo Rastreabilidade de Produto.

    O que mudou na NF-e 4.0?

    Foi retirado os campos nLote(id: K02), qLote(id: K03), dFab(id: K04), dVal(id:K05), e o campo cProdANVISA(id:K01a) se tornou obrigatório.

    Rejeições

    É possível receber uma destas rejeições:

    Rejeição 873

    Operação com medicamentos e não informado os campos de rastreabilidade [nItem:nnn]

    • Regra de validação :Se informado Grupo de Medicamentos (tag:med) obrigatório preenchimento do grupo rastro (id: I80)
    • Solução : se ocorrer o preenchimento do grupo rastro, é obrigatório a informação do grupo de Medicamentos.

    Como preencher os campo na versão 4.00?

    Se você utiliza o Componente NFe 1, Componente NFCe ou o Manager eDoc , veja como preencher as informações do Grupo K. nos três possíveis formatos de integração:

    REC:

    K|cProdANVISA|vPMC|

    TX2:

    cProdANVISA_K01a=

    vPMC_K06=

    DataSet:

    undefined.IncluirPart(‘K’);

    undefined.campo(‘cProdANVISA_K01a’).Value := ‘’;// Novo

    undefined.campo(‘vPMC_K06’).Value := ‘’;

    undefined.SalvarPart(‘K’);

     

    Tópico originalmente criado por: @renan

  14. Você certamente ficará surpreso com o poder que essa ferramenta possuí mas também irá entender que ele exige muito trabalho pra que tudo fique bem no fim do dia.

    Bem, Protractor nada mais é que - em tradução livre - um framework de teste end-to-end para aplicações AngularJS . Ele executa testes contra seu aplicativo em execução em um navegador real, interagindo com ele como um usuário faria ( http://angular.github.io/protractor/#/ 1 ). Em suma ele substitui aquele bom e velho checklist que alguém da sua equipe gasta um tempo pra fazer, ou seja, significa redução de custos e de tempo pra sua empresa, ainda mais se você utilizar ele em conjunto com um servidor de integração contínua, como o Jenkins por exemplo ( mas isso é pra um outro post).

    O Protractor usa algumas tecnologias pra fazer a sua mágica, são elas:

    • Jasmine : ferramenta de testes de comportamento para javascript, é com ele que você irá escrever seus testes ( http://jasmine.github.io/ );
    • Webdriver : basicamente automatiza processos em navegadores, é ele quem obedece o Jasmine e clica, preenche e interage com a sua aplicação como se fosse um usuário ( https://github.com/angular/protractor ).
    • NodeJS : uma linguagem baseada no V8 JavaScript Engine , orientada a eventos e feita para ser facilmente escalável, é a tecnologia em que o Protractor foi escrito ( https://nodejs.org/ ).

    Agora, antes que fique chato demais, vamos a prática…

    PARTE 1 - Criar a aplicação a ser testada

    • Vamos pegar uma aplicação de exemplo do AngularJS mesmo, o mais simples, segue:

    <!doctype html>

    Name:


    Hello {{yourName}} !

    • Crie uma pasta no lugar de sua preferência com o nome de protractortest e salve esse arquivo com o nome index.html .
    • Abra index.html no navegador pra garantir que a aplicação funciona.

    PARTE 2 - Definindo e baixando as dependências

    • Crie um arquivo chamado package.json na raiz da aplicação com o seguinte conteúdo:

    {

    “name” : “protractortest”,

    “version” : “0.0.1”,

    “private” : true,

    “scripts” : {

    “start” : “cls & http-server -p 8888 -c-1”,

    “update-webdriver” : “webdriver-manager update”,

    “test” : “protractor protractor.conf.js”

    },

    “dependencies” : {

    “protractor” : “^1.6.1”,

    “http-server” : “^0.8.0”

    }

    }

    • Caso não tenha o NodeJS instalado, faça isso agora https://nodejs.org/download/
    • E instale o protractor globalmente: via linha de comando, execute ‘npm install -g protractor’
    • Para, enfim, baixar as dependências da aplicação execute via linha de comando na pasta da aplicação o comando ‘npm install’ , caso dê algum erro tente executar como sudo (Linux) ou Administrador (Windows).

    PARTE 3 - Configurando tudo

    • Crie o arquivo de configuração do protractor (protractor.conf.js) na raiz da sua aplicação, conforme exemplo abaixo:

    exports . config = {

    specs : [

    ‘./tests/test.js’,

    ],

    capabilities : {

    ‘browserName’ : ‘chrome’

    },

    baseUrl : ‘http://localhost:8888/’,

    framework : ‘jasmine’,

    jasmineNodeOpts : {

    showColors : false,

    isVerbose: true,

    includeStackTrace: true

    },

    directConnect : true,

    onPrepare : function () {

    browser . manage (). window (). maximize ();

    }

    };

    • Via linha de comando, na pasta raiz da aplicação, digite ‘npm run update-webdriver’ , isso irá instalar o Webdriver e o driver para o navegador escolhido e assim estaremos prontos para rodar os testes, mas calma, ainda precisamos escrever um…

    PARTE 4 - Escrevendo testes

    • Crie uma pasta chamada tests e crie nela um arquivo chamado test.js , nele adicione o seguinte conteúdo:

    describe ( ‘Meu primeiro teste usando Protractor’ , function () {

    it ( ‘Acessando aplicação’ , function () {

    browser . get ( ‘http://localhost:8888/’ );

    });

    it ( ‘Escrevendo no input’ , function () {

    var name = ‘o meu nome é Teste, obrigado por me usar…’;

    var elementName = element ( by . model ( ‘yourName’ ));

    var elementResponse = element ( by . css ( ‘h1’ ));

    elementName . sendKeys ( name );

    browser . sleep ( 2000 ); // essa linha não é necessária, serve apenas para que você veja a mágica acontecendo

    expect ( elementResponse . getText ()). toEqual ( 'Hello ’ + name + ‘!’ );

    });

    });

    FINAL - Rodando os testes

    • Novamente, via linha de comando e na pasta raiz da aplicação, digite ‘npm start’ para subir a aplicação no http://localhost:8888 , em seguida, em outro terminal, digite ‘npm test’ e espere a mágica acontecer…

      2 tests , 1 assertion , 0 failures

    • Deu certo? Ótimo! Nesse momento feche os olhos e imagine o quanto isso pode melhorar a sua vida e a qualidade dos seus produtos, agora abra-os, dê aquele sorriso, respire fundo e ao trabalho meu jovem!!

    Obrigado por ter lido até aqui, compartilhe em tudo quanto é lugar, afinal, o mundo precisa saber disso…

    Pronto :slight_smile:

    p.s.: por favor, se não deu certo e você não teve sucesso, não desista… Deixe suas dúvidas (ou sugestões) nos comentários que eu terei o prazer de responder e ajudar se preciso.

    https://tsdn.tecnospeed.com.br/files/render/a/rTxaDtkw3uI/m/2Aal0HUq8WcsUkGJHDOIuxVL8QzTBMkNxmuPYT_WmSuXEgQQRC-pbFfCjQ-w5CdWBzI2RQIb0hw 

    https://tsdn.tecnospeed.com.br/files/render/a/rTxaDtkw3uI/m/2Aal0HUq8WedKCXJ1JSNv1OfknRZ-46y6wruSOGq_PabPw9DYhxqofc-LSRHEma7yUhKzgvtKY4

  15. Comentário originalmente feito por: @GustavoFiorin

    Bom dia Jairo, tudo bem e você?

    Sobre o certificado, nossa aplicação não realiza a geração, somente recebemos sua inclusão mesmo. Para cada banco esta geração é diferente, em alguns é utilizado o .pfx e outros o .cer, mas realmente não temos o controle de sua geração.

    Recomendamos sempre alinhar junto ao gerente responsável pela conta, para que ele possa provir mais informações sobre este procedimento, pois geralmente eles possuem um manual com o passo a passo para buscar este certificado para o serviço de cobrança.

    Para qualquer dúvida mantenho-me à disposição.

  16. Comentário originalmente feito por: @GustavoFiorin

     

    Boa tarde Jairo.

    Consultando este Id de Integração em nossa base de dados, é apresentado nos logs de transmissão junto ao banco à mensagem:
    “Access denied: certificate not found”.

    Tentamos realizar uma averiguação mais à fundo neste título(informações e credenciais), mas no momento ele já se encontra como descartado, o que impossibilita de verificarmos suas informações, pois assim que um boleto é descartado, nossa plataforma realiza a exclusão destas informações que foram previamente incluídas na aplicação.

    Recomendo averiguar junto ao banco o motivo deste certificado não estar sendo reconhecido por eles, e caso necessite de qualquer informação, mantenho-me sempre à disposição.

    Atenciosamente.

  17. Neste post vamos conhecer um pouco do setor de desenvolvimento da Tecnospeed. Este, que é o responsável por prover os produtos que a empresa disponibiliza ao mercado e que ajudaram a tornar esta empresa, referência no cenário nacional, quando o assunto é documentos fiscais eletrônicos.

    Processo bem definido e certificado

    Desde a sua fundação, o desenvolvimento da Tecnospeed utiliza a metodologia ágil Scrum, como um dos pilares fundamentais para sustentar a produção de software de forma rápida e incremental, sem comprometer a qualidade dos produtos. Qualidade aliás, que é um item não negociável dentro da empresa.

    Com o crescimento rápido da empresa, ficou evidente que, buscar a excelência nos processos de desenvolvimento traria sustentabilidade para a empresa no mercado, pois nosso diferencial seria preservado. Com isso, a empresa em meados de 2011 iniciou um processo de certificação internacional chamado CMMI, que foi conquistado no ano seguinte.

    8bcee9a12cc34ded0762f7c77fb5575f69cbd63e

    "Mais software, menos esforço"

    De nada nos adiantaria ter um processo bem definido, se cada um aqui dentro remasse para um lado diferente. Por isso todos os nossos desenvolvedores tem como norte a missão.

    O resultado disso pode ser visto nos recursos dos produtos disponibilizados, como é o caso do Padrão Único para emissão da NFS-e (Nota Fiscal de Serviço Eletrônica), onde através de um único layout de arquivo é possível integrar-se as mais diversas prefeituras do país, evitando que o desenvolvedor, tenha mais essa preocupação.

    Sempre atualizados

    Além do mais, como nossas soluções atuam em um processo tão crítico das empresas que é o faturamento, nossa preocupação em manter os produtos sempre atualizados com a legislação é constante. Por este motivo, procuramos ser proativos analisando cada Nota Técnica liberada pelo governo e publicamos um Parecer Técnico avisando a nossa rede das mudanças que estão por vir e o mais rápido possível, disponibilizamos as versões dos nossos produtos compatibilizados com a regulamentação em questão.

    Também procuramos nos manter atualizados em relação as novas tecnologias, para que nossa rede tenha sempre a disposição um produto capaz de acompanhar a evolução tecnológica que o setor exige. Uma prova disso é a nova versão do gerenciador de documentos eletrônicos lançada recentemente.

    Essa evolução tecnológica só é possível, pois a Tecnospeed conta com uma equipe altamente qualificada, que se capacita constantemente, tanto através de treinamentos externos, quanto, através do programa de capacitação interno.

    Todos os documentos eletrônicos

    Pensando em proporcionar uma maior comodidade para o desenvolvedor de software, a Tecnospeed, possui várias formas de integração para todos os documentos fiscais eletrônicos. Por isso conseguimos atender a mais de 900 software houses em todos o país, que utilizam as mais diversas linguagens de programação e dos mais diversos portes.

  18. Ler livros é um dos melhores jeitos para aprender ou melhorar uma habilidade. Isso vale tanto para um empresário, contador, professor ou investidor, quanto para um desenvolvedor.

    Aqui vamos deixar uma lista com os 5 livros de programação recomendados para qualquer um que seja novo na programação ou que deseja se tornar um programador melhor. Estes livros são criticamente aclamados e podem ser lidos independente da linguagem que você programa.

    1. O programador pragmático: de aprendiz a mestre - Andrew Hunt e David Thomas

    995566_o-programador-pragmatico_l10_637468369780577582.jpg.9ce6bbe5e8a146a89960a28ccb65148b.jpg

     

    Este é um livro que oferece conselhos práticos para a programação e os quais você pode usar em qualquer projeto em desenvolvimento. Essencialmente, é uma série de artigos que contém as melhores práticas e as principais armadilhas do desenvolvimento de software. Se você é novo na programação, esse livro vai te ajudar a ter certeza de que você está no caminho certo em seu projeto. Se é um programador experiente, ele vai reforçar algumas crenças que você construiu durante estes anos codando.

    Sugerido por: @vinicius rufine

     

    2. Código limpo - Robert Martin

    71dH97FwGbL.thumb.jpg.a05aa4767ac16d780dec6694b4218534.jpg

    O livro é dividido em três partes e foca nas práticas para escrever códigos limpos, dando casos de estudo complexos, e conclui com uma lista prática a seguir se você quer escrever códigos limpos. Por exemplo, ele fala sobre a importância de nomear as coisas apropriadamente, e estruturar o seu código para refletir o que ele realmente faz.

    Sugerido por: @fabiano.passianoto e @vinicius rufine

     

    3. Test Driven Development - Kent Beck

    495016891_41fhcrnUm7L._SX348_BO1204203200_.jpg.6e41f35883a0bddbc63533c2d6e22a24.jpg

    Código limpo que funciona - agora. Essa é a contradição que está por trás de muitas dores na programação. O livro responde à essa contradição com um paradoxo: teste o programa antes de escrevê-lo.

    Aqui, os leitores entenderão como resolver tarefas complicadas, a escrever testes automatizados antes de codar, usar padrões para decidir que testes escrever, enfim! É um livro que com certeza irá inspirá-lo a abraçar técnicas que às vezes são subestimadas.

    Sugerido por: @vinicius rufine

     

    4. Refactoring - Martin Fowler, Kent Beck e John Brant

    51ttgxwzArL._SX260_.jpg.6f4bfaae308dc96705f473ce122cffbc.jpg

    A refatoração se trata de melhorar a projeção de um código já existente. É o processo de mudar o sistema de um software de um jeito que não altere os comportamentos exteriores do código, mas que melhore sua estrutura interna. Esse livro oferece uma discussão dos princípios da refatoração e traz cases reais com instruções passo a passo para que você consiga fazê-la.

    Sugerido por: @David_Rigamonte

     

    5. Use a cabeça! Padrões de projeto - Eric e Elizabeth Freeman

    91nsBQAuCML.thumb.jpg.3375605764828820d99aa2d82b94199d.jpg

    Os padrões de projetos permitem que sejam aproveitadas as melhores práticas e experiência de outros que já se depararam com os problemas de desenvolvimento de software que você está enfrentando. Assim, você consegue economizar tempo e esforço! Neste livro, você vai aprender:

    • Quais são os padrões que realmente importam
    • Quando e por que devem ser usados
    • Como aplicá-los em seus projetos
    • Quando não usá-los (e evitar a febre dos padrões)
    • Quais são os princípios de design da programação orientada a objetos em que os padrões se baseiam

    Sugerido por: @Rodrigo_Ramalho

    Estes são alguns dos livros indicados pelos nossos desenvolvedores.
    E aí, que tal continuarmos essa corrente de conhecimento? Se você tem mais indicações, aproveita e já comenta aqui embaixo!

×
×
  • Create New...