Kaynağa Gözat

Fix edit allowance toggle to working state.

Lee Morgan 11 ay önce
ebeveyn
işleme
6f3e65f9e2

+ 1 - 0
src/views/js/Format.js

@@ -1,5 +1,6 @@
 export default class Format{
     static currency(num){
+        num /= 100;
         return "$" + num.toFixed(2);
     }
 

+ 7 - 5
src/views/js/data/Account.js

@@ -28,7 +28,7 @@ export default class Account{
     }
 
     get balance(){
-        return Format.centsToDollars(this._balance);
+        return this._balance;
     }
 
     get transactions(){
@@ -86,15 +86,17 @@ export default class Account{
                 total += this._transactions[i].rawAmount;
             }
         }
-        return Format.centsToDollars(total);
+        return total;
     }
 
     incomeTotal(){
         let income = 0;
         for(let i = 0; i < this._income.length; i++){
-            if(this._income.active) income += this._income[i].amountRaw;
+            if(this._income[i].active){
+                income += this._income[i].amountRaw;
+            }
         }
-        return Format.centsToDollars(income);
+        return income;
     }
 
     billsTotal(){
@@ -102,7 +104,7 @@ export default class Account{
         for(let i = 0; i < this._bills.length; i++){
             bills += this._bills[i].amount;
         }
-        return Format.centsToDollars(bills);
+        return bills;
     }
 
     static async create(name, balance){

+ 4 - 13
src/views/js/data/Allowance.js

@@ -22,11 +22,7 @@ export default class Allowance{
     }
 
     set amount(v){
-        if(this._isPercent){
-            this._amount = v;
-        }else{
-            this._amount = Format.dollarsToCents(v);
-        }
+        return this._amount;
     }
 
     get isPercent(){
@@ -51,9 +47,9 @@ export default class Allowance{
         this._active = v;
     }
 
-    amountInDollars(income){
-        if(this._isPercent) return Format.centsToDollars(income * (this._amount / 100));
-        return Format.centsToDollars(this._amount);
+    currencyAmount(income){
+        if(this._isPercent) return income * (this._amount / 100);
+        return this._amount;
     }
 
     rawAmount(){
@@ -61,11 +57,6 @@ export default class Allowance{
         return Format.centsToDollars(this._amount);
     }
 
-    displayAmount(income){
-        if(this._isPercent) return this._amount;
-        return Format.centsToDollars(income * (this._amount / 100));
-    }
-
     static create(name, amount, isPercent){
         return new Allowance(
             crypto.randomUUID(),

+ 1 - 1
src/views/js/data/Bill.js

@@ -21,7 +21,7 @@ export default class Bill{
     }
 
     get amount(){
-        return Format.centsToDollars(this._amount);
+        return this._amount;
     }
 
     set amount(v){

+ 0 - 4
src/views/js/data/Income.js

@@ -21,10 +21,6 @@ export default class Income{
     }
 
     get amount(){
-        return Format.centsToDollars(this._amount);
-    }
-
-    get amountRaw(){
         return this._amount;
     }
 

+ 1 - 1
src/views/js/data/Transaction.js

@@ -59,7 +59,7 @@ export default class Transaction{
     }
 
     get amount(){
-        return Format.centsToDollars(this._amount);
+        return this._amount;
     }
 
     get rawAmount(){

+ 8 - 3
src/views/js/pages/EditAllowance.js

@@ -1,10 +1,12 @@
 import Page from "./Page.js";
 import Elem from "../Elem.js";
+import Format from "../Format.js";
 
 export default class EditAllowance extends Page{
     constructor(allowance){
         super("EditAllowance", ["home", "back-viewAllowances", "logout"]);
         this.incomeTotal = user.account.incomeTotal();
+        this.isPercent = allowance.isPercent;
 
         this.render(allowance);
     }
@@ -22,15 +24,17 @@ export default class EditAllowance extends Page{
     }
 
     updateAmount(allowance){
-        let text, titleText, step;
+        let text, titleText, step, value;
         if(event.target.checked){
             text = "Amount (%)";
             titleText = "(Percent of Income)";
             step = "1";
+            value = allowance.rawAmount();
         }else{
             text = "Amount ($)";
             titleText = "(Fixed Amount)";
             step = "0.01";
+            value = Format.centsToDollars(allowance.currencyAmount(this.incomeTotal));
         }
 
         new Elem(this.container.querySelector("h2"))
@@ -44,7 +48,7 @@ export default class EditAllowance extends Page{
             .append(new Elem("input")
                 .type("number")
                 .addClass("amount")
-                .value(allowance.displayAmount(this.incomeTotal))
+                .value(value)
                 .min("0")
                 .step(step)
                 .required()
@@ -58,6 +62,7 @@ export default class EditAllowance extends Page{
     }
 
     render(allowance){
+        let value = allowance.isPercent ? allowance.rawAmount() : Format.currency(allowance.currencyAmount(this.incomeTotal));
         new Elem("form")
             .addClass("standardForm")
             .onsubmit(()=>{this.submit(allowance)})
@@ -98,7 +103,7 @@ export default class EditAllowance extends Page{
                 .append(new Elem("input")
                     .type("number")
                     .addClass("amount")
-                    .value(allowance.displayAmount(this.incomeTotal))
+                    .value(value)
                     .min("0")
                     .step(allowance.isPercent ? "1" : "0.01")
                     .required()

+ 2 - 1
src/views/js/pages/EditIncome.js

@@ -1,5 +1,6 @@
 import Page from "./Page.js";
 import Elem from "../Elem.js";
+import Format from "../Format.js";
 
 export default class EditIncome extends Page{
     constructor(income){
@@ -49,7 +50,7 @@ export default class EditIncome extends Page{
                 .append(new Elem("input")
                     .type("number")
                     .addClass("amount")
-                    .value(income.amount)
+                    .value(Format.centsToDollars(income.amount))
                     .step("0.01")
                     .min("0")
                     .required()

+ 1 - 1
src/views/js/pages/ViewAllowances.js

@@ -43,7 +43,7 @@ export default class ViewAllowances extends Page{
             if(!showArchived && !allowances[i].active) continue;
             const spent = user.account.categorySpent(allowances[i]);
             const spentAsCurrency = Format.currency(spent);
-            const amount = allowances[i].amountInDollars(income);
+            const amount = allowances[i].currencyAmount(income);
             const amountAsCurrency = Format.currency(amount);
 
             new Elem("button")