feat:Unificaction of radhathakare's PR (#1879)

* feat:Clients Translate Module

* feat: Collections Translate Module

* feat:Loan Translate Module

* feat:Search Translate Module

* feat English Json File

---------

Co-authored-by: radhathakare <radhathakare322@gmail.com>
This commit is contained in:
Francisco Cuandon
2023-10-18 10:50:03 -06:00
committed by GitHub
co-authored by radhathakare
parent 3e1067bfc6
commit d92f6c1c5e
111 changed files with 1502 additions and 1427 deletions
@@ -1,10 +1,10 @@
<div class="mat-typography">
<h3>Address</h3>
<h3>{{"labels.heading.Address" |translate}}</h3>
<div fxLayout="row" fxLayoutAlign="flex-end" class="m-b-20">
<button mat-raised-button color="primary" (click)="addAddress()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>Add
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Add" | translate}}
</button>
</div>
@@ -37,18 +37,18 @@
</div>
<p>
<span *ngIf="isFieldEnabled('street')">Street : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">Address Line 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">Address Line 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">Address Line 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">Town / Village : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">City : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">State / Province :
<span *ngIf="isFieldEnabled('street')">{{ "labels.inputs.Street" |translate}} : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">{{ "labels.inputs.Address Line" |translate}} 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">{{ "labels.inputs.Address Line" |translate}} 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">{{ "labels.inputs.Address Line" |translate}} 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">{{ "labels.inputs.Town / Village" |translate}} : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">{{ "labels.inputs.City" |translate}} : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">{{ "labels.inputs.State / Province" |translate}} :
{{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('countryId')">Country :
<span *ngIf="isFieldEnabled('countryId')">{{ "labels.inputs.Country" |translate}} :
{{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">Postal Code : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">Active Status : {{address.isActive}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">{{ "labels.inputs.Postal Code" |translate}} : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">{{ "labels.inputs.Active Status" |translate}} : {{address.isActive}}<br /></span>
</p>
</mat-expansion-panel>
@@ -58,10 +58,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{ "labels.buttons.Previous" | translate}}
</button>
<button mat-raised-button matStepperNext>
Next
{{ "labels.buttons.Next" | translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -40,10 +40,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious disabled>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{ "labels.buttons.Previous" | translate}}
</button>
<button mat-raised-button matStepperNext>
Next
{{ "labels.buttons.Next" | translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -1,71 +1,71 @@
<h1 mat-dialog-title>{{ data.context }} Family Member</h1>
<h1 mat-dialog-title>{{ data.context }} {{"labels.heading.Family Member" |translate}}</h1>
<form [formGroup]="familyMemberForm">
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center" fxLayoutGap="2%">
<mat-form-field fxFlex="48%">
<mat-label>First Name</mat-label>
<mat-label>{{ "labels.inputs.First Name" |translate}}</mat-label>
<input formControlName="firstName" required matInput />
<mat-error *ngIf="familyMemberForm.controls.firstName.hasError('required')">
First Name is <strong>required</strong>
{{ "labels.inputs.First Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Middle Name</mat-label>
<mat-label>{{ "labels.inputs.Middle Name" |translate}}</mat-label>
<input formControlName="middleName" matInput />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Last Name</mat-label>
<mat-label>{{ "labels.inputs.Last Name" |translate}}</mat-label>
<input formControlName="lastName" required matInput />
<mat-error *ngIf="familyMemberForm.controls.lastName.hasError('required')">
Last Name is <strong>required</strong>
{{ "labels.inputs.Last Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Qualification</mat-label>
<mat-label>{{ "labels.inputs.Qualification" |translate}}</mat-label>
<input formControlName="qualification" matInput />
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Age</mat-label>
<mat-label>{{ "labels.inputs.Age" |translate}}</mat-label>
<input type="number" formControlName="age" matInput [min]="0"/>
<mat-error *ngIf="familyMemberForm.controls.age.hasError('required')">
Age is <strong>required and cannot be negative</strong>
{{ "labels.inputs.Age" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required and cannot be negative" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-checkbox formControlName="isDependent" labelPosition="before" fxFlex="48%">Is Dependent?</mat-checkbox>
<mat-checkbox formControlName="isDependent" labelPosition="before" fxFlex="48%">{{ "labels.inputs.Is Dependent" |translate}}?</mat-checkbox>
<mat-form-field fxFlex="48%">
<mat-label>Relationship</mat-label>
<mat-label>{{ "labels.inputs.Relationship" |translate}}</mat-label>
<mat-select formControlName="relationshipId" required>
<mat-option *ngFor="let relation of data.options.relationshipIdOptions" [value]="relation.id">
{{ relation.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="familyMemberForm.controls.relationshipId.hasError('required')">
Relationship is <strong>required</strong>
{{ "labels.inputs.Relationship" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Gender</mat-label>
<mat-label>{{ "labels.inputs.Gender" |translate}}</mat-label>
<mat-select formControlName="genderId" required>
<mat-option *ngFor="let gender of data.options.genderIdOptions" [value]="gender.id">
{{ gender.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="familyMemberForm.controls.genderId.hasError('required')">
Gender is <strong>required</strong>
{{ "labels.inputs.Gender" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Profession</mat-label>
<mat-label>{{ "labels.inputs.Profession" |translate}}</mat-label>
<mat-select formControlName="professionId">
<mat-option *ngFor="let profession of data.options.professionIdOptions" [value]="profession.id">
{{ profession.name }}
@@ -74,7 +74,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Marital Status</mat-label>
<mat-label>{{ "labels.inputs.Marital Status" |translate}}</mat-label>
<mat-select formControlName="maritalStatusId">
<mat-option *ngFor="let maritalStatus of data.options.maritalStatusIdOptions"
[value]="maritalStatus.id">
@@ -85,20 +85,20 @@
<mat-form-field fxFlex="98%" (click)="dueDatePicker.open()">
<mat-label>Date Of Birth</mat-label>
<mat-label>{{ "labels.inputs.Date Of Birth" |translate}}</mat-label>
<input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker" required>
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="familyMemberForm.controls.dateOfBirth.hasError('required')">
Date of birth is <strong>required</strong>
{{ "labels.inputs.Date of birth" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
</div>
<mat-dialog-actions align="center">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button color="primary" [disabled]="!familyMemberForm.valid" [mat-dialog-close]="{ member: familyMember }">Confirm</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!familyMemberForm.valid" [mat-dialog-close]="{ member: familyMember }">{{ "labels.buttons.Confirm" | translate}}</button>
</mat-dialog-actions>
</form>
@@ -1,10 +1,10 @@
<div class="mat-typography">
<h3>Family Members</h3>
<h3>{{"labels.heading.Family Members" |translate}}</h3>
<div fxLayout="row" fxLayoutAlign="flex-end" class="m-b-20">
<button mat-raised-button color="primary" (click)="addFamilyMember()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>Add
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Add" | translate}}
</button>
</div>
@@ -36,17 +36,17 @@
</div>
<p>
First Name : {{ member.firstName }}<br />
Middle Name : {{ member.middleName }}<br />
Last Name : {{ member.lastName }}<br />
Qualification : {{ member.qualification }}<br />
Relationship : {{ member.relationshipId | find:clientTemplate.familyMemberOptions.relationshipIdOptions:'id':'name' }}<br />
Age : {{ member.age }}<br />
Is Dependent : {{ member.isDependent ? 'Yes' : 'No' }}<br />
Marital Status : {{ member.maritalStatusId | find:clientTemplate.familyMemberOptions.maritalStatusIdOptions:'id':'name' }}<br />
Gender : {{ member.genderId | find:clientTemplate.familyMemberOptions.genderIdOptions:'id':'name' }}<br />
Profession : {{member.professionId | find:clientTemplate.familyMemberOptions.professionIdOptions:'id':'name' }}<br />
Date Of Birth : {{member.dateOfBirth | dateFormat}}<br />
{{ "labels.inputs.First Name" |translate}} : {{ member.firstName }}<br />
{{ "labels.inputs.Middle Name" |translate}} : {{ member.middleName }}<br />
{{ "labels.inputs.Last Name" |translate}} : {{ member.lastName }}<br />
{{ "labels.inputs.Qualification" |translate}} : {{ member.qualification }}<br />
{{ "labels.inputs.Relationship" |translate}} : {{ member.relationshipId | find:clientTemplate.familyMemberOptions.relationshipIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Age" |translate}} : {{ member.age }}<br />
{{ "labels.inputs.Is Dependent" |translate}} : {{ member.isDependent ? 'Yes' : 'No' }}<br />
{{ "labels.inputs.Marital Status" |translate}} : {{ member.maritalStatusId | find:clientTemplate.familyMemberOptions.maritalStatusIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Gender" |translate}} : {{ member.genderId | find:clientTemplate.familyMemberOptions.genderIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Profession" |translate}} : {{member.professionId | find:clientTemplate.familyMemberOptions.professionIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Date Of Birth" |translate}} : {{member.dateOfBirth | dateFormat}}<br />
</p>
</mat-expansion-panel>
@@ -56,10 +56,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{ "labels.buttons.Previous" | translate}}
</button>
<button mat-raised-button matStepperNext>
Next
{{ "labels.buttons.Next" | translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -3,19 +3,19 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<mat-label>Office</mat-label>
<mat-label>{{ "labels.inputs.Office" |translate}}</mat-label>
<mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeOptions" [value]="office.id">
{{ office.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="createClientForm.controls.officeId.hasError('required')">
Office is <strong>required</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>Legal Form</mat-label>
<mat-label>{{ "labels.inputs.Legal Form" |translate}}</mat-label>
<mat-select required formControlName="legalFormId">
<mat-option *ngFor="let legalForm of legalFormOptions" [value]="legalForm.id">
{{ legalForm.value }}
@@ -24,7 +24,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Staff</mat-label>
<mat-label>{{ "labels.inputs.Staff" |translate}}</mat-label>
<mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffOptions" [value]="staff.id">
{{ staff.displayName }}
@@ -36,40 +36,40 @@
<mat-label>{{ createClientForm.value.legalFormId === 1 ? 'Name' : 'Entity Name' }}</mat-label>
<input matInput required formControlName="fullname">
<mat-error *ngIf="createClientForm.controls.fullname.hasError('required')">
Client name is <strong>required</strong>
{{ "labels.inputs.Client name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
<mat-error *ngIf="createClientForm.controls.fullname.hasError('pattern')">
Client name <strong>cannot</strong> begin with a special character or number
{{ "labels.inputs.Client name" |translate}} <strong>{{ "labels.inputs.cannot" |translate}}</strong> {{ "labels.commons.begin with a special character or number" |translate}}
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="createClientForm.contains('firstname')" fxFlex="48%">
<mat-label>First Name</mat-label>
<mat-label>{{ "labels.inputs.First Name" |translate}}</mat-label>
<input matInput required formControlName="firstname">
<mat-error *ngIf="createClientForm.controls.firstname.hasError('required')">
Client first name is <strong>required</strong>
{{ "labels.inputs.Client first name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
<mat-error *ngIf="createClientForm.controls.firstname.hasError('pattern')">
Client first name <strong>cannot</strong> begin with a special character or number
{{ "labels.inputs.Client first name" |translate}} <strong>{{ "labels.inputs.cannot" |translate}}</strong> {{ "labels.commons.begin with a special character or number" |translate}}
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="createClientForm.contains('middlename')" fxFlex="48%">
<mat-label>Middle Name</mat-label>
<mat-label>{{ "labels.inputs.Middle Name" |translate}}</mat-label>
<input matInput formControlName="middlename">
<mat-error *ngIf="createClientForm.controls.middlename.hasError('pattern')">
Client middle name <strong>cannot</strong> begin with a special character or number
{{ "labels.inputs.Client middle name" |translate}} <strong>{{ "labels.inputs.cannot" |translate}}</strong> {{ "labels.commons.begin with a special character or number" |translate}}
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="createClientForm.contains('lastname')" fxFlex="48%">
<mat-label>Last Name</mat-label>
<mat-label>{{ "labels.inputs.Last Name" |translate}}</mat-label>
<input matInput required formControlName="lastname">
<mat-error *ngIf="createClientForm.controls.lastname.hasError('required')">
Client last name is <strong>required</strong>
{{ "labels.inputs.Client last name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
<mat-error *ngIf="createClientForm.controls.lastname.hasError('pattern')">
Client last name <strong>cannot</strong> begin with a special character or number
{{ "labels.inputs.Client last name" |translate}} <strong>{{ "labels.inputs.cannot" |translate}}</strong> {{ "labels.commons.begin with a special character or number" |translate}}
</mat-error>
</mat-form-field>
@@ -81,7 +81,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>External Id</mat-label>
<mat-label>{{ "labels.inputs.External Id" |translate}}</mat-label>
<input matInput formControlName="externalId">
</mat-form-field>
@@ -89,7 +89,7 @@
*ngIf="createClientForm.contains('clientNonPersonDetails')">
<mat-form-field fxFlex="48%">
<mat-label>Constitution</mat-label>
<mat-label>{{ "labels.inputs.Constitution" |translate}}</mat-label>
<mat-select formControlName="constitutionId" required>
<mat-option *ngFor="let constitution of constitutionOptions" [value]="constitution.id">
{{ constitution.name }}
@@ -98,7 +98,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Main Business Line</mat-label>
<mat-label>{{ "labels.inputs.Main Business Line" |translate}}</mat-label>
<mat-select formControlName="mainBusinessLineId">
<mat-option *ngFor="let business of businessLineOptions" [value]="business.id">
{{ business.name }}
@@ -107,26 +107,26 @@
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="incorpValidityTillDateDatePicker.open()">
<mat-label>Incorporation Validity Till Date</mat-label>
<mat-label>{{ "labels.inputs.Incorporation Validity Till Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="incorpValidityTillDateDatePicker" formControlName="incorpValidityTillDate">
<mat-datepicker-toggle matSuffix [for]="incorpValidityTillDateDatePicker"></mat-datepicker-toggle>
<mat-datepicker #incorpValidityTillDateDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Incorporation Number</mat-label>
<mat-label>{{ "labels.inputs.Incorporation Number" |translate}}</mat-label>
<input matInput formControlName="incorpNumber">
</mat-form-field>
<mat-form-field fxFlex="98%">
<mat-label>Remarks</mat-label>
<mat-label>{{ "labels.inputs.Remarks" |translate}}</mat-label>
<textarea matInput formControlName="remarks" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
</div>
<mat-form-field *ngIf="createClientForm.value.legalFormId === 1" fxFlex="48%">
<mat-label>Gender</mat-label>
<mat-label>{{ "labels.inputs.Gender" |translate}}</mat-label>
<mat-select formControlName="genderId">
<mat-option *ngFor="let gender of genderOptions" [value]="gender.id">
{{ gender.name }}
@@ -135,24 +135,24 @@
</mat-form-field>
<mat-checkbox *ngIf="createClientForm.value.legalFormId === 1" fxFlex="48%" labelPosition="before" formControlName="isStaff" class="margin-v">
Is staff?
{{ "labels.inputs.Is staff" |translate}}?
</mat-checkbox>
<mat-form-field fxFlex="48%">
<mat-label>Mobile No</mat-label>
<mat-label>{{ "labels.inputs.Mobile No" |translate}}</mat-label>
<input matInput type="number" formControlName="mobileNo">
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Email Address</mat-label>
<mat-label>{{ "labels.inputs.Email Address" |translate}}</mat-label>
<input matInput formControlName="emailAddress">
<mat-error *ngIf="createClientForm.controls.emailAddress.errors?.email">
Email not valid
{{"error.Email not valid" |translate}}
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Client Type</mat-label>
<mat-label>{{ "labels.inputs.Client Type" |translate}}</mat-label>
<mat-select formControlName="clientTypeId">
<mat-option *ngFor="let clientType of clientTypeOptions" [value]="clientType.id">
{{ clientType.name }}
@@ -161,7 +161,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Client Classification</mat-label>
<mat-label>{{ "labels.inputs.Client Classification" |translate}}</mat-label>
<mat-select formControlName="clientClassificationId">
<mat-option *ngFor="let clientClassification of clientClassificationTypeOptions" [value]="clientClassification.id">
{{ clientClassification.name }}
@@ -170,7 +170,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="submittedOnDatePicker.open()">
<mat-label>Submitted On</mat-label>
<mat-label>{{ "labels.inputs.Submitted On" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker" formControlName="submittedOnDate" required>
<mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDatePicker></mat-datepicker>
@@ -179,33 +179,33 @@
<br />
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="active" class="margin-v">
Active?
{{ "labels.inputs.Active" |translate}}?
</mat-checkbox>
<mat-form-field *ngIf="createClientForm.contains('activationDate')" fxFlex="48%" (click)="activatedOnDatePicker.open()">
<mat-label>Activation Date</mat-label>
<mat-label>{{ "labels.inputs.Activation Date" |translate}}</mat-label>
<input matInput [min]="createClientForm.value.submittedOnDate" [max]="maxDate" [matDatepicker]="activatedOnDatePicker" required
formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activatedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activatedOnDatePicker></mat-datepicker>
<mat-error *ngIf="createClientForm.controls.activationDate.hasError('required')">
Activation Date is <strong>required</strong>
{{ "labels.inputs.Activation Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="addSavings" class="margin-v">
Open Savings Account?
{{ "labels.inputs.Open Savings Account" |translate}}?
</mat-checkbox>
<mat-form-field *ngIf="createClientForm.contains('savingsProductId')" fxFlex="48%">
<mat-label>Savings Product</mat-label>
<mat-label>{{ "labels.inputs.Savings Product" |translate}}</mat-label>
<mat-select required formControlName="savingsProductId">
<mat-option *ngFor="let product of savingProductOptions" [value]="product.id">
{{ product.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="createClientForm.controls.savingsProductId.hasError('required')">
Savings product is <strong>required</strong>
{{ "labels.inputs.Savings Product" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
@@ -214,10 +214,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious disabled>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{ "labels.buttons.Previous" | translate}}
</button>
<button mat-raised-button matStepperNext>
Next
{{ "labels.buttons.Next" | translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button>
</div>
@@ -1,27 +1,27 @@
<div fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>General</h3>
<h3 class="mat-h3" fxFlexFill>{{ "labels.heading.General" |translate}}</h3>
<mat-divider fxFlexFill></mat-divider>
<div fxFlexFill>
<span fxFlex="40%">Name</span>
<span fxFlex="40%">{{ "labels.inputs.name" |translate}}</span>
<span fxFlex="60%" *ngIf="client.legalFormId === 2">{{ client.fullname }}</span>
<span fxFlex="60%" *ngIf="client.legalFormId === 1">{{ client.firstname }} {{ client.middlename ? client.middlename + ' ' + client.lastname : client.lastname }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Office</span>
<span fxFlex="40%">{{ "labels.inputs.Office" |translate}}</span>
<span fxFlex="60%">{{ client.officeId | find:clientTemplate.officeOptions:'id':'name' }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Legal Form</span>
<span fxFlex="40%">{{ "labels.inputs.Legal Form" |translate}}</span>
<span fxFlex="60%">{{ client.legalFormId | find:clientTemplate.clientLegalFormOptions:'id':'value' }}</span>
</div>
<div fxFlexFill *ngIf="client.staffId">
<span fxFlex="40%">Staff</span>
<span fxFlex="40%">{{ "labels.inputs.Staff" |translate}}</span>
<span fxFlex="60%">{{ client.staffId | find:clientTemplate.staffOptions:'id':'displayName' }}</span>
</div>
@@ -31,61 +31,61 @@
</div>
<div fxFlexFill *ngIf="client.externalId">
<span fxFlex="40%">External Id</span>
<span fxFlex="40%">{{ "labels.inputs.External Id" |translate}}</span>
<span fxFlex="60%">
<mifosx-external-identifier externalId="{{client.externalId}}"></mifosx-external-identifier>
</span>
</div>
<div fxFlexFill *ngIf="client.mobileNo">
<span fxFlex="40%">Mobile No</span>
<span fxFlex="40%">{{ "labels.inputs.Mobile No" |translate}}</span>
<span fxFlex="60%">{{ client.mobileNo }}</span>
</div>
<div fxFlexFill *ngIf="client.emailAddress">
<span fxFlex="40%">Email Address</span>
<span fxFlex="40%">{{ "labels.inputs.Email Address" |translate}}</span>
<span fxFlex="60%">{{ client.emailAddress }}</span>
</div>
<div fxFlexFill *ngIf="client.clientTypeId">
<span fxFlex="40%">Client Type</span>
<span fxFlex="40%">{{ "labels.inputs.Client Type" |translate}}</span>
<span fxFlex="60%">{{ client.clientTypeId | find:clientTemplate.clientTypeOptions:'id':'name' }}</span>
</div>
<div fxFlexFill *ngIf="client.clientClassificationId">
<span fxFlex="40%">Client Classification</span>
<span fxFlex="40%">{{ "labels.inputs.Client Classification" |translate}}</span>
<span fxFlex="60%">{{ client.clientClassificationId | find:clientTemplate.clientClassificationOptions:'id':'name' }}</span>
</div>
<div fxFlexFill *ngIf="client.savingsProductId">
<span fxFlex="40%">Savings Product</span>
<span fxFlex="40%">{{ "labels.inputs.Savings Product" |translate}}</span>
<span fxFlex="60%">{{ client.savingsProductId | find:clientTemplate.savingProductOptions:'id':'name' }}</span>
</div>
<div fxFlexFill *ngIf="client.submittedOnDate">
<span fxFlex="40%">Submitted On Date</span>
<span fxFlex="40%">{{ "labels.inputs.Submitted On Date" |translate}}</span>
<span fxFlex="60%">{{ client.submittedOnDate | dateFormat }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Active?</span>
<span fxFlex="40%">{{ "labels.inputs.Active" |translate}}?</span>
<span fxFlex="60%">{{ client.active ? 'Yes' : 'No' }}</span>
</div>
<div fxFlexFill *ngIf="client.activationDate">
<span fxFlex="40%">Activation Date</span>
<span fxFlex="40%">{{ "labels.inputs.Activation Date" |translate}}</span>
<span fxFlex="60%">{{ client.activationDate | dateFormat }}</span>
</div>
<ng-container *ngIf="client.legalFormId === 1">
<div fxFlexFill *ngIf="client.genderId">
<span fxFlex="40%">Gender</span>
<span fxFlex="40%">{{ "labels.inputs.Gender" |translate}}</span>
<span fxFlex="60%">{{ client.genderId | find:clientTemplate.genderOptions:'id':'name' }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Is Staff?</span>
<span fxFlex="40%">{{ "labels.inputs.Is Staff" |translate}}?</span>
<span fxFlex="60%">{{ client.isStaff ? 'Yes' : 'No' }}</span>
</div>
@@ -94,27 +94,27 @@
<ng-container *ngIf="client.legalFormId === 2">
<div fxFlexFill *ngIf="client.clientNonPersonDetails.incorpValidityTillDate">
<span fxFlex="40%">Incorporation Validity Till Date</span>
<span fxFlex="40%">{{ "labels.inputs.Incorporation Validity Till Date" |translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.incorpValidityTillDate | dateFormat }}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Incorportation Number</span>
<span fxFlex="40%">{{ "labels.inputs.Incorportation Number" |translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.incorpNumber || 'Not Provided' }}</span>
</div>
<div fxFlexFill *ngIf="client.clientNonPersonDetails.mainBusinessLineId">
<span fxFlex="40%">Main Business Line</span>
<span fxFlex="40%">{{ "labels.inputs.Main Business Line" |translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.mainBusinessLineId | find:clientTemplate.clientNonPersonMainBusinessLineOptions:'id':'name' }}</span>
</div>
<div fxFlexFill *ngIf="client.clientNonPersonDetails.constitutionId">
<span fxFlex="40%">Constitution</span>
<span fxFlex="40%">{{ "labels.inputs.Constitution" |translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.constitutionId | find:clientTemplate.clientNonPersonConstitutionOptions:'id':'name'}}</span>
</div>
<div fxFlexFill>
<span fxFlex="40%">Remarks</span>
<span fxFlex="40%">{{ "labels.inputs.Remarks" |translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.remarks || 'N/A' }}</span>
</div>
@@ -122,7 +122,7 @@
<div fxFlexFill *ngIf="client.familyMembers.length" fxLayout="row wrap" fxLayout.lt-md="column" class="m-b-20">
<h3 class="mat-h3" fxFlexFill>Family Members</h3>
<h3 class="mat-h3" fxFlexFill>{{ "labels.heading.Family Members" |translate}}</h3>
<mat-divider fxFlexFill></mat-divider>
@@ -145,17 +145,17 @@
<mat-divider></mat-divider>
<p>
First Name : {{ member.firstName }}<br />
Middle Name : {{ member.middleName }}<br />
Last Name : {{ member.lastName }}<br />
Qualification : {{ member.qualification }}<br />
Relationship : {{ member.relationshipId | find:clientTemplate.familyMemberOptions.relationshipIdOptions:'id':'name' }}<br />
Age : {{ member.age }}<br />
Is Dependent : {{ member.isDependent ? 'Yes' : 'No' }}<br />
Marital Status : {{ member.maritalStatusId | find:clientTemplate.familyMemberOptions.maritalStatusIdOptions:'id':'name' }}<br />
Gender : {{ member.genderId | find:clientTemplate.familyMemberOptions.genderIdOptions:'id':'name' }}<br />
Profession : {{ member.professionId | find:clientTemplate.familyMemberOptions.professionIdOptions:'id':'name' }}<br />
Date Of Birth : {{ member.dateOfBirth | dateFormat }}<br />
{{ "labels.inputs.First Name" |translate}} : {{ member.firstName }}<br />
{{ "labels.inputs.Middle Name" |translate}} : {{ member.middleName }}<br />
{{ "labels.inputs.Last Name" |translate}} : {{ member.lastName }}<br />
{{ "labels.inputs.Qualification" |translate}} : {{ member.qualification }}<br />
{{ "labels.inputs.Relationship" |translate}} : {{ member.relationshipId | find:clientTemplate.familyMemberOptions.relationshipIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Age" |translate}} : {{ member.age }}<br />
{{ "labels.inputs.Is Dependent" |translate}} : {{ member.isDependent ? 'Yes' : 'No' }}<br />
{{ "labels.inputs.Marital Status" |translate}} : {{ member.maritalStatusId | find:clientTemplate.familyMemberOptions.maritalStatusIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Gender" |translate}} : {{ member.genderId | find:clientTemplate.familyMemberOptions.genderIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Profession" |translate}} : {{ member.professionId | find:clientTemplate.familyMemberOptions.professionIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Date Of Birth" |translate}} : {{ member.dateOfBirth | dateFormat }}<br />
</p>
</mat-expansion-panel>
@@ -166,7 +166,7 @@
<div fxFlexFill *ngIf="clientTemplate.isAddressEnabled && client.address && client.address.length" fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>Address</h3>
<h3 class="mat-h3" fxFlexFill>{{ "labels.heading.Address" |translate}}</h3>
<mat-divider fxFlexFill></mat-divider>
@@ -189,18 +189,18 @@
<mat-divider></mat-divider>
<p>
<span *ngIf="isFieldEnabled('street')">Street : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">Address Line 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">Address Line 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">Address Line 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">Town / Village : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">City : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">State / Province :
<span *ngIf="isFieldEnabled('street')">{{ "labels.inputs.Street" |translate}} : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">{{ "labels.inputs.Address Line" |translate}} 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">{{ "labels.inputs.Address Line" |translate}} 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">{{ "labels.inputs.Address Line" |translate}} 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">{{ "labels.inputs.Town / Village" |translate}} : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">{{ "labels.inputs.City" |translate}} : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">{{ "labels.inputs.State / Province" |translate}} :
{{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('countryId')">Country :
<span *ngIf="isFieldEnabled('countryId')">{{ "labels.inputs.Country" |translate}} :
{{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">Postal Code : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">Active Status : {{address.isActive}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">{{ "labels.inputs.Postal Code" |translate}} : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">{{ "labels.inputs.Active Status" |translate}} : {{address.isActive}}<br /></span>
</p>
</mat-expansion-panel>
@@ -214,12 +214,12 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
Previous
{{ "labels.buttons.Previous" | translate}}
</button>
<button mat-raised-button [routerLink]="['../']">
Cancel
{{ "labels.buttons.Cancel" | translate}}
</button>
<button mat-raised-button color="primary" (click)="submit.emit()">
Submit
{{ "labels.buttons.Submit" | translate}}
</button>
</div>
@@ -1,10 +1,10 @@
<div class="tab-container mat-typography">
<h3>Address</h3>
<h3>{{ "labels.heading.Address" |translate}}</h3>
<div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button color="primary" (click)="addAddress()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>Add
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Add" | translate}}
</button>
</div>
@@ -31,18 +31,18 @@
</div>
<p>
<span *ngIf="isFieldEnabled('street')">Street : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">Address Line 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">Address Line 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">Address Line 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">Town / Village : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">City : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">State / Province :
<span *ngIf="isFieldEnabled('street')">{{ "labels.inputs.Street" |translate}} : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">{{ "labels.inputs.Address Line" |translate}} 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">{{ "labels.inputs.Address Line" |translate}} 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">{{ "labels.inputs.Address Line" |translate}} 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">{{ "labels.inputs.Town / Village" |translate}} : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">{{ "labels.inputs.City" |translate}} : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">{{ "labels.inputs.State / Province" |translate}} :
{{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('countryId')">Country :
<span *ngIf="isFieldEnabled('countryId')">{{ "labels.inputs.Country" |translate}} :
{{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">Postal Code : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">Active Status : {{address.isActive}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">{{ "labels.inputs.Postal Code" |translate}} : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">{{ "labels.inputs.Active Status" |translate}} : {{address.isActive}}<br /></span>
</p>
</mat-expansion-panel>
@@ -2,39 +2,39 @@
<div style="margin-top: 5px;">
<h2> Charges Overview</h2>
<h2>{{ "labels.heading.Charges Overview" |translate}}</h2>
<table mat-table [dataSource]="dataSource">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.name" |translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"><i class="fa fa-stop"
[ngClass]="(!(chargeOverviewData.isWaived || chargeOverviewData.isPaid))|statusLookup"></i>
{{chargeOverviewData.name}} </td>
</ng-container>
<ng-container matColumnDef="dueAsOf">
<th mat-header-cell *matHeaderCellDef> Due as of </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Due as of" |translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.dueDate | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="due">
<th mat-header-cell *matHeaderCellDef> Due </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Due" |translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amount}} </td>
</ng-container>
<ng-container matColumnDef="paid">
<th mat-header-cell *matHeaderCellDef> Paid </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Paid" |translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountPaid}} </td>
</ng-container>
<ng-container matColumnDef="waived">
<th mat-header-cell *matHeaderCellDef> Waived </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Waived" |translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountWaived}} </td>
</ng-container>
<ng-container matColumnDef="outstanding">
<th mat-header-cell *matHeaderCellDef> Outstanding </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Outstanding" |translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountOutstanding}} </td>
</ng-container>
@@ -7,28 +7,28 @@
<div fxLayout="column">
<mat-form-field>
<mat-label> Amount </mat-label>
<mat-label> {{ "labels.inputs.Amount" |translate}} </mat-label>
<input matInput required autofocus formControlName="amount">
<mat-error *ngIf="transactionForm.controls.amount.hasError('required')">
Amount <strong>is required</strong>
{{ "labels.inputs.Amount" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field (click)="transactionDatePicker.open()">
<mat-label> Transaction date </mat-label>
<mat-label> {{ "labels.inputs.Transaction date" |translate}} </mat-label>
<input matInput [min]="minDate" [matDatepicker]="transactionDatePicker" required formControlName="transactionDate">
<mat-datepicker-toggle matSuffix [for]="transactionDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transactionDatePicker></mat-datepicker>
<mat-error *ngIf="transactionForm.controls.transactionDate.hasError('required')">
Transaction date <strong>is required</strong>
{{ "labels.inputs.Transaction date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
</div>
<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../..','general']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!transactionForm.valid">Submit</button>
<button type="button" mat-raised-button [routerLink]="['../../..','general']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!transactionForm.valid">{{ "labels.buttons.Submit" | translate}}</button>
</div>
</form>
@@ -1,15 +1,15 @@
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
<button mat-raised-button color="primary" [routerLink]="['pay']" *mifosxHasPermission="'PAY_CLIENTCHARGE'">
<fa-icon icon="dollar-sign" class="m-r-10"></fa-icon>
Pay
{{ "labels.buttons.Pay" | translate}}
</button>
<button mat-raised-button color="primary" (click)="waiveCharge()" *mifosxHasPermission="'WAIVE_CLIENTCHARGE'">
<i class="fa fa-flag"></i>
Waive Charge
{{ "labels.buttons.Waive Charge" | translate}}
</button>
<button mat-raised-button color="primary" (click)="deleteCharge()">
<fa-icon icon="trash" class="m-r-10"></fa-icon>
Delete
{{ "labels.buttons.Delete" | translate}}
</button>
</div>
@@ -32,41 +32,41 @@
<tbody>
<tr>
<td> Currency </td>
<td> {{ "labels.inputs.Currency" |translate}} </td>
<td> {{ chargeData.currency.name }} </td>
</tr>
<tr>
<td> Charge Time Type </td>
<td> {{ "labels.inputs.Charge Time Type" |translate}} </td>
<td> {{ chargeData.chargeTimeType.value }} </td>
</tr>
<tr>
<td> Charge Calculation Type </td>
<td> {{ "labels.inputs.Charge Calculation Type" |translate}} </td>
<td> {{ chargeData.chargeCalculationType.value }} </td>
</tr>
<tr>
<td> Due as of </td>
<td> {{ "labels.inputs.Due as of" |translate}} </td>
<td> {{ chargeData.dueDate | dateFormat }} </td>
</tr>
<tr>
<td> Due </td>
<td> {{ "labels.inputs.Due" |translate}} </td>
<td> {{ chargeData.amount }} </td>
</tr>
<tr>
<td> Paid </td>
<td> {{ "labels.inputs.Paid" |translate}} </td>
<td> {{ chargeData.amountPaid }} </td>
</tr>
<tr>
<td> Waived </td>
<td> {{ "labels.inputs.Waived" |translate}} </td>
<td> {{ chargeData.amountWaived }} </td>
</tr>
<tr>
<td> Outstanding </td>
<td> {{ "labels.inputs.Outstanding" |translate}} </td>
<td> {{ chargeData.amountOutstanding }} </td>
</tr>
@@ -79,36 +79,36 @@
</mat-card-content>
<div fxLayout="row wrap" class="content" style="padding-top:10px">
<h1><b> Transactions </b></h1>
<h1><b> {{ "labels.heading.Transactions" |translate}} </b></h1>
<table mat-table [dataSource]="chargeData.clientTransactionDatas" *ngIf="chargeData.clientTransactionDatas">
<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef> ID </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.ID" |translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.id}} </td>
</ng-container>
<ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef> Office Name </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Office Name" |translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.officeName }} </td>
</ng-container>
<ng-container matColumnDef="type">
<th mat-header-cell *matHeaderCellDef> Type </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Type" |translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.type.value}} </td>
</ng-container>
<ng-container matColumnDef="transactionDate">
<th mat-header-cell *matHeaderCellDef> Transaction Date </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Transaction Date" |translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.date | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Amount" |translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.amount | formatNumber }} </td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef> Actions </th>
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Actions" |translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}">
<button mat-raised-button color="primary" (click)="undoTransaction(element.id)" class="delBtn">
<fa-icon icon="trash" class="m-r-10"></fa-icon>
@@ -124,7 +124,7 @@
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../','general']">Back</button>
<button type="button" mat-raised-button [routerLink]="['../../','general']">{{ "labels.buttons.Back" | translate}}</button>
</mat-card-actions>
</mat-card>
@@ -7,22 +7,22 @@
<mat-card-content fxLayout="column">
<mat-form-field (click)="transferDatePicker.open()">
<mat-label>Transfer Date</mat-label>
<mat-label>{{ "labels.inputs.Transfer Date" |translate}}</mat-label>
<input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field fxFlex>
<mat-label>Note</mat-label>
<mat-label>{{ "labels.inputs.Note" |translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!acceptClientTransferForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!acceptClientTransferForm.valid">{{ "labels.buttons.Confirm" | translate}}</button>
</mat-card-actions>
</form>
@@ -7,20 +7,20 @@
<mat-card-content>
<mat-form-field fxFlex (click)="activationDatePicker.open()">
<mat-label>Activated On Date</mat-label>
<mat-label>{{ "labels.inputs.Activated On Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activationDatePicker></mat-datepicker>
<mat-error *ngIf="activateClientForm.controls.activationDate.hasError('required')">
Activated On Date is <strong>required</strong>
{{ "labels.inputs.Activated On Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!activateClientForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!activateClientForm.valid">{{ "labels.buttons.Confirm" | translate}}</button>
</mat-card-actions>
</form>
@@ -8,29 +8,29 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Charge</mat-label>
<mat-label>{{ "labels.inputs.Charge" |translate}}</mat-label>
<mat-select required formControlName="chargeId">
<mat-option *ngFor="let clientCharge of clientChargeOptions" [value]="clientCharge.id">
{{ clientCharge.name + ' (' + clientCharge.currency.name + ')' }}
</mat-option>
</mat-select>
<mat-error *ngIf="clientChargeForm.controls.chargeId.hasError('required')">
Charge is <strong>required</strong>
{{ "labels.inputs.Charge" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<div *ngIf="chargeDetails" fxLayout="column">
<mat-form-field>
<mat-label>Amount</mat-label>
<mat-label>{{ "labels.inputs.Amount" |translate}}</mat-label>
<input type="number" required matInput formControlName="amount" />
<mat-error *ngIf="clientChargeForm.controls.amount.hasError('required')">
Amount is <strong>required</strong>
{{ "labels.inputs.Amount" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Charge Calculation</mat-label>
<mat-label>{{ "labels.inputs.Charge Calculation" |translate}}</mat-label>
<mat-select formControlName="chargeCalculationType">
<mat-option *ngFor="let chargeCalculation of chargeDetails.chargeCalculationTypeOptions"
[value]="chargeCalculation.id">
@@ -40,7 +40,7 @@
</mat-form-field>
<mat-form-field>
<mat-label>Charge time type</mat-label>
<mat-label>{{ "labels.inputs.Charge time type" |translate}}</mat-label>
<mat-select formControlName="chargeTimeType">
<mat-option *ngFor="let chargeTime of chargeDetails.chargeTimeTypeOptions" [value]="chargeTime.id">
{{ chargeTime.value }}
@@ -49,29 +49,29 @@
</mat-form-field>
<mat-form-field *ngIf="clientChargeForm.contains('dueDate')" (click)="dueDatePicker.open()">
<mat-label>Due for collection on</mat-label>
<mat-label>{{ "labels.inputs.Due for collection on" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="dueDatePicker" required
formControlName="dueDate">
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="clientChargeForm.controls.dueDate.hasError('required')">
Due for collection on is <strong>required</strong>
{{ "labels.inputs.Due for collection on" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="clientChargeForm.contains('feeOnMonthDay')" (click)="feeOnMonthDayPicker.open()">
<mat-label>Due On</mat-label>
<mat-label>{{ "labels.inputs.Due On" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="feeOnMonthDayPicker" required
formControlName="feeOnMonthDay">
<mat-datepicker-toggle matSuffix [for]="feeOnMonthDayPicker"></mat-datepicker-toggle>
<mat-datepicker #feeOnMonthDayPicker></mat-datepicker>
<mat-error *ngIf="clientChargeForm.controls.feeOnMonthDay.hasError('required')">
Due Date is <strong>required</strong>
{{ "labels.inputs.Due Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="clientChargeForm.contains('feeInterval')">
<mat-label>Repeats Every</mat-label>
<mat-label>{{ "labels.inputs.Repeats Every" |translate}}</mat-label>
<input matInput formControlName="feeInterval" />
</mat-form-field>
@@ -80,8 +80,8 @@
</div>
<mat-card-actions fxLayoutGap="5px" fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!clientChargeForm.valid">Submit</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientChargeForm.valid">{{ "labels.buttons.Submit" | translate}}</button>
</mat-card-actions>
</mat-card-content>
@@ -8,59 +8,59 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Collateral</mat-label>
<mat-label>{{ "labels.inputs.Collateral" |translate}}</mat-label>
<mat-select required formControlName="collateralId">
<mat-option *ngFor="let clientCollateral of clientCollateralOptions" [value]="clientCollateral.id">
{{ clientCollateral.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="clientCollateralForm.controls.collateralId.hasError('required')">
Collateral is <strong>required</strong>
{{ "labels.inputs.Collateral" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<div *ngIf="collateralDetails" fxLayout="column">
<mat-form-field>
<mat-label>Name</mat-label>
<mat-label>{{ "labels.inputs.name" |translate}}</mat-label>
<input matInput required formControlName="name">
</mat-form-field>
<mat-form-field>
<mat-label>Type/Quality</mat-label>
<mat-label>{{ "labels.inputs.Type/Quality" |translate}}</mat-label>
<input matInput required formControlName="quality">
</mat-form-field>
<mat-form-field>
<mat-label>Unit Type</mat-label>
<mat-label>{{ "labels.inputs.Unit Type" |translate}}</mat-label>
<input matInput required formControlName="unitType">
</mat-form-field>
<mat-form-field>
<mat-label>Base Price</mat-label>
<mat-label>{{ "labels.inputs.Base Price" |translate}}</mat-label>
<input matInput required formControlName="basePrice">
</mat-form-field>
<mat-form-field>
<mat-label>Percentage To Base</mat-label>
<mat-label>{{ "labels.inputs.Percentage To Base" |translate}}</mat-label>
<input matInput required formControlName="pctToBase">
</mat-form-field>
<mat-form-field>
<mat-label>Quantity</mat-label>
<mat-label>{{ "labels.inputs.Quantity" |translate}}</mat-label>
<input matInput required formControlName="quantity">
<mat-error *ngIf="clientCollateralForm.controls.quantity.hasError('required')">
Quantity is <strong>required</strong>
{{ "labels.inputs.Quantity" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Total</mat-label>
<mat-label>{{ "labels.inputs.Total" |translate}}</mat-label>
<input matInput required formControlName="totalValue">
</mat-form-field>
<mat-form-field>
<mat-label>Total Collateral Value</mat-label>
<mat-label>{{ "labels.inputs.Total Collateral Value" |translate}}</mat-label>
<input matInput required formControlName="totalCollateralValue">
</mat-form-field>
@@ -71,8 +71,8 @@
</mat-card-content>
<mat-card-actions fxLayoutGap="5px" fxLayout="row" fsLayout.xs="column" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!clientCollateralForm.valid">Submit</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientCollateralForm.valid">{{ "labels.buttons.Submit" | translate}}</button>
</mat-card-actions>
</form>
@@ -9,14 +9,14 @@
<div fxLayout="column">
<mat-form-field fxFlex="48%">
<mat-label>Staff</mat-label>
<mat-label>{{ "labels.inputs.Staff" |translate}}</mat-label>
<mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffData" [value]="staff.id">
{{ staff.displayName }}
</mat-option>
</mat-select>
<mat-error *ngIf="clientAssignStaffForm.controls.staffId.hasError('required')">
Staff is <strong>required</strong>
{{ "labels.inputs.Staff" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
@@ -25,8 +25,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!clientAssignStaffForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientAssignStaffForm.valid">{{ "labels.buttons.Confirm" | translate}}</button>
</mat-card-actions>
</form>
@@ -9,14 +9,14 @@
<div>
<mat-form-field fxFlex>
<mat-label>Client Screen Reports</mat-label>
<mat-label>{{ "labels.inputs.Client Screen Reports" |translate}}</mat-label>
<mat-select formControlName="templateId">
<mat-option *ngFor="let template of templatesData" [value]="template.id">
{{ template.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="clientScreenReportForm.controls.templateId.hasError('required')">
Screen Report is <strong>required</strong>
{{ "labels.inputs.Screen Report" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
@@ -25,9 +25,9 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientScreenReportForm.valid">
<fa-icon icon="cogs" size="sm" class="m-r-10"></fa-icon>Generate Report</button>
<fa-icon icon="cogs" size="sm" class="m-r-10"></fa-icon>{{ "labels.buttons.Generate Report" | translate}}</button>
</mat-card-actions>
</form>
@@ -43,7 +43,7 @@
<div fxLayoutAlign="end">
<button mat-stroked-button color="primary" [disabled]="!template" (click)="print()">
<fa-icon icon="file" class="m-r-10"></fa-icon>
Print
{{ "labels.buttons.Print" | translate}}
</button>
</div>
@@ -9,24 +9,24 @@
<div fxLayout="column">
<mat-form-field (click)="closureDatePicker.open()">
<mat-label>Closed On Date</mat-label>
<mat-label>{{ "labels.inputs.Closed On Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closureDatePicker" required formControlName="closureDate">
<mat-datepicker-toggle matSuffix [for]="closureDatePicker"></mat-datepicker-toggle>
<mat-datepicker #closureDatePicker></mat-datepicker>
<mat-error *ngIf="closeClientForm.controls.closureDate.hasError('required')">
Closed On Date is <strong>required</strong>
{{ "labels.inputs.Closed On Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Closure Reason</mat-label>
<mat-label>{{ "labels.inputs.Closure Reason" |translate}}</mat-label>
<mat-select formControlName="closureReasonId">
<mat-option *ngFor="let reason of closureData" [value]="reason.id">
{{ reason.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="closeClientForm.controls.closureReasonId.hasError('required')">
Closure Reason is <strong>required</strong>
{{ "labels.inputs.Closure Reason" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
@@ -35,8 +35,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="warn" [disabled]="!closeClientForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="warn" [disabled]="!closeClientForm.valid">{{ "labels.buttons.Confirm" | translate}}</button>
</mat-card-actions>
</form>
@@ -9,48 +9,48 @@
<div div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<mat-label> User Name </mat-label>
<mat-label> {{ "labels.inputs.User Name" |translate}} </mat-label>
<input matInput required formControlName="username">
<mat-error *ngIf="createSelfServiceForm.controls.username.hasError('required')">
User Name is <strong>required</strong>
{{ "labels.inputs.User Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label> First Name </mat-label>
<mat-label> {{ "labels.inputs.First Name" |translate}} </mat-label>
<input matInput required formControlName="firstname">
<mat-error *ngIf="createSelfServiceForm.controls.firstname.hasError('required')">
First Name is <strong>required</strong>
{{ "labels.inputs.First Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label> Last Name </mat-label>
<mat-label> {{ "labels.inputs.Last Name" |translate}} </mat-label>
<input matInput required formControlName="lastname">
<mat-error *ngIf="createSelfServiceForm.controls.lastname.hasError('required')">
Last Name is <strong>required</strong>
{{ "labels.inputs.Last Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label> Email </mat-label>
<mat-label> {{ "labels.inputs.Email" |translate}} </mat-label>
<input matInput required formControlName="email">
<mat-error *ngIf="createSelfServiceForm.controls.email.hasError('required')">
Email is <strong>required</strong>
{{ "labels.inputs.Email" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
<mat-error *ngIf="createSelfServiceForm.controls.email.hasError('email')">
Email should be a <strong>valid</strong> email.
{{ "labels.inputs.Email should be a" |translate}} <strong>{{ "labels.inputs.valid" |translate}}</strong> {{ "labels.inputs.email" |translate}}.
</mat-error>
</mat-form-field>
<mat-checkbox labelPosition="before" formControlName="sendPasswordToEmail" fxFlex="48%">
Auto Generate Password
{{ "labels.inputs.Auto Generate Password" |translate}}
</mat-checkbox>
<div fxFlex="48%" fxLayoutGap="5px" fxLayout="row">
<mat-checkbox labelPosition="before" formControlName="passwordNeverExpires">
Override Password Expire Policy ?
{{ "labels.inputs.Override Password Expire Policy" |translate}} ?
</mat-checkbox>
<i class="fa fa-question-circle fa fa-align-left" title="Determines if passwords do not expire for this user even if global configuration for password expiry is enabled"></i>
@@ -58,34 +58,34 @@
</div>
<mat-form-field fxFlex="48%" *ngIf="!hidePasswordField">
<mat-label> Password </mat-label>
<mat-label> {{ "labels.inputs.Password" |translate}} </mat-label>
<input matInput required formControlName="password" type="password">
<mat-error *ngIf="createSelfServiceForm.controls.password.hasError('required')">
Password is <strong>required</strong>
{{ "labels.inputs.Password" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%" *ngIf="!hidePasswordField">
<mat-label> Repeat Password </mat-label>
<mat-label> {{ "labels.inputs.Repeat Password" |translate}} </mat-label>
<input matInput required formControlName="repeatPassword" type="password">
<mat-error *ngIf="createSelfServiceForm.controls.repeatPassword.hasError('required')">
Repeat password is <strong>required</strong>
{{ "labels.inputs.Repeat password" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
<mat-error *ngIf="createSelfServiceForm.controls.repeatPassword.hasError('notequal')">
Passwords should be <strong>matched</strong>
{{ "labels.inputs.Passwords should be" |translate}} <strong>{{ "labels.inputs.matched" |translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label> Status </mat-label>
<mat-label> {{ "labels.inputs.Status" |translate}} </mat-label>
<input matInput formControlName="status">
</mat-form-field>
</div>
<mat-card-actions fxLayoutGap="5px" fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!createSelfServiceForm.valid">Activate Self Service User</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!createSelfServiceForm.valid">{{ "labels.buttons.Activate Self Service User" | translate}}</button>
<i class="fa fa-question-circle fa-2x" title="Activate Self Service User Help"></i>
</mat-card-actions>
@@ -7,20 +7,20 @@
<mat-card-content>
<mat-form-field fxFlex (click)="reactivationDatePicker.open()">
<mat-label>Re Activation On Date</mat-label>
<mat-label>{{ "labels.inputs.Re Activation On Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="reactivationDatePicker" required formControlName="reactivationDate">
<mat-datepicker-toggle matSuffix [for]="reactivationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #reactivationDatePicker></mat-datepicker>
<mat-error *ngIf="reactivateClientForm.controls.reactivationDate.hasError('required')">
Reactivation Date is <strong>required</strong>
{{ "labels.inputs.Reactivation Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!reactivateClientForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!reactivateClientForm.valid">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -7,22 +7,22 @@
<mat-card-content fxLayout="column">
<mat-form-field (click)="transferDatePicker.open()">
<mat-label>Transfer Date</mat-label>
<mat-label>{{ "labels.inputs.Transfer Date" |translate}}</mat-label>
<input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field fxFlex>
<mat-label>Note</mat-label>
<mat-label>{{ "labels.inputs.Note" |translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!rejectClientTransferForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!rejectClientTransferForm.valid">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -9,24 +9,24 @@
<div fxLayout="column">
<mat-form-field (click)="rejectionDatePicker.open()">
<mat-label>Rejection Date</mat-label>
<mat-label>{{ "labels.inputs.Rejection Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="rejectionDatePicker" required formControlName="rejectionDate">
<mat-datepicker-toggle matSuffix [for]="rejectionDatePicker"></mat-datepicker-toggle>
<mat-datepicker #rejectionDatePicker></mat-datepicker>
<mat-error *ngIf="rejectClientForm.controls.rejectionDate.hasError('required')">
Rejection Date is <strong>required</strong>
{{ "labels.inputs.Rejection Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Rejection Reason</mat-label>
<mat-label>{{ "labels.inputs.Rejection Reason" |translate}}</mat-label>
<mat-select formControlName="rejectionReasonId">
<mat-option *ngFor="let reason of rejectionData" [value]="reason.id">
{{ reason.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="rejectClientForm.controls.rejectionReasonId.hasError('required')">
Rejection Reason is <strong>required</strong>
{{ "labels.inputs.Rejection Reason" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
@@ -35,8 +35,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="warn" [disabled]="!rejectClientForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="warn" [disabled]="!rejectClientForm.valid">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -4,7 +4,7 @@
<div class="surveySelect" fxLayout="row">
<mat-label class="nameLabel">Survey Name</mat-label>
<mat-label class="nameLabel">{{ "labels.inputs.Survey Name" |translate}}</mat-label>
<mat-select (selectionChange)="onSurveyChange($event)">
<mat-option *ngFor="let surveyData of allSurveyData" [value]="surveyData">
{{surveyData.name}}
@@ -42,7 +42,7 @@
</div>
<div *ngIf="question.answer">Your answer is: {{question.answer.text}}</div>
<div *ngIf="question.answer">{{ "labels.text.Your answer is" |translate}}: {{question.answer.text}}</div>
</ng-container>
@@ -52,8 +52,8 @@
</div>
<button mat-raised-button class="button-cancel" color="danger" [routerLink]="['../../general']">Cancel</button>
<button mat-raised-button class="button-submit" color="primary" (click)=submit()>Submit</button>
<button mat-raised-button class="button-cancel" color="danger" [routerLink]="['../../general']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button class="button-submit" color="primary" (click)=submit()>{{ "labels.buttons.Submit" |translate}}</button>
</div>
@@ -9,29 +9,29 @@
<div fxLayout="column">
<mat-form-field>
<mat-label>Office</mat-label>
<mat-label>{{ "labels.inputs.Office" |translate}}</mat-label>
<mat-select required formControlName="destinationOfficeId">
<mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="transferClientForm.controls.destinationOfficeId.hasError('required')">
Office is <strong>required</strong>
{{ "labels.inputs.Office" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field (click)="transferDatePicker.open()">
<mat-label>Transfer Date</mat-label>
<mat-label>{{ "labels.inputs.Transfer Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transferDatePicker" required formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker>
<mat-error *ngIf="transferClientForm.controls.transferDate.hasError('required')">
Transfer Date is <strong>required</strong>
{{ "labels.inputs.Transfer Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Note</mat-label>
<mat-label>{{ "labels.inputs.Note" |translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
@@ -40,8 +40,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!transferClientForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!transferClientForm.valid">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -7,20 +7,20 @@
<mat-card-content>
<mat-form-field fxFlex (click)="reopenedDatePicker.open()">
<mat-label>Reopened On Date</mat-label>
<mat-label>{{ "labels.inputs.Reopened On Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="reopenedDatePicker" required formControlName="reopenedDate">
<mat-datepicker-toggle matSuffix [for]="reopenedDatePicker"></mat-datepicker-toggle>
<mat-datepicker #reopenedDatePicker></mat-datepicker>
<mat-error *ngIf="undoClientRejectionForm.controls.reopenedDate.hasError('required')">
Reopened On Date is <strong>required</strong>
{{ "labels.inputs.Reopened On Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!undoClientRejectionForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!undoClientRejectionForm.valid">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -7,22 +7,22 @@
<mat-card-content fxLayout="column">
<mat-form-field (click)="transferDatePicker.open()">
<mat-label>Transfer Date</mat-label>
<mat-label>{{ "labels.inputs.Transfer Date" |translate}}</mat-label>
<input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field fxFlex>
<mat-label>Note</mat-label>
<mat-label>{{ "labels.inputs.Note" |translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!undoClientTransferForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!undoClientTransferForm.valid">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -9,14 +9,14 @@
<div fxLayout="column">
<mat-form-field fxFlex="48%">
<mat-label>Default Savings Account</mat-label>
<mat-label>{{ "labels.inputs.Default Savings Account" |translate}}</mat-label>
<mat-select formControlName="savingsAccountId">
<mat-option *ngFor="let account of savingsAccounts" [value]="account.id">
{{ account.accountNo }}
</mat-option>
</mat-select>
<mat-error *ngIf="clientSavingsAccountForm.controls.savingsAccountId.hasError('required')">
Account is <strong>required</strong>
{{ "labels.inputs.Account" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
@@ -25,8 +25,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!clientSavingsAccountForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientSavingsAccountForm.valid">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -1,7 +1,7 @@
<div class="container m-b-20" fxLayoutAlign="end">
<button mat-raised-button color="primary" [routerLink]="['../Take Survey']">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
Take Survey
{{ "labels.buttons.Take Survey" |translate}}
</button>
</div>
@@ -20,22 +20,22 @@
<table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="surveyName">
<th mat-header-cell *matHeaderCellDef mat-sort-header="surveyName"> Survey </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header="surveyName"> {{ "labels.inputs.Survey" |translate}} </th>
<td mat-cell *matCellDef="let survey"> {{ survey.surveyName }} </td>
</ng-container>
<ng-container matColumnDef="createdBy">
<th mat-header-cell *matHeaderCellDef mat-sort-header="createdBy"> Created By </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header="createdBy"> {{ "labels.inputs.Created By" |translate}} </th>
<td mat-cell *matCellDef="let survey"> {{ survey.createdBy }} </td>
</ng-container>
<ng-container matColumnDef="date">
<th mat-header-cell *matHeaderCellDef mat-sort-header> DateTime </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ "labels.inputs.DateTime" |translate}} </th>
<td mat-cell *matCellDef="let survey"> {{ survey.date | datetimeFormat }} </td>
</ng-container>
<ng-container matColumnDef="score">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Score </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ "labels.inputs.Score" |translate}} </th>
<td mat-cell *matCellDef="let survey"> {{ survey.score | formatNumber }} </td>
</ng-container>
@@ -9,24 +9,24 @@
<div fxLayout="column">
<mat-form-field (click)="withdrawalDatePicker.open()">
<mat-label>Withdrawal Date</mat-label>
<mat-label>{{ "labels.inputs.Withdrawal Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="withdrawalDatePicker" required formControlName="withdrawalDate">
<mat-datepicker-toggle matSuffix [for]="withdrawalDatePicker"></mat-datepicker-toggle>
<mat-datepicker #withdrawalDatePicker></mat-datepicker>
<mat-error *ngIf="withdrawClientForm.controls.withdrawalDate.hasError('required')">
Withdrawal Date is <strong>required</strong>
{{ "labels.inputs.Withdrawal Date" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Withdrawal Reason</mat-label>
<mat-label>{{ "labels.inputs.Withdrawal Reason" |translate}}</mat-label>
<mat-select formControlName="withdrawalReasonId">
<mat-option *ngFor="let reason of withdrawalData" [value]="reason.id">
{{ reason.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="withdrawClientForm.controls.withdrawalReasonId.hasError('required')">
Withdrawal Reason is <strong>required</strong>
{{ "labels.inputs.Withdrawal Reason" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
@@ -35,8 +35,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!withdrawClientForm.valid">Confirm</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!withdrawClientForm.valid">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-card-actions>
</form>
@@ -11,20 +11,20 @@
</div>
<div fxLayoutAlign="center center" class="m-b-5">
<button class="client-image-button" mat-raised-button (click)="doAction('Upload Image')"
matTooltip="Upload Image" *mifosxHasPermission="'CREATE_CLIENTIMAGE'">
matTooltip="{{ 'tooltips.Upload Image' | translate }}" *mifosxHasPermission="'CREATE_CLIENTIMAGE'">
<i class="fa fa-upload"></i>
</button>
<button class="client-image-button" mat-raised-button (click)="doAction('Capture Image')"
matTooltip="Capture Image" *mifosxHasPermission="'CREATE_CLIENTIMAGE'">
matTooltip="{{ 'tooltips.Capture Image' | translate }}" *mifosxHasPermission="'CREATE_CLIENTIMAGE'">
<i class="fa fa-camera"></i>
</button>
<button class="client-image-button" mat-raised-button (click)="doAction('Delete Image')"
matTooltip="Delete Image" *mifosxHasPermission="'DELETE_CLIENTIMAGE'">
matTooltip="{{ 'tooltips.Delete Image' | translate }}" *mifosxHasPermission="'DELETE_CLIENTIMAGE'">
<i class="fa fa-trash"></i>
</button>
<br>
</div>
<p (click)="doAction('View Signature')" class="signature">View Signature</p>
<p (click)="doAction('View Signature')" class="signature">{{"labels.inputs.View Signature" |translate}}</p>
</div>
<div class="mat-typography client-card-title">
@@ -33,7 +33,7 @@
<h3 fxFlex="95%">
<i class="fa fa-stop" [ngClass]="clientViewData.status.code|statusLookup"
[matTooltip]="clientViewData.status.value"></i>
<b>Client Name :</b><mifosx-entity-name entityName="{{clientViewData.displayName}}"></mifosx-entity-name>
<b>{{"labels.inputs.Client Name" |translate}} :</b><mifosx-entity-name entityName="{{clientViewData.displayName}}"></mifosx-entity-name>
</h3>
<div fxFlex="5%">
<button mat-icon-button [matMenuTriggerFor]="clientMenu" aria-label="Client actions" yPosition="below">
@@ -46,15 +46,15 @@
<mat-card-subtitle>
<p>
<b>Office :</b><mifosx-entity-name entityName="{{clientViewData.officeName}}"></mifosx-entity-name><br />
<b>Client :</b> <mifosx-account-number accountNo="{{clientViewData.accountNo}}"></mifosx-account-number><br />
<b>External Id:</b><mifosx-external-identifier externalId="{{clientViewData.externalId}}" completed="true"></mifosx-external-identifier><br />
<span *ngIf="clientViewData.staffName"><b>Staff :</b> {{clientViewData.staffName ||
<b>{{"labels.inputs.Office" |translate}} :</b><mifosx-entity-name entityName="{{clientViewData.officeName}}"></mifosx-entity-name><br />
<b>{{"labels.inputs.Client" |translate}} :</b> <mifosx-account-number accountNo="{{clientViewData.accountNo}}"></mifosx-account-number><br />
<b>{{"labels.inputs.External Id" |translate}}:</b><mifosx-external-identifier externalId="{{clientViewData.externalId}}" completed="true"></mifosx-external-identifier><br />
<span *ngIf="clientViewData.staffName"><b>{{"labels.inputs.Staff" |translate}} :</b> {{clientViewData.staffName ||
'Unassigned'}}<br /></span>
<span *ngIf="clientViewData.activationDate"><b>Activation Date :</b> {{clientViewData.activationDate |
<span *ngIf="clientViewData.activationDate"><b>{{"labels.inputs.Activation Date" |translate}} :</b> {{clientViewData.activationDate |
dateFormat}}<br /></span>
<span *ngIf="clientViewData.groups.length > 0">
Member Of :
{{"labels.inputs.Member Of" |translate}} :
<span *ngFor="let group of clientViewData.groups">
<a>{{group.name}}</a>&nbsp;
</span>
@@ -70,28 +70,28 @@
<mat-icon matListIcon>
<fa-icon icon="edit" size="sm"></fa-icon>
</mat-icon>
<span>Edit</span>
<span>{{ "labels.buttons.Edit" |translate}}</span>
</button>
<button *ngIf="isActive()" mat-menu-item [matMenuTriggerFor]="accountApplications">
<mat-icon matListIcon>
<fa-icon icon="money-bill-alt" size="sm"></fa-icon>
</mat-icon>
<span>Applications</span>
<span>{{ "labels.buttons.Applications" |translate}}</span>
</button>
<button mat-menu-item [matMenuTriggerFor]="Actions">
<mat-icon matListIcon>
<fa-icon icon="tasks" size="sm"></fa-icon>
</mat-icon>
<span>Actions</span>
<span>{{ "labels.buttons.Actions" |translate}}</span>
</button>
<button mat-menu-item (click)="doAction('Assign Staff')" *ngIf="!clientViewData.staffId">
<mat-icon matListIcon>
<fa-icon icon="user-tie" size="sm"></fa-icon>
</mat-icon>
<span>Assign Staff</span>
<span>{{ "labels.buttons.Assign Staff" |translate}}</span>
</button>
<span *ngIf="clientViewData.staffId">
@@ -99,70 +99,67 @@
<mat-icon matListIcon>
<fa-icon icon="user-tie" size="sm"></fa-icon>
</mat-icon>
<span>Unassign Staff</span>
<span>{{ "labels.buttons.Unassign Staff" |translate}}</span>
</button>
</span>
<button mat-menu-item [matMenuTriggerFor]="More">More</button>
<button mat-menu-item [matMenuTriggerFor]="More">{{ "labels.buttons.More" |translate}}</button>
</mat-menu>
<mat-menu #accountApplications="matMenu">
<button mat-menu-item *mifosxHasPermission="'CREATE_LOAN'"
[routerLink]="['loans-accounts', 'create']">New Loan Account</button>
[routerLink]="['loans-accounts', 'create']">{{ "labels.buttons.New Loan Account" |translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_SAVINGSACCOUNT'"
[routerLink]="['savings-accounts', 'create']">New Savings Account</button>
[routerLink]="['savings-accounts', 'create']">{{ "labels.buttons.New Savings Account" |translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_SHAREACCOUNT'"
[routerLink]="['shares-accounts', 'create']">New Share Account</button>
[routerLink]="['shares-accounts', 'create']">{{ "labels.buttons.New Share Account" |translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_RECURRINGDEPOSITACCOUNT'"
[routerLink]="['recurringdeposits', 'create-recurring-deposits-account']">New Recurring Deposit
Account</button>
[routerLink]="['recurringdeposits', 'create-recurring-deposits-account']">{{ "labels.buttons.New Recurring Deposit Account" |translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_FIXEDDEPOSITACCOUNT'"
[routerLink]="['fixed-deposits-accounts', 'create']">New Fixed Deposits Account</button>
[routerLink]="['fixed-deposits-accounts', 'create']">{{ "labels.buttons.New Fixed Deposits Account" |translate}}</button>
</mat-menu>
<mat-menu #Actions="matMenu">
<button mat-menu-item (click)="doAction('Close')">Close</button>
<button mat-menu-item (click)="doAction('Transfer Client')">Transfer Client</button>
<button mat-menu-item (click)="doAction('Close')">{{ "labels.buttons.Close" |translate}}</button>
<button mat-menu-item (click)="doAction('Transfer Client')">{{ "labels.buttons.Transfer Client" |translate}}</button>
<span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item
(click)="doAction('Activate')">Activate</button></span>
(click)="doAction('Activate')">{{ "labels.buttons.Activate" |translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item
(click)="doAction('Withdraw')">Withdraw</button></span>
(click)="doAction('Withdraw')">{{ "labels.buttons.Withdraw" |translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item
(click)="doAction('Reject')">Reject</button></span>
(click)="doAction('Reject')">{{ "labels.buttons.Reject" |translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item
*mifosxHasPermission="'DELETE_CLIENT'" (click)="doAction('Delete')">Delete</button></span>
*mifosxHasPermission="'DELETE_CLIENT'" (click)="doAction('Delete')">{{ "labels.buttons.Delete" |translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Closed'"><button mat-menu-item
(click)="doAction('Reactivate')">Reactivate</button></span>
(click)="doAction('Reactivate')">{{ "labels.buttons.Reactivate" |translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Rejected'"><button mat-menu-item
(click)="doAction('Undo Rejection')">Undo Rejection</button></span>
(click)="doAction('Undo Rejection')">{{ "labels.buttons.Undo Rejection" |translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item
(click)="doAction('Undo Transfer')">Undo Transfer</button></span>
(click)="doAction('Undo Transfer')">{{ "labels.buttons.Undo Transfer" |translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item
(click)="doAction('Accept Transfer')">Accept Transfer</button></span>
(click)="doAction('Accept Transfer')">{{ "labels.buttons.Accept Transfer" |translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item
(click)="doAction('Reject Transfer')">Reject transfer</button></span>
(click)="doAction('Reject Transfer')">{{ "labels.buttons.Reject transfer" |translate}}</button></span>
</mat-menu>
<mat-menu #More="matMenu">
<button mat-menu-item (click)="doAction('Add Charge')" *mifosxHasPermission="'CREATE_CLIENTCHARGE'"> Add Charge
<button mat-menu-item (click)="doAction('Add Charge')" *mifosxHasPermission="'CREATE_CLIENTCHARGE'"> {{ "labels.buttons.Add Charge" |translate}}
</button>
<button mat-menu-item (click)="doAction('Create Collateral')">Create Collateral</button>
<button mat-menu-item (click)="doAction('Survey')">Survey</button>
<button mat-menu-item (click)="doAction('Create Collateral')">{{ "labels.buttons.Create Collateral" |translate}}</button>
<button mat-menu-item (click)="doAction('Survey')">{{ "labels.buttons.Survey" |translate}}</button>
<button mat-menu-item (click)="doAction('Update Default Savings')"
*mifosxHasPermission="'UPDATESAVINGSACCOUNT_CLIENT'"> Update Default Savings </button>
<button mat-menu-item (click)="doAction('Upload Signature')" *mifosxHasPermission="'CREATE_CLIENTIMAGE'"> Upload
Signature </button>
<button mat-menu-item (click)="doAction('Delete Signature')" *mifosxHasPermission="'DELETE_CLIENTIMAGE'"> Delete
Signature </button>
<button mat-menu-item (click)="doAction('Client Screen Reports')"> Client Screen Reports </button>
*mifosxHasPermission="'UPDATESAVINGSACCOUNT_CLIENT'"> {{ "labels.buttons.Update Default Savings" |translate}} </button>
<button mat-menu-item (click)="doAction('Upload Signature')" *mifosxHasPermission="'CREATE_CLIENTIMAGE'"> {{ "labels.buttons.Upload Signature" |translate}} </button>
<button mat-menu-item (click)="doAction('Delete Signature')" *mifosxHasPermission="'DELETE_CLIENTIMAGE'"> {{ "labels.buttons.Delete Signature" |translate}} </button>
<button mat-menu-item (click)="doAction('Client Screen Reports')"> {{ "labels.buttons.Client Screen Reports" |translate}} </button>
<button mat-menu-item (click)="doAction('Create Standing Instructions')"
*mifosxHasPermission="'CREATE_STANDINGINSTRUCTION'">Create Standing Instructions</button>
*mifosxHasPermission="'CREATE_STANDINGINSTRUCTION'"> {{ "labels.buttons.Create Standing Instructions" |translate}}</button>
<span *ngIf="clientViewData.status.value!='Transfer on hold'">
<button mat-menu-item (click)="doAction('View Standing Instructions')"
*mifosxHasPermission="'READ_STANDINGINSTRUCTION'">View Standing Instructions</button>
*mifosxHasPermission="'READ_STANDINGINSTRUCTION'"> {{ "labels.buttons.View Standing Instructions" |translate}}</button>
</span>
<button mat-menu-item (click)="doAction('Create Self Service User')">Create Self Service User</button>
<button mat-menu-item (click)="doAction('Create Self Service User')"> {{ "labels.buttons.Create Self Service User" |translate}}</button>
</mat-menu>
</mat-card-title-group>
@@ -173,27 +170,27 @@
<nav mat-tab-nav-bar class="navigation-tabs">
<a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive"
[active]="general.isActive">
General
{{"labels.inputs.General" |translate}}
</a>
<a mat-tab-link [routerLink]="['./address']" routerLinkActive #address="routerLinkActive"
[active]="address.isActive">
Address
{{"labels.inputs.Address" |translate}}
</a>
<a mat-tab-link [routerLink]="['./family-members']" routerLinkActive #familyMembers="routerLinkActive"
[active]="familyMembers.isActive">
Family Members
{{"labels.inputs.Family Members" |translate}}
</a>
<a mat-tab-link [routerLink]="['./identities']" routerLinkActive #identities="routerLinkActive"
[active]="identities.isActive" *mifosxHasPermission="'READ_CLIENTIDENTIFIER'">
Identities
{{"labels.inputs.Identities" |translate}}
</a>
<a mat-tab-link [routerLink]="['./documents']" routerLinkActive #documents="routerLinkActive"
[active]="documents.isActive" *mifosxHasPermission="'READ_DOCUMENT'">
Documents
{{"labels.inputs.Documents" |translate}}
</a>
<a mat-tab-link [routerLink]="['./notes']" routerLinkActive #notes="routerLinkActive" [active]="notes.isActive"
*mifosxHasPermission="'READ_CLIENTNOTE'">
Notes
{{"labels.inputs.Notes" |translate}}
</a>
<ng-container *ngFor="let clientDatatable of clientDatatables">
<a mat-tab-link [routerLink]="['./datatables',clientDatatable.registeredTableName]" routerLinkActive
@@ -1,6 +1,6 @@
<div fxLayout="column" fxLayoutGap="2%">
<h1 mat-dialog-title align="center">Capture Client Image</h1>
<h1 mat-dialog-title align="center">{{ "labels.heading.Capture Client Image" |translate}}</h1>
<video #video width="540" height="480" autoplay></video>
@@ -12,16 +12,16 @@
<div fxFlex="20%" align="center">
<button #captureButton *ngIf="!isCaptured" mat-stroked-button color="primary" (click)="capture()">
Capture
{{ "labels.buttons.Capture" |translate}}
</button>
<button *ngIf="isCaptured" mat-stroked-button color="primary" (click)="recapture()">
<fa-icon icon="undo" size="sm" class="m-r-10"></fa-icon>Recapture
<fa-icon icon="undo" size="sm" class="m-r-10"></fa-icon>{{ "labels.buttons.Recapture" |translate}}
</button>
</div>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button [disabled]="!isCaptured" mat-raised-button color="primary" [mat-dialog-close]="clientImageDataURL">Upload</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button>
<button [disabled]="!isCaptured" mat-raised-button color="primary" [mat-dialog-close]="clientImageDataURL">{{ "labels.buttons.Upload" |translate}}</button>
</mat-dialog-actions>
</div>
@@ -1,15 +1,15 @@
<h1 mat-dialog-title>Delete Client Signature</h1>
<h1 mat-dialog-title>{{ "labels.heading.Delete Client Signature" |translate}}</h1>
<div *ngIf="signatureId" mat-dialog-content>
<p>Are you sure you want to delete this clients signature ?</p>
<p>{{"labels.text.Delete clients signature" |translate}} ?</p>
</div>
<div *ngIf="!signatureId" mat-dialog-content>
<p>Client Signature is not provided.</p>
<p>{{"labels.text.Client Signature is not provided." |translate}}</p>
</div>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button *ngIf="signatureId" color="warn" [mat-dialog-close]="{ delete: true, id: signatureId }">Confirm</button>
<button mat-raised-button *ngIf="!signatureId" color="primary" [mat-dialog-close]="{ upload: true }">Upload</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button *ngIf="signatureId" color="warn" [mat-dialog-close]="{ delete: true, id: signatureId }">{{ "labels.buttons.Confirm" |translate}}</button>
<button mat-raised-button *ngIf="!signatureId" color="primary" [mat-dialog-close]="{ upload: true }">{{ "labels.buttons.Upload" |translate}}</button>
</mat-dialog-actions>
@@ -1,13 +1,13 @@
<h1 mat-dialog-title>Edit Note</h1>
<h1 mat-dialog-title>{{ "labels.heading.Edit Note" |translate}}</h1>
<div>
<form #formRef="ngForm" [formGroup]="noteForm">
<mat-form-field>
<textarea formControlName="note" matInput placeholder="Write a note ...."></textarea>
</mat-form-field>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="noteForm.pristine"
[mat-dialog-close]="{ editForm: noteForm }">Confirm</button>
[mat-dialog-close]="{ editForm: noteForm }">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-dialog-actions>
</form>
</div>
@@ -1,8 +1,8 @@
<h1 mat-dialog-title>Unassign Staff</h1>
<h1 mat-dialog-title>{{ "labels.heading.Unassign Staff" |translate}}</h1>
<div mat-dialog-content>
<p>Are you sure you want to unassign staff for this client ?</p>
<p>{{ "labels.text.Unassign Staff client" |translate}} ?</p>
</div>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button color="warn" [mat-dialog-close]="{ confirm: true }">Confirm</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="warn" [mat-dialog-close]="{ confirm: true }">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-dialog-actions>
@@ -1,26 +1,26 @@
<h1 mat-dialog-title>Upload {{ entityType }} Documents</h1>
<h1 mat-dialog-title>{{ "labels.heading.Upload" |translate}} {{ entityType }} {{ "labels.heading.Documents" |translate}}</h1>
<div>
<form [formGroup]="uploadDocumentForm" fxLayout="column">
<mat-form-field fxFlex>
<mat-label>File Name</mat-label>
<mat-label>{{"labels.inputs.File Name" |translate}}</mat-label>
<input formControlName="fileName" required matInput />
<mat-error *ngIf="uploadDocumentForm.controls.fileName.hasError('required')">
File Name is <strong>required</strong>
{{"labels.inputs.File Name" |translate}} is <strong>required</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex *ngIf="!documentIdentifier">
<mat-label>Description</mat-label>
<mat-label>{{"labels.inputs.Description" |translate}}</mat-label>
<input formControlName="description" matInput />
</mat-form-field>
<mifosx-file-upload flex="60%" (change)="onFileSelect($event)"></mifosx-file-upload>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!uploadDocumentForm.valid"
[mat-dialog-close]="uploadDocumentForm.value">Confirm</button>
[mat-dialog-close]="uploadDocumentForm.value">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-dialog-actions>
</form>
@@ -1,12 +1,12 @@
<h1 mat-dialog-title>Upload Client Image</h1>
<h1 mat-dialog-title>{{ "labels.heading.Upload Client Image" |translate}}</h1>
<div>
<mifosx-file-upload flex="60%" (change)="onFileSelect($event)" acceptFilter=".png,.jpeg,.jpg"></mifosx-file-upload>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button color="primary" [disabled]="!image" [mat-dialog-close]="image">Confirm</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!image" [mat-dialog-close]="image">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-dialog-actions>
</div>
@@ -1,12 +1,12 @@
<h1 mat-dialog-title>Upload Client Signature</h1>
<h1 mat-dialog-title>{{ "labels.heading.Upload Client Signature" |translate}}</h1>
<div>
<mifosx-file-upload flex="60%" (change)="onFileSelect($event)" acceptFilter=".png,.jpeg,.jpg"></mifosx-file-upload>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Cancel</button>
<button mat-raised-button color="primary" [disabled]="!signature" [mat-dialog-close]="signature">Confirm</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!signature" [mat-dialog-close]="signature">{{ "labels.buttons.Confirm" |translate}}</button>
</mat-dialog-actions>
</div>
@@ -1,15 +1,15 @@
<h1 mat-dialog-title>View Client Signature</h1>
<h1 mat-dialog-title>{{ "labels.heading.View Client Signature" |translate}}</h1>
<div *ngIf="signatureId" mat-dialog-content>
<img [src]="signatureImage" alt="Signature">
</div>
<div *ngIf="!signatureId" mat-dialog-content>
<p>Client Signature is not provided.</p>
<p>{{ "labels.text.Client Signature is not provided." |translate}}</p>
</div>
<mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>Close</button>
<button mat-raised-button *ngIf="signatureId" color="warn" [mat-dialog-close]="{ delete: true }">Delete</button>
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Close" |translate}}</button>
<button mat-raised-button *ngIf="signatureId" color="warn" [mat-dialog-close]="{ delete: true }">{{ "labels.buttons.Delete" |translate}}</button>
<button mat-raised-button color="primary" [mat-dialog-close]="{ upload: true }">{{ signatureId ? 'Reupload' : 'Upload'}}</button>
</mat-dialog-actions>
@@ -5,68 +5,68 @@
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center">
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>First Name</mat-label>
<mat-label>{{"labels.inputs.First Name" |translate}}</mat-label>
<input formControlName="firstName" required matInput />
<mat-error *ngIf="addFamilyMemberForm.controls.firstName.hasError('required')">
First Name is <strong>required</strong>
{{"labels.inputs.First Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Middle Name</mat-label>
<mat-label>{{"labels.inputs.Middle Name" |translate}}</mat-label>
<input formControlName="middleName" matInput />
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Last Name</mat-label>
<mat-label>{{"labels.inputs.Last Name" |translate}}</mat-label>
<input formControlName="lastName" required matInput />
<mat-error *ngIf="addFamilyMemberForm.controls.lastName.hasError('required')">
Last Name is <strong>required</strong>
{{"labels.inputs.Last Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Qualification</mat-label>
<mat-label>{{"labels.inputs.Qualification" |translate}}</mat-label>
<input formControlName="qualification" matInput />
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Age</mat-label>
<mat-label>{{"labels.inputs.Age" |translate}}</mat-label>
<input type="number" formControlName="age" required matInput [min]="minAge" />
<mat-error *ngIf="addFamilyMemberForm.controls.age.hasError('required')">
Age is <strong>required and cannot be negative</strong>
{{"labels.inputs.Age" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required and cannot be negative" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-checkbox formControlName="isDependent" labelPosition="before" fxFlex="calc(50% - 25px)">Is Dependent?
<mat-checkbox formControlName="isDependent" labelPosition="before" fxFlex="calc(50% - 25px)">{{"labels.inputs.Is Dependent" |translate}}?
</mat-checkbox>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Relationship</mat-label>
<mat-label>{{"labels.inputs.Relationship" |translate}}</mat-label>
<mat-select formControlName="relationshipId" required>
<mat-option *ngFor="let relation of addFamilyMemberTemplate.relationshipIdOptions" [value]="relation.id">
{{ relation.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="addFamilyMemberForm.controls.relationshipId.hasError('required')">
Relationship is <strong>required</strong>
{{"labels.inputs.Relationship" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Gender</mat-label>
<mat-label>{{"labels.inputs.Gender" |translate}}</mat-label>
<mat-select formControlName="genderId" required>
<mat-option *ngFor="let gender of addFamilyMemberTemplate.genderIdOptions" [value]="gender.id">
{{ gender.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="addFamilyMemberForm.controls.genderId.hasError('required')">
Gender is <strong>required</strong>
{{"labels.inputs.Gender" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Profession</mat-label>
<mat-label>{{"labels.inputs.Profession" |translate}}</mat-label>
<mat-select formControlName="professionId">
<mat-option *ngFor="let profession of addFamilyMemberTemplate.professionIdOptions" [value]="profession.id">
{{ profession.name }}
@@ -75,7 +75,7 @@
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Marital Status</mat-label>
<mat-label>{{"labels.inputs.Marital Status" |translate}}</mat-label>
<mat-select formControlName="maritalStatusId">
<mat-option *ngFor="let maritalStatus of addFamilyMemberTemplate.maritalStatusIdOptions"
[value]="maritalStatus.id">
@@ -86,22 +86,21 @@
<mat-form-field fxFlex (click)="dueDatePicker.open()">
<mat-label>Date Of Birth</mat-label>
<mat-label>{{"labels.inputs.Date Of Birth" |translate}}</mat-label>
<input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker"
required>
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="addFamilyMemberForm.controls.dateOfBirth.hasError('required')">
Date of birth
is <strong>required</strong>
{{"labels.inputs.Date of birth" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
</div>
<div fxLayout="row" fxLayoutGap="32px" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button>
<button type="submit" mat-raised-button color="primary" [disabled]="!addFamilyMemberForm.valid">Submit</button>
<button type="button" mat-raised-button [routerLink]="['../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button type="submit" mat-raised-button color="primary" [disabled]="!addFamilyMemberForm.valid">{{ "labels.buttons.Submit" |translate}}</button>
</div>
</form>
@@ -5,36 +5,36 @@
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center">
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>First Name</mat-label>
<mat-label>{{"labels.inputs.First Name" |translate}}</mat-label>
<input formControlName="firstName" required matInput />
<mat-error *ngIf="editFamilyMemberForm.controls.firstName.hasError('required')">
First Name is <strong>required</strong>
{{"labels.inputs.First Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Middle Name</mat-label>
<mat-label>{{"labels.inputs.Middle Name" |translate}}</mat-label>
<input formControlName="middleName" matInput />
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Last Name</mat-label>
<mat-label>{{"labels.inputs.Last Name" |translate}}</mat-label>
<input formControlName="lastName" required matInput />
<mat-error *ngIf="editFamilyMemberForm.controls.lastName.hasError('required')">
Last Name is <strong>required</strong>
{{"labels.inputs.Last Name" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Qualification</mat-label>
<mat-label>{{"labels.inputs.Qualification" |translate}}</mat-label>
<input formControlName="qualification" matInput />
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Age</mat-label>
<mat-label>{{"labels.inputs.Age" |translate}}</mat-label>
<input type="number" formControlName="age" required matInput />
<mat-error *ngIf="editFamilyMemberForm.controls.age.hasError('required')">
Age is <strong>required</strong>
{{"labels.inputs.Age" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required and cannot be negative" | translate}}</strong>
</mat-error>
</mat-form-field>
@@ -42,31 +42,31 @@
</mat-checkbox>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Relationship</mat-label>
<mat-label>{{"labels.inputs.Relationship" |translate}}</mat-label>
<mat-select formControlName="relationshipId" required>
<mat-option *ngFor="let relation of addFamilyMemberTemplate.relationshipIdOptions" [value]="relation.id">
{{ relation.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="editFamilyMemberForm.controls.relationshipId.hasError('required')">
Relationship is <strong>required</strong>
{{"labels.inputs.Relationship" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Gender</mat-label>
<mat-label>{{"labels.inputs.Gender" |translate}}</mat-label>
<mat-select formControlName="genderId" required>
<mat-option *ngFor="let gender of addFamilyMemberTemplate.genderIdOptions" [value]="gender.id">
{{ gender.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="editFamilyMemberForm.controls.genderId.hasError('required')">
Gender is <strong>required</strong>
{{"labels.inputs.Gender" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Profession</mat-label>
<mat-label>{{"labels.inputs.Profession" |translate}}</mat-label>
<mat-select formControlName="professionId">
<mat-option *ngFor="let profession of addFamilyMemberTemplate.professionIdOptions" [value]="profession.id">
{{ profession.name }}
@@ -75,7 +75,7 @@
</mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>Marital Status</mat-label>
<mat-label>{{"labels.inputs.Marital Status" |translate}}</mat-label>
<mat-select formControlName="maritalStatusId">
<mat-option *ngFor="let maritalStatus of addFamilyMemberTemplate.maritalStatusIdOptions"
[value]="maritalStatus.id">
@@ -86,22 +86,21 @@
<mat-form-field fxFlex (click)="dueDatePicker.open()">
<mat-label>Date Of Birth</mat-label>
<mat-label>{{"labels.inputs.Date Of Birth" |translate}}</mat-label>
<input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker"
required>
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="editFamilyMemberForm.controls.dateOfBirth.hasError('required')">
Date of birth
is <strong>required</strong>
{{"labels.inputs.Date of birth" |translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
</div>
<div fxLayout="row" fxLayoutGap="32px" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button>
<button type="submit" mat-raised-button color="primary" [disabled]="editFamilyMemberForm.pristine||!editFamilyMemberForm.valid">Submit</button>
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button>
<button type="submit" mat-raised-button color="primary" [disabled]="editFamilyMemberForm.pristine||!editFamilyMemberForm.valid">{{ "labels.buttons.Submit" |translate}}</button>
</div>
</form>
@@ -2,12 +2,11 @@
<router-outlet>
<h3>Family Members</h3>
<h3>{{"labels.heading.Family Members" |translate}}</h3>
<div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button color="primary" [routerLink]="['./add']">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
Add
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Add" |translate}}
</button>
</div>
@@ -36,17 +35,17 @@
</div>
<p>
First Name : {{member.firstName}}<br />
Middle Name : {{member.middleName}}<br />
Last Name : {{member.lastName}}<br />
Qualification : {{member.qualification}}<br />
Mobile Number : {{member.mobileNumber}}<br />
Age : {{member.age}}<br />
Is Dependent : {{member.isDependent}}<br />
Martial Status : {{member.maritalStatus}}<br />
Gender : {{member.gender}}<br />
Profession : {{member.profession}}<br />
Date Of Birth : {{member.dateOfBirth | dateFormat}}<br />
{{"labels.inputs.First Name" |translate}} : {{member.firstName}}<br />
{{"labels.inputs.Middle Name" |translate}} : {{member.middleName}}<br />
{{"labels.inputs.Last Name" |translate}} : {{member.lastName}}<br />
{{"labels.inputs.Qualification" |translate}} : {{member.qualification}}<br />
{{"labels.inputs.Mobile Number" |translate}} : {{member.mobileNumber}}<br />
{{"labels.inputs.Age" |translate}} : {{member.age}}<br />
{{"labels.inputs.Is Dependent" |translate}} : {{member.isDependent}}<br />
{{"labels.inputs.Martial Status" |translate}} : {{member.maritalStatus}}<br />
{{"labels.inputs.Gender" |translate}} : {{member.gender}}<br />
{{"labels.inputs.Profession" |translate}} : {{member.profession}}<br />
{{"labels.inputs.Date Of Birth" |translate}} : {{member.dateOfBirth | dateFormat}}<br />
</p>
</mat-expansion-panel>
@@ -1,21 +1,21 @@
<div class="tab-container mat-typography">
<h3>Performance History</h3>
<h3>{{ "labels.heading.Performance History" |translate}}</h3>
<div fxLayout="row" fxLayoutGap="32px" class="performance-history-container">
<table>
<tbody>
<tr>
<td>
<p>
No. Of Loan Cycles :{{clientSummary?.loanCycle}} <br />
No. of Active Loans :{{clientSummary?.activeLoans}} <br />
Last Loan Amount :{{clientSummary?.lastLoanAmount | formatNumber}} <br />
{{"labels.inputs.No. Of Loan Cycles" |translate}} :{{clientSummary?.loanCycle}} <br />
{{"labels.inputs.No. of Active Loans" |translate}} :{{clientSummary?.activeLoans}} <br />
{{"labels.inputs.Last Loan Amount" |translate}} :{{clientSummary?.lastLoanAmount | formatNumber}} <br />
</p>
</td>
<td>
<p>
No. of Active Savings :{{clientSummary?.activeSavings}} <br />
Total Savings :{{clientSummary?.totalSavings | formatNumber}} <br />
{{"labels.inputs.No. of Active Savings" |translate}} :{{clientSummary?.activeSavings}} <br />
{{"labels.inputs.Total Savings" |translate}} :{{clientSummary?.totalSavings | formatNumber}} <br />
</p>
</td>
</tr>
@@ -27,13 +27,13 @@
<div class="heading-content">
<div fxLayout="column" fxFlex="50%">
<div className="heading-name">
<h3>Upcoming Charges</h3>
<h3>{{ "labels.heading.Upcoming Charges" |translate}}</h3>
</div>
</div>
<div fxLayout="column" fxFlex="50%">
<div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button class="f-right" color="primary" [routerLink]="['../', 'charges', 'overview']" *mifosxHasPermission="'READ_CLIENTCHARGE'">Charges
Overview</button>
<button mat-raised-button class="f-right" color="primary" [routerLink]="['../', 'charges', 'overview']" *mifosxHasPermission="'READ_CLIENTCHARGE'">
{{ "labels.buttons.Charges Overview" |translate}}</button>
</div>
</div>
</div>
@@ -41,39 +41,39 @@
<table mat-table [dataSource]="upcomingCharges">
<ng-container matColumnDef="Name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" |translate}} </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop"
[ngClass]="(!(element.isWaived || element.isPaid)) | statusLookup"></i>
{{element.name}} </td>
</ng-container>
<ng-container matColumnDef="Due as of">
<th mat-header-cell *matHeaderCellDef> Due as of </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Due as of" |translate}}" </th>
<td mat-cell *matCellDef="let element"> {{element.dueDate | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="Due">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Due </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Due" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amount | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Paid">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Paid </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Paid" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountPaid | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Waived">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Waived </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Waived" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountWaived | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Outstanding">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Outstanding </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Outstanding" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountOutstanding | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell class="center" *matHeaderCellDef> Actions </th>
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Actions" |translate}} </th>
<td mat-cell class="center" *matCellDef="let element">
<button class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','charges', element.id, 'pay']" *mifosxHasPermission="'PAY_CLIENTCHARGE'">
@@ -96,7 +96,7 @@
<div class="heading-content">
<div fxLayout="column" fxFlex="50%">
<div class="heading-name">
<h3>Loan Accounts</h3>
<h3>{{"labels.heading.Loan Accounts" |translate}}</h3>
</div>
</div>
<div fxLayout="column" fxFlex="50%">
@@ -110,7 +110,7 @@
<table *ngIf="!showClosedLoanAccounts" mat-table [dataSource]="loanAccounts|accountsFilter:'loan'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop"
[ngClass]="element.inArrears?'status-active-overdue':(element.status.code|statusLookup)"></i>
{{element.accountNo}}
@@ -118,54 +118,54 @@
</ng-container>
<ng-container matColumnDef="Loan Account">
<th mat-header-cell *matHeaderCellDef> Loan Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Original Loan">
<th mat-header-cell *matHeaderCellDef> Original Loan </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Original Loan" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.originalLoan}} </td>
</ng-container>
<ng-container matColumnDef="Loan Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Loan Balance </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Loan Balance" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.loanBalance | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Amount Paid">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Amount Paid </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Amount Paid" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountPaid | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Type">
<th mat-header-cell class="center" *matHeaderCellDef> Type </th>
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Type" |translate}} </th>
<td mat-cell class="center" *matCellDef="let element">
<i class="fa fa-large" [ngClass]="(element.loanType.value=== 'Individual')?'fa-user':'fa-group'" matTooltip=" {{ element.loanType.value }}" matTooltipPosition="above"></i>
</td>
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell class="center" *matHeaderCellDef> Actions </th>
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Actions" |translate}}</th>
<td mat-cell class="center" *matCellDef="let element">
<button *ngIf="element.status.active" class="account-action-button" mat-raised-button color="primary" matTooltip="Make Repayment" matTooltipPosition="above"
<button *ngIf="element.status.active" class="account-action-button" mat-raised-button color="primary" matTooltip="{{ 'tooltips.Make Repayment' | translate }}" matTooltipPosition="above"
(click)="routeEdit($event)" [routerLink]="['../','loans-accounts', element.id, 'actions', 'Make Repayment']">
<i class="fa fa-dollar"></i>
</button>
<span *ngIf="element.status.pendingApproval">
<button class="account-action-button" mat-raised-button color="primary" matTooltip="Approve"
<button class="account-action-button" mat-raised-button color="primary" matTooltip="{{ 'tooltips.Approve' | translate }}"
matTooltipPosition="above" *mifosxHasPermission="'APPROVE_LOAN'" (click)="routeEdit($event)"
[routerLink]="['../','loans-accounts', element.id, 'actions', 'Approve']">
<i class="fa fa-check"></i>
</button>
</span>
<span *ngIf="!element.status.pendingApproval && !element.status.active && !element.status.overpaid">
<button class="account-action-button" mat-raised-button color="primary" matTooltip="Disburse"
<button class="account-action-button" mat-raised-button color="primary" matTooltip="{{ 'tooltips.Disburse' | translate }}"
matTooltipPosition="above" *mifosxHasPermission="'DISBURSE_LOAN'"
(click)="routeEdit($event)" [routerLink]="['../','loans-accounts', element.id, 'actions', 'Disburse']">
<i class="fa fa-flag"></i>
</button>
</span>
<span *ngIf="!element.status.pendingApproval && !element.status.active && element.status.overpaid">
<button class="account-action-button" mat-raised-button color="primary" matTooltip="Transfer Funds"
<button class="account-action-button" mat-raised-button color="primary" matTooltip="{{ 'tooltips.Transfer Funds' | translate }}"
matTooltipPosition="above" *mifosxHasPermission="'DISBURSE_LOAN'"
(click)="routeEdit($event); routeTransferFund(element.id)">
<i class="fa fa-exchange"></i>
@@ -184,7 +184,7 @@
<table *ngIf="showClosedLoanAccounts" mat-table [dataSource]="loanAccounts|accountsFilter:'loan':'closed'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop"
[ngClass]="element.inArrears?'status-active-overdue':(element.status.code|statusLookup)"></i>
{{element.accountNo}}
@@ -192,34 +192,34 @@
</ng-container>
<ng-container matColumnDef="Loan Account">
<th mat-header-cell *matHeaderCellDef> Loan Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Original Loan">
<th mat-header-cell *matHeaderCellDef> Original Loan </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Original Loan" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.lastActiveTransactionDate | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="Loan Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Loan Balance </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Loan Balance" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.loanBalance | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Amount Paid">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Amount Paid </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Amount Paid" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Type">
<th mat-header-cell class="center" *matHeaderCellDef> Type </th>
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Type" |translate}} </th>
<td mat-cell class="center" *matCellDef="let element">
<i class="fa fa-large" [ngClass]="(element.loanType.value === 'Individual')?'fa-user':'fa-group'" matTooltip=" {{ element.loanType.value }}" matTooltipPosition="above"></i>
</td>
</ng-container>
<ng-container matColumnDef="Closed Date">
<th mat-header-cell *matHeaderCellDef> Closed Date </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Closed Date" |translate}} </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
</ng-container>
@@ -233,7 +233,7 @@
<div class="heading-content">
<div fxLayout="column" fxFlex="50%">
<div class="heading-name">
<h3>Saving Accounts</h3>
<h3>{{"labels.heading.Saving Accounts" |translate}}</h3>
</div>
</div>
<div fxLayout="column" fxFlex="50%">
@@ -248,28 +248,28 @@
[dataSource]="savingAccounts|accountsFilter:'saving':'open':'isSavings'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> Saving Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Last Active">
<th mat-header-cell *matHeaderCellDef> Last Active </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Last Active" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.lastActiveTransactionDate | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Balance" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell class="center" *matHeaderCellDef> Actions </th>
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Actions" |translate}} </th>
<td mat-cell class="center" *matCellDef="let element">
<button *ngIf="element.status.active" class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Deposit']">
@@ -307,18 +307,18 @@
[dataSource]="savingAccounts|accountsFilter:'saving':'closed':'isSavings'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> Saving Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Closed Date">
<th mat-header-cell *matHeaderCellDef> Closed Date </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Closed Date" |translate}} </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
</ng-container>
@@ -331,7 +331,7 @@
<div class="heading-content">
<div fxLayout="column" fxFlex="50%">
<div class="heading-name">
<h3>Fixed Deposit Accounts</h3>
<h3>{{"labels.heading.Fixed Deposit Accounts" |translate}}</h3>
</div>
</div>
<div fxLayout="column" fxFlex="50%">
@@ -346,28 +346,28 @@
[dataSource]="savingAccounts|accountsFilter:'saving':'open':'isFixed'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> Saving Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Last Active">
<th mat-header-cell *matHeaderCellDef> Last Active </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Last Active" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.lastActiveTransactionDate | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Balance" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell class="center" *matHeaderCellDef> Actions </th>
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Actions" |translate}} </th>
<td mat-cell class="center" *matCellDef="let element">
<button *ngIf="element.status.submittedAndPendingApproval" class="account-action-button" mat-raised-button
color="primary" (click)="routeEdit($event)" [routerLink]="['../','fixed-deposits-accounts', element.id, 'actions', 'Approve']">
@@ -398,18 +398,18 @@
[dataSource]="savingAccounts|accountsFilter:'saving':'closed':'isFixed'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> Saving Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Closed Date">
<th mat-header-cell *matHeaderCellDef> Closed Date </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Closed Date" |translate}} </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
</ng-container>
@@ -423,7 +423,7 @@
<div class="heading-content">
<div fxLayout="column" fxFlex="50%">
<div class="heading-name">
<h3>Recurring Deposit Accounts</h3>
<h3>{{"labels.heading.Recurring Deposit Accounts" |translate}}</h3>
</div>
</div>
<div fxLayout="column" fxFlex="50%">
@@ -438,28 +438,28 @@
[dataSource]="savingAccounts|accountsFilter:'saving':'open':'isRecurring'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> Saving Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Last Active">
<th mat-header-cell *matHeaderCellDef> Last Active </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Last Active" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.lastActiveTransactionDate | dateFormat}} </td>
</ng-container>
<ng-container matColumnDef="Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th>
<th mat-header-cell class="r-amount" *matHeaderCellDef> {{"labels.inputs.Balance" |translate}} </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | formatNumber}} </td>
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell class="center" *matHeaderCellDef> Actions </th>
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Actions" |translate}} </th>
<td mat-cell class="center" *matCellDef="let element">
<ng-container *ngIf="element.status.submittedAndPendingApproval">
<button class="account-action-button" mat-raised-button *mifosxHasPermission="'APPROVE_SAVINGSACCOUNT'"
@@ -494,18 +494,18 @@
[dataSource]="savingAccounts|accountsFilter:'saving':'closed':'isRecurring'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> Saving Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Closed Date">
<th mat-header-cell *matHeaderCellDef> Closed Date </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Closed Date" |translate}} </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
</ng-container>
@@ -518,7 +518,7 @@
<div class="heading-content">
<div fxLayout="column" fxFlex="50%">
<div class="heading-name">
<h3>Shares Accounts</h3>
<h3>{{"labels.inputs.Shares Accounts" |translate}}</h3>
</div>
</div>
<div fxLayout="column" fxFlex="50%">
@@ -532,28 +532,28 @@
<table *ngIf="!showClosedShareAccounts" mat-table [dataSource]="shareAccounts|accountsFilter:'share'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Share Account">
<th mat-header-cell *matHeaderCellDef> Share Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Share Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Approved Shares">
<th mat-header-cell *matHeaderCellDef> Approved Shares </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Approved Shares" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.totalApprovedShares}} </td>
</ng-container>
<ng-container matColumnDef="Pending For Approval Shares">
<th mat-header-cell *matHeaderCellDef> Pending For Approval Shares </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Pending For Approval Shares" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.totalPendingForApprovalShares}} </td>
</ng-container>
<ng-container matColumnDef="Actions">
<th mat-header-cell class="center" *matHeaderCellDef> Actions </th>
<th mat-header-cell class="center" *matHeaderCellDef> {{"labels.inputs.Actions" |translate}} </th>
<td mat-cell class="center" *matCellDef="let element">
<button *ngIf="element.status.submittedAndPendingApproval" class="account-action-button" mat-raised-button
color="primary" (click)="routeEdit($event)" [routerLink]="['../','shares-accounts', element.id, 'actions', 'Approve']">
@@ -580,28 +580,28 @@
<table *ngIf="showClosedShareAccounts" mat-table [dataSource]="shareAccounts|accountsFilter:'share':'closed'">
<ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> Account No. </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" |translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td>
</ng-container>
<ng-container matColumnDef="Share Account">
<th mat-header-cell *matHeaderCellDef> Share Account </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Share Account" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container>
<ng-container matColumnDef="Approved Shares">
<th mat-header-cell *matHeaderCellDef> Approved Shares </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Approved Shares" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.totalApprovedShares}} </td>
</ng-container>
<ng-container matColumnDef="Pending For Approval Shares">
<th mat-header-cell *matHeaderCellDef> Pending For Approval Shares </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Pending For Approval Shares" |translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.totalPendingForApprovalShares}} </td>
</ng-container>
<ng-container matColumnDef="Closed Date">
<th mat-header-cell *matHeaderCellDef> Closed Date </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Closed Date" |translate}} </th>
<td mat-cell *matCellDef="let element">{{element.timeline.closedOnDate | dateFormat}}</td>
</ng-container>
@@ -614,13 +614,13 @@
<div class="heading-content">
<div fxLayout="column" fxFlex="50%">
<div class="heading-name">
<h3>Collateral Data</h3>
<h3>{{"labels.heading.Collateral Data" |translate}}</h3>
</div>
</div>
<div fxLayout="column" fxFlex="50%">
<div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button class="f-right" color="primary" disabled>
View Collaterals
{{"labels.buttons.View Collaterals" |translate}}
</button>
</div>
</div>
@@ -629,27 +629,27 @@
<table mat-table [dataSource]="collaterals">
<ng-container matColumnDef="ID">
<th mat-header-cell *matHeaderCellDef>ID</th>
<th mat-header-cell *matHeaderCellDef>{{"labels.inputs.ID" |translate}}</th>
<td mat-cell *matCellDef="let element">{{ element.collateralId }}</td>
</ng-container>
<ng-container matColumnDef="Name">
<th mat-header-cell *matHeaderCellDef>Name</th>
<th mat-header-cell *matHeaderCellDef>{{"labels.inputs.name" |translate}}</th>
<td mat-cell *matCellDef="let element">{{ element.name }}</td>
</ng-container>
<ng-container matColumnDef="Quantity">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Quantity</th>
<th mat-header-cell class="r-amount" *matHeaderCellDef>{{"labels.inputs.Quantity" |translate}}</th>
<td mat-cell class="r-amount" *matCellDef="let element">{{ element.quantity | formatNumber }}</td>
</ng-container>
<ng-container matColumnDef="Total Value">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Total Value</th>
<th mat-header-cell class="r-amount" *matHeaderCellDef>{{"labels.inputs.Total Value" |translate}}</th>
<td mat-cell class="r-amount" *matCellDef="let element">{{ element.basePrice*element.quantity | formatNumber}}</td>
</ng-container>
<ng-container matColumnDef="Total Collateral Value">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Total Collateral Value</th>
<th mat-header-cell class="r-amount" *matHeaderCellDef>{{"labels.inputs.Total Collateral Value" |translate}}</th>
<td mat-cell class="r-amount" *matCellDef="let element">{{ element.pctToBase*element.basePrice*element.quantity/100 | formatNumber}}</td>
</ng-container>
@@ -1,35 +1,35 @@
<div class="tab-container mat-typography">
<h3>Identities</h3>
<h3>{{"labels.heading.Identities" |translate}}</h3>
<button mat-raised-button class="f-right" color="primary" (click)="addIdentifier()" *mifosxHasPermission="'CREATE_CLIENTIDENTIFIER'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> Add
<fa-icon icon="plus" class="m-r-10"></fa-icon> {{"labels.buttons.Add" |translate}}
</button>
<table mat-table #identifiersTable [dataSource]="clientIdentities">
<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef> Id </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Id" |translate}} </th>
<td mat-cell *matCellDef="let identity">{{identity.id}}</td>
</ng-container>
<ng-container matColumnDef="type">
<th mat-header-cell *matHeaderCellDef> type </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" |translate}} </th>
<td mat-cell *matCellDef="let identity"> {{identity.documentType.name}}</td>
</ng-container>
<ng-container matColumnDef="documentKey">
<th mat-header-cell *matHeaderCellDef> Key </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Key" |translate}} </th>
<td mat-cell *matCellDef="let identity"> {{identity.documentKey}} </td>
</ng-container>
<ng-container matColumnDef="description">
<th mat-header-cell *matHeaderCellDef> Description </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Description" |translate}} </th>
<td mat-cell *matCellDef="let identity"> {{identity.description}} </td>
</ng-container>
<ng-container matColumnDef="documents">
<th mat-header-cell *matHeaderCellDef>Identity Documents </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Identity Documents" |translate}} </th>
<td mat-cell *matCellDef="let identity">
<div *ngFor="let document of identity.documents">
{{document.name}}
@@ -39,14 +39,14 @@
</ng-container>
<ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef> Status </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Status" |translate}} </th>
<td mat-cell *matCellDef="let identity">
{{(identity.status==='clientIdentifierStatusType.active')?'active':'inactive'}}
</td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef> Actions </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" |translate}} </th>
<td mat-cell *matCellDef="let identity; let i = index">
<button class="identity-action-button" mat-raised-button color="primary" (click)="uploadDocument(i,identity.id)" *mifosxHasPermission="'CREATE_DOCUMENT'">
<fa-icon icon="eye"></fa-icon>
+9 -9
View File
@@ -6,15 +6,15 @@
</mat-form-field>
</div>
<div class="filter-box" *ngIf="existsClientsToFilter">
<mat-checkbox #showClosedAccounts labelPosition="after" class="m-r-10">Show Closed Accounts
<mat-checkbox #showClosedAccounts labelPosition="after" class="m-r-10">{{"labels.inputs.Show Closed Accounts" | translate}}
</mat-checkbox>
</div>
<div class="action-button" fxLayoutGap="25px">
<button mat-raised-button color="primary" [routerLink]="['../', 'organization', 'bulk-import', 'Clients']" *mifosxHasPermission="'CREATE_CLIENT'">
<fa-icon icon="download" class="m-r-10"></fa-icon>Import Client
<fa-icon icon="download" class="m-r-10"></fa-icon>{{"labels.buttons.Import Client" | translate}}
</button>
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_CLIENT'">
<fa-icon icon="plus" class="m-r-10"></fa-icon>Create Client
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{"labels.buttons.Create Client" | translate}}
</button>
</div>
</div>
@@ -25,13 +25,13 @@
<!-- Name Column -->
<ng-container matColumnDef="displayName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.name" | translate}} </th>
<td mat-cell *matCellDef="let row" [routerLink]="[row.id,'general']"> {{row.displayName}} </td>
</ng-container>
<!-- Account no Column -->
<ng-container matColumnDef="accountNumber">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Account No. </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let row">
<mifosx-account-number display="left" accountNo="{{row.accountNumber}}"></mifosx-account-number>
</td>
@@ -39,7 +39,7 @@
<!-- External ID Column -->
<ng-container matColumnDef="externalId">
<th mat-header-cell *matHeaderCellDef mat-sort-header> External Id </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.External Id" | translate}} </th>
<td mat-cell *matCellDef="let row">
<mifosx-external-identifier display="left" externalId="{{row.externalId}}"></mifosx-external-identifier>
</td>
@@ -47,7 +47,7 @@
<!-- Status Column -->
<ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef> Status </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Status" | translate}} </th>
<td mat-cell *matCellDef="let row">
<div [ngClass]="row.status.code | statusLookup">
<fa-icon icon="stop"></fa-icon>
@@ -59,7 +59,7 @@
</ng-container>
<ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef> Office Name </th>
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Office Name" | translate}} </th>
<td mat-cell *matCellDef="let row"> {{row.officeName}} </td>
</ng-container>
@@ -75,7 +75,7 @@
<div class="alert" [hidden]="!notExistsClientsToFilter">
<div class="message">
<i class="fa fa-exclamation-circle alert-check"></i>
No client was found
{{"labels.text.No client was found" | translate}}
</div>
</div>
</mat-card>
@@ -24,7 +24,7 @@
<mat-step [stepControl]="clientGeneralForm">
<ng-template matStepLabel>GENERAL</ng-template>
<ng-template matStepLabel>{{"labels.inputs.GENERAL" |translate}}</ng-template>
<mifosx-client-general-step [clientTemplate]="clientTemplate" (legalFormChangeEvent)="legalFormChange($event)"></mifosx-client-general-step>
@@ -32,7 +32,7 @@
<mat-step>
<ng-template matStepLabel>FAMILY MEMBERS</ng-template>
<ng-template matStepLabel>{{"labels.inputs.FAMILY MEMBERS" |translate}}</ng-template>
<mifosx-client-family-members-step #clientFamily [clientTemplate]="clientTemplate"></mifosx-client-family-members-step>
@@ -40,7 +40,7 @@
<mat-step *ngIf="clientTemplate.isAddressEnabled">
<ng-template matStepLabel>ADDRESS</ng-template>
<ng-template matStepLabel>{{"labels.inputs.ADDRESS" |translate}}</ng-template>
<mifosx-client-address-step #clientAddress [clientTemplate]="clientTemplate"
[clientAddressFieldConfig]="clientAddressFieldConfig">
@@ -58,7 +58,7 @@
<mat-step *ngIf="areFormvalids()" completed>
<ng-template matStepLabel>PREVIEW</ng-template>
<ng-template matStepLabel>{{"labels.inputs.PREVIEW" |translate}}</ng-template>
<mifosx-client-preview-step
[clientTemplate]="clientTemplate"
@@ -9,19 +9,19 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%">
<mat-label>Office</mat-label>
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label>
<mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeOptions" [value]="office.id">
{{ office.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="editClientForm.controls.officeId.hasError('required')">
Office is <strong>required</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>Legal Form</mat-label>
<mat-label>{{"labels.inputs.Legal Form" |translate}}</mat-label>
<mat-select formControlName="legalFormId">
<mat-option *ngFor="let legalForm of legalFormOptions" [value]="legalForm.id">
{{ legalForm.value }}
@@ -30,12 +30,12 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Account No</mat-label>
<mat-label>{{"labels.inputs.Account No" |translate}}</mat-label>
<input matInput formControlName="accountNo">
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Staff</mat-label>
<mat-label>{{"labels.inputs.Staff" |translate}}</mat-label>
<mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffOptions" [value]="staff.id">
{{ staff.displayName }}
@@ -47,33 +47,33 @@
<mat-label>{{ legalFormId === 1 ? 'Name' : 'Entity Name' }}</mat-label>
<input matInput required formControlName="fullname">
<mat-error *ngIf="editClientForm.controls.fullname.hasError('required')">
Client name is <strong>required</strong>
{{"labels.inputs.Client name" |translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="editClientForm.contains('firstname')" fxFlex="48%">
<mat-label>First Name</mat-label>
<mat-label>{{"labels.inputs.First Name" |translate}}</mat-label>
<input matInput required formControlName="firstname">
<mat-error *ngIf="editClientForm.controls.firstname.hasError('required')">
Client first name is <strong>required</strong>
{{"labels.inputs.Client first name" |translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="editClientForm.contains('middlename')" fxFlex="48%">
<mat-label>Middle Name</mat-label>
<mat-label>{{"labels.inputs.Middle Name" |translate}}</mat-label>
<input matInput formControlName="middlename">
</mat-form-field>
<mat-form-field *ngIf="editClientForm.contains('lastname')" fxFlex="48%">
<mat-label>Last Name</mat-label>
<mat-label>{{"labels.inputs.Last Name" |translate}}</mat-label>
<input matInput required formControlName="lastname">
<mat-error *ngIf="editClientForm.controls.lastname.hasError('required')">
Client last name is <strong>required</strong>
{{"labels.inputs.Client last name" |translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="legalFormId === 1" fxFlex="48%">
<mat-label>Gender</mat-label>
<mat-label>{{"labels.inputs.Gender" |translate}}</mat-label>
<mat-select formControlName="genderId">
<mat-option *ngFor="let gender of genderOptions" [value]="gender.id">
{{ gender.name }}
@@ -92,7 +92,7 @@
*ngIf="editClientForm.contains('clientNonPersonDetails')">
<mat-form-field fxFlex="48%">
<mat-label>Constitution</mat-label>
<mat-label>{{"labels.inputs.Constitution" |translate}}</mat-label>
<mat-select formControlName="constitutionId" required>
<mat-option *ngFor="let constitution of constitutionOptions" [value]="constitution.id">
{{ constitution.name }}
@@ -101,7 +101,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Main Business Line</mat-label>
<mat-label>{{"labels.inputs.Main Business Line" |translate}}</mat-label>
<mat-select formControlName="mainBusinessLineId">
<mat-option *ngFor="let business of businessLineOptions" [value]="business.id">
{{ business.name }}
@@ -110,39 +110,39 @@
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="incorpValidityTillDateDatePicker.open()">
<mat-label>Incorporation Validity Till Date</mat-label>
<mat-label>{{"labels.inputs.Incorporation Validity Till Date" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="incorpValidityTillDateDatePicker" formControlName="incorpValidityTillDate">
<mat-datepicker-toggle matSuffix [for]="incorpValidityTillDateDatePicker"></mat-datepicker-toggle>
<mat-datepicker #incorpValidityTillDateDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Incorporation No</mat-label>
<mat-label>{{"labels.inputs.Incorporation No" |translate}}</mat-label>
<input matInput formControlName="incorpNumber">
</mat-form-field>
<mat-form-field fxFlex="98%">
<mat-label>Remarks</mat-label>
<mat-label>{{"labels.inputs.Remarks" |translate}}</mat-label>
<textarea matInput formControlName="remarks" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field>
</div>
<mat-form-field fxFlex="48%">
<mat-label>External Id</mat-label>
<mat-label>{{"labels.inputs.External Id" |translate}}</mat-label>
<input matInput formControlName="externalId">
</mat-form-field>
<mat-checkbox *ngIf="legalFormId === 1" fxFlex="48%" labelPosition="before" formControlName="isStaff" class="margin-v">
Is staff?
{{"labels.inputs.Is staff" |translate}}?
</mat-checkbox>
<mat-form-field fxFlex="48%">
<mat-label>Mobile No</mat-label>
<mat-label>{{"labels.inputs.Mobile No" |translate}}</mat-label>
<input matInput type="number" formControlName="mobileNo">
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Email Address</mat-label>
<mat-label>{{"labels.inputs.Email Address" |translate}}</mat-label>
<input matInput formControlName="emailAddress">
<mat-error *ngIf="editClientForm.controls.emailAddress.errors?.email">
Email not valid
@@ -150,7 +150,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Client Type</mat-label>
<mat-label>{{"labels.inputs.Client Type" |translate}}</mat-label>
<mat-select formControlName="clientTypeId">
<mat-option *ngFor="let clientType of clientTypeOptions" [value]="clientType.id">
{{ clientType.name }}
@@ -159,7 +159,7 @@
</mat-form-field>
<mat-form-field fxFlex="48%">
<mat-label>Client Classification</mat-label>
<mat-label>{{"labels.inputs.Client Classification" |translate}}</mat-label>
<mat-select formControlName="clientClassificationId">
<mat-option *ngFor="let clientClassification of clientClassificationTypeOptions" [value]="clientClassification.id">
{{ clientClassification.name }}
@@ -168,17 +168,17 @@
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="submittedOnDatePicker.open()">
<mat-label>Submitted On</mat-label>
<mat-label>{{"labels.inputs.Submitted On" |translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker" formControlName="submittedOnDate" required>
<mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDatePicker></mat-datepicker>
<mat-error *ngIf="editClientForm.controls.submittedOnDate.hasError('required')">
Submitted Date is <strong>required</strong>
{{"labels.inputs.Submitted Date" |translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error>
</mat-form-field>
<mat-form-field fxFlex="48%" (click)="activatedOnDatePicker.open()">
<mat-label>Activated On</mat-label>
<mat-label>{{"labels.inputs.Activated On" |translate}}</mat-label>
<input matInput [min]="editClientForm.value.submittedOnDate" [max]="maxDate" [matDatepicker]="activatedOnDatePicker"
formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activatedOnDatePicker"></mat-datepicker-toggle>
@@ -190,8 +190,8 @@
</mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../general']">Cancel</button>
<button mat-raised-button color="primary" [disabled]="!editClientForm.valid" (click)="submit()">Submit</button>
<button type="button" mat-raised-button [routerLink]="['../general']">{{"labels.buttons.Cancel" |translate}}</button>
<button mat-raised-button color="primary" [disabled]="!editClientForm.valid" (click)="submit()">{{"labels.buttons.Submit" |translate}}</button>
</mat-card-actions>
</form>