This is an automated email from the ASF dual-hosted git repository. myrle pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/fineract-cn-group-finance.git
commit 954d312963e7c7d06ca58a77fa4a9323411e9a86 Author: pembemiriam <pembe.mir...@skylabase.com> AuthorDate: Mon May 28 06:06:27 2018 +0100 continue accounting components --- .../add-journal-entry.component.html | 53 ++++++++++++++++ .../add-journal-entry.component.scss | 11 ++++ .../add-journal-entry.component.spec.ts | 25 ++++++++ .../add-journal-entry.component.ts | 34 +++++++++++ .../add-transaction-type.component.html | 19 ++++++ .../add-transaction-type.component.scss | 0 .../add-transaction-type.component.spec.ts | 25 ++++++++ .../add-transaction-type.component.ts | 15 +++++ .../chart-of-accounts.component.html | 47 +++++++++++++++ .../chart-of-accounts.component.scss | 11 ++++ .../chart-of-accounts.component.spec.ts | 25 ++++++++ .../chart-of-accounts.component.ts} | 23 ++++--- .../cheque-clearing/cheque-clearing.component.html | 70 ++++++++++++++++++++++ .../cheque-clearing/cheque-clearing.component.scss | 18 ++++++ .../cheque-clearing.component.spec.ts | 25 ++++++++ .../cheque-clearing.component.ts} | 29 +++++---- .../general-ledger/general-ledger.component.html | 48 ++++++--------- .../general-ledger/general-ledger.component.scss | 11 +--- .../general-ledger/general-ledger.component.ts | 15 ++--- .../accounting/payrolls/payrolls.component.html | 42 +++++++++++++ .../accounting/payrolls/payrolls.component.scss | 18 ++++++ .../accounting/payrolls/payrolls.component.spec.ts | 25 ++++++++ .../payrolls.component.ts} | 22 +++---- .../trial-balance/trial-balance.component.html | 42 +++++++++++++ .../trial-balance/trial-balance.component.scss | 18 ++++++ .../trial-balance/trial-balance.component.spec.ts | 25 ++++++++ .../trial-balance.component.ts} | 22 +++---- src/app/app.module.ts | 21 ++++++- src/app/dashboard/dashboard.component.html | 16 ++--- src/app/dashboard/dashboard.component.scss | 14 ++--- src/app/navbar/navbar.component.html | 10 +++- src/app/navbar/navbar.component.scss | 7 ++- src/styles.scss | 31 ++++++++++ 33 files changed, 698 insertions(+), 119 deletions(-) diff --git a/src/app/accounting/add-journal-entry/add-journal-entry.component.html b/src/app/accounting/add-journal-entry/add-journal-entry.component.html new file mode 100644 index 0000000..b9b7ccd --- /dev/null +++ b/src/app/accounting/add-journal-entry/add-journal-entry.component.html @@ -0,0 +1,53 @@ +<div class="page-space mat-elevation-z2"> + <p> + <a [routerLink]="['/navbar/accounting']">Accounting</a> + <span class="current-page">/ Add Journal Entry</span> +</p> + +<div class="main-div mat-elevation-z2"> + <h3 class="heading">Add Journal Entry</h3> + <form class="fineract-form"> + <mat-form-field> + <input matInput [matDatepicker]="picker" placeholder="Transaction date"> + <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle> + <mat-datepicker #picker></mat-datepicker> + </mat-form-field> +<br/> + <mat-form-field> + <input matInput placeholder="Transaction Type"> + </mat-form-field> +<br/> + <mat-form-field> + <input matInput placeholder="Note(optional)"> + </mat-form-field> +<br/> + <mat-form-field class="input"> + <textarea matInput placeholder="Leave a comment"></textarea> + </mat-form-field> + </form> + + <span>Affected Accounts</span> + <mat-card> + <span>Debit</span> + <mat-form-field> + <input matInput placeholder="Account"> + </mat-form-field> + <mat-form-field> + <input matInput placeholder="Amount"> + </mat-form-field> + <button mat-raised-button color="warn"><mat-icon>clear</mat-icon></button> + <button mat-raised-button color="primary">Add Debit</button> + </mat-card> + <mat-card> + <span>Credit</span> + <mat-form-field> + <input matInput placeholder="Account"> + </mat-form-field> + <mat-form-field> + <input matInput placeholder="Amount"> + </mat-form-field> + <button mat-raised-button color="warn"><mat-icon>clear</mat-icon></button> + <button mat-raised-button color="primary">Add Credit</button> + </mat-card> +</div> +</div> \ No newline at end of file diff --git a/src/app/accounting/add-journal-entry/add-journal-entry.component.scss b/src/app/accounting/add-journal-entry/add-journal-entry.component.scss new file mode 100644 index 0000000..73bd8bc --- /dev/null +++ b/src/app/accounting/add-journal-entry/add-journal-entry.component.scss @@ -0,0 +1,11 @@ + +.fineract-form { + min-width: 150px; + max-width: 500px; + width: 100%; + } + + .input { + width: 100%; + } + \ No newline at end of file diff --git a/src/app/accounting/add-journal-entry/add-journal-entry.component.spec.ts b/src/app/accounting/add-journal-entry/add-journal-entry.component.spec.ts new file mode 100644 index 0000000..081bd33 --- /dev/null +++ b/src/app/accounting/add-journal-entry/add-journal-entry.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AddJournalEntryComponent } from './add-journal-entry.component'; + +describe('AddJournalEntryComponent', () => { + let component: AddJournalEntryComponent; + let fixture: ComponentFixture<AddJournalEntryComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AddJournalEntryComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AddJournalEntryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/accounting/add-journal-entry/add-journal-entry.component.ts b/src/app/accounting/add-journal-entry/add-journal-entry.component.ts new file mode 100644 index 0000000..37a73b0 --- /dev/null +++ b/src/app/accounting/add-journal-entry/add-journal-entry.component.ts @@ -0,0 +1,34 @@ +import { Component, OnInit } from '@angular/core'; +import {ReactiveFormsModule} from '@angular/forms' +import {FormControl, Validators} from '@angular/forms'; + +@Component({ + selector: 'app-add-journal-entry', + templateUrl: './add-journal-entry.component.html', + styleUrls: ['./add-journal-entry.component.scss'] +}) +export class AddJournalEntryComponent implements OnInit { + + startDate = new Date(1990, 0, 1); + show=false; + + myControl: FormControl = new FormControl(); + + options = [ + {value: 'mor', viewValue: 'Morogoro branch'}, + {value: 'kat', viewValue: 'Katuba'}, + {value:'loan',viewValue:'Loan Officer'} + ]; + + currencies = [ + {value:'afgh',viewValue:'Afghanistan Afghani()'}, + {value:'alba',viewValue:'Albanian lek()'}, + {value:'alg',viewValue:'Algerian Dinar()'} + ] + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/accounting/add-transaction-type/add-transaction-type.component.html b/src/app/accounting/add-transaction-type/add-transaction-type.component.html new file mode 100644 index 0000000..c11dfe2 --- /dev/null +++ b/src/app/accounting/add-transaction-type/add-transaction-type.component.html @@ -0,0 +1,19 @@ +<div class="my-div mat-elevation-z2"> + <h3 class="heading">General Ledger</h3> + <mat-divider></mat-divider> + <span>Transaction Type</span> + + <mat-form-field> + <input matInput placeholder="Code"> + </mat-form-field> + + <mat-form-field> + <input matInput placeholder="Name"> + </mat-form-field> + + <mat-form-field> + <textarea matInput placeholder="Description(optional)"></textarea> + </mat-form-field> + + <button mat-raise-button>Submit</button> + <button mat-raise-button>Cancel</button> diff --git a/src/app/accounting/add-transaction-type/add-transaction-type.component.scss b/src/app/accounting/add-transaction-type/add-transaction-type.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/accounting/add-transaction-type/add-transaction-type.component.spec.ts b/src/app/accounting/add-transaction-type/add-transaction-type.component.spec.ts new file mode 100644 index 0000000..001163c --- /dev/null +++ b/src/app/accounting/add-transaction-type/add-transaction-type.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AddTransactionTypeComponent } from './add-transaction-type.component'; + +describe('AddTransactionTypeComponent', () => { + let component: AddTransactionTypeComponent; + let fixture: ComponentFixture<AddTransactionTypeComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AddTransactionTypeComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AddTransactionTypeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/accounting/add-transaction-type/add-transaction-type.component.ts b/src/app/accounting/add-transaction-type/add-transaction-type.component.ts new file mode 100644 index 0000000..ce80310 --- /dev/null +++ b/src/app/accounting/add-transaction-type/add-transaction-type.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-add-transaction-type', + templateUrl: './add-transaction-type.component.html', + styleUrls: ['./add-transaction-type.component.scss'] +}) +export class AddTransactionTypeComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/accounting/chart-of-accounts/chart-of-accounts.component.html b/src/app/accounting/chart-of-accounts/chart-of-accounts.component.html new file mode 100644 index 0000000..e1dc266 --- /dev/null +++ b/src/app/accounting/chart-of-accounts/chart-of-accounts.component.html @@ -0,0 +1,47 @@ +<div class="main-div mat-elevation-z2"> + <h3 class="heading">Chart of Accounts</h3> + <mat-divider></mat-divider> + <div class="fineract-button"> + <a mat-raised-button color="primary" > + Download</a> + </div> + <mat-form-field > + <input matInput class="filter" (keyup)="applyFilter($event.target.value)" placeholder="Filter by name/code"> + </mat-form-field> + +<br> +<mat-divider></mat-divider> + +<mat-table #table [dataSource]="dataSource"> + + <!-- Position Column --> + <ng-container matColumnDef="code"> + <mat-header-cell *matHeaderCellDef>Code </mat-header-cell> + <mat-cell *matCellDef="let element"> + <a routerLink="{{element.code}}">{{element.code}}</a> + </mat-cell> + </ng-container> + + <!-- Name Column --> + <ng-container matColumnDef="name"> + <mat-header-cell *matHeaderCellDef>Name</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.name}} </mat-cell> + </ng-container> + + <ng-container matColumnDef="description"> + <mat-header-cell *matHeaderCellDef>Description</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.description}} </mat-cell> + </ng-container> + + <ng-container matColumnDef="type"> + <mat-header-cell *matHeaderCellDef>Type</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.type} </mat-cell> + </ng-container> + + <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row> + <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row> +</mat-table> + + +</div> + \ No newline at end of file diff --git a/src/app/accounting/chart-of-accounts/chart-of-accounts.component.scss b/src/app/accounting/chart-of-accounts/chart-of-accounts.component.scss new file mode 100644 index 0000000..345f7a3 --- /dev/null +++ b/src/app/accounting/chart-of-accounts/chart-of-accounts.component.scss @@ -0,0 +1,11 @@ + + table { + width: 100%; + } + + .mat-form-field { + font-size: 14px; + width: 100%; + } + + \ No newline at end of file diff --git a/src/app/accounting/chart-of-accounts/chart-of-accounts.component.spec.ts b/src/app/accounting/chart-of-accounts/chart-of-accounts.component.spec.ts new file mode 100644 index 0000000..226cb27 --- /dev/null +++ b/src/app/accounting/chart-of-accounts/chart-of-accounts.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ChartOfAccountsComponent } from './chart-of-accounts.component'; + +describe('ChartOfAccountsComponent', () => { + let component: ChartOfAccountsComponent; + let fixture: ComponentFixture<ChartOfAccountsComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ChartOfAccountsComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ChartOfAccountsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/accounting/general-ledger/general-ledger.component.ts b/src/app/accounting/chart-of-accounts/chart-of-accounts.component.ts similarity index 61% copy from src/app/accounting/general-ledger/general-ledger.component.ts copy to src/app/accounting/chart-of-accounts/chart-of-accounts.component.ts index 4612e79..bb3a3d2 100644 --- a/src/app/accounting/general-ledger/general-ledger.component.ts +++ b/src/app/accounting/chart-of-accounts/chart-of-accounts.component.ts @@ -1,13 +1,14 @@ import { Component, OnInit } from '@angular/core'; import {MatTableDataSource} from '@angular/material'; + @Component({ - selector: 'app-general-ledger', - templateUrl: './general-ledger.component.html', - styleUrls: ['./general-ledger.component.scss'] + selector: 'app-chart-of-accounts', + templateUrl: './chart-of-accounts.component.html', + styleUrls: ['./chart-of-accounts.component.scss'] }) -export class GeneralLedgerComponent implements OnInit { - displayedColumns = ['name','type','subtype','category','core', 'user']; +export class ChartOfAccountsComponent implements OnInit { + displayedColumns = ['code','name','description','type']; dataSource = new MatTableDataSource(ELEMENT_DATA); applyFilter(filterValue: string) { @@ -23,16 +24,14 @@ export class GeneralLedgerComponent implements OnInit { } export interface Element { + code: string; name: string; - type:string; - subtype: string; - category:string; - core: string; - user:string; - - + description: string; + type: string; + } const ELEMENT_DATA: Element[] = [ ]; + \ No newline at end of file diff --git a/src/app/accounting/cheque-clearing/cheque-clearing.component.html b/src/app/accounting/cheque-clearing/cheque-clearing.component.html new file mode 100644 index 0000000..f623c55 --- /dev/null +++ b/src/app/accounting/cheque-clearing/cheque-clearing.component.html @@ -0,0 +1,70 @@ +<div class="main-div mat-elevation-z2"> + <h3 class="heading">Cheque Clearing</h3> + <mat-divider></mat-divider> + <mat-form-field> + <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter by identifier"> + </mat-form-field> + +<br> +<mat-divider></mat-divider> + +<mat-table #table [dataSource]="dataSource"> + + <!-- Position Column --> + <ng-container matColumnDef="identifier"> + <mat-header-cell *matHeaderCellDef>Identifier </mat-header-cell> + <mat-cell *matCellDef="let element"> + <a routerLink="{{element.identifier}}">{{element.identifier}}</a> + </mat-cell> + </ng-container> + + <!-- Name Column --> + <ng-container matColumnDef="drawee"> + <mat-header-cell *matHeaderCellDef>Drawee</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.drawee}} </mat-cell> + </ng-container> + + <ng-container matColumnDef="drawer"> + <mat-header-cell *matHeaderCellDef>Drawer</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.drawer}} </mat-cell> + </ng-container> + + <ng-container matColumnDef="payee"> + <mat-header-cell *matHeaderCellDef>Payee</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.payee} </mat-cell> + </ng-container> + + <ng-container matColumnDef="amount"> + <mat-header-cell *matHeaderCellDef>Amount</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.amount} </mat-cell> + </ng-container> + + <ng-container matColumnDef="dateissued"> + <mat-header-cell *matHeaderCellDef>Date Issued</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.dateisued} </mat-cell> + </ng-container> + + <ng-container matColumnDef="state"> + <mat-header-cell *matHeaderCellDef>state</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.state} </mat-cell> + </ng-container> + + <ng-container matColumnDef="approve"> + <mat-header-cell *matHeaderCellDef>Approve</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.approve} </mat-cell> + </ng-container> + + <ng-container matColumnDef="cancel"> + <mat-header-cell *matHeaderCellDef>Cancel</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.cancel} </mat-cell> + </ng-container> + + + + <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row> + <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row> +</mat-table> + + +</div> + \ No newline at end of file diff --git a/src/app/accounting/cheque-clearing/cheque-clearing.component.scss b/src/app/accounting/cheque-clearing/cheque-clearing.component.scss new file mode 100644 index 0000000..0961a8e --- /dev/null +++ b/src/app/accounting/cheque-clearing/cheque-clearing.component.scss @@ -0,0 +1,18 @@ +.my-div{ + margin-left: 2%; + margin-right:2%; + border-radius: 5px 5px 5px 5px; + background-color: #e6e6ff; + min-height: 100%; + + } + table { + width: 100%; + } + + .mat-form-field { + font-size: 14px; + width: 100%; + } + + \ No newline at end of file diff --git a/src/app/accounting/cheque-clearing/cheque-clearing.component.spec.ts b/src/app/accounting/cheque-clearing/cheque-clearing.component.spec.ts new file mode 100644 index 0000000..ecb3d3f --- /dev/null +++ b/src/app/accounting/cheque-clearing/cheque-clearing.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ChequeClearingComponent } from './cheque-clearing.component'; + +describe('ChequeClearingComponent', () => { + let component: ChequeClearingComponent; + let fixture: ComponentFixture<ChequeClearingComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ChequeClearingComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ChequeClearingComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/accounting/general-ledger/general-ledger.component.ts b/src/app/accounting/cheque-clearing/cheque-clearing.component.ts similarity index 52% copy from src/app/accounting/general-ledger/general-ledger.component.ts copy to src/app/accounting/cheque-clearing/cheque-clearing.component.ts index 4612e79..6eec557 100644 --- a/src/app/accounting/general-ledger/general-ledger.component.ts +++ b/src/app/accounting/cheque-clearing/cheque-clearing.component.ts @@ -2,12 +2,13 @@ import { Component, OnInit } from '@angular/core'; import {MatTableDataSource} from '@angular/material'; @Component({ - selector: 'app-general-ledger', - templateUrl: './general-ledger.component.html', - styleUrls: ['./general-ledger.component.scss'] + selector: 'app-cheque-clearing', + templateUrl: './cheque-clearing.component.html', + styleUrls: ['./cheque-clearing.component.scss'] }) -export class GeneralLedgerComponent implements OnInit { - displayedColumns = ['name','type','subtype','category','core', 'user']; +export class ChequeClearingComponent implements OnInit { + + displayedColumns = ['identifier','drawer','drawee','payee','amount','dateissued','state','approve','cancel']; dataSource = new MatTableDataSource(ELEMENT_DATA); applyFilter(filterValue: string) { @@ -23,14 +24,16 @@ export class GeneralLedgerComponent implements OnInit { } export interface Element { - name: string; - type:string; - subtype: string; - category:string; - core: string; - user:string; - - + identifier: number; + drawee:string; + drawer: string; + payee:string; + amount: number; + dateissued:Date; + state:string; + approve:boolean; + cancel:boolean; + } const ELEMENT_DATA: Element[] = [ diff --git a/src/app/accounting/general-ledger/general-ledger.component.html b/src/app/accounting/general-ledger/general-ledger.component.html index 23f3357..f65ec3d 100644 --- a/src/app/accounting/general-ledger/general-ledger.component.html +++ b/src/app/accounting/general-ledger/general-ledger.component.html @@ -1,52 +1,42 @@ -<div class="my-div mat-elevation-z2"> +<div class="main-div mat-elevation-z2"> <h3 class="heading">General Ledger</h3> <mat-divider></mat-divider> - <button>Add Ledger</button> + <div class="fineract-button"> + <a mat-raised-button color="primary" [routerLink]="['/navbar/add-ledger']"> + <mat-icon>add</mat-icon>Add Ledger</a> + </div> <mat-form-field> - <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter by name/short name"> + <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter by name"> </mat-form-field> - <a mat-raised-button class="fineract-button" color="primary" [routerLink]="['/navbar/managereport/create']"> - <mat-icon>add</mat-icon>Create Report</a> - + <br> <mat-divider></mat-divider> <mat-table #table [dataSource]="dataSource"> <!-- Position Column --> - <ng-container matColumnDef="name"> - <mat-header-cell *matHeaderCellDef>Report Name </mat-header-cell> + <ng-container matColumnDef="id"> + <mat-header-cell *matHeaderCellDef>Id </mat-header-cell> <mat-cell *matCellDef="let element"> - <a routerLink="{{element.name}}">{{element.name}}</a> + <a routerLink="{{element.id}}">{{element.id}}</a> </mat-cell> </ng-container> <!-- Name Column --> - <ng-container matColumnDef="type"> - <mat-header-cell *matHeaderCellDef> Report Type</mat-header-cell> - <mat-cell *matCellDef="let element"> {{element.type}} </mat-cell> + <ng-container matColumnDef="name"> + <mat-header-cell *matHeaderCellDef>Name</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.name}} </mat-cell> </ng-container> - <ng-container matColumnDef="subtype"> - <mat-header-cell *matHeaderCellDef>Report Subtype</mat-header-cell> - <mat-cell *matCellDef="let element"> {{element.subtype}} </mat-cell> + <ng-container matColumnDef="description"> + <mat-header-cell *matHeaderCellDef>Description</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.description}} </mat-cell> </ng-container> - <ng-container matColumnDef="category"> - <mat-header-cell *matHeaderCellDef> Report Category</mat-header-cell> - <mat-cell *matCellDef="let element"> {{element.category} </mat-cell> + <ng-container matColumnDef="balance"> + <mat-header-cell *matHeaderCellDef>Balance</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.balance} </mat-cell> </ng-container> - <ng-container matColumnDef="core"> - <mat-header-cell *matHeaderCellDef>Core Report</mat-header-cell> - <mat-cell *matCellDef="let element"> {{element.core}} </mat-cell> - </ng-container> - <ng-container matColumnDef="user"> - <mat-header-cell *matHeaderCellDef> User Report</mat-header-cell> - <mat-cell *matCellDef="let element"> {{element.user}} </mat-cell> - </ng-container> - - - <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row> <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row> diff --git a/src/app/accounting/general-ledger/general-ledger.component.scss b/src/app/accounting/general-ledger/general-ledger.component.scss index 82cb099..b03d650 100644 --- a/src/app/accounting/general-ledger/general-ledger.component.scss +++ b/src/app/accounting/general-ledger/general-ledger.component.scss @@ -1,13 +1,6 @@ -.my-div{ - margin-left: 2%; - margin-right:2%; - border-radius: 5px 5px 5px 5px; - background-color: #e6e6ff; - min-height: 100%; - -} + table { - width: 100%; + width: 80%; } .mat-form-field { diff --git a/src/app/accounting/general-ledger/general-ledger.component.ts b/src/app/accounting/general-ledger/general-ledger.component.ts index 4612e79..460769d 100644 --- a/src/app/accounting/general-ledger/general-ledger.component.ts +++ b/src/app/accounting/general-ledger/general-ledger.component.ts @@ -7,7 +7,7 @@ import {MatTableDataSource} from '@angular/material'; styleUrls: ['./general-ledger.component.scss'] }) export class GeneralLedgerComponent implements OnInit { - displayedColumns = ['name','type','subtype','category','core', 'user']; + displayedColumns = ['id','name','description','balance']; dataSource = new MatTableDataSource(ELEMENT_DATA); applyFilter(filterValue: string) { @@ -23,14 +23,11 @@ export class GeneralLedgerComponent implements OnInit { } export interface Element { - name: string; - type:string; - subtype: string; - category:string; - core: string; - user:string; - - + id: number; + name:string; + description: string; + balance:string; + } const ELEMENT_DATA: Element[] = [ diff --git a/src/app/accounting/payrolls/payrolls.component.html b/src/app/accounting/payrolls/payrolls.component.html new file mode 100644 index 0000000..8edcd56 --- /dev/null +++ b/src/app/accounting/payrolls/payrolls.component.html @@ -0,0 +1,42 @@ +<div class="my-div mat-elevation-z2"> + <h3 class="heading">Payrolls</h3> + <mat-divider></mat-divider> + <div class="fineract-button"> + <a mat-raised-button color="primary" [routerLink]="['/navbar/managereport/create']"> + <mat-icon>add</mat-icon>Add Payroll</a> + </div> + <mat-form-field> + <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter by name/short name"> + </mat-form-field> + +<br> +<mat-divider></mat-divider> + +<mat-table #table [dataSource]="dataSource"> + + <!-- Position Column --> + <ng-container matColumnDef="createdby"> + <mat-header-cell *matHeaderCellDef>Created by</mat-header-cell> + <mat-cell *matCellDef="let element"> + <a routerLink="{{element.id}}">{{element.createdby}}</a> + </mat-cell> + </ng-container> + + <!-- Name Column --> + <ng-container matColumnDef="createdon"> + <mat-header-cell *matHeaderCellDef>Created on</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.createdon}} </mat-cell> + </ng-container> + + <ng-container matColumnDef="accountno"> + <mat-header-cell *matHeaderCellDef>Account number</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.accountno}} </mat-cell> + </ng-container> + + <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row> + <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row> +</mat-table> + + +</div> + \ No newline at end of file diff --git a/src/app/accounting/payrolls/payrolls.component.scss b/src/app/accounting/payrolls/payrolls.component.scss new file mode 100644 index 0000000..0961a8e --- /dev/null +++ b/src/app/accounting/payrolls/payrolls.component.scss @@ -0,0 +1,18 @@ +.my-div{ + margin-left: 2%; + margin-right:2%; + border-radius: 5px 5px 5px 5px; + background-color: #e6e6ff; + min-height: 100%; + + } + table { + width: 100%; + } + + .mat-form-field { + font-size: 14px; + width: 100%; + } + + \ No newline at end of file diff --git a/src/app/accounting/payrolls/payrolls.component.spec.ts b/src/app/accounting/payrolls/payrolls.component.spec.ts new file mode 100644 index 0000000..c5a27ea --- /dev/null +++ b/src/app/accounting/payrolls/payrolls.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PayrollsComponent } from './payrolls.component'; + +describe('PayrollsComponent', () => { + let component: PayrollsComponent; + let fixture: ComponentFixture<PayrollsComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PayrollsComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PayrollsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/accounting/general-ledger/general-ledger.component.ts b/src/app/accounting/payrolls/payrolls.component.ts similarity index 59% copy from src/app/accounting/general-ledger/general-ledger.component.ts copy to src/app/accounting/payrolls/payrolls.component.ts index 4612e79..0049e46 100644 --- a/src/app/accounting/general-ledger/general-ledger.component.ts +++ b/src/app/accounting/payrolls/payrolls.component.ts @@ -2,12 +2,12 @@ import { Component, OnInit } from '@angular/core'; import {MatTableDataSource} from '@angular/material'; @Component({ - selector: 'app-general-ledger', - templateUrl: './general-ledger.component.html', - styleUrls: ['./general-ledger.component.scss'] + selector: 'app-payrolls', + templateUrl: './payrolls.component.html', + styleUrls: ['./payrolls.component.scss'] }) -export class GeneralLedgerComponent implements OnInit { - displayedColumns = ['name','type','subtype','category','core', 'user']; +export class PayrollsComponent implements OnInit { + displayedColumns = ['createdby','createdon','accountno']; dataSource = new MatTableDataSource(ELEMENT_DATA); applyFilter(filterValue: string) { @@ -23,14 +23,10 @@ export class GeneralLedgerComponent implements OnInit { } export interface Element { - name: string; - type:string; - subtype: string; - category:string; - core: string; - user:string; - - + createdby: string; + createdon: Date; + accountno: number; + } const ELEMENT_DATA: Element[] = [ diff --git a/src/app/accounting/trial-balance/trial-balance.component.html b/src/app/accounting/trial-balance/trial-balance.component.html new file mode 100644 index 0000000..103b96c --- /dev/null +++ b/src/app/accounting/trial-balance/trial-balance.component.html @@ -0,0 +1,42 @@ +<div class="my-div mat-elevation-z2"> + <h3 class="heading">Trial Balance</h3> + <mat-divider></mat-divider> + <div class="fineract-button"> + <a mat-raised-button color="primary" [routerLink]="['/navbar/managereport/create']"> + <mat-icon>add</mat-icon>Add</a> + </div> + <mat-form-field> + <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter by name/short name"> + </mat-form-field> + +<br> +<mat-divider></mat-divider> + +<mat-table #table [dataSource]="dataSource"> + + <!-- Position Column --> + <ng-container matColumnDef="ledger"> + <mat-header-cell *matHeaderCellDef>Ledger </mat-header-cell> + <mat-cell *matCellDef="let element"> + <a routerLink="{{element.ledger}}">{{element.ledger}}</a> + </mat-cell> + </ng-container> + + <!-- Name Column --> + <ng-container matColumnDef="debit"> + <mat-header-cell *matHeaderCellDef>Dedit</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.debit}} </mat-cell> + </ng-container> + + <ng-container matColumnDef="credit"> + <mat-header-cell *matHeaderCellDef>Credit</mat-header-cell> + <mat-cell *matCellDef="let element"> {{element.credit}} </mat-cell> + </ng-container> + + <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row> + <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row> +</mat-table> + + +</div> + diff --git a/src/app/accounting/trial-balance/trial-balance.component.scss b/src/app/accounting/trial-balance/trial-balance.component.scss new file mode 100644 index 0000000..0961a8e --- /dev/null +++ b/src/app/accounting/trial-balance/trial-balance.component.scss @@ -0,0 +1,18 @@ +.my-div{ + margin-left: 2%; + margin-right:2%; + border-radius: 5px 5px 5px 5px; + background-color: #e6e6ff; + min-height: 100%; + + } + table { + width: 100%; + } + + .mat-form-field { + font-size: 14px; + width: 100%; + } + + \ No newline at end of file diff --git a/src/app/accounting/trial-balance/trial-balance.component.spec.ts b/src/app/accounting/trial-balance/trial-balance.component.spec.ts new file mode 100644 index 0000000..23f92c1 --- /dev/null +++ b/src/app/accounting/trial-balance/trial-balance.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TrialBalanceComponent } from './trial-balance.component'; + +describe('TrialBalanceComponent', () => { + let component: TrialBalanceComponent; + let fixture: ComponentFixture<TrialBalanceComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ TrialBalanceComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TrialBalanceComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/accounting/general-ledger/general-ledger.component.ts b/src/app/accounting/trial-balance/trial-balance.component.ts similarity index 59% copy from src/app/accounting/general-ledger/general-ledger.component.ts copy to src/app/accounting/trial-balance/trial-balance.component.ts index 4612e79..fb15451 100644 --- a/src/app/accounting/general-ledger/general-ledger.component.ts +++ b/src/app/accounting/trial-balance/trial-balance.component.ts @@ -2,12 +2,12 @@ import { Component, OnInit } from '@angular/core'; import {MatTableDataSource} from '@angular/material'; @Component({ - selector: 'app-general-ledger', - templateUrl: './general-ledger.component.html', - styleUrls: ['./general-ledger.component.scss'] + selector: 'app-trial-balance', + templateUrl: './trial-balance.component.html', + styleUrls: ['./trial-balance.component.scss'] }) -export class GeneralLedgerComponent implements OnInit { - displayedColumns = ['name','type','subtype','category','core', 'user']; +export class TrialBalanceComponent implements OnInit { + displayedColumns = ['ledger','debit','credit']; dataSource = new MatTableDataSource(ELEMENT_DATA); applyFilter(filterValue: string) { @@ -23,14 +23,10 @@ export class GeneralLedgerComponent implements OnInit { } export interface Element { - name: string; - type:string; - subtype: string; - category:string; - core: string; - user:string; - - + ledger: string; + debit: number; + credit: number; + } const ELEMENT_DATA: Element[] = [ diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 36d04ea..7481e16 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,5 +1,6 @@ import { BrowserModule } from '@angular/platform-browser'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms' import { RouterModule, Routes} from '@angular/router'; import { MatAutocompleteModule, @@ -45,10 +46,18 @@ import {LoginComponent} from './login/login.component'; import { NavbarComponent } from './navbar/navbar.component'; import { DashboardComponent } from './dashboard/dashboard.component'; import { AccountingComponent } from './accounting/accounting.component'; -import { GeneralLedgerComponent } from './accounting/general-ledger/general-ledger.component' +import { GeneralLedgerComponent } from './accounting/general-ledger/general-ledger.component'; +import { AddJournalEntryComponent } from './accounting/add-journal-entry/add-journal-entry.component'; + +import { PayrollsComponent } from './accounting/payrolls/payrolls.component'; +import { ChartOfAccountsComponent } from './accounting/chart-of-accounts/chart-of-accounts.component'; +import { AddTransactionTypeComponent } from './accounting/add-transaction-type/add-transaction-type.component'; +import { TrialBalanceComponent } from './accounting/trial-balance/trial-balance.component'; +import { ChequeClearingComponent } from './accounting/cheque-clearing/cheque-clearing.component' const appRoutes: Routes = [ { path: 'login', component: LoginComponent }, + { path: '', redirectTo: 'login', pathMatch:'full' }, { path: 'navbar', component: NavbarComponent, children: [ @@ -56,6 +65,12 @@ const appRoutes: Routes = [ { path: 'dashboard', component: DashboardComponent }, { path: 'accounting', component: AccountingComponent }, { path: 'GL', component: GeneralLedgerComponent }, + { path: 'add_journal_entry', component: AddJournalEntryComponent }, + { path: 'payroll', component: PayrollsComponent }, + { path: 'chart_of_accounts', component: ChartOfAccountsComponent }, + { path: 'add_transaction_type', component: AddTransactionTypeComponent }, + { path: 'trial_balance', component: TrialBalanceComponent }, + { path: 'cheque_clearing', component: ChequeClearingComponent }, ] } ]; @@ -63,7 +78,9 @@ const appRoutes: Routes = [ @NgModule({ declarations: [ - AppComponent,LoginComponent, NavbarComponent, DashboardComponent, AccountingComponent, GeneralLedgerComponent + AppComponent,LoginComponent, NavbarComponent, DashboardComponent, + AccountingComponent, GeneralLedgerComponent, AddJournalEntryComponent, + PayrollsComponent, ChartOfAccountsComponent, AddTransactionTypeComponent, TrialBalanceComponent, ChequeClearingComponent ], imports: [RouterModule.forRoot(appRoutes), BrowserModule, BrowserAnimationsModule, diff --git a/src/app/dashboard/dashboard.component.html b/src/app/dashboard/dashboard.component.html index b3f8ca3..8f280fd 100644 --- a/src/app/dashboard/dashboard.component.html +++ b/src/app/dashboard/dashboard.component.html @@ -1,9 +1,9 @@ <mat-card class="clients"> - <span>Client</span> + <span>Clients</span> <mat-list> <mat-list-item> - <span>View Members</span>| - <span>View Groups</span> + <span>View Members</span> | + <span>View Groups</span> </mat-list-item> </mat-list> </mat-card> @@ -11,8 +11,8 @@ <span>Accounting</span> <mat-list> <mat-list-item> - <span>View General Ledger</span>| - <span>View chart of Account</span> + <a [routerLink]="['/navbar/GL']">View General Ledger</a>| + <a [routerLink]="['/navbar/chart_of_accounts']">View chart of Account</a> </mat-list-item> </mat-list> </mat-card> @@ -20,8 +20,8 @@ <span>Organisation</span> <mat-list> <mat-list-item> - <span>View Offices</span>| - <span>View Employees</span> + <span>View Offices</span> | + <span>View Employees</span> </mat-list-item> </mat-list> </mat-card> @@ -30,7 +30,7 @@ <mat-list> <mat-list-item> <span>View Loan Products</span>| - <span>View Savings Product</span> + <span>View Savings Product</span> </mat-list-item> </mat-list> </mat-card> diff --git a/src/app/dashboard/dashboard.component.scss b/src/app/dashboard/dashboard.component.scss index d02c897..dcfd98d 100644 --- a/src/app/dashboard/dashboard.component.scss +++ b/src/app/dashboard/dashboard.component.scss @@ -2,22 +2,22 @@ display: flex; display: inline-block; vertical-align: top; - margin-left: 10%; + margin-left: 5%; margin-bottom: 5%; - width: 30%; - height:200px; + width: 35%; + height:120px; } .organisation,.products{ display: flex; display: inline-block; vertical-align:top; - margin-left: 10%; - width: 30%; - height:200px; + margin-left: 5%; + width: 35%; + height:120px; } mat-list-item{ - padding-top:100px; + padding-top:50px; } \ No newline at end of file diff --git a/src/app/navbar/navbar.component.html b/src/app/navbar/navbar.component.html index 618b704..ecce890 100644 --- a/src/app/navbar/navbar.component.html +++ b/src/app/navbar/navbar.component.html @@ -5,7 +5,7 @@ <div class="search2"> <ul id="menu" class="menu1"> <li> - <button mat-button (click)="sidenav.toggle()" class="dropdown-button"> + <button mat-icon-button (click)="sidenav.toggle()" class="dropdown-button"> <mat-icon class="fineract-toolicon">menu</mat-icon> </button> </li> @@ -68,8 +68,9 @@ </li> <li class="dropdown-button"> - <button mat-button [routerLink]="['/navbar/notification']"> - <mat-icon>notifications</mat-icon></button> + <button mat-icon-button [routerLink]="['/navbar/notification']"> + <mat-icon>notifications</mat-icon> + </button> </li> <li> <button mat-button [matMenuTriggerFor]="mifos" class="dropdown-button">Fineract CN @@ -91,6 +92,9 @@ <mat-sidenav-container class="app-container" style="background-image:url('assets/Background.png');"> <mat-sidenav #sidenav class="app-sidenav mat-elevation-z2" mode="side" opened="true"> + <mat-toolbar> + <button mat-button [routerLink]="['/navbar/dashboard']">Quick Access</button> + </mat-toolbar> <mat-list> <a mat-list-item href="badges.html"> diff --git a/src/app/navbar/navbar.component.scss b/src/app/navbar/navbar.component.scss index c2e2ce6..1f920b3 100644 --- a/src/app/navbar/navbar.component.scss +++ b/src/app/navbar/navbar.component.scss @@ -52,7 +52,7 @@ ul#menu li{ } .search1{ - margin-left:3%; + margin-left:8%; } .fineract-toolsearch{ @@ -78,4 +78,9 @@ ul#menu li{ .menu1{ padding:0; +} + +.test{ + padding-left:0; + padding-right: 0; } \ No newline at end of file diff --git a/src/styles.scss b/src/styles.scss index 5f69d4f..94c9bb7 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,2 +1,33 @@ /* You can add global styles to this file, and also import other style files */ @import "~@angular/material/prebuilt-themes/indigo-pink.css"; + +body{ + margin:0; +} +.heading{ + margin-left:2%; + padding-top:5px; + padding-bottom: 5px; + height:15px; + } + +.fineract-button{ + margin-top:5px; + margin-left:80%; + width:150px; +} + +.main-div { + display:flex; + flex-direction: column; + margin-left: 2%; + margin-right:2%; + border-radius: 5px 5px 5px 5px; + background-color: white; + min-height: 100%; + + } + + .filter{ + width: 50%; + } \ No newline at end of file