import net.ktnx.mobileledger.utils.Digest;
import net.ktnx.mobileledger.utils.Globals;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.text.ParseException;
import java.util.ArrayList;
.compareTo(o2.getCurrency());
if (res != 0)
return res;
+ res = o1.getComment()
+ .compareTo(o2.getComment());
+ if (res != 0)
+ return res;
return Float.compare(o1.getAmount(), o2.getAmount());
}
};
private Integer id;
private Date date;
private String description;
+ private String comment;
private ArrayList<LedgerTransactionAccount> accounts;
private String dataHash;
private boolean dataLoaded;
this.description = description;
dataHash = null;
}
+ public String getComment() {
+ return comment;
+ }
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
public int getId() {
return id;
}
try {
Digest sha = new Digest(DIGEST_TYPE);
StringBuilder data = new StringBuilder();
+ data.append("ver1");
data.append(profile);
data.append(getId());
data.append('\0');
data.append(getDescription());
data.append('\0');
+ data.append(getComment());
+ data.append('\0');
data.append(Globals.formatLedgerDate(getDate()));
data.append('\0');
for (LedgerTransactionAccount item : accounts) {
data.append(item.getComment());
}
sha.update(data.toString()
- .getBytes(Charset.forName("UTF-8")));
+ .getBytes(StandardCharsets.UTF_8));
dataHash = sha.digestToHexString();
}
catch (NoSuchAlgorithmException e) {
return;
try (Cursor cTr = db.rawQuery(
- "SELECT date, description from transactions WHERE profile=? AND id=?",
+ "SELECT date, description, comment from transactions WHERE profile=? AND id=?",
new String[]{profile, String.valueOf(id)}))
{
if (cTr.moveToFirst()) {
catch (ParseException e) {
e.printStackTrace();
throw new RuntimeException(
- String.format("Error parsing date '%s' from " + "transacion %d",
+ String.format("Error parsing date '%s' from " + "transaction %d",
dateString, id));
}
description = cTr.getString(1);
+ comment = cTr.getString(2);
+
+ accounts.clear();
- try (Cursor cAcc = db.rawQuery("SELECT account_name, amount, currency, comment FROM " +
- "transaction_accounts WHERE " +
- "profile=? AND transaction_id = ?",
+ try (Cursor cAcc = db.rawQuery(
+ "SELECT account_name, amount, currency, comment FROM " +
+ "transaction_accounts WHERE profile=? AND transaction_id = ?",
new String[]{profile, String.valueOf(id)}))
{
while (cAcc.moveToNext()) {
}
public String getDataHash() {
+ fillDataHash();
return dataHash;
}
public void finishLoading() {