/** Angular Imports */ import { Component, OnInit, inject } from '@angular/core'; import { UntypedFormGroup, UntypedFormBuilder, ReactiveFormsModule } from '@angular/forms'; import { ActivatedRoute, Router, RouterLink } from '@angular/router'; /** Custom Services */ import { ClientsService } from 'app/clients/clients.service'; import { Dates } from 'app/core/utils/dates'; import { SettingsService } from 'app/settings/settings.service'; import { CdkTextareaAutosize } from '@angular/cdk/text-field'; import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module'; /** * Reject Client Transfer Component */ @Component({ selector: 'mifosx-reject-client-transfer', templateUrl: './reject-client-transfer.component.html', styleUrls: ['./reject-client-transfer.component.scss'], imports: [ ...STANDALONE_SHARED_IMPORTS, CdkTextareaAutosize ] }) export class RejectClientTransferComponent implements OnInit { private formBuilder = inject(UntypedFormBuilder); private clientsService = inject(ClientsService); private settingsService = inject(SettingsService); private dateUtils = inject(Dates); private route = inject(ActivatedRoute); private router = inject(Router); /** Reject Client Transfer form. */ rejectClientTransferForm: UntypedFormGroup; /** Client Id */ clientId: any; /** Transfer Date */ transferDate: any; /** * @param {FormBuilder} formBuilder Form Builder * @param {ClientsService} clientsService Clients Service * @param {ActivatedRoute} route Activated Route * @param {Router} router Router */ constructor() { this.route.data.subscribe((data: { clientActionData: any }) => { this.transferDate = data.clientActionData; }); this.clientId = this.route.parent.snapshot.params['clientId']; } ngOnInit() { this.createRejectClientTransferForm(); } /** * Creates the reject client transfer form. */ createRejectClientTransferForm() { this.rejectClientTransferForm = this.formBuilder.group({ transferDate: { value: new Date(this.transferDate), disabled: true }, note: [''] }); } /** * Submits the form and reject the transfer of client * if successful redirects to the client. */ submit() { const rejectClientTransferFormData = this.rejectClientTransferForm.value; const locale = this.settingsService.language.code; const dateFormat = this.settingsService.dateFormat; const prevTransferDate: Date = this.rejectClientTransferForm.value.transferDate; if (rejectClientTransferFormData.transferDate instanceof Date) { rejectClientTransferFormData.transferDate = this.dateUtils.formatDate(prevTransferDate, dateFormat); } const data = { ...rejectClientTransferFormData }; this.clientsService.executeClientCommand(this.clientId, 'rejectTransfer', data).subscribe(() => { this.router.navigate(['../../'], { relativeTo: this.route }); }); } }