diff --git a/app/controllers/marketplace.js b/app/controllers/marketplace.js index 5f8083b0b..91e6ee6dc 100644 --- a/app/controllers/marketplace.js +++ b/app/controllers/marketplace.js @@ -27,9 +27,10 @@ var MarketplaceController = Ember.ObjectController.extend({ transactionSelected: isSelected('marketplace.transactions', 'credits', 'debits', 'holds', 'refunds', 'reversals'), orderSelected: isSelected('marketplace.orders', 'orders'), + settlementSelected: isSelected('marketplace.settlements', 'settlement'), + disputeSelected: isSelected('marketplace.disputes', 'dispute'), customerSelected: isSelected('marketplace.customers', 'customer'), fundingInstrumentSelected: isSelected('marketplace.funding_instruments', 'bank_accounts', 'cards'), - disputeSelected: isSelected('marketplace.disputes', 'dispute'), logSelected: isSelected('marketplace.logs', 'log'), invoiceSelected: isSelected('marketplace.invoices', 'invoice'), settingSelected: isSelected('marketplace.settings'), diff --git a/app/controllers/marketplace/settlements.js b/app/controllers/marketplace/settlements.js new file mode 100644 index 000000000..0e82d77ef --- /dev/null +++ b/app/controllers/marketplace/settlements.js @@ -0,0 +1,16 @@ +import Ember from "ember"; + +var MarketplaceSettlementsController = Ember.ObjectController.extend({ + needs: ['marketplace'], + resultsLoader: Ember.computed.oneWay("model"), + actions: { + changeDateFilter: function(startTime, endTime) { + this.get("resultsLoader").setProperties({ + endTime: endTime, + startTime: startTime + }); + }, + } +}); + +export default MarketplaceSettlementsController; diff --git a/app/models/bk/account.coffee b/app/models/bk/account.coffee new file mode 100644 index 000000000..36c12c0d2 --- /dev/null +++ b/app/models/bk/account.coffee @@ -0,0 +1,8 @@ +`import Ember from "ember";` +`import BkAccount from "balanced-addon-models/models/account";` + +Account = BkAccount.extend( + routeName: "account" +) + +`export default Account;` diff --git a/app/models/bk/bank-account.coffee b/app/models/bk/bank-account.coffee index 19188a3c6..bd20b0496 100644 --- a/app/models/bk/bank-account.coffee +++ b/app/models/bk/bank-account.coffee @@ -1,7 +1,7 @@ `import Ember from "ember";` -`import BankAccount from "balanced-addon-models/models/bank-account";` +`import BkBankAccount from "balanced-addon-models/models/bank-account";` -BkBankAccount = BankAccount.extend( +BankAccount = BkBankAccount.extend( ) -`export default BkBankAccount;` +`export default BankAccount;` diff --git a/app/models/bk/settlement.coffee b/app/models/bk/settlement.coffee new file mode 100644 index 000000000..e937db708 --- /dev/null +++ b/app/models/bk/settlement.coffee @@ -0,0 +1,8 @@ +`import Ember from "ember";` +`import BkSettlement from "balanced-addon-models/models/settlement";` + +Settlement = BkSettlement.extend( + routeName: "settlement" +) + +`export default Settlement;` diff --git a/app/models/customer.js b/app/models/customer.js index 2a347ed63..bc4556a45 100644 --- a/app/models/customer.js +++ b/app/models/customer.js @@ -3,6 +3,7 @@ import Model from "./core/model"; import Computed from "balanced-dashboard/utils/computed"; import FundingInstrumentsResultsLoader from "./results-loaders/funding-instruments"; import TransactionsResultsLoader from "./results-loaders/transactions"; +import AccountsResultsLoader from "./results-loaders/accounts"; var CUSTOMER_TYPES = { BUSINESS: 'Business', @@ -73,6 +74,12 @@ var Customer = Model.extend({ }, attributes); return TransactionsResultsLoader.create(attributes); }, + getAccountsLoader: function(attributes) { + attributes = _.extend({ + path: this.get("accounts_uri"), + }, attributes); + return AccountsResultsLoader.create(attributes); + }, type: function() { return (this.get('ein') || this.get('business_name')) ? CUSTOMER_TYPES.BUSINESS : CUSTOMER_TYPES.PERSON; diff --git a/app/models/results-loaders/accounts.js b/app/models/results-loaders/accounts.js new file mode 100644 index 000000000..27c0cfbde --- /dev/null +++ b/app/models/results-loaders/accounts.js @@ -0,0 +1,8 @@ +import BaseResultsLoader from "./base"; +import Account from "../bk/account"; + +var AccountsResultsLoader = BaseResultsLoader.extend({ + resultsType: Account, +}); + +export default AccountsResultsLoader; diff --git a/app/models/results-loaders/settlements.js b/app/models/results-loaders/settlements.js new file mode 100644 index 000000000..98085e166 --- /dev/null +++ b/app/models/results-loaders/settlements.js @@ -0,0 +1,8 @@ +import BaseResultsLoader from "./base"; +import Settlement from "../bk/settlement"; + +var SettlementsResultsLoader = BaseResultsLoader.extend({ + resultsType: Settlement, +}); + +export default SettlementsResultsLoader; diff --git a/app/router.coffee b/app/router.coffee index 24796887c..2c8f5fe07 100644 --- a/app/router.coffee +++ b/app/router.coffee @@ -61,6 +61,9 @@ Router.map -> this.route("customers") this.resource('customer', path: '/customers/:item_id') + this.route("settlements") + this.resource('settlement', path: '/settlements/:item_id') + this.route("disputes") this.resource('dispute', path: '/disputes/:item_id') diff --git a/app/routes/customer.js b/app/routes/customer.js index 38f77a52f..805c95341 100644 --- a/app/routes/customer.js +++ b/app/routes/customer.js @@ -1,5 +1,6 @@ import ModelRoute from "./model"; import Customer from "../models/customer"; +import LegacyResultsLoaderWrapper from "balanced-dashboard/utils/legacy-results-loader-wrapper"; var CustomerRoute = ModelRoute.extend({ title: 'Customer', @@ -8,6 +9,12 @@ var CustomerRoute = ModelRoute.extend({ setupController: function(controller, customer) { this._super(controller, customer); + var store = this.container.lookup("controller:marketplace").get("store"); + store.fetchCollection("account", customer.get("accounts_uri"), { limit: 10 }).then(function(collection) { + var wrapper = LegacyResultsLoaderWrapper.create({collection: collection}); + controller.set("accountsResultsLoader", wrapper); + }); + controller.setProperties({ fundingInstrumentsResultsLoader: customer.getFundingInstrumentsLoader({ limit: 10 diff --git a/app/routes/marketplace/settlements.js b/app/routes/marketplace/settlements.js new file mode 100644 index 000000000..e6f3282b4 --- /dev/null +++ b/app/routes/marketplace/settlements.js @@ -0,0 +1,15 @@ +import AuthRoute from "../auth"; +import LegacyResultsLoaderWrapper from "balanced-dashboard/utils/legacy-results-loader-wrapper"; + +var MarketplaceSettlementsRoute = AuthRoute.extend({ + pageTitle: 'Settlements', + model: function() { + var store = this.container.lookup("controller:marketplace").get("store"); + return store.fetchCollection("settlement", "/settlements", { limit: 50 }).then(function(collection) { + var wrapper = LegacyResultsLoaderWrapper.create({collection: collection}); + return wrapper; + }); + }, +}); + +export default MarketplaceSettlementsRoute; diff --git a/app/routes/settlement.js b/app/routes/settlement.js new file mode 100644 index 000000000..8fce45a16 --- /dev/null +++ b/app/routes/settlement.js @@ -0,0 +1,13 @@ +import ModelRoute from "./model"; +import Settlement from "../models/bk/settlement"; + +var SettlementRoute = ModelRoute.extend({ + title: 'Settlement', + modelObject: Settlement, + marketplaceUri: 'settlements_uri', + setupController: function(controller, customer) { + this._super(controller, customer); + } +}); + +export default SettlementRoute; diff --git a/app/stores/balanced.coffee b/app/stores/balanced.coffee index 8ca9c450a..88460ff12 100644 --- a/app/stores/balanced.coffee +++ b/app/stores/balanced.coffee @@ -4,6 +4,8 @@ BalancedStore = Store.extend( modelMaps: bank_account: "model:bk/bank-account" customer: "model:bk/customer" + account: "model:bk/customer" + settlement: "model:bk/customer" ) `export default BalancedStore;` diff --git a/app/templates/customer.hbs b/app/templates/customer.hbs index 5404e1d15..5e9f845ae 100644 --- a/app/templates/customer.hbs +++ b/app/templates/customer.hbs @@ -35,6 +35,11 @@ {{view "results/embedded-funding-instruments-table" loader=fundingInstrumentsResultsLoader}} +