feedback updates

This commit is contained in:
Cyril Joseph 2025-10-27 20:49:57 -03:00
parent 9ca016a40d
commit 3044761f9d
12 changed files with 50 additions and 48 deletions

View File

@ -81,7 +81,9 @@
"options": { "options": {
"allowedHosts": [ "allowedHosts": [
"localhost", "localhost",
"sp.alphaomegainfosys.com" "sp.alphaomegainfosys.com",
"sp-1.alphaomegainfosys.com",
"sp-2.alphaomegainfosys.com"
] ]
}, },
"configurations": { "configurations": {

View File

@ -7,7 +7,7 @@
</div> </div>
<div class="copyright"> <div class="copyright">
&copy; {{ currentYear }} alpha Omega Infosys. All rights reserved. &copy; {{ currentYear }} Alpha Omega Infosys. All rights reserved.
</div> </div>
</div> </div>
</footer> </footer>

View File

@ -38,8 +38,8 @@ export class BasicFeeService {
createBasicFee(spid: number, fee: BasicFee): Observable<any> { createBasicFee(spid: number, fee: BasicFee): Observable<any> {
const payload = { const payload = {
P_SPID: spid, P_SPID: spid,
P_STARTCARNETVALUE: fee.startCarnetValue, P_STARTNUMBER: fee.startCarnetValue,
P_ENDCARNETVALUE: fee.endCarnetValue, P_ENDNUMBER: fee.endCarnetValue,
P_FEES: fee.fees, P_FEES: fee.fees,
P_EFFDATE: this.commonService.formatUSDate(fee.effectiveDate), P_EFFDATE: this.commonService.formatUSDate(fee.effectiveDate),
P_USERID: this.userService.getUser() P_USERID: this.userService.getUser()
@ -50,8 +50,6 @@ export class BasicFeeService {
updateBasicFee(feeId: number, fee: BasicFee): Observable<any> { updateBasicFee(feeId: number, fee: BasicFee): Observable<any> {
const payload = { const payload = {
P_BASICFEESETUPID: feeId, P_BASICFEESETUPID: feeId,
P_STARTCARNETVALUE: fee.startCarnetValue,
P_ENDCARNETVALUE: fee.endCarnetValue,
P_FEES: fee.fees, P_FEES: fee.fees,
P_EFFDATE: this.commonService.formatUSDate(fee.effectiveDate), P_EFFDATE: this.commonService.formatUSDate(fee.effectiveDate),
P_USERID: this.userService.getUser() P_USERID: this.userService.getUser()

View File

@ -51,7 +51,7 @@ export class ContactService {
p_defcontactflag: data.defaultContact ? 'Y' : 'N', p_defcontactflag: data.defaultContact ? 'Y' : 'N',
p_firstname: data.firstName, p_firstname: data.firstName,
p_lastname: data.lastName, p_lastname: data.lastName,
P_MIDDLEINITIAL: data.middleInitial, P_MIDDLEINITIAL: data.middleInitial ?? '',
p_title: data.title, p_title: data.title,
p_phoneno: data.phone, p_phoneno: data.phone,
p_mobileno: data.mobile, p_mobileno: data.mobile,
@ -69,7 +69,7 @@ export class ContactService {
p_spcontactid: spContactId, p_spcontactid: spContactId,
p_firstname: data.firstName, p_firstname: data.firstName,
p_lastname: data.lastName, p_lastname: data.lastName,
P_MIDDLEINITIAL: data.middleInitial, P_MIDDLEINITIAL: data.middleInitial ?? '',
p_title: data.title, p_title: data.title,
p_phoneno: data.phone, p_phoneno: data.phone,
p_mobileno: data.mobile, p_mobileno: data.mobile,

View File

@ -27,49 +27,49 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<!-- PARAMTYPE Column --> <!-- PARAMTYPE Column -->
<ng-container matColumnDef="ParamType"> <ng-container matColumnDef="paramType">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Type</th> <th mat-header-cell *matHeaderCellDef mat-sort-header>Type</th>
<td mat-cell *matCellDef="let client">{{ client.paramType }}</td> <td mat-cell *matCellDef="let client">{{ client.paramType }}</td>
</ng-container> </ng-container>
<!-- PARAMDESC Column --> <!-- PARAMDESC Column -->
<ng-container matColumnDef="ParamDesc"> <ng-container matColumnDef="paramDesc">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Description</th> <th mat-header-cell *matHeaderCellDef mat-sort-header>Description</th>
<td mat-cell *matCellDef="let client">{{ client.paramDesc || '--'}}</td> <td mat-cell *matCellDef="let client">{{ client.paramDesc || '--'}}</td>
</ng-container> </ng-container>
<!-- PARAMVALUE Column --> <!-- PARAMVALUE Column -->
<ng-container matColumnDef="paramvalue"> <ng-container matColumnDef="paramValue">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Value</th> <th mat-header-cell *matHeaderCellDef mat-sort-header>Value</th>
<td mat-cell *matCellDef="let client">{{ client.paramValue }}</td> <td mat-cell *matCellDef="let client">{{ client.paramValue }}</td>
</ng-container> </ng-container>
<!-- ADDLPARAMVALUE1 Column --> <!-- ADDLPARAMVALUE1 Column -->
<ng-container matColumnDef="addlparamvalue1"> <ng-container matColumnDef="addlParamValue1">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 1</th> <th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 1</th>
<td mat-cell *matCellDef="let client">{{ client.addlParamValue1 || '--' }}</td> <td mat-cell *matCellDef="let client">{{ client.addlParamValue1 || '--' }}</td>
</ng-container> </ng-container>
<!-- ADDLPARAMVALUE2 Column --> <!-- ADDLPARAMVALUE2 Column -->
<ng-container matColumnDef="addlparamvalue2"> <ng-container matColumnDef="addlParamValue2">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 2</th> <th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 2</th>
<td mat-cell *matCellDef="let client">{{ client.addlParamValue2 || '--'}}</td> <td mat-cell *matCellDef="let client">{{ client.addlParamValue2 || '--'}}</td>
</ng-container> </ng-container>
<!-- ADDLPARAMVALUE3 Column --> <!-- ADDLPARAMVALUE3 Column -->
<ng-container matColumnDef="addlparamvalue3"> <ng-container matColumnDef="addlParamValue3">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 3</th> <th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 3</th>
<td mat-cell *matCellDef="let client">{{ client.addlParamValue3 || '--' }}</td> <td mat-cell *matCellDef="let client">{{ client.addlParamValue3 || '--' }}</td>
</ng-container> </ng-container>
<!-- ADDLPARAMVALUE4 Column --> <!-- ADDLPARAMVALUE4 Column -->
<ng-container matColumnDef="addlparamvalue4"> <ng-container matColumnDef="addlParamValue4">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 4</th> <th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 4</th>
<td mat-cell *matCellDef="let client">{{ client.addlParamValue4 || '--' }}</td> <td mat-cell *matCellDef="let client">{{ client.addlParamValue4 || '--' }}</td>
</ng-container> </ng-container>
<!-- ADDLPARAMVALUE5 Column --> <!-- ADDLPARAMVALUE5 Column -->
<ng-container matColumnDef="addlparamvalue5"> <ng-container matColumnDef="addlParamValue5">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 5</th> <th mat-header-cell *matHeaderCellDef mat-sort-header>Additional Value 5</th>
<td mat-cell *matCellDef="let client">{{ client.addlParamValue5 || '--'}}</td> <td mat-cell *matCellDef="let client">{{ client.addlParamValue5 || '--'}}</td>
</ng-container> </ng-container>

View File

@ -25,8 +25,8 @@ import { finalize } from 'rxjs';
styleUrl: './param-table.component.scss' styleUrl: './param-table.component.scss'
}) })
export class ParamTableComponent { export class ParamTableComponent {
@ViewChild(MatPaginator) paginator!: MatPaginator; //@ViewChild(MatPaginator) paginator!: MatPaginator;
@ViewChild(MatSort) sort!: MatSort; //@ViewChild(MatSort) sort!: MatSort;
@Input() table_mode: TABLE_MODE = 'TABLE-RECORD'; @Input() table_mode: TABLE_MODE = 'TABLE-RECORD';
@Input() paramHeading: string = 'Table Records'; @Input() paramHeading: string = 'Table Records';
@ -54,6 +54,17 @@ export class ParamTableComponent {
private notificationService = inject(NotificationService); private notificationService = inject(NotificationService);
dataSource = new MatTableDataSource<any>([]); dataSource = new MatTableDataSource<any>([]);
@ViewChild(MatPaginator, { static: false })
set paginator(value: MatPaginator) {
this.dataSource.paginator = value;
}
@ViewChild(MatSort, { static: false })
set sort(value: MatSort) {
this.dataSource.sort = value;
}
paramForm: FormGroup; paramForm: FormGroup;
ngAfterViewInit() { ngAfterViewInit() {
@ -62,8 +73,8 @@ export class ParamTableComponent {
this.dataSource.data = this.paramData; this.dataSource.data = this.paramData;
} }
displayedColumns: string[] = ['ParamType', 'ParamDesc', 'paramvalue', 'addlparamvalue1', 'addlparamvalue2', 'addlparamvalue3', displayedColumns: string[] = ['paramType', 'paramDesc', 'paramValue', 'addlParamValue1', 'addlParamValue2', 'addlParamValue3',
'addlparamvalue4', 'addlparamvalue5', 'actions']; 'addlParamValue4', 'addlParamValue5', 'actions'];
formControls: any = {}; formControls: any = {};

View File

@ -1,5 +1,5 @@
<div class="service-provider-container"> <div class="service-provider-container">
<mat-stepper orientation="vertical" [linear]="true" (selectionChange)="onStepChange($event)" <mat-stepper orientation="vertical" [linear]="isLinear" (selectionChange)="onStepChange($event)"
[selectedIndex]="currentStep"> [selectedIndex]="currentStep">
<!-- Basic Details Step --> <!-- Basic Details Step -->
@ -20,7 +20,7 @@
</mat-step> </mat-step>
<!-- Carnet Sequence Step --> <!-- Carnet Sequence Step -->
<mat-step [editable]="!!serviceProviderId && contactsCompleted" [completed]="carnetSequenceCompleted"> <mat-step [editable]="!!serviceProviderId && basicDetailsCompleted" [completed]="carnetSequenceCompleted">
<ng-template matStepLabel>Carnet Sequence</ng-template> <ng-template matStepLabel>Carnet Sequence</ng-template>
<app-carnet-sequence *ngIf="serviceProviderId" [spid]="serviceProviderId" <app-carnet-sequence *ngIf="serviceProviderId" [spid]="serviceProviderId"
@ -29,7 +29,7 @@
</mat-step> </mat-step>
<!-- Fees & Commission Step --> <!-- Fees & Commission Step -->
<mat-step [editable]="!!serviceProviderId && carnetSequenceCompleted" <mat-step [editable]="!!serviceProviderId && basicDetailsCompleted"
[completed]="feeCommissionCompleted && carnetSequenceCompleted"> [completed]="feeCommissionCompleted && carnetSequenceCompleted">
<ng-template matStepLabel>Carnet Fee & Commission Setup</ng-template> <ng-template matStepLabel>Carnet Fee & Commission Setup</ng-template>
@ -38,7 +38,7 @@
</mat-step> </mat-step>
<!-- Basic Fee Step --> <!-- Basic Fee Step -->
<mat-step [editable]="!!serviceProviderId && feeCommissionCompleted" <mat-step [editable]="!!serviceProviderId && basicDetailsCompleted"
[completed]="basicFeeCompleted && feeCommissionCompleted"> [completed]="basicFeeCompleted && feeCommissionCompleted">
<ng-template matStepLabel>Basic Fee Setup</ng-template> <ng-template matStepLabel>Basic Fee Setup</ng-template>
@ -47,7 +47,7 @@
</mat-step> </mat-step>
<!-- Counterfoil Fee Step --> <!-- Counterfoil Fee Step -->
<mat-step [editable]="!!serviceProviderId && basicFeeCompleted" [completed]="counterfoilFeeCompleted"> <mat-step [editable]="!!serviceProviderId && basicDetailsCompleted" [completed]="counterfoilFeeCompleted">
<ng-template matStepLabel>Counterfoil Setup</ng-template> <ng-template matStepLabel>Counterfoil Setup</ng-template>
<app-counterfoil-fee *ngIf="serviceProviderId" [spid]="serviceProviderId" <app-counterfoil-fee *ngIf="serviceProviderId" [spid]="serviceProviderId"
@ -56,7 +56,7 @@
</mat-step> </mat-step>
<!-- Continuation Sheet Fee Step --> <!-- Continuation Sheet Fee Step -->
<mat-step [editable]="!!serviceProviderId && counterfoilFeeCompleted" <mat-step [editable]="!!serviceProviderId && basicDetailsCompleted"
[completed]="continuationSheetFeeCompleted"> [completed]="continuationSheetFeeCompleted">
<ng-template matStepLabel>Continuation Sheet Fee Setup</ng-template> <ng-template matStepLabel>Continuation Sheet Fee Setup</ng-template>
@ -66,7 +66,7 @@
</mat-step> </mat-step>
<!-- Expedited Fee Step --> <!-- Expedited Fee Step -->
<mat-step [editable]="!!serviceProviderId && continuationSheetFeeCompleted" [completed]="expeditedFeeCompleted"> <mat-step [editable]="!!serviceProviderId && basicDetailsCompleted" [completed]="expeditedFeeCompleted">
<ng-template matStepLabel>Expedited Fee Setup</ng-template> <ng-template matStepLabel>Expedited Fee Setup</ng-template>
<app-expedited-fee *ngIf="serviceProviderId" [spid]="serviceProviderId" <app-expedited-fee *ngIf="serviceProviderId" [spid]="serviceProviderId"
@ -75,7 +75,7 @@
</mat-step> </mat-step>
<!-- Security Deposit Step --> <!-- Security Deposit Step -->
<mat-step [editable]="!!serviceProviderId && expeditedFeeCompleted" [completed]="securityDepositCompleted"> <mat-step [editable]="!!serviceProviderId && basicDetailsCompleted" [completed]="securityDepositCompleted">
<ng-template matStepLabel>Security Deposit</ng-template> <ng-template matStepLabel>Security Deposit</ng-template>
<app-security-deposit *ngIf="serviceProviderId" [spid]="serviceProviderId" <app-security-deposit *ngIf="serviceProviderId" [spid]="serviceProviderId"
@ -84,7 +84,7 @@
</mat-step> </mat-step>
<!-- Cargo Rate Step --> <!-- Cargo Rate Step -->
<mat-step [editable]="!!serviceProviderId && securityDepositCompleted" [completed]="cargoRateCompleted"> <mat-step [editable]="!!serviceProviderId && basicDetailsCompleted" [completed]="cargoRateCompleted">
<ng-template matStepLabel>Cargo Rate Setup</ng-template> <ng-template matStepLabel>Cargo Rate Setup</ng-template>
<app-cargo-rate *ngIf="serviceProviderId" [spid]="serviceProviderId" <app-cargo-rate *ngIf="serviceProviderId" [spid]="serviceProviderId"

View File

@ -24,6 +24,7 @@ import { CargoRateComponent } from '../cargo-rate/cargo-rate.component';
}) })
export class AddServiceProviderComponent { export class AddServiceProviderComponent {
isEditMode = false; isEditMode = false;
isLinear = true;
serviceProviderId: number | null = null; serviceProviderId: number | null = null;
currentStep: number = 0; currentStep: number = 0;
isLoading: boolean = false; isLoading: boolean = false;
@ -47,6 +48,7 @@ export class AddServiceProviderComponent {
onBasicDetailsSaved(event: string): void { onBasicDetailsSaved(event: string): void {
this.serviceProviderId = +event; this.serviceProviderId = +event;
this.basicDetailsCompleted = true; this.basicDetailsCompleted = true;
this.isLinear = false; // Disable linear mode after basic detail is created
} }
onContactsSaved(event: boolean): void { onContactsSaved(event: boolean): void {

View File

@ -139,38 +139,29 @@
<div class="form-row"> <div class="form-row">
<mat-form-field appearance="outline" class="cargo-surety"> <mat-form-field appearance="outline" class="cargo-surety">
<mat-label>Cargo Surety</mat-label> <mat-label>Cargo Surety</mat-label>
<mat-select formControlName="cargoSurety" required> <mat-select formControlName="cargoSurety">
<mat-option *ngFor="let cargoSurety of cargoSuretys" [value]="cargoSurety.value"> <mat-option *ngFor="let cargoSurety of cargoSuretys" [value]="cargoSurety.value">
{{ cargoSurety.name }} {{ cargoSurety.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="f['cargoSurety'].errors?.['required']">
Cargo Surety is required
</mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field appearance="outline" class="cargo-policy"> <mat-form-field appearance="outline" class="cargo-policy">
<mat-label>Cargo Policy</mat-label> <mat-label>Cargo Policy</mat-label>
<mat-select formControlName="cargoPolicyNo" required> <mat-select formControlName="cargoPolicyNo">
<mat-option *ngFor="let cargoPolicy of cargoPolicies" [value]="cargoPolicy.value"> <mat-option *ngFor="let cargoPolicy of cargoPolicies" [value]="cargoPolicy.value">
{{ cargoPolicy.name }} {{ cargoPolicy.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="f['cargoPolicyNo'].errors?.['required']">
Cargo Policy is required
</mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field appearance="outline" class="bond-surety"> <mat-form-field appearance="outline" class="bond-surety">
<mat-label>Bond Surety</mat-label> <mat-label>Bond Surety</mat-label>
<mat-select formControlName="bondSurety" required> <mat-select formControlName="bondSurety">
<mat-option *ngFor="let bondSurety of bondSuretys" [value]="bondSurety.value"> <mat-option *ngFor="let bondSurety of bondSuretys" [value]="bondSurety.value">
{{ bondSurety.name }} {{ bondSurety.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="f['bondSurety'].errors?.['required']">
Bond Surety is required
</mat-error>
</mat-form-field> </mat-form-field>
</div> </div>

View File

@ -96,9 +96,9 @@ export class BasicDetailsComponent implements OnInit, OnDestroy {
zip: ['', [Validators.required, ZipCodeValidator('country')]], zip: ['', [Validators.required, ZipCodeValidator('country')]],
issuingRegion: ['', Validators.required], issuingRegion: ['', Validators.required],
replacementRegion: ['', Validators.required], replacementRegion: ['', Validators.required],
cargoSurety: ['', Validators.required], cargoSurety: [''],
cargoPolicyNo: ['', Validators.required], cargoPolicyNo: [''],
bondSurety: ['', Validators.required] bondSurety: ['']
}); });
} }

View File

@ -111,7 +111,7 @@ export class BasicFeeComponent {
{ basicFeeId: 0, startCarnetValue: 50000, endCarnetValue: 149999, fees: 365, effectiveDate: new Date() }, { basicFeeId: 0, startCarnetValue: 50000, endCarnetValue: 149999, fees: 365, effectiveDate: new Date() },
{ basicFeeId: 0, startCarnetValue: 150000, endCarnetValue: 399999, fees: 425, effectiveDate: new Date() }, { basicFeeId: 0, startCarnetValue: 150000, endCarnetValue: 399999, fees: 425, effectiveDate: new Date() },
{ basicFeeId: 0, startCarnetValue: 400000, endCarnetValue: 999999, fees: 480, effectiveDate: new Date() }, { basicFeeId: 0, startCarnetValue: 400000, endCarnetValue: 999999, fees: 480, effectiveDate: new Date() },
{ basicFeeId: 0, startCarnetValue: 1000000, endCarnetValue: null, fees: 545, effectiveDate: new Date() } { basicFeeId: 0, startCarnetValue: 1000000, endCarnetValue: 99999999, fees: 545, effectiveDate: new Date() }
]; ];
// Create an array of observables for each fee creation // Create an array of observables for each fee creation
@ -130,8 +130,6 @@ export class BasicFeeComponent {
}, },
error: (error) => { error: (error) => {
console.error('Error initializing default fees:', error); console.error('Error initializing default fees:', error);
// Even if some failed, try to load what was created
this.loadBasicFees();
} }
}); });
} }

View File

@ -64,7 +64,7 @@ export class ContactsComponent implements OnInit {
title: ['', [Validators.required, Validators.maxLength(100)]], title: ['', [Validators.required, Validators.maxLength(100)]],
phone: ['', [Validators.required, Validators.pattern(/^[0-9\-\(\)]{10,15}$/)]], phone: ['', [Validators.required, Validators.pattern(/^[0-9\-\(\)]{10,15}$/)]],
mobile: ['', [Validators.required, Validators.pattern(/^[0-9\-\(\)]{10,15}$/)]], mobile: ['', [Validators.required, Validators.pattern(/^[0-9\-\(\)]{10,15}$/)]],
fax: ['', [Validators.required, Validators.pattern(/^[0-9\-\(\)]{10,15}$/)]], fax: ['', [Validators.pattern(/^[0-9\-\(\)]{10,15}$/)]],
email: ['', [Validators.required, Validators.email, Validators.maxLength(100)]], email: ['', [Validators.required, Validators.email, Validators.maxLength(100)]],
defaultContact: [false] defaultContact: [false]
}); });