Milhas ou Dinheiro
23/11/2016
angular milhas gol tam multiplusÉ uma aplicação bem simples, mas tem sido bem útil pramim e pra mais algumas pessoas. Feito em Angular que calcula o valor em reais de passagens que podem ser compradas com dinheiro, milhas ou uma combinação dos dois.
Geralmente, tanto nas pesquisas feitas no site da Gol/Smiles como na Latam/Multiplus, são exibidos valores de passagens com pontos:
- Somente pontos. Ex.: 25000 pontos
- Poucos pontos + muitos reais. Ex.: 1000 pontos + 500 reais
- Poucos pontos + muitos reais. Ex.: 5000 pontos + 300 reais
- Poucos pontos + muitos reais. Ex.: 20000 pontos + 50 reais
Além disso, é possível pesquisar o valor da passagem em reais.
As contas a serem feitas são bem simples, mas dão uma trabalheira. Então, esse código bem simples deu uma boa ajuda.
Foi utilizado apenas AngularJS. Talvez, no futuro, eu venha a implementar algum CSS só pra deixar mais bonito.
O comparadorApp.js é totalmente dispensável: ele só foi usado para definir os valores iniciais. O restante é html simples: campos de input com valores ligados aos cálculos pelo próprio AngularJS, entre {{ e }}.
Abaixo, os arquivos simplificados. Na aplicação, tem uns CSSs e os campos estão numa tabela. Além disso, lá tem dois controllers, um para Smiles e outro para Multiplus.
Se quiser, o download dos fontes está aqui ou veja no github.
milhas-ou-dinheiro.html
<script src="comparadorApp.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> <div ng-app="comparadorApp"> <div ng-controller="smilesCtrl"> <p> <label>Preço de 1 mil pontos:</label> <input type="number" ng-model="precoMilhas"> </p> <p> <label>zero milhas, só dinheiro</label> <input type="number" ng-model="preco" placeholder="Em reais"> <span class="p" id="psD">R${{preco}}</span> </p> <p> <label>só milhas, zero dinheiro</label> <input type="number" ng-model="pontos" placeholder="Em múltiplos de 1000"> <span class="p" id="psM">R${{pontos * precoMilhas}}</span> </p> <p>Pontos mais milhas</p> <p> <label>Pontos</label> <input type="number" ng-model="pontosA"> <label>Reais</label> <input type="number" ng-model="precoA"> <span class="p" id="psA">R${{pontosA * precoMilhas + precoA}}</span> </p> <p> <label>Pontos</label> <input type="number" ng-model="pontosB"></td> <label>Reais</label> <input type="number" ng-model="precoB" placeholder="Em reais"> <span class="p" id="psB">R${{pontosB * precoMilhas + precoB}}</span> <p> <label>Pontos</label> <input type="number" ng-model="pontosC" placeholder="Em múltiplos de 1000"> <label>Reais</label> <input type="number" ng-model="precoC" placeholder="Em reais"> <span class="p" id="psC">R${{pontosC * precoMilhas + precoC}}</span> </p> </div> </div>
comparadorApp.js
Conforme escrevi acima, esse arquivo é totalmente dispensável: ele só foi usado para definir os valores iniciais.
var app = angular.module('comparadorApp', []); app.controller('smilesCtrl', function($scope,$http) { $scope.precoMilhas = 35; $scope.pontos = 20; $scope.pontosA = 1; $scope.pontosB = 5; $scope.pontosC = 19; $scope.preco = 668; $scope.precoA = 602; $scope.precoB = 373; $scope.precoC = 48; });