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;
/ / f r o m w w w . j a v a 2 s . c o m
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