Android Open Source - makler Wallet Item






From Project

Back to project page makler.

License

The source code is released under:

GNU General Public License

If you think the Android project makler listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package pl.net.newton.Makler.db.wallet;
//from   w ww .j av a2s  . c  om
import java.math.BigDecimal;
import java.math.RoundingMode;

public class WalletItem {
  private Integer id;

  private Integer quantity;

  private String symbol, name;

  // commision of already made transactions
  private BigDecimal avgBuy, quote, totalCommision;

  WalletItem(WalletItemBuilder builder) {
    this.id = builder.getId();
    this.quantity = builder.getQuantity();
    this.symbol = builder.getSymbol();
    this.name = builder.getName();
    this.avgBuy = builder.getAvgBuy();
    this.quote = builder.getQuote();
    this.totalCommision = builder.getTotalCommision();
  }

  public Integer getId() {
    return id;
  }

  public Integer getQuantity() {
    return quantity;
  }

  public String getSymbol() {
    return symbol;
  }

  public String getName() {
    return name;
  }

  public BigDecimal getAvgBuy() {
    return avgBuy;
  }

  public BigDecimal getQuote() {
    return quote;
  }

  public BigDecimal getTotalCommision() {
    return totalCommision;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public void addTrans(Character type, Integer quantity, BigDecimal kurs, BigDecimal commison) {
    if (quantity == 0) {
      return;
    }
    if (type.equals('K')) {
      BigDecimal currentCost = this.avgBuy.multiply(new BigDecimal(this.quantity));
      BigDecimal transCost = kurs.multiply(new BigDecimal(quantity));
      BigDecimal avgCost = transCost.add(currentCost).divide(new BigDecimal(quantity + this.quantity),
          3, RoundingMode.HALF_UP);
      this.avgBuy = avgCost;
      this.quantity += quantity;
    } else if (type.equals('S')) {
      this.quantity -= quantity;
    }
    this.totalCommision = this.totalCommision.add(commison);
  }

  public BigDecimal gain() {
    return quote.multiply(new BigDecimal(quantity)).subtract(avgBuy.multiply(new BigDecimal(quantity)));
  }

  public BigDecimal gainWithCommision(BigDecimal commision, BigDecimal minCommision) {
    BigDecimal transValue = quote.multiply(new BigDecimal(quantity));
    BigDecimal comm = transValue.multiply(commision).divide(BigDecimal.valueOf(100));
    if (comm.compareTo(minCommision) == -1) {
      comm = minCommision;
    }
    return transValue.subtract(avgBuy.multiply(new BigDecimal(quantity))).subtract(comm)
        .subtract(totalCommision);
  }

  public BigDecimal getZmiana() {
    if (quote == null || avgBuy == null) {
      return null;
    }
    return quote.subtract(avgBuy).multiply(new BigDecimal(100)).divide(avgBuy, 3, RoundingMode.HALF_UP);
  }
}




Java Source Code List

pl.net.newton.Makler.common.Configuration.java
pl.net.newton.Makler.common.DateFormatUtils.java
pl.net.newton.Makler.common.GpwUtils.java
pl.net.newton.Makler.common.LocaleUtils.java
pl.net.newton.Makler.common.NumberFormatUtils.java
pl.net.newton.Makler.db.Constants.java
pl.net.newton.Makler.db.DbHelper.java
pl.net.newton.Makler.db.SqlConnection.java
pl.net.newton.Makler.db.alert.AlertBuilder.java
pl.net.newton.Makler.db.alert.AlertChecker.java
pl.net.newton.Makler.db.alert.AlertValue.java
pl.net.newton.Makler.db.alert.Alert.java
pl.net.newton.Makler.db.alert.AlertsDao.java
pl.net.newton.Makler.db.alert.Event.java
pl.net.newton.Makler.db.alert.Subject.java
pl.net.newton.Makler.db.quote.QuoteField.java
pl.net.newton.Makler.db.quote.Quote.java
pl.net.newton.Makler.db.quote.QuotesDao.java
pl.net.newton.Makler.db.service.SqlProvider.java
pl.net.newton.Makler.db.symbol.SymbolBuilder.java
pl.net.newton.Makler.db.symbol.Symbol.java
pl.net.newton.Makler.db.symbol.SymbolsDb.java
pl.net.newton.Makler.db.wallet.WalletDb.java
pl.net.newton.Makler.db.wallet.WalletItemBuilder.java
pl.net.newton.Makler.db.wallet.WalletItem.java
pl.net.newton.Makler.gpw.DefaultQuotesReceiver.java
pl.net.newton.Makler.gpw.QuotesReceiver.java
pl.net.newton.Makler.gpw.ex.GpwException.java
pl.net.newton.Makler.gpw.service.QuotesListener.java
pl.net.newton.Makler.gpw.service.QuotesService.java
pl.net.newton.Makler.gpw.service.UpdatingThread.java
pl.net.newton.Makler.history.BossaProvider.java
pl.net.newton.Makler.history.ByteArrayUtils.java
pl.net.newton.Makler.history.Cache.java
pl.net.newton.Makler.history.ChannelTools.java
pl.net.newton.Makler.history.EntryListWithIndexes.java
pl.net.newton.Makler.history.EntryList.java
pl.net.newton.Makler.history.HistoryFilter.java
pl.net.newton.Makler.history.HistoryProvider.java
pl.net.newton.Makler.history.service.HistoryListener.java
pl.net.newton.Makler.history.service.HistoryService.java
pl.net.newton.Makler.httpClient.Connector.java
pl.net.newton.Makler.receivers.QuotesAlarmReceiver.java
pl.net.newton.Makler.receivers.StartupReceiver.java
pl.net.newton.Makler.service.ServiceManager.java
pl.net.newton.Makler.ui.About.java
pl.net.newton.Makler.ui.AbstractActivity.java
pl.net.newton.Makler.ui.Alerts.java
pl.net.newton.Makler.ui.FullScreenGraph.java
pl.net.newton.Makler.ui.Preferences.java
pl.net.newton.Makler.ui.QuoteDetails.java
pl.net.newton.Makler.ui.Quotes.java
pl.net.newton.Makler.ui.Symbols.java
pl.net.newton.Makler.ui.WalletForm.java
pl.net.newton.Makler.ui.WalletItemCalculator.java
pl.net.newton.Makler.ui.Wallet.java
pl.net.newton.Makler.ui.adapter.AlertsAdapter.java
pl.net.newton.Makler.ui.adapter.QuotesAdapter.java
pl.net.newton.Makler.ui.adapter.SymbolsAdapter.java
pl.net.newton.Makler.ui.adapter.WalletAdapter.java
pl.net.newton.Makler.ui.graph.GraphView.java
pl.net.newton.Makler.ui.graph.MaklerGraphicalView.java