From 15686384246b4f56567481d35402f440185be49e Mon Sep 17 00:00:00 2001
From: Muskan Khedia <36980003+muskankhedia@users.noreply.github.com>
Date: Tue, 7 Jul 2020 16:30:32 +0530
Subject: [PATCH] feat: add recurring deposits actions (undo-approval) (#1006)
Fixes: #1003
---
.../general-tab/general-tab.component.html | 36 +++++-----
src/app/clients/clients.module.ts | 4 +-
...ng-deposits-account-actions.component.html | 1 +
...ring-deposits-account-actions.component.ts | 2 +
...-recurring-deposits-account.component.html | 25 +++++++
...-recurring-deposits-account.component.scss | 3 +
...curring-deposits-account.component.spec.ts | 25 +++++++
...al-recurring-deposits-account.component.ts | 66 +++++++++++++++++++
...curring-deposits-account-view.component.ts | 1 +
.../recurring-deposits.module.ts | 4 +-
10 files changed, 147 insertions(+), 20 deletions(-)
create mode 100644 src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.html
create mode 100644 src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.scss
create mode 100644 src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.spec.ts
create mode 100644 src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.ts
diff --git a/src/app/clients/clients-view/general-tab/general-tab.component.html b/src/app/clients/clients-view/general-tab/general-tab.component.html
index e5b3d9df9..a9a10d704 100644
--- a/src/app/clients/clients-view/general-tab/general-tab.component.html
+++ b/src/app/clients/clients-view/general-tab/general-tab.component.html
@@ -437,24 +437,24 @@
| Actions |
-
-
-
-
-
+
+
+
+
+
+
+
|
diff --git a/src/app/clients/clients.module.ts b/src/app/clients/clients.module.ts
index 25ceacfd6..40f7a9f53 100644
--- a/src/app/clients/clients.module.ts
+++ b/src/app/clients/clients.module.ts
@@ -6,6 +6,7 @@ import { DatePipe } from '@angular/common';
import { ClientsRoutingModule } from './clients-routing.module';
import { SharedModule } from 'app/shared/shared.module';
import { PipesModule } from '../pipes/pipes.module';
+import { DirectivesModule } from '../directives/directives.module';
/** Custom Components */
import { ClientsComponent } from './clients.component';
@@ -35,7 +36,8 @@ import { ChargesOverviewComponent } from './clients-view/charges-overview/charge
imports: [
SharedModule,
ClientsRoutingModule,
- PipesModule
+ PipesModule,
+ DirectivesModule
],
declarations: [
ClientsComponent,
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/recurring-deposits-account-actions.component.html b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/recurring-deposits-account-actions.component.html
index dbb69224b..e3d7aaa59 100644
--- a/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/recurring-deposits-account-actions.component.html
+++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/recurring-deposits-account-actions.component.html
@@ -1 +1,2 @@
+
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/recurring-deposits-account-actions.component.ts b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/recurring-deposits-account-actions.component.ts
index 7fc8a394a..8a35ca8c2 100644
--- a/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/recurring-deposits-account-actions.component.ts
+++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/recurring-deposits-account-actions.component.ts
@@ -11,8 +11,10 @@ export class RecurringDepositsAccountActionsComponent {
/** Flag object to store possible actions and render appropriate UI to the user */
actions: {
'Activate': boolean
+ 'Undo Approval': boolean
} = {
'Activate': false,
+ 'Undo Approval': false
};
/**
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.html b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.html
new file mode 100644
index 000000000..e362b1d2c
--- /dev/null
+++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.scss b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.scss
new file mode 100644
index 000000000..d774f68da
--- /dev/null
+++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.scss
@@ -0,0 +1,3 @@
+.container {
+ max-width: 37rem;
+}
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.spec.ts b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.spec.ts
new file mode 100644
index 000000000..ce48d0b39
--- /dev/null
+++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { UndoApprovalRecurringDepositsAccountComponent } from './undo-approval-recurring-deposits-account.component';
+
+describe('UndoApprovalRecurringDepositsAccountComponent', () => {
+ let component: UndoApprovalRecurringDepositsAccountComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ UndoApprovalRecurringDepositsAccountComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(UndoApprovalRecurringDepositsAccountComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.ts b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.ts
new file mode 100644
index 000000000..77df22a4d
--- /dev/null
+++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component.ts
@@ -0,0 +1,66 @@
+/** Angular Imports */
+import { Component, OnInit } from '@angular/core';
+import { FormGroup, FormBuilder } from '@angular/forms';
+import { ActivatedRoute, Router } from '@angular/router';
+
+/** Custom Services */
+import { RecurringDepositsService } from '../../recurring-deposits.service';
+
+/**
+ * Undo Approval Recurring Deposits Account Component
+ */
+@Component({
+ selector: 'mifosx-undo-approval-recurring-deposits-account',
+ templateUrl: './undo-approval-recurring-deposits-account.component.html',
+ styleUrls: ['./undo-approval-recurring-deposits-account.component.scss']
+})
+export class UndoApprovalRecurringDepositsAccountComponent implements OnInit {
+
+ /** Undo Approval Recurring Deposits Account form. */
+ undoApprovalRecurringDepositsAccountForm: FormGroup;
+ /** Recurring Deposits Account Id */
+ accountId: any;
+
+ /**
+ * @param {FormBuilder} formBuilder Form Builder
+ * @param {SavingsService} recurringDepositsService Recurring Deposits Service
+ * @param {ActivatedRoute} route Activated Route
+ * @param {Router} router Router
+ */
+ constructor(private formBuilder: FormBuilder,
+ private recurringDepositsService: RecurringDepositsService,
+ private route: ActivatedRoute,
+ private router: Router) {
+ this.accountId = this.route.parent.snapshot.params['recurringDepositAccountId'];
+ }
+
+ /**
+ * Creates the undo-approval recurring deposits form.
+ */
+ ngOnInit() {
+ this.createUndoApprovalRecurringDepositsAccountForm();
+ }
+
+ /**
+ * Creates the undo-approval recurring deposits account form.
+ */
+ createUndoApprovalRecurringDepositsAccountForm() {
+ this.undoApprovalRecurringDepositsAccountForm = this.formBuilder.group({
+ 'note': ['']
+ });
+ }
+
+ /**
+ * Submits the form and undo the approval of recurring deposits account,
+ * if successful redirects to the recurring deposits account.
+ */
+ submit() {
+ const data = {
+ ...this.undoApprovalRecurringDepositsAccountForm.value,
+ };
+ this.recurringDepositsService.executeRecurringDepositsAccountCommand(this.accountId, 'undoapproval', data).subscribe(() => {
+ this.router.navigate(['../../'], { relativeTo: this.route });
+ });
+ }
+
+}
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.ts b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.ts
index d92bbcd2c..7a879a41a 100644
--- a/src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.ts
+++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.ts
@@ -78,6 +78,7 @@ export class RecurringDepositsAccountViewComponent implements OnInit {
doAction(name: string) {
switch (name) {
case 'Activate':
+ case 'Undo Approval':
this.router.navigate([`actions/${name}`], { relativeTo: this.route });
break;
}
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits.module.ts b/src/app/deposits/recurring-deposits/recurring-deposits.module.ts
index 86e41a677..d83ceeab6 100644
--- a/src/app/deposits/recurring-deposits/recurring-deposits.module.ts
+++ b/src/app/deposits/recurring-deposits/recurring-deposits.module.ts
@@ -27,6 +27,7 @@ import { RecurringDepositsAccountChargesStepComponent } from './recurring-deposi
import { RecurringDepositsAccountPreviewStepComponent } from './recurring-deposits-account-stepper/recurring-deposits-account-preview-step/recurring-deposits-account-preview-step.component';
import { RecurringDepositsAccountActionsComponent } from './recurring-deposits-account-actions/recurring-deposits-account-actions.component';
import { ActivateRecurringDepositsAccountComponent } from './recurring-deposits-account-actions/activate-recurring-deposits-account/activate-recurring-deposits-account.component';
+import { UndoApprovalRecurringDepositsAccountComponent } from './recurring-deposits-account-actions/undo-approval-recurring-deposits-account/undo-approval-recurring-deposits-account.component';
/**
* RecurringDeposits Module
@@ -58,7 +59,8 @@ import { ActivateRecurringDepositsAccountComponent } from './recurring-deposits-
RecurringDepositsAccountChargesStepComponent,
RecurringDepositsAccountPreviewStepComponent,
RecurringDepositsAccountActionsComponent,
- ActivateRecurringDepositsAccountComponent
+ ActivateRecurringDepositsAccountComponent,
+ UndoApprovalRecurringDepositsAccountComponent
],
providers: [DatePipe]
})