build: Use prettier for html
Stop ignoring html files in prettier and fix existing issues.
This commit is contained in:
@@ -1,60 +1,63 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_ACCOUNTINGRULE'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Add Rule" | translate}}
|
||||
{{ 'labels.buttons.Add Rule' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div fxLayout="row">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div class="mat-elevation-z8">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
|
||||
<ng-container matColumnDef="name">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.name" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.name }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.name' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let accountingRule">{{ accountingRule.name }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="officeName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.officeName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Office' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let accountingRule">{{ accountingRule.officeName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="debitTags">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit Tags" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.debitTags }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Debit Tags' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let accountingRule">{{ accountingRule.debitTags }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="debitAccount">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit Account" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.debitAccounts ? accountingRule.debitAccounts[0].name : '' }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Debit Account' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let accountingRule">
|
||||
{{ accountingRule.debitAccounts ? accountingRule.debitAccounts[0].name : '' }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="creditTags">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit Tags" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.creditTags }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Credit Tags' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let accountingRule">{{ accountingRule.creditTags }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="creditAccount">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit Account" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.creditAccounts ? accountingRule.creditAccounts[0].name : '' }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Credit Account' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let accountingRule">
|
||||
{{ accountingRule.creditAccounts ? accountingRule.creditAccounts[0].name : '' }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [routerLink]="['view', row.id]" class="select-row"></tr>
|
||||
|
||||
<tr
|
||||
mat-row
|
||||
*matRowDef="let row; columns: displayedColumns"
|
||||
[routerLink]="['view', row.id]"
|
||||
class="select-row"
|
||||
></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,43 +1,42 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="accountingRuleForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Accounting Rule Name" | translate}}</mat-label>
|
||||
<input matInput required formControlName="name">
|
||||
<mat-label>{{ 'labels.inputs.Accounting Rule Name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
<mat-error *ngIf="accountingRuleForm.controls.name.hasError('required')">
|
||||
{{"labels.inputs.Accounting Rule Name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Accounting Rule Name' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
<mat-option *ngFor="let office of officeData" [value]="office.id">
|
||||
{{ office.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="accountingRuleForm.controls.officeId.hasError('required')">
|
||||
{{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Office' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper">
|
||||
<mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Debit) Rule Type" | translate}} *</mat-label>
|
||||
<mat-label fxFlex="50%">{{ 'labels.inputs.Affected GL Entry (Debit) Rule Type' | translate }} *</mat-label>
|
||||
<mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="debitRuleType">
|
||||
<mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" | translate}}</mat-radio-button>
|
||||
<mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button>
|
||||
<mat-radio-button value="fixedAccount">{{ 'labels.inputs.Fixed Account' | translate }}</mat-radio-button>
|
||||
<mat-radio-button value="listOfAccounts">{{
|
||||
'labels.inputs.List of Accounts' | translate
|
||||
}}</mat-radio-button>
|
||||
</mat-radio-group>
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="accountingRuleForm.controls.debitRuleType.value === 'fixedAccount'">
|
||||
<mat-label>{{"labels.inputs.Account to Debit"|translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Account to Debit' | translate }}</mat-label>
|
||||
<mat-select formControlName="accountToDebit">
|
||||
<mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id">
|
||||
{{ glAccount.name }}
|
||||
@@ -45,9 +44,15 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.debitRuleType.value === 'listOfAccounts'">
|
||||
<div
|
||||
fxFlex="48%"
|
||||
fxLayout="row"
|
||||
fxLayoutGap="2%"
|
||||
fxLayout.lt-md="column"
|
||||
*ngIf="accountingRuleForm.controls.debitRuleType.value === 'listOfAccounts'"
|
||||
>
|
||||
<mat-form-field fxFlex="50%">
|
||||
<mat-label>{{"labels.inputs.Debit Tags" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Debit Tags' | translate }}</mat-label>
|
||||
<mat-select formControlName="debitTags" multiple>
|
||||
<mat-option *ngFor="let debitTag of debitTagData" [value]="debitTag.id">
|
||||
{{ debitTag.name }}
|
||||
@@ -57,21 +62,23 @@
|
||||
|
||||
<div fxFlex="50%" ngClass.gt-md="entries-wrapper">
|
||||
<mat-checkbox labelPosition="before" formControlName="allowMultipleDebitEntries" class="entries">
|
||||
{{"labels.inputs.Multiple Debit Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Multiple Debit Entries Allowed' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper">
|
||||
<mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Credit) Rule Type" | translate}} *</mat-label>
|
||||
<mat-label fxFlex="50%">{{ 'labels.inputs.Affected GL Entry (Credit) Rule Type' | translate }} *</mat-label>
|
||||
<mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="creditRuleType">
|
||||
<mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" | translate}}</mat-radio-button>
|
||||
<mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button>
|
||||
<mat-radio-button value="fixedAccount">{{ 'labels.inputs.Fixed Account' | translate }}</mat-radio-button>
|
||||
<mat-radio-button value="listOfAccounts">{{
|
||||
'labels.inputs.List of Accounts' | translate
|
||||
}}</mat-radio-button>
|
||||
</mat-radio-group>
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'fixedAccount'">
|
||||
<mat-label>{{"labels.inputs.Account to Credit" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Account to Credit' | translate }}</mat-label>
|
||||
<mat-select formControlName="accountToCredit">
|
||||
<mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id">
|
||||
{{ glAccount.name }}
|
||||
@@ -79,9 +86,15 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'listOfAccounts'">
|
||||
<div
|
||||
fxFlex="48%"
|
||||
fxLayout="row"
|
||||
fxLayoutGap="2%"
|
||||
fxLayout.lt-md="column"
|
||||
*ngIf="accountingRuleForm.controls.creditRuleType.value === 'listOfAccounts'"
|
||||
>
|
||||
<mat-form-field fxFlex="50%">
|
||||
<mat-label>{{"labels.inputs.Credit Tags" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Credit Tags' | translate }}</mat-label>
|
||||
<mat-select formControlName="creditTags" multiple>
|
||||
<mat-option *ngFor="let creditTag of creditTagData" [value]="creditTag.id">
|
||||
{{ creditTag.name }}
|
||||
@@ -91,27 +104,31 @@
|
||||
|
||||
<div fxFlex="50%" ngClass.gt-md="entries-wrapper">
|
||||
<mat-checkbox labelPosition="before" formControlName="allowMultipleCreditEntries" class="entries">
|
||||
{{"labels.inputs.Multiple Credit Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Multiple Credit Entries Allowed' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="98%">
|
||||
<mat-label>{{"labels.inputs.Description" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
|
||||
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!accountingRuleForm.valid" *mifosxHasPermission="'CREATE_ACCOUNTINGRULE'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!accountingRuleForm.valid"
|
||||
*mifosxHasPermission="'CREATE_ACCOUNTINGRULE'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,43 +1,42 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="accountingRuleForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Accounting Rule Name" | translate}}</mat-label>
|
||||
<input matInput required formControlName="name">
|
||||
<mat-label>{{ 'labels.inputs.Accounting Rule Name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
<mat-error *ngIf="accountingRuleForm.controls.name.hasError('required')">
|
||||
{{"labels.inputs.Accounting Rule Name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Accounting Rule Name' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
<mat-option *ngFor="let office of officeData" [value]="office.id">
|
||||
{{ office.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="accountingRuleForm.controls.officeId.hasError('required')">
|
||||
{{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Office' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper">
|
||||
<mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Debit) Rule Type" | translate}} *</mat-label>
|
||||
<mat-label fxFlex="50%">{{ 'labels.inputs.Affected GL Entry (Debit) Rule Type' | translate }} *</mat-label>
|
||||
<mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="debitRuleType">
|
||||
<mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" | translate}}</mat-radio-button>
|
||||
<mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button>
|
||||
<mat-radio-button value="fixedAccount">{{ 'labels.inputs.Fixed Account' | translate }}</mat-radio-button>
|
||||
<mat-radio-button value="listOfAccounts">{{
|
||||
'labels.inputs.List of Accounts' | translate
|
||||
}}</mat-radio-button>
|
||||
</mat-radio-group>
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="accountingRuleForm.controls.debitRuleType.value === 'fixedAccount'">
|
||||
<mat-label>{{"labels.inputs.Account to Debit"|translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Account to Debit' | translate }}</mat-label>
|
||||
<mat-select formControlName="accountToDebit">
|
||||
<mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id">
|
||||
{{ glAccount.name }}
|
||||
@@ -45,9 +44,15 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.debitRuleType.value === 'listOfAccounts'">
|
||||
<div
|
||||
fxFlex="48%"
|
||||
fxLayout="row"
|
||||
fxLayoutGap="2%"
|
||||
fxLayout.lt-md="column"
|
||||
*ngIf="accountingRuleForm.controls.debitRuleType.value === 'listOfAccounts'"
|
||||
>
|
||||
<mat-form-field fxFlex="50%">
|
||||
<mat-label>{{"labels.inputs.Debit Tags" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Debit Tags' | translate }}</mat-label>
|
||||
<mat-select formControlName="debitTags" multiple>
|
||||
<mat-option *ngFor="let debitTag of debitTagData" [value]="debitTag.id">
|
||||
{{ debitTag.name }}
|
||||
@@ -57,21 +62,23 @@
|
||||
|
||||
<div fxFlex="50%" ngClass.gt-md="entries-wrapper">
|
||||
<mat-checkbox labelPosition="before" formControlName="allowMultipleDebitEntries" class="entries">
|
||||
{{"labels.inputs.Multiple Debit Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Multiple Debit Entries Allowed' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper">
|
||||
<mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Credit) Rule Type" | translate}} *</mat-label>
|
||||
<mat-label fxFlex="50%">{{ 'labels.inputs.Affected GL Entry (Credit) Rule Type' | translate }} *</mat-label>
|
||||
<mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="creditRuleType">
|
||||
<mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" | translate}}</mat-radio-button>
|
||||
<mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button>
|
||||
<mat-radio-button value="fixedAccount">{{ 'labels.inputs.Fixed Account' | translate }}</mat-radio-button>
|
||||
<mat-radio-button value="listOfAccounts">{{
|
||||
'labels.inputs.List of Accounts' | translate
|
||||
}}</mat-radio-button>
|
||||
</mat-radio-group>
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="48%" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'fixedAccount'">
|
||||
<mat-label>{{"labels.inputs.Account to Credit" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Account to Credit' | translate }}</mat-label>
|
||||
<mat-select formControlName="accountToCredit">
|
||||
<mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id">
|
||||
{{ glAccount.name }}
|
||||
@@ -79,9 +86,15 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'listOfAccounts'">
|
||||
<div
|
||||
fxFlex="48%"
|
||||
fxLayout="row"
|
||||
fxLayoutGap="2%"
|
||||
fxLayout.lt-md="column"
|
||||
*ngIf="accountingRuleForm.controls.creditRuleType.value === 'listOfAccounts'"
|
||||
>
|
||||
<mat-form-field fxFlex="50%">
|
||||
<mat-label>{{"labels.inputs.Credit Tags" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Credit Tags' | translate }}</mat-label>
|
||||
<mat-select formControlName="creditTags" multiple>
|
||||
<mat-option *ngFor="let creditTag of creditTagData" [value]="creditTag.id">
|
||||
{{ creditTag.name }}
|
||||
@@ -91,28 +104,31 @@
|
||||
|
||||
<div fxFlex="50%" ngClass.gt-md="entries-wrapper">
|
||||
<mat-checkbox labelPosition="before" formControlName="allowMultipleCreditEntries" class="entries">
|
||||
{{"labels.inputs.Multiple Credit Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Multiple Credit Entries Allowed' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="98%">
|
||||
<mat-label>{{"labels.inputs.Description" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
|
||||
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="accountingRuleForm.pristine || !accountingRuleForm.valid" *mifosxHasPermission="'UPDATE_ACCOUNTINGRULE'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="accountingRuleForm.pristine || !accountingRuleForm.valid"
|
||||
*mifosxHasPermission="'UPDATE_ACCOUNTINGRULE'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_ACCOUNTINGRULE'">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Edit"|translate}}
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="deleteAccountingRule()" *mifosxHasPermission="'DELETE_ACCOUNTINGRULE'">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="warn"
|
||||
(click)="deleteAccountingRule()"
|
||||
*mifosxHasPermission="'DELETE_ACCOUNTINGRULE'"
|
||||
>
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Delete" | translate}}
|
||||
{{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="container" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<div fxFlex="48%">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" class="content">
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Office" | translate}}
|
||||
{{ 'labels.inputs.Office' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -28,7 +28,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header" *ngIf="accountingRule.description">
|
||||
{{"labels.inputs.Description" | translate}}
|
||||
{{ 'labels.inputs.Description' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="accountingRule.description">
|
||||
@@ -36,7 +36,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Multiple Debit Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Multiple Debit Entries Allowed' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -44,32 +44,24 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Multiple Credit Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Multiple Credit Entries Allowed' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
{{ accountingRule.allowMultipleCreditEntries }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
<div fxFlex>
|
||||
|
||||
<mat-card>
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row" class="content">
|
||||
|
||||
<div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.debitTags">
|
||||
<div class="header">
|
||||
{{"labels.inputs.Debit Tags" | translate}}
|
||||
{{ 'labels.inputs.Debit Tags' | translate }}
|
||||
</div>
|
||||
<div *ngFor="let debitTag of accountingRule.debitTags">
|
||||
{{ debitTag.tag.name }}
|
||||
@@ -78,7 +70,7 @@
|
||||
|
||||
<div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.debitAccounts">
|
||||
<div class="header">
|
||||
{{"labels.inputs.Debit Account Name" | translate}}
|
||||
{{ 'labels.inputs.Debit Account Name' | translate }}
|
||||
</div>
|
||||
<div *ngFor="let debitAccount of accountingRule.debitAccounts">
|
||||
{{ debitAccount.name + ' (' + debitAccount.glCode + ')' }}
|
||||
@@ -87,7 +79,7 @@
|
||||
|
||||
<div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.creditTags">
|
||||
<div class="header">
|
||||
{{"labels.inputs.Credit Tags" | translate}}
|
||||
{{ 'labels.inputs.Credit Tags' | translate }}
|
||||
</div>
|
||||
<div *ngFor="let creditTag of accountingRule.creditTags">
|
||||
{{ creditTag.tag.name }}
|
||||
@@ -96,19 +88,14 @@
|
||||
|
||||
<div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.creditAccounts">
|
||||
<div class="header">
|
||||
{{"labels.inputs.Credit Account Name" | translate}}
|
||||
{{ 'labels.inputs.Credit Account Name' | translate }}
|
||||
</div>
|
||||
<div *ngFor="let creditAccount of accountingRule.creditAccounts">
|
||||
{{ creditAccount.name + ' (' + creditAccount.glCode + ')' }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<div fxLayout="row" fxLayout.lt-md="column" fxLayoutGap="20px">
|
||||
|
||||
<div fxFlex="50%">
|
||||
|
||||
<mat-nav-list>
|
||||
|
||||
<mat-list-item *mifosxHasPermission="'CREATE_JOURNALENTRY'">
|
||||
<mat-icon matListIcon [routerLink]="['journal-entries/frequent-postings']">
|
||||
<fa-icon icon="sync" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['journal-entries/frequent-postings']">{{"labels.heading.Frequent Postings" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['journal-entries/frequent-postings']">
|
||||
{{ 'labels.heading.Frequent Postings' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(0)" *ngIf="!arrowBooleans[0]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(0)" *ngIf="arrowBooleans[0]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[0]" [routerLink]="['journal-entries/frequent-postings']">{{"labels.text.These are predefined postings" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[0]" [routerLink]="['journal-entries/frequent-postings']">
|
||||
{{ 'labels.text.These are predefined postings' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
|
||||
<div #createJournalEntries>
|
||||
@@ -23,10 +22,14 @@
|
||||
<mat-icon matListIcon [routerLink]="['journal-entries/create']">
|
||||
<fa-icon icon="plus" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['journal-entries/create']">{{"labels.heading.Create Journal Entries" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['journal-entries/create']">
|
||||
{{ 'labels.heading.Create Journal Entries' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(1)" *ngIf="!arrowBooleans[1]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(1)" *ngIf="arrowBooleans[1]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[1]" [routerLink]="['journal-entries/create']">{{"labels.text.Manual journal entry transactions recorded in a journal" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[1]" [routerLink]="['journal-entries/create']">
|
||||
{{ 'labels.text.Manual journal entry transactions recorded in a journal' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
@@ -34,10 +37,14 @@
|
||||
<mat-icon matListIcon [routerLink]="['journal-entries']">
|
||||
<fa-icon icon="search" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['journal-entries']">{{"labels.heading.Search Journal Entries" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['journal-entries']">
|
||||
{{ 'labels.heading.Search Journal Entries' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(2)" *ngIf="!arrowBooleans[2]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(2)" *ngIf="arrowBooleans[2]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[2]" [routerLink]="['journal-entries']">{{"labels.text.Advanced search option for journal entries" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[2]" [routerLink]="['journal-entries']">
|
||||
{{ 'labels.text.Advanced search option for journal entries' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
|
||||
<div #accountsLinked>
|
||||
@@ -45,54 +52,62 @@
|
||||
<mat-icon matListIcon [routerLink]="['financial-activity-mappings']">
|
||||
<fa-icon icon="link" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['financial-activity-mappings']">{{"labels.heading.Accounts Linked to Financial Activities" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['financial-activity-mappings']">
|
||||
{{ 'labels.heading.Accounts Linked to Financial Activities' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(3)" *ngIf="!arrowBooleans[3]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(3)" *ngIf="arrowBooleans[3]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[3]" [routerLink]="['financial-activity-mappings']">{{"labels.text.List of Financial Activities and GL Account Mappings" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[3]" [routerLink]="['financial-activity-mappings']">
|
||||
{{ 'labels.text.List of Financial Activities and GL Account Mappings' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #migrateOpeningBalances>
|
||||
<mat-list-item *mifosxHasPermission="'READ_JOURNALENTRY'" >
|
||||
<mat-list-item *mifosxHasPermission="'READ_JOURNALENTRY'">
|
||||
<mat-icon matListIcon [routerLink]="['migrate-opening-balances']">
|
||||
<fa-icon icon="hand-holding-usd" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['migrate-opening-balances']">{{"labels.heading.Migrate Opening Balances (Office-wise)" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['migrate-opening-balances']">
|
||||
{{ 'labels.heading.Migrate Opening Balances (Office-wise)' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(4)" *ngIf="!arrowBooleans[4]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(4)" *ngIf="arrowBooleans[4]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[4]" [routerLink]="['migrate-opening-balances']">{{"labels.text.Set or update office-level opening balances for GL accounts" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[4]" [routerLink]="['migrate-opening-balances']">
|
||||
{{ 'labels.text.Set or update office-level opening balances for GL accounts' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
</mat-nav-list>
|
||||
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
|
||||
<mat-nav-list>
|
||||
|
||||
<div #chartofAccounts>
|
||||
<mat-list-item *mifosxHasPermission="'READ_GLACCOUNT'">
|
||||
<mat-icon matListIcon [routerLink]="['chart-of-accounts']">
|
||||
<fa-icon icon="sitemap" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['chart-of-accounts']">{{"labels.heading.Chart of Accounts" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['chart-of-accounts']">{{ 'labels.heading.Chart of Accounts' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(5)" *ngIf="!arrowBooleans[5]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(5)" *ngIf="arrowBooleans[5]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[5]" [routerLink]="['chart-of-accounts']">{{"labels.text.List of accounts used by the organization" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[5]" [routerLink]="['chart-of-accounts']">
|
||||
{{ 'labels.text.List of accounts used by the organization' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
<div #closingEntries>
|
||||
<mat-list-item *mifosxHasPermission="'READ_GLCLOSURE'" >
|
||||
<mat-list-item *mifosxHasPermission="'READ_GLCLOSURE'">
|
||||
<mat-icon matListIcon [routerLink]="['closing-entries']">
|
||||
<fa-icon icon="archive" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['closing-entries']">{{"labels.heading.Closing Entries" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['closing-entries']">{{ 'labels.heading.Closing Entries' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(6)" *ngIf="!arrowBooleans[6]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(6)" *ngIf="arrowBooleans[6]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[6]" [routerLink]="['closing-entries']">{{"labels.text.Journal entries made at the end of accounting period" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[6]" [routerLink]="['closing-entries']">
|
||||
{{ 'labels.text.Journal entries made at the end of accounting period' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
||||
@@ -100,88 +115,121 @@
|
||||
<mat-icon matListIcon [routerLink]="['accounting-rules']">
|
||||
<fa-icon icon="list" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['accounting-rules']">{{"labels.heading.Accounting Rules" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['accounting-rules']">{{ 'labels.heading.Accounting Rules' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(7)" *ngIf="!arrowBooleans[7]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(7)" *ngIf="arrowBooleans[7]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[7]" [routerLink]="['accounting-rules']">{{"labels.text.List of all accounting rules" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[7]" [routerLink]="['accounting-rules']">
|
||||
{{ 'labels.text.List of all accounting rules' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item *mifosxHasPermission="'EXECUTE_PERIODICACCRUALACCOUNTING'">
|
||||
<mat-icon matListIcon [routerLink]="['periodic-accruals']">
|
||||
<fa-icon icon="calendar" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['periodic-accruals']">{{"labels.heading.Accruals" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['periodic-accruals']">{{ 'labels.heading.Accruals' | translate }}</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(8)" *ngIf="!arrowBooleans[8]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(8)" *ngIf="arrowBooleans[8]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[8]" [routerLink]="['periodic-accruals']">{{"labels.text.Accrues income, expenses and liabilities" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[8]" [routerLink]="['periodic-accruals']">
|
||||
{{ 'labels.text.Accrues income, expenses and liabilities' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
|
||||
<mat-list-item *mifosxHasPermission="'VIEW_PROVISIONING_ENTRIES'">
|
||||
<mat-icon matListIcon [routerLink]="['provisioning-entries']">
|
||||
<fa-icon icon="cogs" size="sm"></fa-icon>
|
||||
</mat-icon>
|
||||
<h4 matLine [routerLink]="['provisioning-entries']">{{"labels.heading.Provisioning Entries" | translate}}</h4>
|
||||
<h4 matLine [routerLink]="['provisioning-entries']">
|
||||
{{ 'labels.heading.Provisioning Entries' | translate }}
|
||||
</h4>
|
||||
<fa-icon (click)="arrowBooleansToggle(9)" *ngIf="!arrowBooleans[9]" icon="arrow-down" size="md"></fa-icon>
|
||||
<fa-icon (click)="arrowBooleansToggle(9)" *ngIf="arrowBooleans[9]" icon="arrow-up" size="md"></fa-icon>
|
||||
<p matLine *ngIf="arrowBooleans[9]" [routerLink]="['provisioning-entries']">{{"labels.text.Create provisioning entries" | translate}}</p>
|
||||
<p matLine *ngIf="arrowBooleans[9]" [routerLink]="['provisioning-entries']">
|
||||
{{ 'labels.text.Create provisioning entries' | translate }}
|
||||
</p>
|
||||
</mat-list-item>
|
||||
|
||||
</mat-nav-list>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
<ng-template #templateChartofAccounts let-popover="popover">
|
||||
<h2>{{"labels.heading.Chart of Accounts" | translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.The Chart of Accounts - General Ledger Setup" | translate}}</p>
|
||||
<h2>{{ 'labels.heading.Chart of Accounts' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.The Chart of Accounts - General Ledger Setup' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStepChartofAccounts()">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStepChartofAccounts()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepChartofAccounts()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepChartofAccounts()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateAccountsLinked let-popover="popover">
|
||||
<h2>{{"labels.heading.Accounts Linked to Financial Activities" | translate}}</h2>
|
||||
<p class="mw400">{{"labels.text.Accounts linked to Financial Activities" | translate}}</p>
|
||||
<h2>{{ 'labels.heading.Accounts Linked to Financial Activities' | translate }}</h2>
|
||||
<p class="mw400">{{ 'labels.text.Accounts linked to Financial Activities' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStepAccountsLinked()">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStepAccountsLinked()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepAccountsLinked()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepAccountsLinked()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateMigrateOpeningBalances let-popover="popover">
|
||||
<h2>{{"labels.heading.Migrate Opening Balances (Office-wise)" | translate}}</h2>
|
||||
<p class="mw400">{{"labels.text.GLAccount Balances Application" | translate}}</p>
|
||||
<h2>{{ 'labels.heading.Migrate Opening Balances (Office-wise)' | translate }}</h2>
|
||||
<p class="mw400">{{ 'labels.text.GLAccount Balances Application' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStepMigrateOpeningBalances()">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStepMigrateOpeningBalances()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepMigrateOpeningBalances()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepMigrateOpeningBalances()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateClosingEntries let-popover="popover">
|
||||
<h2>{{"labels.heading.Closing Entries" | translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.Accounting to journal entries" | translate}}</p>
|
||||
<h2>{{ 'labels.heading.Closing Entries' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Accounting to journal entries' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStepClosingEntries()">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStepClosingEntries()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepClosingEntries()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepClosingEntries()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateCreateJournalEntries let-popover="popover">
|
||||
<h2>{{"labels.heading.Create Journal Entries" | translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.Journal Entries Transactions" | translate}}</p>
|
||||
<h2>{{ 'labels.heading.Create Journal Entries' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Journal Entries Transactions' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStepCreateJournalEntries()">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStepCreateJournalEntries()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStepCreateJournalEntries()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStepCreateJournalEntries()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@@ -10,9 +10,14 @@
|
||||
</mat-button-toggle-group>
|
||||
</div>
|
||||
<div #buttonAddAccount>
|
||||
<button mat-raised-button color="primary" [routerLink]="['gl-accounts/create']" *mifosxHasPermission="'CREATE_GLACCOUNT'">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[routerLink]="['gl-accounts/create']"
|
||||
*mifosxHasPermission="'CREATE_GLACCOUNT'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Add Account" | translate}}
|
||||
{{ 'labels.buttons.Add Account' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -20,83 +25,100 @@
|
||||
<!-- List View -->
|
||||
|
||||
<div class="container" [hidden]="viewGroup.value !== 'listView'">
|
||||
|
||||
<div #filter fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div #accountsTable class="mat-elevation-z8">
|
||||
|
||||
<table mat-table [dataSource]="tableDataSource" matSort>
|
||||
|
||||
<ng-container matColumnDef="name">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let glAccount"> {{ glAccount.name }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Account' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccount">{{ glAccount.name }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glCode">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.GL Code" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let glAccount"> {{ glAccount.glCode }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.GL Code' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccount">{{ glAccount.glCode }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountType">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let glAccount"> {{ 'labels.inputs.accounting.' + glAccount.type.value | translate }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Type' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccount">
|
||||
{{ 'labels.inputs.accounting.' + glAccount.type.value | translate }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="disabled">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Disabled" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Disabled' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccount">
|
||||
<div [className]="glAccount.disabled === true ? 'disabled' : 'enabled'">
|
||||
<fa-icon matTooltip="{{ glAccount.disabled === true ? 'Disabled' : 'Enabled' }}" matTooltipPosition="right" icon="circle" size="lg"></fa-icon>
|
||||
<fa-icon
|
||||
matTooltip="{{ glAccount.disabled === true ? 'Disabled' : 'Enabled' }}"
|
||||
matTooltipPosition="right"
|
||||
icon="circle"
|
||||
size="lg"
|
||||
></fa-icon>
|
||||
</div>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="manualEntriesAllowed">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Manual Entries Allowed" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>
|
||||
{{ 'labels.inputs.Manual Entries Allowed' | translate }}
|
||||
</th>
|
||||
<td mat-cell *matCellDef="let glAccount">
|
||||
<fa-icon *ngIf="glAccount.manualEntriesAllowed" class="manual-entries-allowed" matTooltip="{{ 'tooltips.Allowed' | translate}}" matTooltipPosition="right" icon="check-circle" size="lg"></fa-icon>
|
||||
<fa-icon *ngIf="!glAccount.manualEntriesAllowed" class="manual-entries-not-allowed" matTooltip="{{ 'tooltips.' | translate}}" matTooltipPosition="right" icon="times-circle" size="lg"></fa-icon>
|
||||
<fa-icon
|
||||
*ngIf="glAccount.manualEntriesAllowed"
|
||||
class="manual-entries-allowed"
|
||||
matTooltip="{{ 'tooltips.Allowed' | translate }}"
|
||||
matTooltipPosition="right"
|
||||
icon="check-circle"
|
||||
size="lg"
|
||||
></fa-icon>
|
||||
<fa-icon
|
||||
*ngIf="!glAccount.manualEntriesAllowed"
|
||||
class="manual-entries-not-allowed"
|
||||
matTooltip="{{ 'tooltips.' | translate }}"
|
||||
matTooltipPosition="right"
|
||||
icon="times-circle"
|
||||
size="lg"
|
||||
></fa-icon>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="usedAs">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Used as" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let glAccount"> {{ glAccount.usage.value }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Used as' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccount">{{ glAccount.usage.value }}</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [routerLink]="['gl-accounts/view', row.id]" class="select-row"></tr>
|
||||
|
||||
<tr
|
||||
mat-row
|
||||
*matRowDef="let row; columns: displayedColumns"
|
||||
[routerLink]="['gl-accounts/view', row.id]"
|
||||
class="select-row"
|
||||
></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Tree View -->
|
||||
|
||||
<div class="container" [hidden]="viewGroup.value !== 'treeView'">
|
||||
|
||||
<div class="m-b-20" fxLayout="row" fxLayoutAlign="start" fxLayoutGap="20px">
|
||||
<button mat-raised-button (click)="toggleExpandCollapse()">
|
||||
{{ (isTreeExpanded ? "labels.buttons.Collapse All" : "labels.buttons.Expand All") | translate }}
|
||||
{{ (isTreeExpanded ? 'labels.buttons.Collapse All' : 'labels.buttons.Expand All') | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row" fxLayoutGap="4%" fxLayout.lt-md="column">
|
||||
|
||||
<div class="mat-elevation-z8" fxFlex>
|
||||
|
||||
<mat-tree [dataSource]="nestedTreeDataSource" [treeControl]="nestedTreeControl" class="gl-account-tree">
|
||||
|
||||
<mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle>
|
||||
<li class="mat-tree-node">
|
||||
<button mat-icon-button disabled></button>
|
||||
@@ -111,7 +133,10 @@
|
||||
<li>
|
||||
<div class="mat-tree-node">
|
||||
<button mat-icon-button matTreeNodeToggle [attr.aria-label]="'toggle ' + node.name">
|
||||
<fa-icon class="mat-icon-rtl-mirror" icon="{{ nestedTreeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right' }}"></fa-icon>
|
||||
<fa-icon
|
||||
class="mat-icon-rtl-mirror"
|
||||
icon="{{ nestedTreeControl.isExpanded(node) ? 'chevron-down' : 'chevron-right' }}"
|
||||
></fa-icon>
|
||||
</button>
|
||||
<span (click)="viewGLAccountNode(node)">
|
||||
<span *ngIf="node.glCode" class="m-r-10">{{ '(' + node.glCode + ')' }}</span>
|
||||
@@ -123,21 +148,15 @@
|
||||
</ul>
|
||||
</li>
|
||||
</mat-nested-tree-node>
|
||||
|
||||
</mat-tree>
|
||||
|
||||
</div>
|
||||
|
||||
<div fxFlex="48%" *ngIf="glAccount">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" class="content">
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Account Name" | translate}}
|
||||
{{ 'labels.inputs.Account Name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -145,7 +164,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.GL Code" | translate}}
|
||||
{{ 'labels.inputs.GL Code' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -153,7 +172,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Account Type" | translate}}
|
||||
{{ 'labels.inputs.Account Type' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -161,7 +180,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Account Usage" | translate}}
|
||||
{{ 'labels.inputs.Account Usage' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -169,7 +188,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Manual Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Manual Entries Allowed' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -177,59 +196,103 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Description" | translate}}
|
||||
{{ 'labels.inputs.Description' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
{{ glAccount.description }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<ng-template #templateButtonTreeView let-popover="popover">
|
||||
<h2>{{"labels.heading.Tree View" | translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.Alternative way-Tree view" | translate}}</p>
|
||||
<h2>{{ 'labels.heading.Tree View' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Alternative way-Tree view' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStep();">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover( templateButtonAddAccount, buttonAddAccount, 'bottom', true);">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStep()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateButtonAddAccount, buttonAddAccount, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateButtonAddAccount let-popover="popover">
|
||||
<h2>{{"labels.heading.Add Account" | translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.Create New GL Account"|translate}}</p>
|
||||
<h2>{{ 'labels.heading.Add Account' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Create New GL Account' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonTreeView, buttonTreeView , 'bottom', true);">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true);">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateButtonTreeView, buttonTreeView, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateFilter, filter, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateFilter let-popover="popover">
|
||||
<h4>{{"labels.heading.Search bar to filter GL accounts." | translate}}</h4>
|
||||
<h4>{{ 'labels.heading.Search bar to filter GL accounts.' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover( templateButtonAddAccount, buttonAddAccount, 'bottom', true);">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateAccountsTable, accountsTable, 'top', true);">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateButtonAddAccount, buttonAddAccount, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateAccountsTable, accountsTable, 'top', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateAccountsTable let-popover="popover">
|
||||
<h4 class="mw300">{{"labels.heading.List of chart of all the accounts being used by your organization." | translate}}</h4>
|
||||
<h4 class="mw300">
|
||||
{{ 'labels.heading.List of chart of all the accounts being used by your organization.' | translate }}
|
||||
</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true);">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateFilter, filter, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStep()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
+50
-44
@@ -1,58 +1,54 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form #accountFormRef [formGroup]="glAccountForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Account Type" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Account Type' | translate }}</mat-label>
|
||||
<mat-select required formControlName="type">
|
||||
<mat-option *ngFor="let accountType of accountTypeData" [value]="accountType.id">
|
||||
{{ 'labels.inputs.accounting.' + accountType.value | translate }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="glAccountForm.controls.type.hasError('required')">
|
||||
{{"labels.inputs.Account Type" | translate}} {{"labels.commons.is" | translate}}
|
||||
<strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Account Type' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Account Name" | translate}}</mat-label>
|
||||
<input matInput required formControlName="name">
|
||||
<mat-label>{{ 'labels.inputs.Account Name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
<mat-error *ngIf="glAccountForm.controls.name.hasError('required')">
|
||||
{{"labels.inputs.Account Name" | translate}} {{"labels.commons.is" | translate}}
|
||||
<strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Account Name' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Account Usage" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Account Usage' | translate }}</mat-label>
|
||||
<mat-select required formControlName="usage">
|
||||
<mat-option *ngFor="let accountUsage of accountUsageData" [value]="accountUsage.id">
|
||||
{{ accountUsage.value }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="glAccountForm.controls.usage.hasError('required')">
|
||||
{{"labels.inputs.Account Usage" | translate}} {{"labels.commons.is" | translate}}
|
||||
<strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Account Usage' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.GL Code" | translate}}</mat-label>
|
||||
<input matInput required formControlName="glCode">
|
||||
<mat-label>{{ 'labels.inputs.GL Code' | translate }}</mat-label>
|
||||
<input matInput required formControlName="glCode" />
|
||||
<mat-error *ngIf="glAccountForm.controls.glCode.hasError('required')">
|
||||
{{"labels.inputs.GL Code" | translate}} {{"labels.commons.is" | translate}}
|
||||
<strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.GL Code' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
<mifosx-gl-account-selector
|
||||
fxFlex="48%"
|
||||
[inputFormControl]="glAccountForm.controls.parentId"
|
||||
[glAccountList]="parentData"
|
||||
[required]="false"
|
||||
@@ -61,7 +57,7 @@
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="28%">
|
||||
<mat-label>{{"labels.inputs.Tag" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Tag' | translate }}</mat-label>
|
||||
<mat-select formControlName="tagId">
|
||||
<mat-option *ngFor="let tag of tagData" [value]="tag.id">
|
||||
{{ tag.name }}
|
||||
@@ -71,46 +67,56 @@
|
||||
|
||||
<div fxFlex="18%" class="manual-entries-allowed-wrapper">
|
||||
<mat-checkbox labelPosition="before" formControlName="manualEntriesAllowed" class="manual-entries-allowed">
|
||||
{{"labels.inputs.Manual Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Manual Entries Allowed' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="98%">
|
||||
<mat-label>{{"labels.inputs.Description" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
|
||||
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="[cancelRoute]">{{"labels.buttons.Cancel" |
|
||||
translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!glAccountForm.valid"
|
||||
*mifosxHasPermission="'CREATE_GLACCOUNT'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="[cancelRoute]">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!glAccountForm.valid"
|
||||
*mifosxHasPermission="'CREATE_GLACCOUNT'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
<ng-template #templateAccountFormRef let-popover="popover">
|
||||
<h2>{{"labels.heading.Create GL account" | translate}}</h2>
|
||||
<p class="mw400">{{"labels.text.Filling Details" | translate}} <a
|
||||
<h2>{{ 'labels.heading.Create GL account' | translate }}</h2>
|
||||
<p class="mw400">
|
||||
{{ 'labels.text.Filling Details' | translate }}
|
||||
<a
|
||||
href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67141745/Chart+of+Accounts+-+General+Ledger+Setup"
|
||||
target="_blank">{{"labels.inputs.Chart of Accounts" | translate}}</a></p>
|
||||
target="_blank"
|
||||
>{{ 'labels.inputs.Chart of Accounts' | translate }}</a
|
||||
>
|
||||
</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn"
|
||||
(click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" |
|
||||
translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close()">{{"labels.buttons.Create GL Account" |
|
||||
translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">{{"labels.buttons.Back" |
|
||||
translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" |
|
||||
translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close()">
|
||||
{{ 'labels.buttons.Create GL Account' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStep()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStep()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
+36
-27
@@ -1,54 +1,54 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="glAccountForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Account Type" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Account Type' | translate }}</mat-label>
|
||||
<mat-select required formControlName="type">
|
||||
<mat-option *ngFor="let accountType of accountTypeData" [value]="accountType.id">
|
||||
{{ accountType.value }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="glAccountForm.controls.type.hasError('required')">
|
||||
{{"labels.inputs.Account Type" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Account Type' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Account Name" | translate}}</mat-label>
|
||||
<input matInput required formControlName="name">
|
||||
<mat-label>{{ 'labels.inputs.Account Name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
<mat-error *ngIf="glAccountForm.controls.name.hasError('required')">
|
||||
{{"labels.inputs.Account Name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Account Name' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Account Usage" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Account Usage' | translate }}</mat-label>
|
||||
<mat-select required formControlName="usage">
|
||||
<mat-option *ngFor="let accountUsage of accountUsageData" [value]="accountUsage.id">
|
||||
{{ accountUsage.value }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="glAccountForm.controls.usage.hasError('required')">
|
||||
{{"labels.inputs.Account Usage" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Account Usage' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.GL Code" | translate}}</mat-label>
|
||||
<input matInput required formControlName="glCode">
|
||||
<mat-label>{{ 'labels.inputs.GL Code' | translate }}</mat-label>
|
||||
<input matInput required formControlName="glCode" />
|
||||
<mat-error *ngIf="glAccountForm.controls.glCode.hasError('required')">
|
||||
{{"labels.inputs.GL Code" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.GL Code' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
<mifosx-gl-account-selector
|
||||
fxFlex="48%"
|
||||
[inputFormControl]="glAccountForm.controls.parentId"
|
||||
[glAccountList]="parentData"
|
||||
[required]="false"
|
||||
@@ -57,7 +57,7 @@
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="28%">
|
||||
<mat-label>{{"labels.inputs.Tag" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Tag' | translate }}</mat-label>
|
||||
<mat-select formControlName="tagId">
|
||||
<mat-option *ngFor="let tag of tagData" [value]="tag.id">
|
||||
{{ tag.name }}
|
||||
@@ -66,27 +66,36 @@
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex="18%" class="manual-entries-allowed-wrapper">
|
||||
<mat-checkbox labelPosition="before" required formControlName="manualEntriesAllowed" class="manual-entries-allowed">
|
||||
{{"labels.inputs.Manual Entries Allowed" | translate}}
|
||||
<mat-checkbox
|
||||
labelPosition="before"
|
||||
required
|
||||
formControlName="manualEntriesAllowed"
|
||||
class="manual-entries-allowed"
|
||||
>
|
||||
{{ 'labels.inputs.Manual Entries Allowed' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="98%">
|
||||
<mat-label>{{"labels.inputs.Description" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Description' | translate }}</mat-label>
|
||||
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="glAccountForm.pristine" *mifosxHasPermission="'UPDATE_GLACCOUNT'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="glAccountForm.pristine"
|
||||
*mifosxHasPermission="'UPDATE_GLACCOUNT'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
+22
-21
@@ -1,44 +1,46 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<span *mifosxHasPermission="'CREATE_GLACCOUNT'">
|
||||
<button mat-raised-button color="primary" *ngIf="glAccount.usage.value === 'HEADER'" [routerLink]="['/accounting/chart-of-accounts/gl-accounts/create']" [queryParams]="{ parent: glAccount.id, accountType: glAccount.type.id }">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
*ngIf="glAccount.usage.value === 'HEADER'"
|
||||
[routerLink]="['/accounting/chart-of-accounts/gl-accounts/create']"
|
||||
[queryParams]="{ parent: glAccount.id, accountType: glAccount.type.id }"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Subledger Account" | translate}}
|
||||
{{ 'labels.buttons.Subledger Account' | translate }}
|
||||
</button>
|
||||
</span>
|
||||
<span *mifosxHasPermission="'UPDATE_GLACCOUNT'">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Edit" | translate}}
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
</span>
|
||||
<span *mifosxHasPermission="'UPDATE_GLACCOUNT'">
|
||||
<button mat-raised-button color="warn" *ngIf="!glAccount.disabled" (click)="changeGlAccountState()">
|
||||
<fa-icon icon="lock" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Disable" | translate}}
|
||||
{{ 'labels.buttons.Disable' | translate }}
|
||||
</button>
|
||||
</span>
|
||||
<span *mifosxHasPermission="'UPDATE_GLACCOUNT'">
|
||||
<button mat-raised-button color="accent" *ngIf="glAccount.disabled" (click)="changeGlAccountState()">
|
||||
<fa-icon icon="lock-open" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Enable" | translate}}
|
||||
{{ 'labels.buttons.Enable' | translate }}
|
||||
</button>
|
||||
</span>
|
||||
<button mat-raised-button color="warn" (click)="deleteGlAccount()" *mifosxHasPermission="'DELETE_GLACCOUNT'">
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Delete" | translate}}
|
||||
{{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" class="content">
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Account Type" | translate}}
|
||||
{{ 'labels.inputs.Account Type' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -46,7 +48,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.GL Code" | translate}}
|
||||
{{ 'labels.inputs.GL Code' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -54,7 +56,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header" *ngIf="glAccount.parent">
|
||||
{{"labels.inputs.Parent Account Name" | translate}}
|
||||
{{ 'labels.inputs.Parent Account Name' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="glAccount.parent">
|
||||
@@ -64,7 +66,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header" *ngIf="glAccount.tagId.id">
|
||||
{{"labels.inputs.Tag" | translate}}
|
||||
{{ 'labels.inputs.Tag' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="glAccount.tagId.id">
|
||||
@@ -72,7 +74,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Account Usage" | translate}}
|
||||
{{ 'labels.inputs.Account Usage' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -80,7 +82,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Manual Entries Allowed" | translate}}
|
||||
{{ 'labels.inputs.Manual Entries Allowed' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -88,20 +90,19 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header" *ngIf="glAccount.description">
|
||||
{{"labels.inputs.Description" | translate}}
|
||||
{{ 'labels.inputs.Description' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" *ngIf="glAccount.description">
|
||||
{{ glAccount.description }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" color="primary" mat-raised-button (click)="goBack()">{{ "labels.buttons.Back" | translate}}</button>
|
||||
<button type="button" color="primary" mat-raised-button (click)="goBack()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
<div #buttonCreateClosure>
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_GLCLOSURE'">
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Create Closure" | translate}}
|
||||
{{ 'labels.buttons.Create Closure' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div #filter class="container" fxLayout="row">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-label>{{"labels.inputs.Office Name" | translate}}</mat-label>
|
||||
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete">
|
||||
<mat-label>{{ 'labels.inputs.Office Name' | translate }}</mat-label>
|
||||
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete" />
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
@@ -22,66 +22,104 @@
|
||||
</mat-autocomplete>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div #closuresTable class="mat-elevation-z8">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
|
||||
<ng-container matColumnDef="officeName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.officeName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Office' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccountClosure">{{ glAccountClosure.officeName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="closingDate">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Closure Date" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.closingDate }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Closure Date' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccountClosure">{{ glAccountClosure.closingDate }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="comments">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Comments" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.comments }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Comments' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccountClosure">{{ glAccountClosure.comments }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="createdByUsername">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Created By" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Created By' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let glAccountClosure">{{ glAccountClosure.createdByUsername }}</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [routerLink]="['view', row.id]" class="select-row"></tr>
|
||||
|
||||
<tr
|
||||
mat-row
|
||||
*matRowDef="let row; columns: displayedColumns"
|
||||
[routerLink]="['view', row.id]"
|
||||
class="select-row"
|
||||
></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<ng-template #templateButtonCreateClosure let-popover="popover">
|
||||
<h2>{{"labels.heading.Create Closure" | translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.Create new closure" | translate}}</p>
|
||||
<h2>{{ 'labels.heading.Create Closure' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.Create new closure' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStep();">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter,filter, 'bottom', true);">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStep()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateFilter, filter, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateFilter let-popover="popover">
|
||||
<h4>{{"labels.heading.Search bar to filter closures by office."|translate}}</h4>
|
||||
<h4>{{ 'labels.heading.Search bar to filter closures by office.' | translate }}</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonCreateClosure, buttonCreateClosure, 'bottom', true);">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateClosuresTable,closuresTable, 'top', true);">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateButtonCreateClosure, buttonCreateClosure, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateClosuresTable, closuresTable, 'top', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateClosuresTable let-popover="popover">
|
||||
<h4>{{"labels.heading.List of closures. To know more click" | translate}}: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895316/Closing+Entries" target="_blank">{{"labels.inputs.Closing Entries" | translate}}</a></h4>
|
||||
<h4>
|
||||
{{ 'labels.heading.List of closures. To know more click' | translate }}:
|
||||
<a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895316/Closing+Entries" target="_blank">{{
|
||||
'labels.inputs.Closing Entries' | translate
|
||||
}}</a>
|
||||
</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter,filter, 'bottom', true);">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateFilter, filter, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStep()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@@ -1,51 +1,59 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="accountingClosureForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="column">
|
||||
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
<mat-option *ngFor="let office of officeData" [value]="office.id">
|
||||
{{ office.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="accountingClosureForm.controls.officeId.hasError('required')">
|
||||
{{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Office' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field (click)="closingDatePicker.open()">
|
||||
<mat-label>{{"labels.inputs.Closing Date" | translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closingDatePicker" required formControlName="closingDate">
|
||||
<mat-label>{{ 'labels.inputs.Closing Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="closingDatePicker"
|
||||
required
|
||||
formControlName="closingDate"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="closingDatePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #closingDatePicker></mat-datepicker>
|
||||
<mat-error *ngIf="accountingClosureForm.controls.closingDate.hasError('required')">
|
||||
{{"labels.inputs.Closing Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Closing Date' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Comments" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Comments' | translate }}</mat-label>
|
||||
<textarea matInput formControlName="comments" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!accountingClosureForm.valid" *mifosxHasPermission="'CREATE_GLCLOSURE'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!accountingClosureForm.valid"
|
||||
*mifosxHasPermission="'CREATE_GLCLOSURE'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="accountingClosureForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="column">
|
||||
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
<mat-option *ngFor="let office of officeData" [value]="office.id">
|
||||
{{ office.name }}
|
||||
@@ -18,28 +13,27 @@
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field (click)="closingDatePicker.open()">
|
||||
<mat-label>{{"labels.inputs.Closing Date" | translate}}</mat-label>
|
||||
<input matInput [matDatepicker]="closingDatePicker" required formControlName="closingDate">
|
||||
<mat-label>{{ 'labels.inputs.Closing Date' | translate }}</mat-label>
|
||||
<input matInput [matDatepicker]="closingDatePicker" required formControlName="closingDate" />
|
||||
<mat-datepicker-toggle matSuffix [for]="closingDatePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #closingDatePicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Comments" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Comments' | translate }}</mat-label>
|
||||
<textarea matInput formControlName="comments" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="accountingClosureForm.pristine">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" [disabled]="accountingClosureForm.pristine">
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,24 +1,20 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Edit" | translate}}
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="deleteAccountingClosure()" *mifosxHasPermission="'DELETE_GLCLOSURE'">
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Delete" | translate}}
|
||||
{{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="container" *ngIf="glAccountClosure">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" class="content">
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Office" | translate}}
|
||||
{{ 'labels.inputs.Office' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -26,7 +22,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Closure Date" | translate}}
|
||||
{{ 'labels.inputs.Closure Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -34,7 +30,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Closed By" | translate}}
|
||||
{{ 'labels.inputs.Closed By' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -42,7 +38,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Updated By" | translate}}
|
||||
{{ 'labels.inputs.Updated By' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -50,7 +46,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Updated On"|translate}}
|
||||
{{ 'labels.inputs.Updated On' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -58,7 +54,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Closure Creation Date"|translate}}
|
||||
{{ 'labels.inputs.Closure Creation Date' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
@@ -66,17 +62,13 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Comments" | translate}}
|
||||
{{ 'labels.inputs.Comments' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
{{ glAccountClosure.comments }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,43 +1,44 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="journalEntryForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div #createJournalFormRef fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
<mat-option *ngFor="let office of officeData" [value]="office.id">
|
||||
{{ office.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="journalEntryForm.controls.officeId.hasError('required')">
|
||||
{{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Office' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Currency" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Currency' | translate }}</mat-label>
|
||||
<mat-select required formControlName="currencyCode">
|
||||
<mat-option *ngFor="let currency of currencyData" [value]="currency.code">
|
||||
{{ currency.displayLabel }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="journalEntryForm.controls.currencyCode.hasError('required')">
|
||||
{{"labels.inputs.Currency" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Currency' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" formArrayName="debits"
|
||||
*ngFor="let debit of debits.controls; let i = index;">
|
||||
|
||||
<div
|
||||
fxFlexFill
|
||||
fxLayout="row wrap"
|
||||
fxLayout.lt-md="column"
|
||||
formArrayName="debits"
|
||||
*ngFor="let debit of debits.controls; let i = index"
|
||||
>
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
<mifosx-gl-account-selector
|
||||
fxFlex="48%"
|
||||
[inputFormControl]="debits.at(i).controls.glAccountId"
|
||||
[glAccountList]="glAccountData"
|
||||
[required]="true"
|
||||
@@ -46,10 +47,11 @@
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="43%">
|
||||
<mat-label>{{"labels.inputs.Debit Amount" | translate}}</mat-label>
|
||||
<input type="number" matInput required formControlName="amount">
|
||||
<mat-label>{{ 'labels.inputs.Debit Amount' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="amount" />
|
||||
<mat-error *ngIf="debits.at(i).controls.amount.hasError('required')">
|
||||
{{"labels.inputs.Debit Amount" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Debit Amount' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
@@ -57,21 +59,29 @@
|
||||
<button *ngIf="i !== 0" type="button" mat-icon-button (click)="removeAffectedGLEntry(debits, i)">
|
||||
<fa-icon icon="minus-circle" size="lg"></fa-icon>
|
||||
</button>
|
||||
<button *ngIf="i === 0" type="button" mat-icon-button color="primary" (click)="addAffectedGLEntry(debits)">
|
||||
<button
|
||||
*ngIf="i === 0"
|
||||
type="button"
|
||||
mat-icon-button
|
||||
color="primary"
|
||||
(click)="addAffectedGLEntry(debits)"
|
||||
>
|
||||
<fa-icon icon="plus-circle" size="lg"></fa-icon>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" formArrayName="credits"
|
||||
*ngFor="let credit of credits.controls; let i = index;">
|
||||
|
||||
<div
|
||||
fxFlexFill
|
||||
fxLayout="row wrap"
|
||||
fxLayout.lt-md="column"
|
||||
formArrayName="credits"
|
||||
*ngFor="let credit of credits.controls; let i = index"
|
||||
>
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="48%"
|
||||
<mifosx-gl-account-selector
|
||||
fxFlex="48%"
|
||||
[inputFormControl]="credits.at(i).controls.glAccountId"
|
||||
[glAccountList]="glAccountData"
|
||||
[required]="true"
|
||||
@@ -80,10 +90,11 @@
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="43%">
|
||||
<mat-label>{{"labels.inputs.Credit Amount"|translate}}</mat-label>
|
||||
<input type="number" matInput required formControlName="amount">
|
||||
<mat-label>{{ 'labels.inputs.Credit Amount' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="amount" />
|
||||
<mat-error *ngIf="credits.at(i).controls.amount.hasError('required')">
|
||||
{{"labels.inputs.Credit Amount"|translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Credit Amount' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
@@ -91,32 +102,44 @@
|
||||
<button *ngIf="i !== 0" type="button" mat-icon-button (click)="removeAffectedGLEntry(credits, i)">
|
||||
<fa-icon icon="minus-circle" size="lg"></fa-icon>
|
||||
</button>
|
||||
<button *ngIf="i === 0" type="button" mat-icon-button color="primary" (click)="addAffectedGLEntry(credits)">
|
||||
<button
|
||||
*ngIf="i === 0"
|
||||
type="button"
|
||||
mat-icon-button
|
||||
color="primary"
|
||||
(click)="addAffectedGLEntry(credits)"
|
||||
>
|
||||
<fa-icon icon="plus-circle" size="lg"></fa-icon>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Reference Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="referenceNumber">
|
||||
<mat-label>{{ 'labels.inputs.Reference Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="referenceNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="transactionDatePicker.open()">
|
||||
<mat-label>{{"labels.inputs.Transaction Date"|translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDatePicker" required formControlName="transactionDate">
|
||||
<mat-label>{{ 'labels.inputs.Transaction Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="transactionDatePicker"
|
||||
required
|
||||
formControlName="transactionDate"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="transactionDatePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #transactionDatePicker></mat-datepicker>
|
||||
<mat-error *ngIf="journalEntryForm.controls.transactionDate.hasError('required')">
|
||||
{{"labels.inputs.Transaction Date"|translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Transaction Date' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Payment Type"|translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Payment Type' | translate }}</mat-label>
|
||||
<mat-select formControlName="paymentTypeId">
|
||||
<mat-option *ngFor="let paymentType of paymentTypeData" [value]="paymentType.id">
|
||||
{{ paymentType.name }}
|
||||
@@ -125,56 +148,71 @@
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Account Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="accountNumber">
|
||||
<mat-label>{{ 'labels.inputs.Account Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="accountNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Cheque Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="checkNumber">
|
||||
<mat-label>{{ 'labels.inputs.Cheque Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="checkNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Routing Code"|translate}}</mat-label>
|
||||
<input matInput formControlName="routingCode">
|
||||
<mat-label>{{ 'labels.inputs.Routing Code' | translate }}</mat-label>
|
||||
<input matInput formControlName="routingCode" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Receipt Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="receiptNumber">
|
||||
<mat-label>{{ 'labels.inputs.Receipt Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="receiptNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Bank Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="bankNumber">
|
||||
<mat-label>{{ 'labels.inputs.Bank Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="bankNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="98%">
|
||||
<mat-label>{{"labels.inputs.Comments"|translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Comments' | translate }}</mat-label>
|
||||
<textarea matInput formControlName="comments" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!journalEntryForm.valid" *mifosxHasPermission="'CREATE_JOURNALENTRY'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!journalEntryForm.valid"
|
||||
*mifosxHasPermission="'CREATE_JOURNALENTRY'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
<ng-template #templateCreateJournalFormRef let-popover="popover">
|
||||
<h2>{{"labels.heading.Add Journal Entry Form" | translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.Red asterisk field" | translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895310/Add+Journal+Entries" target="_blank">{{"labels.inputs.Add Journal Entries" | translate}}</a></p>
|
||||
<h2>{{ 'labels.heading.Add Journal Entry Form' | translate }}</h2>
|
||||
<p class="mw300">
|
||||
{{ 'labels.text.Red asterisk field' | translate }}
|
||||
<a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895310/Add+Journal+Entries" target="_blank">{{
|
||||
'labels.inputs.Add Journal Entries' | translate
|
||||
}}</a>
|
||||
</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStep()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStep()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
+16
-15
@@ -1,22 +1,19 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="financialActivityMappingForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="column">
|
||||
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Financial Activity" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Financial Activity' | translate }}</mat-label>
|
||||
<mat-select required formControlName="financialActivityId">
|
||||
<mat-option *ngFor="let financialActivity of financialActivityData" [value]="financialActivity.id">
|
||||
({{financialActivity.id}}) {{ 'labels.accounting.financialActivity.' + financialActivity.name | translate }}
|
||||
({{ financialActivity.id }})
|
||||
{{ 'labels.accounting.financialActivity.' + financialActivity.name | translate }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="financialActivityMappingForm.controls.financialActivityId.hasError('required')">
|
||||
{{"labels.inputs.Financial Activity" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Financial Activity' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
@@ -27,18 +24,22 @@
|
||||
[inputLabel]="'Account'"
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!financialActivityMappingForm.valid" *mifosxHasPermission="'CREATE_FINANCIALACTIVITYACCOUNT'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!financialActivityMappingForm.valid"
|
||||
*mifosxHasPermission="'CREATE_FINANCIALACTIVITYACCOUNT'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
+14
-13
@@ -1,18 +1,14 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="financialActivityMappingForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="column">
|
||||
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Financial Activity" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Financial Activity' | translate }}</mat-label>
|
||||
<mat-select required formControlName="financialActivityId">
|
||||
<mat-option *ngFor="let financialActivity of financialActivityData" [value]="financialActivity.id">
|
||||
({{financialActivity.id}}) {{ 'labels.accounting.financialActivity.' + financialActivity.name | translate }}
|
||||
({{ financialActivity.id }})
|
||||
{{ 'labels.accounting.financialActivity.' + financialActivity.name | translate }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
@@ -25,16 +21,21 @@
|
||||
>
|
||||
</mifosx-gl-account-selector>
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="financialActivityMappingForm.pristine" *mifosxHasPermission="'UPDATE_FINANCIALACTIVITYACCOUNT'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="financialActivityMappingForm.pristine"
|
||||
*mifosxHasPermission="'UPDATE_FINANCIALACTIVITYACCOUNT'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
+58
-26
@@ -1,63 +1,95 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" class="container m-b-20">
|
||||
<div #buttonDefineMapping>
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_FINANCIALACTIVITYACCOUNT'">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'CREATE_FINANCIALACTIVITYACCOUNT'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Define New Mapping" | translate}}
|
||||
{{ 'labels.buttons.Define New Mapping' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div #activitiesTable class="mat-elevation-z8 container">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
|
||||
<ng-container matColumnDef="financialActivity">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Financial Activity" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Financial Activity' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let financialActivityAccount">
|
||||
({{financialActivityAccount.financialActivityData.id}})
|
||||
{{ 'labels.accounting.financialActivity.' + financialActivityAccount.financialActivityData.name | translate }}
|
||||
</td>
|
||||
({{ financialActivityAccount.financialActivityData.id }})
|
||||
{{ 'labels.accounting.financialActivity.' + financialActivityAccount.financialActivityData.name | translate }}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountType">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Type" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let financialActivityAccount"> {{ 'labels.inputs.accounting.' + financialActivityAccount.financialActivityData.mappedGLAccountType | translate }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Account Type' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let financialActivityAccount">
|
||||
{{
|
||||
'labels.inputs.accounting.' + financialActivityAccount.financialActivityData.mappedGLAccountType | translate
|
||||
}}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountCode">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let financialActivityAccount"> {{ financialActivityAccount.glAccountData.glCode }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Account Code' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let financialActivityAccount">{{ financialActivityAccount.glAccountData.glCode }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let financialActivityAccount"> {{ financialActivityAccount.glAccountData.name }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Account Name' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let financialActivityAccount">{{ financialActivityAccount.glAccountData.name }}</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [routerLink]="['view', row.id]" class="select-row"></tr>
|
||||
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" [routerLink]="['view', row.id]" class="select-row"></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
</div>
|
||||
|
||||
<ng-template #templateButtonDefineMapping let-popover="popover">
|
||||
<h2>{{"labels.heading.Define New Mapping"|translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.To define new mapping." | translate}}</p>
|
||||
<h2>{{ 'labels.heading.Define New Mapping' | translate }}</h2>
|
||||
<p class="mw300">{{ 'labels.text.To define new mapping.' | translate }}</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateActivitiesTable, activitiesTable, 'top', true)">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); previousStep()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateActivitiesTable, activitiesTable, 'top', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #templateActivitiesTable let-popover="popover">
|
||||
<h4 class="mw300">{{"labels.heading.Account Linked Financial" | translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/106430472/Accounts+linked+to+Financial+Activities" target="_blank">{{"labels.heading.Accounts linked to Financial Activities" | translate}}</a> </h4>
|
||||
<h4 class="mw300">
|
||||
{{ 'labels.heading.Account Linked Financial' | translate }}
|
||||
<a
|
||||
href="https://mifosforge.jira.com/wiki/spaces/docs/pages/106430472/Accounts+linked+to+Financial+Activities"
|
||||
target="_blank"
|
||||
>{{ 'labels.heading.Accounts linked to Financial Activities' | translate }}</a
|
||||
>
|
||||
</h4>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonDefineMapping, buttonDefineMapping , 'bottom', true)">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="popover.close(); showPopover(templateButtonDefineMapping, buttonDefineMapping, 'bottom', true)"
|
||||
>
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); nextStep()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
+29
-17
@@ -1,51 +1,63 @@
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" class="container m-b-20">
|
||||
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_FINANCIALACTIVITYACCOUNT'">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[routerLink]="['edit']"
|
||||
*mifosxHasPermission="'UPDATE_FINANCIALACTIVITYACCOUNT'"
|
||||
>
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Edit" | translate}}
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="warn" (click)="deleteFinancialActivityAccount()" *mifosxHasPermission="'DELETE_FINANCIALACTIVITYACCOUNT'">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="warn"
|
||||
(click)="deleteFinancialActivityAccount()"
|
||||
*mifosxHasPermission="'DELETE_FINANCIALACTIVITYACCOUNT'"
|
||||
>
|
||||
<fa-icon icon="trash" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Delete" | translate}}
|
||||
{{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" class="content">
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Financial Activity" | translate}}
|
||||
{{ 'labels.inputs.Financial Activity' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
({{financialActivityAccount?.financialActivityData.id}}) {{ 'labels.accounting.financialActivity.' + financialActivityAccount?.financialActivityData.name | translate }}
|
||||
({{ financialActivityAccount?.financialActivityData.id }})
|
||||
{{
|
||||
'labels.accounting.financialActivity.' + financialActivityAccount?.financialActivityData.name | translate
|
||||
}}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%" class="header">
|
||||
{{"labels.inputs.Account Type" | translate}}
|
||||
{{ 'labels.inputs.Account Type' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="50%">
|
||||
{{ 'labels.inputs.accounting.' + financialActivityAccount?.financialActivityData.mappedGLAccountType | translate }}
|
||||
{{
|
||||
'labels.inputs.accounting.' + financialActivityAccount?.financialActivityData.mappedGLAccountType
|
||||
| translate
|
||||
}}
|
||||
</div>
|
||||
|
||||
<mifosx-gl-account-display fxFlex="100%"
|
||||
<mifosx-gl-account-display
|
||||
fxFlex="100%"
|
||||
[glAccount]="financialActivityAccount?.glAccountData"
|
||||
[accountTitle]="'Account Name'"
|
||||
>
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" color="primary" mat-raised-button [routerLink]="['../..']">{{ "labels.buttons.Back" | translate}}</button>
|
||||
<button type="button" color="primary" mat-raised-button [routerLink]="['../..']">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,73 +1,76 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="frequentPostingsForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
<mat-option *ngFor="let office of officeData" [value]="office.id">
|
||||
{{ office.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="frequentPostingsForm.controls.officeId.hasError('required')">
|
||||
{{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Office' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Accounting Rule" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Accounting Rule' | translate }}</mat-label>
|
||||
<mat-select required formControlName="accountingRule">
|
||||
<mat-option *ngFor="let accountingRule of accountingRuleData" [value]="accountingRule">
|
||||
{{ accountingRule.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="frequentPostingsForm.controls.accountingRule.hasError('required')">
|
||||
{{"labels.inputs.Accounting Rule" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Accounting Rule' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Currency" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Currency' | translate }}</mat-label>
|
||||
<mat-select required formControlName="currencyCode">
|
||||
<mat-option *ngFor="let currency of currencyData" [value]="currency.code">
|
||||
{{ currency.displayLabel }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="frequentPostingsForm.controls.currencyCode.hasError('required')">
|
||||
{{"labels.inputs.Currency" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Currency' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<span fxFlex="48%" fxHide.lt-md></span>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" formArrayName="debits"
|
||||
*ngFor="let debit of debits.controls; let i = index;">
|
||||
|
||||
<div
|
||||
fxFlexFill
|
||||
fxLayout="row wrap"
|
||||
fxLayout.lt-md="column"
|
||||
formArrayName="debits"
|
||||
*ngFor="let debit of debits.controls; let i = index"
|
||||
>
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Affected GL Entry (Debit)" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Affected GL Entry (Debit)' | translate }}</mat-label>
|
||||
<mat-select required formControlName="glAccountId">
|
||||
<mat-option *ngFor="let affectedGLEntryDebit of debitAccountData" [value]="affectedGLEntryDebit.id">
|
||||
{{ affectedGLEntryDebit.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="debits.at(i).controls.glAccountId.hasError('required')">
|
||||
{{"labels.inputs.Affected GL Entry (Debit)" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Affected GL Entry (Debit)' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="43%">
|
||||
<mat-label>{{"labels.inputs.Debit Amount" | translate}}</mat-label>
|
||||
<input type="number" matInput required formControlName="amount">
|
||||
<mat-label>{{ 'labels.inputs.Debit Amount' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="amount" />
|
||||
<mat-error *ngIf="debits.at(i).controls.amount.hasError('required')">
|
||||
{{"labels.inputs.Debit Amount" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Debit Amount' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
@@ -75,37 +78,49 @@
|
||||
<button *ngIf="i !== 0" type="button" mat-icon-button (click)="removeAffectedGLEntry(debits, i)">
|
||||
<fa-icon icon="minus-circle" size="lg"></fa-icon>
|
||||
</button>
|
||||
<button *ngIf="i === 0 && allowMultipleDebitEntries" type="button" mat-icon-button color="primary" (click)="addAffectedGLEntry(debits)">
|
||||
<button
|
||||
*ngIf="i === 0 && allowMultipleDebitEntries"
|
||||
type="button"
|
||||
mat-icon-button
|
||||
color="primary"
|
||||
(click)="addAffectedGLEntry(debits)"
|
||||
>
|
||||
<fa-icon icon="plus-circle" size="lg"></fa-icon>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" formArrayName="credits"
|
||||
*ngFor="let credit of credits.controls; let i = index;">
|
||||
|
||||
<div
|
||||
fxFlexFill
|
||||
fxLayout="row wrap"
|
||||
fxLayout.lt-md="column"
|
||||
formArrayName="credits"
|
||||
*ngFor="let credit of credits.controls; let i = index"
|
||||
>
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Affected GL Entry (Credit)" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Affected GL Entry (Credit)' | translate }}</mat-label>
|
||||
<mat-select required formControlName="glAccountId">
|
||||
<mat-option *ngFor="let affectedGLEntryCredit of creditAccountData" [value]="affectedGLEntryCredit.id">
|
||||
<mat-option
|
||||
*ngFor="let affectedGLEntryCredit of creditAccountData"
|
||||
[value]="affectedGLEntryCredit.id"
|
||||
>
|
||||
{{ affectedGLEntryCredit.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="credits.at(i).controls.glAccountId.hasError('required')">
|
||||
{{"labels.inputs.Affected GL Entry (Credit)" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Affected GL Entry (Credit)' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="43%">
|
||||
<mat-label>{{"labels.inputs.Credit Amount"|translate}}</mat-label>
|
||||
<input type="number" matInput required formControlName="amount">
|
||||
<mat-label>{{ 'labels.inputs.Credit Amount' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="amount" />
|
||||
<mat-error *ngIf="credits.at(i).controls.amount.hasError('required')">
|
||||
{{"labels.inputs.Credit Amount"|translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Credit Amount' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
@@ -113,32 +128,44 @@
|
||||
<button *ngIf="i !== 0" type="button" mat-icon-button (click)="removeAffectedGLEntry(credits, i)">
|
||||
<fa-icon icon="minus-circle" size="lg"></fa-icon>
|
||||
</button>
|
||||
<button *ngIf="i === 0 && allowMultipleCreditEntries" type="button" mat-icon-button color="primary" (click)="addAffectedGLEntry(credits)">
|
||||
<button
|
||||
*ngIf="i === 0 && allowMultipleCreditEntries"
|
||||
type="button"
|
||||
mat-icon-button
|
||||
color="primary"
|
||||
(click)="addAffectedGLEntry(credits)"
|
||||
>
|
||||
<fa-icon icon="plus-circle" size="lg"></fa-icon>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Reference Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="referenceNumber">
|
||||
<mat-label>{{ 'labels.inputs.Reference Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="referenceNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="transactionDatePicker.open()">
|
||||
<mat-label>{{"labels.inputs.Transaction Date"|translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDatePicker" required formControlName="transactionDate">
|
||||
<mat-label>{{ 'labels.inputs.Transaction Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="transactionDatePicker"
|
||||
required
|
||||
formControlName="transactionDate"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="transactionDatePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #transactionDatePicker></mat-datepicker>
|
||||
<mat-error *ngIf="frequentPostingsForm.controls.transactionDate.hasError('required')">
|
||||
{{"labels.inputs.Transaction Date"|translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Transaction Date' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Payment Type"|translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Payment Type' | translate }}</mat-label>
|
||||
<mat-select formControlName="paymentTypeId">
|
||||
<mat-option *ngFor="let paymentType of paymentTypeData" [value]="paymentType.id">
|
||||
{{ paymentType.name }}
|
||||
@@ -147,46 +174,50 @@
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Account Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="accountNumber">
|
||||
<mat-label>{{ 'labels.inputs.Account Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="accountNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Cheque Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="checkNumber">
|
||||
<mat-label>{{ 'labels.inputs.Cheque Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="checkNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Routing Code"|translate}}</mat-label>
|
||||
<input matInput formControlName="routingCode">
|
||||
<mat-label>{{ 'labels.inputs.Routing Code' | translate }}</mat-label>
|
||||
<input matInput formControlName="routingCode" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Receipt Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="receiptNumber">
|
||||
<mat-label>{{ 'labels.inputs.Receipt Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="receiptNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Bank Number"|translate}}</mat-label>
|
||||
<input matInput formControlName="bankNumber">
|
||||
<mat-label>{{ 'labels.inputs.Bank Number' | translate }}</mat-label>
|
||||
<input matInput formControlName="bankNumber" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="98%">
|
||||
<mat-label>{{"labels.inputs.Comments"|translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Comments' | translate }}</mat-label>
|
||||
<textarea matInput formControlName="comments" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!frequentPostingsForm.valid" *mifosxHasPermission="'CREATE_JOURNALENTRY'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!frequentPostingsForm.valid"
|
||||
*mifosxHasPermission="'CREATE_JOURNALENTRY'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
+87
-61
@@ -1,98 +1,111 @@
|
||||
<!-- TODO: Responsiveness/design enhancement and reduction in form loading time -->
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="openingBalancesForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div #searchFormRef fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<div class="m-r-30" fxFlex="83%">
|
||||
<mat-form-field fxFlex="96%">
|
||||
<mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
|
||||
<mat-select required formControlName="officeId">
|
||||
<mat-option *ngFor="let office of officeData" [value]="office.id">
|
||||
{{ office.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="openingBalancesForm.controls.officeId.hasError('required')">
|
||||
{{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}}
|
||||
<strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Office' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div fxFlex="15%">
|
||||
<button mat-raised-button color="primary" (click)="retrieveOpeningBalances()">{{"labels.buttons.Retrieve" |
|
||||
translate}}</button>
|
||||
<button mat-raised-button color="primary" (click)="retrieveOpeningBalances()">
|
||||
{{ 'labels.buttons.Retrieve' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="openingBalancesData">
|
||||
|
||||
<mifosx-gl-account-display fxFlex="100%" [accountTitle]="'Opening Balances Contra Account'"
|
||||
[glAccount]="openingBalancesData.contraAccount" [withTitle]="'50%'">
|
||||
<mifosx-gl-account-display
|
||||
fxFlex="100%"
|
||||
[accountTitle]="'Opening Balances Contra Account'"
|
||||
[glAccount]="openingBalancesData.contraAccount"
|
||||
[withTitle]="'50%'"
|
||||
>
|
||||
</mifosx-gl-account-display>
|
||||
|
||||
<mat-form-field fxFlex="48%">
|
||||
<mat-label>{{"labels.inputs.Currency" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Currency' | translate }}</mat-label>
|
||||
<mat-select required formControlName="currencyCode">
|
||||
<mat-option *ngFor="let currency of currencyData" [value]="currency.code">
|
||||
{{ currency.displayLabel }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="openingBalancesForm.controls.currencyCode.hasError('required')">
|
||||
{{"labels.inputs.Currency" | translate}} {{"labels.commons.is" | translate}}
|
||||
<strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Currency' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="48%" (click)="openingBalancesDatePicker.open()">
|
||||
<mat-label>{{"labels.inputs.Opening Balances Date" | translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="openingBalancesDatePicker" required
|
||||
formControlName="transactionDate">
|
||||
<mat-label>{{ 'labels.inputs.Opening Balances Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="openingBalancesDatePicker"
|
||||
required
|
||||
formControlName="transactionDate"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="openingBalancesDatePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #openingBalancesDatePicker></mat-datepicker>
|
||||
<mat-error *ngIf="openingBalancesForm.controls.transactionDate.hasError('required')">
|
||||
{{"labels.inputs.Opening Balances Date" | translate}} {{"labels.commons.is" | translate}}
|
||||
<strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Opening Balances Date' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" class="content" fxFlex="100%">
|
||||
|
||||
<div class="header" fxFlex="8%">
|
||||
{{"labels.inputs.Type" | translate}}
|
||||
{{ 'labels.inputs.Type' | translate }}
|
||||
</div>
|
||||
|
||||
<div class="header" fxFlex="18%">
|
||||
{{"labels.inputs.GL Code" | translate}}
|
||||
{{ 'labels.inputs.GL Code' | translate }}
|
||||
</div>
|
||||
|
||||
<div class="header" fxFlex="18%">
|
||||
{{"labels.inputs.Account" | translate}}
|
||||
{{ 'labels.inputs.Account' | translate }}
|
||||
</div>
|
||||
|
||||
<div class="header r-amount" fxFlex="23%">
|
||||
{{"labels.inputs.Total Debit" | translate}}: {{ debitsSum | currency:currencyCode:'symbol-narrow':'1.2-2' }}
|
||||
{{ 'labels.inputs.Total Debit' | translate }}:
|
||||
{{ debitsSum | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}
|
||||
</div>
|
||||
|
||||
<div class="header r-amount" fxFlex="23%">
|
||||
{{"labels.inputs.Total Credit" | translate}}: {{ creditsSum | currency:currencyCode:'symbol-narrow':'1.2-2' }}
|
||||
{{ 'labels.inputs.Total Credit' | translate }}:
|
||||
{{ creditsSum | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayout.lt-md="column" class="content" formArrayName="glAccountEntries"
|
||||
*ngFor="let credit of glAccountEntries.controls; let i = index;">
|
||||
|
||||
<div
|
||||
fxFlexFill
|
||||
fxLayout="row wrap"
|
||||
fxLayout.lt-md="column"
|
||||
class="content"
|
||||
formArrayName="glAccountEntries"
|
||||
*ngFor="let credit of glAccountEntries.controls; let i = index"
|
||||
>
|
||||
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
|
||||
|
||||
<div fxFlex="8%">
|
||||
{{ (openingBalancesData.glAccounts[i].glAccountType.value !==
|
||||
openingBalancesData.glAccounts[i-1]?.glAccountType.value) ?
|
||||
glAccountTypeLabel(openingBalancesData.glAccounts[i].glAccountType.value) : '' }}
|
||||
{{
|
||||
openingBalancesData.glAccounts[i].glAccountType.value !==
|
||||
openingBalancesData.glAccounts[i - 1]?.glAccountType.value
|
||||
? glAccountTypeLabel(openingBalancesData.glAccounts[i].glAccountType.value)
|
||||
: ''
|
||||
}}
|
||||
</div>
|
||||
|
||||
<div fxFlex="13%">
|
||||
@@ -105,51 +118,64 @@
|
||||
|
||||
<div fxFlex="20%">
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Debit" | translate}}</mat-label>
|
||||
<input matInput type="number" formControlName="debit">
|
||||
<mat-label>{{ 'labels.inputs.Debit' | translate }}</mat-label>
|
||||
<input matInput type="number" formControlName="debit" />
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div fxFlex="20%">
|
||||
<mat-form-field>
|
||||
<mat-label>{{"labels.inputs.Credit" | translate}}</mat-label>
|
||||
<input matInput type="number" formControlName="credit">
|
||||
<mat-label>{{ 'labels.inputs.Credit' | translate }}</mat-label>
|
||||
<input matInput type="number" formControlName="credit" />
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"
|
||||
*ngIf="openingBalancesData">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!openingBalancesForm.valid"
|
||||
*mifosxHasPermission="'DEFINEOPENINGBALANCE_JOURNALENTRY'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<mat-card-actions
|
||||
fxLayout="row"
|
||||
fxLayout.xs="column"
|
||||
fxLayoutAlign="center"
|
||||
fxLayoutGap="5px"
|
||||
*ngIf="openingBalancesData"
|
||||
>
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!openingBalancesForm.valid"
|
||||
*mifosxHasPermission="'DEFINEOPENINGBALANCE_JOURNALENTRY'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
<ng-template #templateSearchFormRef let-popover="popover">
|
||||
<h2>{{"labels.heading.Migrate opening balances (Office-wise)" | translate}}</h2>
|
||||
<p class="mw300">{{"labels.text.Migrate Opening Balances" | translate}} <a
|
||||
<h2>{{ 'labels.heading.Migrate opening balances (Office-wise)' | translate }}</h2>
|
||||
<p class="mw300">
|
||||
{{ 'labels.text.Migrate Opening Balances' | translate }}
|
||||
<a
|
||||
href="https://mifosforge.jira.com/wiki/spaces/docs/pages/90243328/Migrate+opening+balances+Office-wise"
|
||||
target="_blank">{{"labels.inputs.Migrate opening balances (Office-wise)" | translate}}</a></p>
|
||||
target="_blank"
|
||||
>{{ 'labels.inputs.Migrate opening balances (Office-wise)' | translate }}</a
|
||||
>
|
||||
</p>
|
||||
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
<button mat-raised-button color="warn"
|
||||
(click)="popover.close();configurationWizardService.closeConfigWizard()">{{"labels.buttons.Close" |
|
||||
translate}}</button>
|
||||
<button mat-raised-button color="primary"
|
||||
(click)="popover.close();popover.close();previousStep();">{{"labels.buttons.Back" | translate}}</button>
|
||||
<button mat-raised-button color="primary"
|
||||
(click)="popover.close();popover.close();nextStep();">{{"labels.buttons.Next" | translate}}</button>
|
||||
<button mat-raised-button color="warn" (click)="popover.close(); configurationWizardService.closeConfigWizard()">
|
||||
{{ 'labels.buttons.Close' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); popover.close(); previousStep()">
|
||||
{{ 'labels.buttons.Back' | translate }}
|
||||
</button>
|
||||
<button mat-raised-button color="primary" (click)="popover.close(); popover.close(); nextStep()">
|
||||
{{ 'labels.buttons.Next' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
|
||||
@@ -1,37 +1,42 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="periodicAccrualsForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row">
|
||||
|
||||
<mat-form-field fxFlex (click)="tillDatePicker.open()">
|
||||
<mat-label>{{"labels.inputs.Accrue Till Date" | translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="tillDatePicker" required formControlName="tillDate">
|
||||
<mat-label>{{ 'labels.inputs.Accrue Till Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="tillDatePicker"
|
||||
required
|
||||
formControlName="tillDate"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="tillDatePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #tillDatePicker></mat-datepicker>
|
||||
<mat-error *ngIf="periodicAccrualsForm.controls.tillDate.hasError('required')">
|
||||
{{"labels.inputs.Accrue Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Accrue Date' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!periodicAccrualsForm.valid" *mifosxHasPermission="'EXECUTE_PERIODICACCRUALACCOUNTING'">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!periodicAccrualsForm.valid"
|
||||
*mifosxHasPermission="'EXECUTE_PERIODICACCRUALACCOUNTING'"
|
||||
>
|
||||
<fa-icon icon="play" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Run Periodic Accruals" | translate}}
|
||||
{{ 'labels.buttons.Run Periodic Accruals' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
+23
-16
@@ -1,40 +1,47 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<form [formGroup]="provisioningEntryForm" (ngSubmit)="submit()">
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="column">
|
||||
|
||||
<mat-form-field fxFlex (click)="datePicker.open()">
|
||||
<mat-label>{{"labels.inputs.Date" | translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="datePicker" required formControlName="date">
|
||||
<mat-label>{{ 'labels.inputs.Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="datePicker"
|
||||
required
|
||||
formControlName="date"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="datePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #datePicker></mat-datepicker>
|
||||
<mat-error *ngIf="provisioningEntryForm.controls.date.hasError('required')">
|
||||
{{"labels.inputs.Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
|
||||
{{ 'labels.inputs.Date' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<div fxFlex>
|
||||
<mat-checkbox labelPosition="before" formControlName="createjournalentries">
|
||||
{{"labels.inputs.Create Journal Entries" | translate}}
|
||||
{{ 'labels.inputs.Create Journal Entries' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!provisioningEntryForm.valid" *mifosxHasPermission="'CREATE_PROVISIONING_ENTRIES'">{{"labels.buttons.Submit" | translate}}</button>
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[disabled]="!provisioningEntryForm.valid"
|
||||
*mifosxHasPermission="'CREATE_PROVISIONING_ENTRIES'"
|
||||
>
|
||||
{{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
|
||||
</form>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,74 +1,85 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'VIEW_ALL_PROVISIONING_ENTRIES'">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'VIEW_ALL_PROVISIONING_ENTRIES'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Create Provisioning Entry" | translate}}
|
||||
{{ 'labels.buttons.Create Provisioning Entry' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div fxLayout="row">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div class="mat-elevation-z8">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
|
||||
<ng-container matColumnDef="createdUser">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Created By" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.createdUser }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Created By' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.createdUser }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="createdDate">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Created On" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.createdDate }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Created On' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.createdDate }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="journalEntry">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Journal Entry Created" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>
|
||||
{{ 'labels.inputs.Journal Entry Created' | translate }}
|
||||
</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">
|
||||
<mat-checkbox [disabled]="true" [checked]="provisioningEntry.journalEntry"></mat-checkbox>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="viewReport">
|
||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.View Report" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.View Report' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">
|
||||
<button mat-button color="primary" [routerLink]="['view', provisioningEntry.id]">
|
||||
<fa-icon icon="eye" class="m-r-10"></fa-icon>{{"labels.buttons.View" | translate}}
|
||||
<fa-icon icon="eye" class="m-r-10"></fa-icon>{{ 'labels.buttons.View' | translate }}
|
||||
</button>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="recreateProvisioning">
|
||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Recreate Provisioning" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Recreate Provisioning' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">
|
||||
<button mat-button (click)="recreateProvisioning($event, provisioningEntry.id)" [disabled]="provisioningEntry.journalEntry" color="primary">
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>{{"labels.buttons.Recreate" | translate}}
|
||||
<button
|
||||
mat-button
|
||||
(click)="recreateProvisioning($event, provisioningEntry.id)"
|
||||
[disabled]="provisioningEntry.journalEntry"
|
||||
color="primary"
|
||||
>
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>{{ 'labels.buttons.Recreate' | translate }}
|
||||
</button>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="viewJournalEntry">
|
||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.View Journal Entry" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.View Journal Entry' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">
|
||||
<button mat-button (click)="viewJournalEntry($event, provisioningEntry.id)" [disabled]="!provisioningEntry.journalEntry" color="primary">
|
||||
<fa-icon icon="eye" class="m-r-10"></fa-icon>{{"labels.buttons.View" | translate}}
|
||||
<button
|
||||
mat-button
|
||||
(click)="viewJournalEntry($event, provisioningEntry.id)"
|
||||
[disabled]="!provisioningEntry.journalEntry"
|
||||
color="primary"
|
||||
>
|
||||
<fa-icon icon="eye" class="m-r-10"></fa-icon>{{ 'labels.buttons.View' | translate }}
|
||||
</button>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
||||
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+38
-41
@@ -1,20 +1,22 @@
|
||||
<div class="container" *ngIf="provisioningEntry">
|
||||
|
||||
<div class="m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<button mat-raised-button color="primary" (click)="createProvisioningJournalEntries()" [disabled]="provisioningEntry.journalEntry" *mifosxHasPermission="'CREATE_JOURNAL_ENTRY'">
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="createProvisioningJournalEntries()"
|
||||
[disabled]="provisioningEntry.journalEntry"
|
||||
*mifosxHasPermission="'CREATE_JOURNAL_ENTRY'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{"labels.buttons.Create Journal Entries" | translate}}
|
||||
{{ 'labels.buttons.Create Journal Entries' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<mat-card>
|
||||
|
||||
<mat-card-content>
|
||||
|
||||
<div fxLayout="row wrap" class="content" fxLayout.lt-md="column">
|
||||
|
||||
<div fxFlex="16%" class="header">
|
||||
{{"labels.inputs.Created By" | translate}}
|
||||
{{ 'labels.inputs.Created By' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="16%">
|
||||
@@ -22,7 +24,7 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="16%" class="header">
|
||||
{{"labels.inputs.Created On" | translate}}
|
||||
{{ 'labels.inputs.Created On' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="16%">
|
||||
@@ -30,39 +32,33 @@
|
||||
</div>
|
||||
|
||||
<div fxFlex="18%" class="header">
|
||||
{{"labels.inputs.Amount to be Reserved" | translate}}
|
||||
{{ 'labels.inputs.Amount to be Reserved' | translate }}
|
||||
</div>
|
||||
|
||||
<div fxFlex="18%">
|
||||
{{ provisioningEntry.reservedAmount }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Search -->
|
||||
<div class="container m-t-20" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{"labels.inputs.Office Name" | translate}}</mat-label>
|
||||
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete">
|
||||
<mat-label>{{ 'labels.inputs.Office Name' | translate }}</mat-label>
|
||||
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{"labels.inputs.Loan Product" | translate}}</mat-label>
|
||||
<input matInput [formControl]="loanProduct" [matAutocomplete]="loanProductAutocomplete">
|
||||
<mat-label>{{ 'labels.inputs.Loan Product' | translate }}</mat-label>
|
||||
<input matInput [formControl]="loanProduct" [matAutocomplete]="loanProductAutocomplete" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{"labels.inputs.Provisioning Category" | translate}}</mat-label>
|
||||
<input matInput [formControl]="provisioningCategory" [matAutocomplete]="provisioningCategoryAutocomplete">
|
||||
<mat-label>{{ 'labels.inputs.Provisioning Category' | translate }}</mat-label>
|
||||
<input matInput [formControl]="provisioningCategory" [matAutocomplete]="provisioningCategoryAutocomplete" />
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Autocomplete data -->
|
||||
@@ -79,7 +75,10 @@
|
||||
</mat-autocomplete>
|
||||
|
||||
<mat-autocomplete autoActiveFirstOption #provisioningCategoryAutocomplete="matAutocomplete">
|
||||
<mat-option *ngFor="let provisioningCategory of filteredProvisioningCategoryData | async" [value]="provisioningCategory.categoryName">
|
||||
<mat-option
|
||||
*ngFor="let provisioningCategory of filteredProvisioningCategoryData | async"
|
||||
[value]="provisioningCategory.categoryName"
|
||||
>
|
||||
{{ provisioningCategory.categoryName }}
|
||||
</mat-option>
|
||||
</mat-autocomplete>
|
||||
@@ -87,49 +86,47 @@
|
||||
<!--Table -->
|
||||
|
||||
<div class="mat-elevation-z8 container">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
|
||||
<ng-container matColumnDef="officeName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office Name" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.officeName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Office Name' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.officeName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="productName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Product Name" | translate}}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.productName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Product Name' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.productName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="currencyCode">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Currency Code" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.currencyCode }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Currency Code' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.currencyCode }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="categoryName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Category Name" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.categoryName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Category Name' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.categoryName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="amountreserved">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Provisioning Amount" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.amountreserved }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Provisioning Amount' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.amountreserved }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="liabilityAccountName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Liability Account (CR)" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.liabilityAccountName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>
|
||||
{{ 'labels.inputs.Liability Account (CR)' | translate }}
|
||||
</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.liabilityAccountName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="expenseAccountName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Expense Account (DR)" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.expenseAccountName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Expense Account (DR)' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningEntry">{{ provisioningEntry.expenseAccountName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
||||
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
</div>
|
||||
|
||||
+39
-29
@@ -1,73 +1,83 @@
|
||||
<div class="container">
|
||||
|
||||
<div fxLayout="row" fxLayoutGap="20px">
|
||||
<mat-form-field fxFlex>
|
||||
<mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)">
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div class="mat-elevation-z8">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
|
||||
<ng-container matColumnDef="id">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Entry ID" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.id }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Entry ID' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">{{ provisioningJournalEntry.id }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="officeName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.officeName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Office' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">{{ provisioningJournalEntry.officeName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="transactionDate">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction Date" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.transactionDate }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Transaction Date' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">{{ provisioningJournalEntry.transactionDate }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="transactionId">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction ID" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.transactionId }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Transaction ID' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">{{ provisioningJournalEntry.transactionId }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountType">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountType.value }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Type' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">{{ provisioningJournalEntry.glAccountType.value }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="createdByUserName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.createdByUserName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Type' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">{{ provisioningJournalEntry.createdByUserName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountCode">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountCode }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Account Code' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">{{ provisioningJournalEntry.glAccountCode }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Account Name' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">{{ provisioningJournalEntry.glAccountName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="debit">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"><span *ngIf="provisioningJournalEntry.entryType.value === 'DEBIT'"> {{ (provisioningJournalEntry.currency.displaySymbol || provisioningJournalEntry.currency.code) + ' ' + provisioningJournalEntry.amount }} </span></td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Debit' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">
|
||||
<span *ngIf="provisioningJournalEntry.entryType.value === 'DEBIT'">
|
||||
{{
|
||||
(provisioningJournalEntry.currency.displaySymbol || provisioningJournalEntry.currency.code) +
|
||||
' ' +
|
||||
provisioningJournalEntry.amount
|
||||
}}
|
||||
</span>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="credit">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry"><span *ngIf="provisioningJournalEntry.entryType.value === 'CREDIT'"> {{ (provisioningJournalEntry.currency.displaySymbol || provisioningJournalEntry.currency.code) + ' ' + provisioningJournalEntry.amount }} </span></td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Credit' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let provisioningJournalEntry">
|
||||
<span *ngIf="provisioningJournalEntry.entryType.value === 'CREDIT'">
|
||||
{{
|
||||
(provisioningJournalEntry.currency.displaySymbol || provisioningJournalEntry.currency.code) +
|
||||
' ' +
|
||||
provisioningJournalEntry.amount
|
||||
}}
|
||||
</span>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
||||
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
<div *ngIf="!data.reverted; else reverted">
|
||||
|
||||
<h1 mat-dialog-title>{{"labels.heading.Revert Transaction" | translate}}</h1>
|
||||
<h1 mat-dialog-title>{{ 'labels.heading.Revert Transaction' | translate }}</h1>
|
||||
<div mat-dialog-content>
|
||||
<p>{{"labels.text.Revert this transaction?" | translate}}</p>
|
||||
<p>{{ 'labels.text.Revert this transaction?' | translate }}</p>
|
||||
<mat-form-field fxFlexFill>
|
||||
<mat-label>{{"labels.inputs.Comments" | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Comments' | translate }}</mat-label>
|
||||
<textarea matInput [formControl]="comments"></textarea>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<mat-dialog-actions align="end">
|
||||
<button mat-button mat-dialog-close>{{"labels.buttons.No" | translate}}</button>
|
||||
<button mat-button [mat-dialog-close]="{ revert: true, comments: comments.value }">{{"labels.buttons.Yes" | translate}}</button>
|
||||
<button mat-button mat-dialog-close>{{ 'labels.buttons.No' | translate }}</button>
|
||||
<button mat-button [mat-dialog-close]="{ revert: true, comments: comments.value }">
|
||||
{{ 'labels.buttons.Yes' | translate }}
|
||||
</button>
|
||||
</mat-dialog-actions>
|
||||
|
||||
</div>
|
||||
|
||||
<ng-template #reverted>
|
||||
|
||||
<h1 mat-dialog-title>{{"labels.heading.Transaction Reverted" | translate}}</h1>
|
||||
<div mat-dialog-content>
|
||||
<h4>{{"labels.heading.Success!" | translate}}</h4>
|
||||
<p>{{"labels.text.Journal entry reverse transaction" | translate}}</p>
|
||||
<p>{{"labels.text.Transaction ID" | translate}}: {{ data.transactionId }}</p>
|
||||
</div>
|
||||
<mat-dialog-actions align="end">
|
||||
<button mat-button mat-dialog-close>{{"labels.buttons.Close" | translate}}</button>
|
||||
<button mat-button [mat-dialog-close]="{ redirect: true }">{{"labels.buttons.Redirect to New Transaction" | translate}}</button>
|
||||
</mat-dialog-actions>
|
||||
|
||||
<h1 mat-dialog-title>{{ 'labels.heading.Transaction Reverted' | translate }}</h1>
|
||||
<div mat-dialog-content>
|
||||
<h4>{{ 'labels.heading.Success!' | translate }}</h4>
|
||||
<p>{{ 'labels.text.Journal entry reverse transaction' | translate }}</p>
|
||||
<p>{{ 'labels.text.Transaction ID' | translate }}: {{ data.transactionId }}</p>
|
||||
</div>
|
||||
<mat-dialog-actions align="end">
|
||||
<button mat-button mat-dialog-close>{{ 'labels.buttons.Close' | translate }}</button>
|
||||
<button mat-button [mat-dialog-close]="{ redirect: true }">
|
||||
{{ 'labels.buttons.Redirect to New Transaction' | translate }}
|
||||
</button>
|
||||
</mat-dialog-actions>
|
||||
</ng-template>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<div class="container" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{"labels.inputs.Office Name" | translate}}</mat-label>
|
||||
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete">
|
||||
<mat-label>{{ 'labels.inputs.Office Name' | translate }}</mat-label>
|
||||
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete" />
|
||||
</mat-form-field>
|
||||
|
||||
<mifosx-gl-account-selector fxFlex="31%"
|
||||
<mifosx-gl-account-selector
|
||||
fxFlex="31%"
|
||||
[inputFormControl]="glAccount"
|
||||
[glAccountList]="glAccountData"
|
||||
[required]="true"
|
||||
@@ -14,7 +14,7 @@
|
||||
</mifosx-gl-account-selector>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<mat-select [formControl]="entryTypeFilter" (selectionChange)="applyFilter($event.value, 'manualEntriesOnly')">
|
||||
<mat-option *ngFor="let filter of entryTypeFilterData" [value]="filter.value">
|
||||
{{ filter.option }}
|
||||
@@ -23,41 +23,61 @@
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%" (click)="transactionDateFromPicker.open()">
|
||||
<mat-label>{{"labels.inputs.Transaction Date From" | translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDateFromPicker" [formControl]="transactionDateFrom">
|
||||
<mat-label>{{ 'labels.inputs.Transaction Date From' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="transactionDateFromPicker"
|
||||
[formControl]="transactionDateFrom"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="transactionDateFromPicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #transactionDateFromPicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%" (click)="transactionDateToPicker.open()">
|
||||
<mat-label>{{"labels.inputs.Transaction Date To" | translate}}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDateToPicker" [formControl]="transactionDateTo">
|
||||
<mat-label>{{ 'labels.inputs.Transaction Date To' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="transactionDateToPicker"
|
||||
[formControl]="transactionDateTo"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="transactionDateToPicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #transactionDateToPicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%">
|
||||
<mat-label>{{"labels.inputs.Transaction ID" | translate}}</mat-label>
|
||||
<input matInput [formControl]="transactionId">
|
||||
<mat-label>{{ 'labels.inputs.Transaction ID' | translate }}</mat-label>
|
||||
<input matInput [formControl]="transactionId" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%" (click)="submittedOnDateFromPicker.open()">
|
||||
<mat-label>{{"labels.inputs.Submitted on Date From" | translate}}</mat-label>
|
||||
<input matInput [max]="submittedOnDateTo.value" [matDatepicker]="submittedOnDateFromPicker" [formControl]="submittedOnDateFrom">
|
||||
<mat-label>{{ 'labels.inputs.Submitted on Date From' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[max]="submittedOnDateTo.value"
|
||||
[matDatepicker]="submittedOnDateFromPicker"
|
||||
[formControl]="submittedOnDateFrom"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="submittedOnDateFromPicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #submittedOnDateFromPicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex="31%" (click)="submittedOnDateToPicker.open()">
|
||||
<mat-label>{{"labels.inputs.Submitted on Date To" | translate}} </mat-label>
|
||||
<input matInput [min]="submittedOnDateFrom.value" [matDatepicker]="submittedOnDateToPicker" [formControl]="submittedOnDateTo">
|
||||
<mat-label>{{ 'labels.inputs.Submitted on Date To' | translate }} </mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="submittedOnDateFrom.value"
|
||||
[matDatepicker]="submittedOnDateToPicker"
|
||||
[formControl]="submittedOnDateTo"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="submittedOnDateToPicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #submittedOnDateToPicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Autocomplete data -->
|
||||
<mat-autocomplete autoActiveFirstOption #officeNameAutocomplete="matAutocomplete" [displayWith]="displayOfficeName">
|
||||
<mat-option *ngFor="let office of filteredOfficeData | async" [value]="{ id: office.id, name: office.name }">
|
||||
@@ -66,74 +86,84 @@
|
||||
</mat-autocomplete>
|
||||
|
||||
<div class="mat-elevation-z8 container">
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
|
||||
<ng-container matColumnDef="id">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Entry ID" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.id }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Entry ID' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.id }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="officeName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.officeName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Office' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.officeName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="transactionId">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction ID" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.transactionId }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Transaction ID' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.transactionId }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="transactionDate">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction Date" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.transactionDate | dateFormat }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Transaction Date' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.transactionDate | dateFormat }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountType">
|
||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountType.value }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Type' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.glAccountType.value }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="createdByUserName">
|
||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Created By" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.createdByUserName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Created By' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.createdByUserName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="submittedOnDate">
|
||||
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Submitted on date" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.submittedOnDate | datetimeFormat }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Submitted on date' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.submittedOnDate | datetimeFormat }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountCode">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountCode }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Account Code' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.glAccountCode }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="glAccountName">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountName }} </td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Account Name' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.glAccountName }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="currency">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Currency" | translate}} </th>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Currency' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.currency.code }}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="debit">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'DEBIT'"> {{ journalEntry.amount | formatNumber }} </span></td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Debit' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">
|
||||
<span *ngIf="journalEntry.entryType.value === 'DEBIT'"> {{ journalEntry.amount | formatNumber }} </span>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="credit">
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit" | translate}} </th>
|
||||
<td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'CREDIT'"> {{ journalEntry.amount | formatNumber }} </span></td>
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Credit' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let journalEntry">
|
||||
<span *ngIf="journalEntry.entryType.value === 'CREDIT'"> {{ journalEntry.amount | formatNumber }} </span>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [routerLink]="['transactions/view', row.transactionId]" class="select-row"></tr>
|
||||
|
||||
<tr
|
||||
mat-row
|
||||
*matRowDef="let row; columns: displayedColumns"
|
||||
[routerLink]="['transactions/view', row.transactionId]"
|
||||
class="select-row"
|
||||
></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [length]="dataSource?.records$ | async" [pageSize]="50" [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
<mat-paginator
|
||||
[length]="dataSource?.records$ | async"
|
||||
[pageSize]="50"
|
||||
[pageSizeOptions]="[10, 25, 50, 100]"
|
||||
showFirstLastButtons
|
||||
></mat-paginator>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user