diff --git a/src/app/accounting/accounting-routing.module.ts b/src/app/accounting/accounting-routing.module.ts index 8f497395f..17aa132aa 100644 --- a/src/app/accounting/accounting-routing.module.ts +++ b/src/app/accounting/accounting-routing.module.ts @@ -32,6 +32,7 @@ import { ViewAccountingRuleResolver } from './accounting-rules/view-rule/view-ru import { EditRuleComponent } from './accounting-rules/edit-rule/edit-rule.component'; import { PeriodicAccrualsComponent } from './periodic-accruals/periodic-accruals.component'; import { ProvisioningEntriesComponent } from './provisioning-entries/provisioning-entries.component'; +import { CreateProvisioningEntryComponent } from './provisioning-entries/create-provisioning-entry/create-provisioning-entry.component'; const routes: Routes = [ Route.withShell([ @@ -93,7 +94,7 @@ const routes: Routes = [ { path: 'edit', component: EditFinancialActivityMappingComponent, - data: { title: extract('Edit Financial Activity Mapping'), breadcrumb: 'Edit', routeParamBreadcrumb: false } + data: { title: extract('Edit Financial Activity Mapping'), breadcrumb: 'Edit', routeParamBreadcrumb: false } } ] } @@ -163,7 +164,7 @@ const routes: Routes = [ { path: 'edit', component: EditClosureComponent, - data: { title: extract('Edit Accounting Closure'), breadcrumb: 'Edit', routeParamBreadcrumb: false } + data: { title: extract('Edit Accounting Closure'), breadcrumb: 'Edit', routeParamBreadcrumb: false } } ] } @@ -197,7 +198,7 @@ const routes: Routes = [ { path: 'edit', component: EditRuleComponent, - data: { title: extract('Edit Accounting Rules'), breadcrumb: 'Edit', routeResolveBreadcrumb: false } + data: { title: extract('Edit Accounting Rules'), breadcrumb: 'Edit', routeResolveBreadcrumb: false } } ] } @@ -206,12 +207,22 @@ const routes: Routes = [ { path: 'periodic-accruals', component: PeriodicAccrualsComponent, - data: { title: extract('Periodic Accrual Accounting'), breadcrumb: 'Execute Periodic Accrual Accounting' } + data: { title: extract('Periodic Accrual Accounting'), breadcrumb: 'Execute Periodic Accrual Accounting' } }, { path: 'provisioning-entries', - component: ProvisioningEntriesComponent, - data: { title: extract('Provisioning Entries'), breadcrumb: 'Provisioning Entries' } + data: { title: extract('Provisioning Entries'), breadcrumb: 'Provisioning Entries' }, + children: [ + { + path: '', + component: ProvisioningEntriesComponent + }, + { + path: 'create', + component: CreateProvisioningEntryComponent, + data: { title: extract('Create Provisioning Entry'), breadcrumb: 'Create' } + } + ] } ] } diff --git a/src/app/accounting/accounting.module.ts b/src/app/accounting/accounting.module.ts index 92287f842..36f3be9d9 100644 --- a/src/app/accounting/accounting.module.ts +++ b/src/app/accounting/accounting.module.ts @@ -30,6 +30,7 @@ import { ViewRuleComponent } from './accounting-rules/view-rule/view-rule.compon import { EditRuleComponent } from './accounting-rules/edit-rule/edit-rule.component'; import { PeriodicAccrualsComponent } from './periodic-accruals/periodic-accruals.component'; import { ProvisioningEntriesComponent } from './provisioning-entries/provisioning-entries.component'; +import { CreateProvisioningEntryComponent } from './provisioning-entries/create-provisioning-entry/create-provisioning-entry.component'; @NgModule({ imports: [ @@ -64,7 +65,8 @@ import { ProvisioningEntriesComponent } from './provisioning-entries/provisionin ViewRuleComponent, EditRuleComponent, PeriodicAccrualsComponent, - ProvisioningEntriesComponent + ProvisioningEntriesComponent, + CreateProvisioningEntryComponent ], entryComponents: [ RevertTransactionComponent, diff --git a/src/app/accounting/accounting.service.ts b/src/app/accounting/accounting.service.ts index 8275880d0..3098c01ae 100644 --- a/src/app/accounting/accounting.service.ts +++ b/src/app/accounting/accounting.service.ts @@ -173,4 +173,8 @@ export class AccountingService { return this.http.get('/provisioningentries'); } + createProvisioningEntry(provisioningEntry: any) { + return this.http.post('/provisioningentries', provisioningEntry); + } + } diff --git a/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.html b/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.html new file mode 100644 index 000000000..1bdd95a10 --- /dev/null +++ b/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.html @@ -0,0 +1,36 @@ +
+ + + +
+ + + +
+ + + + + + + +
+ + Create Journal Entries + +
+ +
+ +
+ + + + + + +
+ +
+ +
diff --git a/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.scss b/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.scss new file mode 100644 index 000000000..d774f68da --- /dev/null +++ b/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.scss @@ -0,0 +1,3 @@ +.container { + max-width: 37rem; +} diff --git a/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.spec.ts b/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.spec.ts new file mode 100644 index 000000000..9465c2507 --- /dev/null +++ b/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CreateProvisioningEntryComponent } from './create-provisioning-entry.component'; + +describe('CreateProvisioningEntryComponent', () => { + let component: CreateProvisioningEntryComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CreateProvisioningEntryComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CreateProvisioningEntryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.ts b/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.ts new file mode 100644 index 000000000..bc6ae30f7 --- /dev/null +++ b/src/app/accounting/provisioning-entries/create-provisioning-entry/create-provisioning-entry.component.ts @@ -0,0 +1,43 @@ +import { Component, OnInit } from '@angular/core'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; + +import { AccountingService } from '../../accounting.service'; + +@Component({ + selector: 'mifosx-create-provisioning-entry', + templateUrl: './create-provisioning-entry.component.html', + styleUrls: ['./create-provisioning-entry.component.scss'] +}) +export class CreateProvisioningEntryComponent implements OnInit { + + minDate = new Date(2000, 0, 1); + maxDate = new Date(); + provisioningEntriesForm: FormGroup; + + constructor(private formBuilder: FormBuilder, + private accountingService: AccountingService) { } + + ngOnInit() { + this.createProvisioningEntriesForm(); + } + + createProvisioningEntriesForm() { + this.provisioningEntriesForm = this.formBuilder.group({ + 'date': ['', Validators.required], + 'createjournalentries': [false] + }); + } + + submit() { + const provisioningEntry = this.provisioningEntriesForm.value; + // TODO: Update once language and date settings are setup + provisioningEntry.locale = 'en'; + provisioningEntry.dateFormat = 'dd MMMM yyyy'; + provisioningEntry.date = '06 August 2018'; + this.accountingService.createProvisioningEntry(provisioningEntry) + .subscribe((response: any) => { + console.log(response); + }); + } + +} diff --git a/src/app/accounting/provisioning-entries/provisioning-entries.component.ts b/src/app/accounting/provisioning-entries/provisioning-entries.component.ts index acc5d9932..19dac5d51 100644 --- a/src/app/accounting/provisioning-entries/provisioning-entries.component.ts +++ b/src/app/accounting/provisioning-entries/provisioning-entries.component.ts @@ -24,10 +24,14 @@ export class ProvisioningEntriesComponent implements OnInit { getProvisioningEntries() { this.accountingService.getProvisioningEntries().subscribe((provisioningEntryData: any) => { - this.dataSource = new MatTableDataSource(provisioningEntryData); + this.dataSource = new MatTableDataSource(provisioningEntryData.pageItems); this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; }); } + applyFilter(filterValue: string) { + this.dataSource.filter = filterValue.trim().toLowerCase(); + } + }