2017-04-06 19:13:54 +02:00
|
|
|
|
angular
|
|
|
|
|
.module('bit.organization')
|
|
|
|
|
|
2017-04-08 22:42:05 +02:00
|
|
|
|
.controller('organizationBillingController', function ($scope, apiService, $state, $uibModal) {
|
2017-04-06 22:52:25 +02:00
|
|
|
|
$scope.charges = [];
|
|
|
|
|
$scope.paymentSource = null;
|
|
|
|
|
$scope.plan = null;
|
|
|
|
|
$scope.subscription = null;
|
|
|
|
|
$scope.loading = true;
|
2017-04-06 19:13:54 +02:00
|
|
|
|
|
2017-04-06 22:52:25 +02:00
|
|
|
|
$scope.$on('$viewContentLoaded', function () {
|
2017-04-10 17:30:23 +02:00
|
|
|
|
load();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$scope.changePayment = function () {
|
|
|
|
|
var modal = $uibModal.open({
|
|
|
|
|
animation: true,
|
|
|
|
|
templateUrl: 'app/organization/views/organizationBillingChangePayment.html',
|
|
|
|
|
controller: 'organizationBillingChangePaymentController',
|
|
|
|
|
resolve: {
|
|
|
|
|
existingPaymentMethod: function () {
|
|
|
|
|
return $scope.paymentSource ? $scope.paymentSource.description : null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
modal.result.then(function () {
|
|
|
|
|
load();
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
$scope.cancel = function () {
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function load() {
|
2017-04-06 22:52:25 +02:00
|
|
|
|
apiService.organizations.getBilling({ id: $state.params.orgId }, function (org) {
|
|
|
|
|
$scope.loading = false;
|
2017-04-10 17:30:23 +02:00
|
|
|
|
$scope.noSubscription = org.PlanType === 0;
|
2017-04-06 22:52:25 +02:00
|
|
|
|
|
|
|
|
|
$scope.plan = {
|
|
|
|
|
name: org.Plan,
|
|
|
|
|
type: org.PlanType,
|
2017-04-10 16:43:18 +02:00
|
|
|
|
seats: org.Seats
|
2017-04-06 22:52:25 +02:00
|
|
|
|
};
|
|
|
|
|
|
2017-04-10 17:30:23 +02:00
|
|
|
|
$scope.subscription = null;
|
|
|
|
|
if (org.Subscription) {
|
|
|
|
|
$scope.subscription = {
|
|
|
|
|
trialEndDate: org.Subscription.TrialEndDate,
|
|
|
|
|
cancelNext: org.Subscription.CancelAtNextBillDate,
|
|
|
|
|
status: org.Subscription.Status
|
|
|
|
|
};
|
|
|
|
|
}
|
2017-04-06 22:52:25 +02:00
|
|
|
|
|
2017-04-10 17:30:23 +02:00
|
|
|
|
$scope.nextBill = null;
|
|
|
|
|
if (org.UpcomingInvoice) {
|
|
|
|
|
$scope.nextBill = {
|
|
|
|
|
date: org.UpcomingInvoice.Date,
|
|
|
|
|
amount: org.UpcomingInvoice.Amount
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (org.Subscription && org.Subscription.Items) {
|
2017-04-06 22:52:25 +02:00
|
|
|
|
$scope.subscription.items = [];
|
|
|
|
|
for (var i = 0; i < org.Subscription.Items.length; i++) {
|
|
|
|
|
$scope.subscription.items.push({
|
|
|
|
|
amount: org.Subscription.Items[i].Amount,
|
|
|
|
|
name: org.Subscription.Items[i].Name,
|
|
|
|
|
interval: org.Subscription.Items[i].Interval,
|
|
|
|
|
qty: org.Subscription.Items[i].Quantity
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-04-10 17:30:23 +02:00
|
|
|
|
$scope.paymentSource = null;
|
2017-04-06 22:52:25 +02:00
|
|
|
|
if (org.PaymentSource) {
|
|
|
|
|
$scope.paymentSource = {
|
|
|
|
|
type: org.PaymentSource.Type,
|
|
|
|
|
description: org.PaymentSource.Description,
|
|
|
|
|
cardBrand: org.PaymentSource.CardBrand
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var charges = [];
|
|
|
|
|
for (var i = 0; i < org.Charges.length; i++) {
|
|
|
|
|
charges.push({
|
|
|
|
|
date: org.Charges[i].CreatedDate,
|
|
|
|
|
paymentSource: org.Charges[i].PaymentSource ? org.Charges[i].PaymentSource.Description : '-',
|
|
|
|
|
amount: org.Charges[i].Amount,
|
|
|
|
|
status: org.Charges[i].Status,
|
|
|
|
|
failureMessage: org.Charges[i].FailureMessage,
|
|
|
|
|
refunded: org.Charges[i].Refunded,
|
|
|
|
|
partiallyRefunded: org.Charges[i].PartiallyRefunded,
|
|
|
|
|
refundedAmount: org.Charges[i].RefundedAmount
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
$scope.charges = charges;
|
|
|
|
|
});
|
2017-04-10 17:30:23 +02:00
|
|
|
|
}
|
2017-04-06 19:13:54 +02:00
|
|
|
|
});
|