+30
@@ -0,0 +1,30 @@
|
||||
/** Angular Imports */
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
/** Custom Services */
|
||||
import { OrganizationService } from '../../organization.service';
|
||||
|
||||
/**
|
||||
* Provisioning criteria template resolver.
|
||||
*/
|
||||
@Injectable()
|
||||
export class LoanProvisioningCriteriaTemplateResolver implements Resolve<Object> {
|
||||
|
||||
/**
|
||||
* @param {OrganizationService} organizationService Products service.
|
||||
*/
|
||||
constructor(private organizationService: OrganizationService) {}
|
||||
|
||||
/**
|
||||
* Returns the Pprovisioning criteria template
|
||||
* @returns {Observable<any>}
|
||||
*/
|
||||
resolve(): Observable<any> {
|
||||
return this.organizationService.getProvisioningCriteriaTemplate();
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -6,7 +6,7 @@ import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
/** Custom Services */
|
||||
import { OrganizationService } from '../organization.service';
|
||||
import { OrganizationService } from '../../organization.service';
|
||||
|
||||
/**
|
||||
* Loan Provisioning Criteria data resolver.
|
||||
+1
-1
@@ -6,7 +6,7 @@ import { Resolve } from '@angular/router';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
/** Custom Services */
|
||||
import { OrganizationService } from '../organization.service';
|
||||
import { OrganizationService } from '../../organization.service';
|
||||
|
||||
/**
|
||||
* Charges data resolver.
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
<div class="container">
|
||||
|
||||
<mat-card>
|
||||
|
||||
<div>
|
||||
|
||||
<form [formGroup]="provisioningCriteriaForm">
|
||||
|
||||
<div fxLayout="row" fxLayoutGap="2%">
|
||||
|
||||
<mat-form-field fxFlex>
|
||||
<mat-label>Provisioning Criteria</mat-label>
|
||||
<input required matInput formControlName="criteriaName">
|
||||
<mat-error *ngIf="provisioningCriteriaForm.controls.criteriaName.hasError('required')">
|
||||
Provisioning Criteria is <strong>required</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field fxFlex>
|
||||
<mat-label>Selected Products</mat-label>
|
||||
<mat-select formControlName="loanProducts" multiple>
|
||||
<mat-option *ngFor="let product of loanProvisioningCriteriaTemplate.loanProducts" [value]="product">
|
||||
{{ product.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mat-elevation-z1">
|
||||
|
||||
<mat-hint *ngIf="!provisioningCriteriaFormValid">Please fill all provisioning criteria definitions.</mat-hint>
|
||||
|
||||
<table mat-table class="m-t-10" [dataSource]="definitions">
|
||||
|
||||
<ng-container matColumnDef="category">
|
||||
<th mat-header-cell *matHeaderCellDef> Category </th>
|
||||
<td mat-cell *matCellDef="let definition"> {{ definition.categoryName }} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="minAge">
|
||||
<th mat-header-cell *matHeaderCellDef> Min Age </th>
|
||||
<td mat-cell *matCellDef="let definition"> {{ definition.minAge || '-' }} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="maxAge">
|
||||
<th mat-header-cell *matHeaderCellDef> Max Age </th>
|
||||
<td mat-cell *matCellDef="let definition"> {{ definition.maxAge || '-' }} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="percentage">
|
||||
<th mat-header-cell *matHeaderCellDef> Percentage (%)</th>
|
||||
<td mat-cell *matCellDef="let definition"> {{ definition.provisioningPercentage || '-' }} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="liabilityAccount">
|
||||
<th mat-header-cell *matHeaderCellDef> Liability Account </th>
|
||||
<td mat-cell *matCellDef="let definition"> {{ (definition.liabilityAccount | find:loanProvisioningCriteriaTemplate.glAccounts:'id':'name') || '-' }} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="expenseAccount">
|
||||
<th mat-header-cell *matHeaderCellDef> Expense Account </th>
|
||||
<td mat-cell *matCellDef="let definition"> {{ (definition.expenseAccount | find:loanProvisioningCriteriaTemplate.glAccounts:'id':'name') || '-' }} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="edit">
|
||||
<th mat-header-cell *matHeaderCellDef> Actions </th>
|
||||
<td mat-cell *matCellDef="let definition">
|
||||
<button mat-button color="primary" (click)="editDefinition(definition)">
|
||||
<fa-icon icon="edit"></fa-icon>
|
||||
Edit
|
||||
</button>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="m-t-20" fxLayout="row" fxLayoutAlign="center" fxLayoutGap="20px">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!provisioningCriteriaFormValid" (click)="submit()">Submit</button>
|
||||
</div>
|
||||
|
||||
</mat-card>
|
||||
|
||||
</div>
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { CreateLoanProvisioningCriteriaComponent } from './create-loan-provisioning-criteria.component';
|
||||
|
||||
describe('CreateLoanProvisioningCriteriaComponent', () => {
|
||||
let component: CreateLoanProvisioningCriteriaComponent;
|
||||
let fixture: ComponentFixture<CreateLoanProvisioningCriteriaComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ CreateLoanProvisioningCriteriaComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CreateLoanProvisioningCriteriaComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
+189
@@ -0,0 +1,189 @@
|
||||
/** Angular Imports */
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
||||
import { MatTableDataSource, MatDialog } from '@angular/material';
|
||||
import { Router, ActivatedRoute } from '@angular/router';
|
||||
|
||||
/** Custom Models */
|
||||
import { FormfieldBase } from 'app/shared/form-dialog/formfield/model/formfield-base';
|
||||
import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base';
|
||||
import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base';
|
||||
|
||||
/** Custom Dialogs */
|
||||
import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component';
|
||||
|
||||
/** Custom Services */
|
||||
import { OrganizationService } from '../../organization.service';
|
||||
|
||||
/**
|
||||
* Create Loan Provisioning Criteria Component.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'mifosx-create-loan-provisioning-criteria',
|
||||
templateUrl: './create-loan-provisioning-criteria.component.html',
|
||||
styleUrls: ['./create-loan-provisioning-criteria.component.scss']
|
||||
})
|
||||
export class CreateLoanProvisioningCriteriaComponent implements OnInit {
|
||||
|
||||
/** Loan Provisioning Criteria form. */
|
||||
provisioningCriteriaForm: FormGroup;
|
||||
/** Loan Provisioning Criteria Template */
|
||||
loanProvisioningCriteriaTemplate: any;
|
||||
/** Liability Accounts */
|
||||
liabilityAccounts: any;
|
||||
/** Expense Accounts */
|
||||
expenseAccounts: any;
|
||||
|
||||
/** Columns to be displayed in definitions table. */
|
||||
displayedColumns: string[] = ['category', 'minAge', 'maxAge', 'percentage', 'liabilityAccount', 'expenseAccount', 'edit'];
|
||||
/** Criteria Definitions Array */
|
||||
definitions: {
|
||||
categoryId: number,
|
||||
categoryName: string,
|
||||
maxAge?: number,
|
||||
minAge?: number,
|
||||
liabilityAccount?: string,
|
||||
expenseAccount?: string,
|
||||
provisioningPercentage?: number
|
||||
}[] = [];
|
||||
/** Checks Definitons Table Validity */
|
||||
isDefinitionValid: any = {};
|
||||
|
||||
/**
|
||||
* Retrieves the offices data from `resolve`.
|
||||
* @param {FormBuilder} formBuilder Form Builder.
|
||||
* @param {OrganizationService} organizationService Organization Service.
|
||||
* @param {ActivatedRoute} route Activated Route.
|
||||
* @param {Router} router Router for navigation.
|
||||
*/
|
||||
constructor(private formBuilder: FormBuilder,
|
||||
private organizationService: OrganizationService,
|
||||
private router: Router,
|
||||
public dialog: MatDialog,
|
||||
private route: ActivatedRoute) {
|
||||
this.route.data.subscribe((data: { loanProvisioningCriteriaTemplate: any }) => {
|
||||
this.loanProvisioningCriteriaTemplate = data.loanProvisioningCriteriaTemplate;
|
||||
this.definitions = this.loanProvisioningCriteriaTemplate.definitions;
|
||||
this.liabilityAccounts = this.loanProvisioningCriteriaTemplate.glAccounts.filter((account: any) => account.type.value === 'LIABILITY');
|
||||
this.expenseAccounts = this.loanProvisioningCriteriaTemplate.glAccounts.filter((account: any) => account.type.value === 'EXPENSE');
|
||||
});
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.createProvisioningCriteriaForm();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the provisioning criteria form
|
||||
*/
|
||||
createProvisioningCriteriaForm() {
|
||||
this.provisioningCriteriaForm = this.formBuilder.group({
|
||||
'criteriaName': ['', Validators.required],
|
||||
'loanProducts': ['']
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit Definition
|
||||
* @param {any} definition Definition
|
||||
* @param {number} index Definition index
|
||||
*/
|
||||
editDefinition(definition: any) {
|
||||
const data = {
|
||||
title: 'Edit Criteria Definition',
|
||||
formfields: this.getDefinitionFormFields(definition),
|
||||
layout: { addButtonText: 'Confirm' }
|
||||
};
|
||||
const editDefinitionDialogRef = this.dialog.open(FormDialogComponent, { data });
|
||||
editDefinitionDialogRef.afterClosed().subscribe((response: any) => {
|
||||
if (response.data) {
|
||||
const definitionData = {
|
||||
...response.data.value,
|
||||
categoryName: definition.categoryName,
|
||||
categoryId: definition.categoryId
|
||||
};
|
||||
this.definitions.splice(this.definitions.indexOf(definition), 1, definitionData);
|
||||
this.definitions = this.definitions.concat([]);
|
||||
this.isDefinitionValid[definition.categoryName] = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets formfields for form dialog.
|
||||
* @param {any} definition Definition
|
||||
*/
|
||||
getDefinitionFormFields(definition: any) {
|
||||
const formfields: FormfieldBase[] = [];
|
||||
formfields.push(new InputBase({
|
||||
controlName: 'minAge',
|
||||
label: 'Min Age',
|
||||
value: definition ? definition.minAge : '',
|
||||
type: 'number',
|
||||
required: true,
|
||||
order: 1
|
||||
}));
|
||||
formfields.push(new InputBase({
|
||||
controlName: 'maxAge',
|
||||
label: 'Max Age',
|
||||
value: definition ? definition.maxAge : '',
|
||||
type: 'number',
|
||||
required: true,
|
||||
order: 2
|
||||
}));
|
||||
formfields.push(new InputBase({
|
||||
controlName: 'provisioningPercentage',
|
||||
label: 'Percentage (%)',
|
||||
value: definition ? definition.provisioningPercentage : '',
|
||||
type: 'number',
|
||||
required: true,
|
||||
order: 3
|
||||
}));
|
||||
formfields.push(new SelectBase({
|
||||
controlName: 'liabilityAccount',
|
||||
label: 'Liability Account',
|
||||
value: definition ? definition.liabilityAccount : '',
|
||||
options: { label: 'name', value: 'id', data: this.liabilityAccounts },
|
||||
required: true,
|
||||
order: 4
|
||||
}));
|
||||
formfields.push(new SelectBase({
|
||||
controlName: 'expenseAccount',
|
||||
label: 'Expense Account',
|
||||
value: definition ? definition.expenseAccount : '',
|
||||
options: { label: 'name', value: 'id', data: this.expenseAccounts },
|
||||
required: true,
|
||||
order: 5
|
||||
}));
|
||||
return formfields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns validity of form and table.
|
||||
*/
|
||||
get provisioningCriteriaFormValid() {
|
||||
const definitionsValid: boolean = Object.entries(this.isDefinitionValid).length === this.definitions.length ? true : false;
|
||||
return this.provisioningCriteriaForm.valid && definitionsValid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a loan provisioning criteria.
|
||||
*/
|
||||
submit() {
|
||||
const locale = 'en';
|
||||
const loanProvisioningCriteria = {
|
||||
...this.provisioningCriteriaForm.value,
|
||||
loanProducts: this.provisioningCriteriaForm.get('loanProducts').value.map((product: any) => ({
|
||||
id: product.id,
|
||||
name: product.name,
|
||||
includeInBorrowerCycle: product.includeInBorrowerCycle
|
||||
})),
|
||||
definitions: this.definitions,
|
||||
locale
|
||||
};
|
||||
this.organizationService.createProvisioningCriteria(loanProvisioningCriteria).subscribe((response: any) => {
|
||||
this.router.navigate(['../', response.resourceId], { relativeTo: this.route });
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
|
||||
<button mat-raised-button color="primary">
|
||||
<button mat-raised-button color="primary" [routerLink]="['create']">
|
||||
<fa-icon icon="plus"></fa-icon>
|
||||
Create Provisioning Criteria
|
||||
</button>
|
||||
|
||||
+1
-3
@@ -29,7 +29,7 @@
|
||||
|
||||
<div>
|
||||
|
||||
<table mat-table [dataSource]="dataSource" matSort>
|
||||
<table mat-table [dataSource]="dataSource">
|
||||
|
||||
<ng-container matColumnDef="category">
|
||||
<th mat-header-cell *matHeaderCellDef> Category </th>
|
||||
@@ -65,8 +65,6 @@
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
</div>
|
||||
|
||||
</mat-card-content>
|
||||
|
||||
+1
-6
@@ -1,8 +1,7 @@
|
||||
/** Angular Imports */
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { Router, ActivatedRoute } from '@angular/router';
|
||||
import { MatPaginator } from '@angular/material/paginator';
|
||||
import { MatTableDataSource } from '@angular/material/table';
|
||||
|
||||
/** Custom Services */
|
||||
@@ -30,9 +29,6 @@ export class ViewLoanProvisioningCriteriaComponent implements OnInit {
|
||||
/** Data source for loan provisioning criteria table. */
|
||||
dataSource: MatTableDataSource<any>;
|
||||
|
||||
/** Paginator for loan provisioning criteria table. */
|
||||
@ViewChild(MatPaginator) paginator: MatPaginator;
|
||||
|
||||
/**
|
||||
* Retrieves the Provisioning data from `resolve`.
|
||||
* @param {OrganizationService} organizationService Organization Service.
|
||||
@@ -58,7 +54,6 @@ export class ViewLoanProvisioningCriteriaComponent implements OnInit {
|
||||
*/
|
||||
setLoanProvisioningSelectedCriteria() {
|
||||
this.dataSource = new MatTableDataSource(this.provisioningData.definitions);
|
||||
this.dataSource.paginator = this.paginator;
|
||||
|
||||
/** Get load products as a string. */
|
||||
for (let _id = 0; _id < this.provisioningData.loanProducts.length; _id++) {
|
||||
|
||||
@@ -56,9 +56,11 @@ import { ViewLoanProvisioningCriteriaComponent } from './loan-provisioning-crite
|
||||
import { CreateCampaignComponent } from './sms-campaigns/create-campaign/create-campaign.component';
|
||||
import { EditCampaignComponent } from './sms-campaigns/edit-campaign/edit-campaign.component';
|
||||
import { CreateEnityDataTableChecksComponent } from './entity-data-table-checks/create-enity-data-table-checks/create-enity-data-table-checks.component';
|
||||
import { CreateLoanProvisioningCriteriaComponent } from './loan-provisioning-criteria/create-loan-provisioning-criteria/create-loan-provisioning-criteria.component';
|
||||
import { BulkLoanReassignmnetComponent } from './bulk-loan-reassignmnet/bulk-loan-reassignmnet.component';
|
||||
|
||||
/** Custom Resolvers */
|
||||
import { LoanProvisioningCriteriaResolver } from './loan-provisioning-criteria/loan-provisioning-criteria.resolver';
|
||||
import { LoanProvisioningCriteriaResolver } from './loan-provisioning-criteria/common-resolvers/loan-provisioning-criteria.resolver';
|
||||
import { OfficesResolver } from './offices/common-resolvers/offices.resolver';
|
||||
import { EmployeesResolver } from './employees/employees.resolver';
|
||||
import { EmployeeResolver } from './employees/employee.resolver';
|
||||
@@ -76,7 +78,7 @@ import { EntityDataTableChecksResolver } from './entity-data-table-checks/entity
|
||||
import { WorkingDaysResolver } from './working-days/working-days.resolver';
|
||||
import { EditOfficeResolver } from './offices/common-resolvers/edit-office.resolver';
|
||||
import { AdhocQueryTemplateResolver } from './adhoc-query/adhoc-query-template.resolver';
|
||||
import { LoanProvisioningCriteriasResolver } from './loan-provisioning-criteria/loan-provisioning-criterias.resolver';
|
||||
import { LoanProvisioningCriteriasResolver } from './loan-provisioning-criteria/common-resolvers/loan-provisioning-criterias.resolver';
|
||||
import { CashierResolver } from './tellers/common-resolvers/cashier.resolver';
|
||||
import { CashiersResolver } from './tellers/common-resolvers/cashiers.resolver';
|
||||
import { HolidayResolver } from './holidays/holiday.resolver';
|
||||
@@ -92,7 +94,7 @@ import { AdhocQueryAndTemplateResolver } from './adhoc-query/common-resolvers/ad
|
||||
import { BulkImportResolver } from './bulk-import/bulk-import.resolver';
|
||||
import { SmsCampaignTemplateResolver } from './sms-campaigns/common-resolvers/sms-campaign-template.resolver';
|
||||
import { EntityDataTableChecksTemplateResolver } from './entity-data-table-checks/enitity-data-table-checks-template.resolver';
|
||||
import { BulkLoanReassignmnetComponent } from './bulk-loan-reassignmnet/bulk-loan-reassignmnet.component';
|
||||
import { LoanProvisioningCriteriaTemplateResolver } from './loan-provisioning-criteria/common-resolvers/loan-provisioning-criteria-template.resolver';
|
||||
|
||||
/** Organization Routes */
|
||||
const routes: Routes = [
|
||||
@@ -116,6 +118,14 @@ const routes: Routes = [
|
||||
loanProvisioningCriterias: LoanProvisioningCriteriasResolver
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'create',
|
||||
data: { title: extract('Create Provisioning Criteria'), breadcrumb: 'Create Provisioning Criteria' },
|
||||
component: CreateLoanProvisioningCriteriaComponent,
|
||||
resolve: {
|
||||
loanProvisioningCriteriaTemplate: LoanProvisioningCriteriaTemplateResolver,
|
||||
}
|
||||
},
|
||||
{
|
||||
path: ':id',
|
||||
data: { title: extract('View Provisioning Criteria'), routeParamBreadcrumb: 'id' },
|
||||
@@ -641,7 +651,8 @@ const routes: Routes = [
|
||||
BulkImportResolver,
|
||||
HolidayResolver,
|
||||
EntityDataTableChecksTemplateResolver,
|
||||
LoanProvisioningCriteriasResolver
|
||||
LoanProvisioningCriteriasResolver,
|
||||
LoanProvisioningCriteriaTemplateResolver
|
||||
]
|
||||
})
|
||||
export class OrganizationRoutingModule { }
|
||||
|
||||
@@ -64,6 +64,7 @@ import { EditSmsCampaignStepComponent } from './sms-campaigns/sms-campaign-stepp
|
||||
import { EditBusinessRuleParametersComponent } from './sms-campaigns/sms-campaign-stepper/edit-sms-campaign-step/edit-business-rule-parameters/edit-business-rule-parameters.component';
|
||||
import { CreateEnityDataTableChecksComponent } from './entity-data-table-checks/create-enity-data-table-checks/create-enity-data-table-checks.component';
|
||||
import { BulkLoanReassignmnetComponent } from './bulk-loan-reassignmnet/bulk-loan-reassignmnet.component';
|
||||
import { CreateLoanProvisioningCriteriaComponent } from './loan-provisioning-criteria/create-loan-provisioning-criteria/create-loan-provisioning-criteria.component';
|
||||
|
||||
/**
|
||||
* Organization Module
|
||||
@@ -134,6 +135,7 @@ import { BulkLoanReassignmnetComponent } from './bulk-loan-reassignmnet/bulk-loa
|
||||
EditBusinessRuleParametersComponent,
|
||||
CreateEnityDataTableChecksComponent,
|
||||
BulkLoanReassignmnetComponent,
|
||||
CreateLoanProvisioningCriteriaComponent,
|
||||
]
|
||||
})
|
||||
export class OrganizationModule { }
|
||||
|
||||
@@ -41,6 +41,14 @@ export class OrganizationService {
|
||||
return this.http.get(`/provisioningcriteria/${provisioningId}`, { params: httpParams });
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {any} Criteria Provisioning Criteria to be created.
|
||||
* @returns {Observable<any>}
|
||||
*/
|
||||
createProvisioningCriteria(criteriaData: any): Observable<any> {
|
||||
return this.http.post('/provisioningcriteria', criteriaData);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} provisioningId Provisioning ID of provisioning criteria to be deleted.
|
||||
* @returns {Observable<any>}
|
||||
|
||||
Reference in New Issue
Block a user