share certificate and share product maker checker

This commit is contained in:
2026-07-27 13:57:49 +05:30
parent d0536dbb11
commit 0c99dc3686
47 changed files with 2790 additions and 245 deletions
@@ -7,23 +7,25 @@
-->
<div class="layout-row-wrap gap-2px responsive-column">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Charge' | translate }}</mat-label>
<mat-select #charge>
@for (charge of chargeData | chargesFilter: chargesDataSource : currencyCode.value; track charge) {
<mat-option [value]="charge">
{{ charge.name }}
</mat-option>
}
</mat-select>
</mat-form-field>
@if (!approvalEditMode) {
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Charge' | translate }}</mat-label>
<mat-select #charge>
@for (charge of chargeData | chargesFilter: chargesDataSource : currencyCode.value; track charge) {
<mat-option [value]="charge">
{{ charge.name }}
</mat-option>
}
</mat-select>
</mat-form-field>
<div class="flex-48 align-center">
<button type="button" mat-raised-button color="primary" (click)="addCharge(charge)" [disabled]="!charge.value">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Add' | translate }}
</button>
</div>
<div class="flex-48 align-center">
<button type="button" mat-raised-button color="primary" (click)="addCharge(charge)" [disabled]="!charge.value">
<fa-icon icon="plus" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Add' | translate }}
</button>
</div>
}
<table
class="flex-98 mat-elevation-z1"
@@ -49,9 +51,11 @@
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Amount' | translate }}</th>
<td mat-cell *matCellDef="let charge">
{{ charge.amount || charge.amountOrPercentage }}
<button mat-icon-button color="primary" (click)="editCharge(charge)">
<fa-icon icon="pen"></fa-icon>
</button>
@if (!approvalEditMode) {
<button mat-icon-button color="primary" (click)="editCharge(charge)">
<fa-icon icon="pen"></fa-icon>
</button>
}
</td>
</ng-container>
@@ -65,9 +69,11 @@
<ng-container matColumnDef="action">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Actions' | translate }}</th>
<td mat-cell *matCellDef="let charge">
<button mat-icon-button color="warn" (click)="deleteCharge(charge)">
<fa-icon icon="trash"></fa-icon>
</button>
@if (!approvalEditMode) {
<button mat-icon-button color="warn" (click)="deleteCharge(charge)">
<fa-icon icon="trash"></fa-icon>
</button>
}
</td>
</ng-container>
@@ -73,6 +73,9 @@ export class SharesAccountChargesStepComponent implements OnInit, OnChanges {
@Input() sharesAccountTemplate: any;
/** Currency Code */
@Input() currencyCode: UntypedFormControl;
/** When true (Share Account "Edit Details" maker-checker flow), charges are locked - they aren't
* part of that flow's editable field set. */
@Input() approvalEditMode = false;
/** Charge Data */
chargeData: any = [];
@@ -45,6 +45,15 @@
<mat-label>{{ 'labels.inputs.External ID' | translate }}</mat-label>
<input matInput formControlName="externalId" />
</mat-form-field>
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Resolution Number' | translate }}</mat-label>
<input matInput formControlName="resolutionNumber" required />
<mat-error>
{{ 'labels.inputs.Resolution Number' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
</div>
<div class="layout-row align-center gap-2percent margin-t responsive-column">
@@ -56,7 +65,11 @@
mat-raised-button
matStepperNext
[disabled]="
!(sharesAccountDetailsForm.get('productId')?.value && sharesAccountDetailsForm.get('submittedDate')?.value)
!(
sharesAccountDetailsForm.get('productId')?.value &&
sharesAccountDetailsForm.get('submittedDate')?.value &&
sharesAccountDetailsForm.get('resolutionNumber')?.value
)
"
>
{{ 'labels.buttons.Next' | translate }}
@@ -38,6 +38,9 @@ export class SharesAccountDetailsStepComponent implements OnInit {
/** Shares Account Template */
@Input() sharesAccountTemplate: any;
/** When true (Share Account "Edit Details" maker-checker flow), Product/Submitted On/External ID/
* Resolution Number are locked - none of them are part of that flow's editable field set. */
@Input() approvalEditMode = false;
/** Minimum date allowed. */
minDate = new Date(2000, 0, 1);
@@ -72,10 +75,14 @@ export class SharesAccountDetailsStepComponent implements OnInit {
submittedDate:
this.sharesAccountTemplate.timeline.submittedOnDate &&
new Date(this.sharesAccountTemplate.timeline.submittedOnDate),
externalId: this.sharesAccountTemplate.externalId
externalId: this.sharesAccountTemplate.externalId,
resolutionNumber: this.sharesAccountTemplate.resolutionNumber
});
}
}
if (this.approvalEditMode) {
this.sharesAccountDetailsForm.disable();
}
}
/**
@@ -91,7 +98,11 @@ export class SharesAccountDetailsStepComponent implements OnInit {
'',
Validators.required
],
externalId: ['']
externalId: [''],
resolutionNumber: [
'',
Validators.required
]
});
}
@@ -36,6 +36,11 @@
}
</div>
<div class="flex-fill">
<span class="flex-40">{{ 'labels.inputs.Resolution Number' | translate }}</span>
<span class="flex-60">{{ sharesAccount.resolutionNumber }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Terms' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
@@ -41,6 +41,10 @@ export class SharesAccountTermsStepComponent implements OnChanges, OnInit {
@Input() sharesAccountProductTemplate: any;
/** [Optional] Shares Account Template */
@Input() sharesAccountTemplate: any;
/** When true (Share Account "Edit Details" maker-checker flow), only Default Savings Account, Allow
* Dividends, Minimum Active Period and Lockin Period stay editable - Total Number of Shares and
* Application Date are transactional/historical and aren't part of that flow's editable field set. */
@Input() approvalEditMode = false;
/** Minimum date allowed. */
minDate = new Date(2000, 0, 1);
@@ -105,6 +109,10 @@ export class SharesAccountTermsStepComponent implements OnChanges, OnInit {
this.sharesAccountTemplate.allowDividendCalculationForInactiveClients
});
}
if (this.approvalEditMode) {
this.sharesAccountTermsForm.get('requestedShares').disable();
this.sharesAccountTermsForm.get('applicationDate').disable();
}
}
/**