]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/db/TemplateAccount.java
fix field/accessor type mismatch
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / db / TemplateAccount.java
index 92b290805ba3866689971846082e2dccbb046df0..949bd9da9127d5f48f3015951dea37b4670d2238 100644 (file)
@@ -26,22 +26,21 @@ import androidx.room.PrimaryKey;
 
 import org.jetbrains.annotations.NotNull;
 
-@Entity(tableName = "pattern_accounts",
-        indices = {@Index(name = "un_pattern_accounts", unique = true, value = "id"),
-                   @Index(name = "fk_pattern_accounts_pattern", value = "pattern_id"),
-                   @Index(name = "fk_pattern_accounts_currency", value = "currency")
-        }, foreignKeys = {@ForeignKey(childColumns = "pattern_id", parentColumns = "id",
-                                      entity = TemplateHeader.class),
+@Entity(tableName = "template_accounts",
+        indices = {@Index(name = "fk_template_accounts_template", value = "template_id"),
+                   @Index(name = "fk_template_accounts_currency", value = "currency")
+        }, foreignKeys = {@ForeignKey(childColumns = "template_id", parentColumns = "id",
+                                      entity = TemplateHeader.class, onDelete = ForeignKey.CASCADE,
+                                      onUpdate = ForeignKey.RESTRICT),
                           @ForeignKey(childColumns = "currency", parentColumns = "id",
-                                      entity = Currency.class)
+                                      entity = Currency.class, onDelete = ForeignKey.RESTRICT,
+                                      onUpdate = ForeignKey.RESTRICT)
 })
 public class TemplateAccount extends TemplateBase {
-    @NonNull
-    @ColumnInfo(name = "pattern_id")
-    private Long patternId;
     @PrimaryKey(autoGenerate = true)
-    @NotNull
-    private Long id;
+    private long id;
+    @ColumnInfo(name = "template_id")
+    private long templateId;
     @ColumnInfo(name = "acc")
     private String accountName;
     @ColumnInfo(name = "position")
@@ -49,8 +48,8 @@ public class TemplateAccount extends TemplateBase {
     private Long position;
     @ColumnInfo(name = "acc_match_group")
     private Integer accountNameMatchGroup;
-    @ColumnInfo(name = "currency")
-    private Integer currency;
+    @ColumnInfo
+    private Long currency;
     @ColumnInfo(name = "currency_match_group")
     private Integer currencyMatchGroup;
     @ColumnInfo(name = "amount")
@@ -63,15 +62,29 @@ public class TemplateAccount extends TemplateBase {
     private Integer accountCommentMatchGroup;
     @ColumnInfo(name = "negate_amount")
     private Boolean negateAmount;
-    public TemplateAccount(@NotNull Long id, @NonNull Long patternId, @NonNull Long position) {
+    public TemplateAccount(@NotNull Long id, @NonNull Long templateId, @NonNull Long position) {
         this.id = id;
-        this.patternId = patternId;
+        this.templateId = templateId;
         this.position = position;
     }
-    public Long getId() {
+    public TemplateAccount(TemplateAccount o) {
+        id = o.id;
+        templateId = o.templateId;
+        accountName = o.accountName;
+        position = o.position;
+        accountNameMatchGroup = o.accountNameMatchGroup;
+        currency = o.currency;
+        currencyMatchGroup = o.currencyMatchGroup;
+        amount = o.amount;
+        amountMatchGroup = o.amountMatchGroup;
+        accountComment = o.accountComment;
+        accountCommentMatchGroup = o.accountCommentMatchGroup;
+        negateAmount = o.negateAmount;
+    }
+    public long getId() {
         return id;
     }
-    public void setId(Long id) {
+    public void setId(long id) {
         this.id = id;
     }
     public Boolean getNegateAmount() {
@@ -80,11 +93,11 @@ public class TemplateAccount extends TemplateBase {
     public void setNegateAmount(Boolean negateAmount) {
         this.negateAmount = negateAmount;
     }
-    public @NotNull Long getPatternId() {
-        return patternId;
+    public long getTemplateId() {
+        return templateId;
     }
-    public void setPatternId(@NonNull Long patternId) {
-        this.patternId = patternId;
+    public void setTemplateId(long templateId) {
+        this.templateId = templateId;
     }
     @NonNull
     public String getAccountName() {
@@ -109,12 +122,19 @@ public class TemplateAccount extends TemplateBase {
     public void setAccountNameMatchGroup(Integer accountNameMatchGroup) {
         this.accountNameMatchGroup = accountNameMatchGroup;
     }
-    public Integer getCurrency() {
+    public Long getCurrency() {
         return currency;
     }
-    public void setCurrency(Integer currency) {
+    public void setCurrency(Long currency) {
         this.currency = currency;
     }
+    public Currency getCurrencyObject() {
+        if (currency == null || currency <= 0)
+            return null;
+        return DB.get()
+                 .getCurrencyDAO()
+                 .getByIdSync(currency);
+    }
     public Integer getCurrencyMatchGroup() {
         return currencyMatchGroup;
     }
@@ -145,4 +165,11 @@ public class TemplateAccount extends TemplateBase {
     public void setAccountCommentMatchGroup(Integer accountCommentMatchGroup) {
         this.accountCommentMatchGroup = accountCommentMatchGroup;
     }
+    public TemplateAccount createDuplicate(TemplateHeader header) {
+        TemplateAccount dup = new TemplateAccount(this);
+        dup.id = 0;
+        dup.templateId = header.getId();
+
+        return dup;
+    }
 }