From 69161a3b62a4f99a16f53db181d9b533a92667fa Mon Sep 17 00:00:00 2001 From: abhay_1806 Date: Fri, 27 Jul 2018 16:57:06 +0530 Subject: [PATCH] feat: create financial activity mapping component Add create financial activity mapping component to define mapping between financial activity and account. --- .../accounting/accounting-routing.module.ts | 15 ++++- src/app/accounting/accounting.module.ts | 7 +- src/app/accounting/accounting.service.ts | 8 +++ ...-financial-activity-mapping.component.html | 35 ++++++++++ ...-financial-activity-mapping.component.scss | 3 + ...nancial-activity-mapping.component.spec.ts | 25 +++++++ ...te-financial-activity-mapping.component.ts | 65 +++++++++++++++++++ ...financial-activity-mappings.component.html | 2 +- .../financial-activity-mappings.component.ts | 1 - 9 files changed, 155 insertions(+), 6 deletions(-) create mode 100644 src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.html create mode 100644 src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.scss create mode 100644 src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.spec.ts create mode 100644 src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.ts diff --git a/src/app/accounting/accounting-routing.module.ts b/src/app/accounting/accounting-routing.module.ts index e70c84c63..2fd1115f1 100644 --- a/src/app/accounting/accounting-routing.module.ts +++ b/src/app/accounting/accounting-routing.module.ts @@ -8,6 +8,7 @@ import { ViewTransactionComponent } from './view-transaction/view-transaction.co import { CreateJournalEntryComponent } from './create-journal-entry/create-journal-entry.component'; import { SearchJournalEntryComponent } from './search-journal-entry/search-journal-entry.component'; import { FinancialActivityMappingsComponent } from './financial-activity-mappings/financial-activity-mappings.component'; +import { CreateFinancialActivityMappingComponent } from './financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component'; const routes: Routes = [ Route.withShell([ @@ -47,8 +48,18 @@ const routes: Routes = [ }, { path: 'financial-activity-mappings', - component: FinancialActivityMappingsComponent, - data: { title: extract('Financial Activity Mappings'), breadcrumb: 'Financial Activity Mappings' } + data: { title: extract('Financial Activity Mappings'), breadcrumb: 'Financial Activity Mappings' }, + children: [ + { + path: '', + component: FinancialActivityMappingsComponent + }, + { + path: 'create', + component: CreateFinancialActivityMappingComponent, + data: { title: extract('Create Financial Activity Mapping'), breadcrumb: 'Create' }, + } + ] } ] } diff --git a/src/app/accounting/accounting.module.ts b/src/app/accounting/accounting.module.ts index 8e3cc6f14..7da53a664 100644 --- a/src/app/accounting/accounting.module.ts +++ b/src/app/accounting/accounting.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { ReactiveFormsModule } from '@angular/forms'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CoreModule } from '../core/core.module'; import { AccountingComponent } from './accounting.component'; @@ -12,11 +12,13 @@ import { ViewJournalEntryComponent } from './view-journal-entry/view-journal-ent import { CreateJournalEntryComponent } from './create-journal-entry/create-journal-entry.component'; import { SearchJournalEntryComponent } from './search-journal-entry/search-journal-entry.component'; import { FinancialActivityMappingsComponent } from './financial-activity-mappings/financial-activity-mappings.component'; +import { CreateFinancialActivityMappingComponent } from './financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component'; @NgModule({ imports: [ CoreModule, CommonModule, + FormsModule, ReactiveFormsModule, AccountingRoutingModule ], @@ -28,7 +30,8 @@ import { FinancialActivityMappingsComponent } from './financial-activity-mapping ViewJournalEntryComponent, CreateJournalEntryComponent, SearchJournalEntryComponent, - FinancialActivityMappingsComponent + FinancialActivityMappingsComponent, + CreateFinancialActivityMappingComponent ], entryComponents: [ RevertTransactionComponent, diff --git a/src/app/accounting/accounting.service.ts b/src/app/accounting/accounting.service.ts index 1511b30fb..bda29d274 100644 --- a/src/app/accounting/accounting.service.ts +++ b/src/app/accounting/accounting.service.ts @@ -75,4 +75,12 @@ export class AccountingService { return this.http.get('/financialactivityaccounts'); } + getFinancialActivityAccountsTemplate() { + return this.http.get('/financialactivityaccounts/template'); + } + + createFinancialActivityAccount(financialActivityAccount: any) { + return this.http.post('/financialactivityaccounts', financialActivityAccount); + } + } diff --git a/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.html b/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.html new file mode 100644 index 000000000..55b91d45d --- /dev/null +++ b/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.html @@ -0,0 +1,35 @@ + +
+ + + +
+ + + + + {{ financialActivity.name }} + + + + + + + + {{ glAccount.name + ' (' + glAccount.glCode + ')' }} + + + + +
+ +
+ + + + + + +
+ +
diff --git a/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.scss b/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.scss new file mode 100644 index 000000000..aeead06e0 --- /dev/null +++ b/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.scss @@ -0,0 +1,3 @@ +.container { + width: 37rem; +} diff --git a/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.spec.ts b/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.spec.ts new file mode 100644 index 000000000..0f18d9dff --- /dev/null +++ b/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CreateFinancialActivityMappingComponent } from './create-financial-activity-mapping.component'; + +describe('CreateFinancialActivityMappingComponent', () => { + let component: CreateFinancialActivityMappingComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CreateFinancialActivityMappingComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CreateFinancialActivityMappingComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.ts b/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.ts new file mode 100644 index 000000000..363f79725 --- /dev/null +++ b/src/app/accounting/financial-activity-mappings/create-financial-activity-mapping/create-financial-activity-mapping.component.ts @@ -0,0 +1,65 @@ +import { Component, OnInit } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; + +import { AccountingService } from '../../accounting.service'; + +@Component({ + selector: 'mifosx-create-financial-activity-mapping', + templateUrl: './create-financial-activity-mapping.component.html', + styleUrls: ['./create-financial-activity-mapping.component.scss'] +}) +export class CreateFinancialActivityMappingComponent implements OnInit { + + financialActivityMappingForm: FormGroup; + glAccountOptions: any; + glAccountData: any; + financialActivityData: any; + + constructor(private formBuider: FormBuilder, + private accountingService: AccountingService) { } + + ngOnInit() { + this.createFinancialActivityMappingForm(); + this.getFinancialActivityAccountsTemplate(); + this.setGLAccountData(); + } + + createFinancialActivityMappingForm() { + this.financialActivityMappingForm = this.formBuider.group({ + 'financialActivityId': ['', Validators.required], + 'glAccountId': ['', Validators.required] + }); + } + + getFinancialActivityAccountsTemplate() { + this.accountingService.getFinancialActivityAccountsTemplate().subscribe((financialActivityAccountData: any) => { + this.glAccountOptions = financialActivityAccountData.glAccountOptions; + this.financialActivityData = financialActivityAccountData.financialActivityOptions; + }); + } + + setGLAccountData() { + this.financialActivityMappingForm.get('financialActivityId').valueChanges.subscribe(financialActivityId => { + switch (financialActivityId) { + case 100: + case 101: + case 102: + case 103: this.glAccountData = this.glAccountOptions.assetAccountOptions; + break; + case 200: + case 201: this.glAccountData = this.glAccountOptions.liabilityAccountOptions; + break; + case 300: this.glAccountData = this.glAccountOptions.equityAccountOptions; + break; + } + }); + } + + submit() { + this.accountingService.createFinancialActivityAccount(this.financialActivityMappingForm.value) + .subscribe(response => { + console.log(response); + }); + } + +} diff --git a/src/app/accounting/financial-activity-mappings/financial-activity-mappings.component.html b/src/app/accounting/financial-activity-mappings/financial-activity-mappings.component.html index 5b86a279f..1949e07bf 100644 --- a/src/app/accounting/financial-activity-mappings/financial-activity-mappings.component.html +++ b/src/app/accounting/financial-activity-mappings/financial-activity-mappings.component.html @@ -1,5 +1,5 @@
-
diff --git a/src/app/accounting/financial-activity-mappings/financial-activity-mappings.component.ts b/src/app/accounting/financial-activity-mappings/financial-activity-mappings.component.ts index 75b9a15d8..c1d0ac5e3 100644 --- a/src/app/accounting/financial-activity-mappings/financial-activity-mappings.component.ts +++ b/src/app/accounting/financial-activity-mappings/financial-activity-mappings.component.ts @@ -35,7 +35,6 @@ export class FinancialActivityMappingsComponent implements OnInit { } }; this.dataSource.sort = this.sort; - console.log(financialActivityAccounts); }); }