From dbf551fcd1072c25a38d3a5bf2dd1c65c6b7f0a1 Mon Sep 17 00:00:00 2001 From: Jose Alberto Hernandez Date: Mon, 18 Aug 2025 08:55:39 -0500 Subject: [PATCH] WEB-277: Collection sheet and Productive collection sheet part I --- .../attach-center-meeting.component.ts | 2 +- src/app/centers/centers.service.ts | 12 ++ .../center-actions.resolver.ts | 2 +- .../collection-sheet.component.html | 71 ++++++++ .../collection-sheet.component.scss | 15 ++ .../collection-sheet.component.ts | 166 ++++++++++++++++++ .../collections/collections-routing.module.ts | 13 ++ src/app/collections/collections.service.ts | 21 +-- .../individual-collection-sheet.component.ts | 8 +- .../models/collection-sheet-data.model.ts | 57 ++++++ .../core/shell/sidenav/sidenav.component.html | 12 ++ src/app/organization/organization.service.ts | 15 ++ src/assets/translations/cs-CS.json | 3 + src/assets/translations/de-DE.json | 3 + src/assets/translations/en-US.json | 3 + src/assets/translations/es-CL.json | 3 + src/assets/translations/es-MX.json | 3 + src/assets/translations/fr-FR.json | 3 + src/assets/translations/it-IT.json | 3 + src/assets/translations/ko-KO.json | 3 + src/assets/translations/lt-LT.json | 3 + src/assets/translations/lv-LV.json | 3 + src/assets/translations/ne-NE.json | 3 + src/assets/translations/pt-PT.json | 3 + src/assets/translations/sw-SW.json | 3 + 25 files changed, 412 insertions(+), 21 deletions(-) create mode 100644 src/app/collections/collection-sheet/collection-sheet.component.html create mode 100644 src/app/collections/collection-sheet/collection-sheet.component.scss create mode 100644 src/app/collections/collection-sheet/collection-sheet.component.ts create mode 100644 src/app/collections/models/collection-sheet-data.model.ts diff --git a/src/app/centers/centers-view/center-actions/attach-center-meeting/attach-center-meeting.component.ts b/src/app/centers/centers-view/center-actions/attach-center-meeting/attach-center-meeting.component.ts index 6a3a91ec8..d8f26f9b0 100644 --- a/src/app/centers/centers-view/center-actions/attach-center-meeting/attach-center-meeting.component.ts +++ b/src/app/centers/centers-view/center-actions/attach-center-meeting/attach-center-meeting.component.ts @@ -174,7 +174,7 @@ export class AttachCenterMeetingComponent implements OnInit { locale }; this.centersService.createCenterMeeting(this.centerId, data).subscribe((response: any) => { - this.router.navigate(['../../'], { relativeTo: this.route }); + this.router.navigate(['../../general'], { relativeTo: this.route }); }); } } diff --git a/src/app/centers/centers.service.ts b/src/app/centers/centers.service.ts index 563804226..a728d51e2 100644 --- a/src/app/centers/centers.service.ts +++ b/src/app/centers/centers.service.ts @@ -282,4 +282,16 @@ export class CentersService { executeEditCenter(centerId: string, data: any): Observable { return this.http.put(`/groups/${centerId}`, data); } + + getAllMeetingFallCenters( + officeId: number, + staffId: number, + meetingDate: string, + dateFormat: string, + locale: string + ): Observable { + return this.http.get( + `/centers?dateFormat=${dateFormat}&locale=${locale}&meetingDate=${meetingDate}&officeId=${officeId}&staffId=${staffId}` + ); + } } diff --git a/src/app/centers/common-resolvers/center-actions.resolver.ts b/src/app/centers/common-resolvers/center-actions.resolver.ts index 826ac3b79..bf11d698f 100644 --- a/src/app/centers/common-resolvers/center-actions.resolver.ts +++ b/src/app/centers/common-resolvers/center-actions.resolver.ts @@ -24,7 +24,7 @@ export class CenterActionsResolver { * @returns {Observable} */ resolve(route: ActivatedRouteSnapshot): Observable { - const actionName = route.paramMap.get('name'); + const actionName = route.paramMap.get('action'); const centerId = route.paramMap.get('centerId') || route.parent.parent.paramMap.get('centerId'); switch (actionName) { case 'Assign Staff': diff --git a/src/app/collections/collection-sheet/collection-sheet.component.html b/src/app/collections/collection-sheet/collection-sheet.component.html new file mode 100644 index 000000000..d17ccc53e --- /dev/null +++ b/src/app/collections/collection-sheet/collection-sheet.component.html @@ -0,0 +1,71 @@ + +
+
+ + {{ 'labels.inputs.Branch Office' | translate }} + + + {{ office.name }} + + + + {{ 'labels.inputs.Branch Office' | translate }} {{ 'labels.commons.is' | translate }} + {{ 'labels.commons.required' | translate }} + + + + + {{ 'labels.inputs.Meeting Date' | translate }} + + + + + {{ 'labels.inputs.Meeting Date' | translate }} {{ 'labels.commons.is' | translate }} + {{ 'labels.commons.required' | translate }} + + + + + {{ 'labels.inputs.Staff' | translate }} + + + {{ loanOfficer.displayName }} + + + + + + {{ 'labels.inputs.Group' | translate }} + + + {{ group.name }} + + + + + + {{ 'labels.inputs.Center' | translate }} + + + {{ center.name }} + + + +
+ + + + + +
+
diff --git a/src/app/collections/collection-sheet/collection-sheet.component.scss b/src/app/collections/collection-sheet/collection-sheet.component.scss new file mode 100644 index 000000000..78f274680 --- /dev/null +++ b/src/app/collections/collection-sheet/collection-sheet.component.scss @@ -0,0 +1,15 @@ +.container { + max-width: 37em; + + .margin-v { + margin: 1em 0; + } + + .margin-b { + margin: 0 0 1em; + } + + .margin-t { + margin-top: 1em; + } +} diff --git a/src/app/collections/collection-sheet/collection-sheet.component.ts b/src/app/collections/collection-sheet/collection-sheet.component.ts new file mode 100644 index 000000000..8a5ea907c --- /dev/null +++ b/src/app/collections/collection-sheet/collection-sheet.component.ts @@ -0,0 +1,166 @@ +import { Component, OnInit } from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { CollectionsService } from '../collections.service'; +import { ActivatedRoute, Router } from '@angular/router'; +import { SettingsService } from 'app/settings/settings.service'; +import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module'; +import { FaIconComponent } from '@fortawesome/angular-fontawesome'; +import { + MatCell, + MatCellDef, + MatColumnDef, + MatHeaderCell, + MatHeaderCellDef, + MatHeaderRow, + MatHeaderRowDef, + MatRow, + MatRowDef, + MatTable +} from '@angular/material/table'; +import { MatSort, MatSortHeader } from '@angular/material/sort'; +import { MatPaginator } from '@angular/material/paginator'; +import { OrganizationService } from 'app/organization/organization.service'; +import { CentersService } from 'app/centers/centers.service'; +import { GroupsService } from 'app/groups/groups.service'; +import { Dates } from 'app/core/utils/dates'; +import { CollectionSheetData, JLGGroupData, MeetingFallCenter } from '../models/collection-sheet-data.model'; + +@Component({ + selector: 'mifosx-collection-sheet', + templateUrl: './collection-sheet.component.html', + styleUrl: './collection-sheet.component.scss', + imports: [ + ...STANDALONE_SHARED_IMPORTS, + FaIconComponent, + MatTable, + MatSort, + MatColumnDef, + MatHeaderCellDef, + MatHeaderCell, + MatSortHeader, + MatCellDef, + MatCell, + MatHeaderRowDef, + MatHeaderRow, + MatRowDef, + MatRow, + MatPaginator + ] +}) +export class CollectionSheetComponent implements OnInit { + /** Offices Data */ + officesData: any; + /** Group Data */ + groupsData: any = []; + /** Center Data */ + centersData: any = []; + /** Loan Officer Data */ + loanOfficerData: any = []; + /** Minimum Date allowed. */ + minDate = new Date(2000, 0, 1); + /** Maximum Date allowed. */ + maxDate = new Date(); + /** Collection Sheet form. */ + collectionSheetForm: UntypedFormGroup; + + officeId: number | null = null; + meetingFallCenters: MeetingFallCenter[] | null = null; + + /** + * Retrieves the offices data from `resolve`. + * @param {FormBuilder} formBuilder Form Builder. + * @param {OrganizationService} collectionsService Organization Service. + * @param {Route} route Route. + * @param {Dates} dateUtils Date Utils to format date. + * @param {Dialog} dialog Dialog component. + * @param {Router} router Router for navigation. + * @param {SettingsService} settingsService Settings Service + */ + constructor( + private formBuilder: UntypedFormBuilder, + private centerService: CentersService, + private collectionsService: CollectionsService, + private organizationService: OrganizationService, + private router: Router, + private route: ActivatedRoute, + private settingsService: SettingsService, + private dateUtils: Dates + ) { + this.route.data.subscribe((data: { officesData: any }) => { + this.officesData = data.officesData; + }); + } + + ngOnInit() { + this.maxDate = this.settingsService.maxFutureDate; + + this.createCollectionSheetForm(); + this.buildDependencies(); + } + + /** + * Creates the Individual Collection Sheet Form + */ + createCollectionSheetForm() { + this.collectionSheetForm = this.formBuilder.group({ + officeId: [ + '', + Validators.required + ], + meetingDate: [ + new Date(), + Validators.required + ], + staffId: [ + '', + Validators.required + ], + groupId: [''], + centerId: [''] + }); + } + + /** + * Checks for the office id value change + */ + buildDependencies() { + this.collectionSheetForm.get('officeId').valueChanges.subscribe((officeId: any) => { + this.officeId = officeId; + this.organizationService.getStaffs(officeId).subscribe((response: any) => { + this.loanOfficerData = response; + }); + this.organizationService.getCenters(officeId).subscribe((response: any) => { + this.centersData = response; + }); + this.organizationService.getGroups(officeId).subscribe((response: any) => { + this.groupsData = response; + }); + }); + } + + previewCollectionSheet() { + const dateFormat = this.settingsService.dateFormat; + const locale = this.settingsService.language.code; + const staffId = this.collectionSheetForm.value.staffId; + const meetingDate = this.dateUtils.formatDate(this.collectionSheetForm.value.meetingDate, dateFormat); + + this.centerService + .getAllMeetingFallCenters(this.officeId, staffId, meetingDate, dateFormat, locale) + .subscribe((response: CollectionSheetData[]) => { + if (response.length > 0) { + this.meetingFallCenters = response[0].meetingFallCenters; + const payload = { + calendarId: this.meetingFallCenters[0].collectionMeetingCalendar.calendarInstanceId, + transactionDate: meetingDate, + locale, + dateFormat + }; + this.collectionsService + .generateCollectionSheetData(this.meetingFallCenters[0].id, payload) + .subscribe((jlgGroupData: JLGGroupData) => { + console.log(jlgGroupData); + }); + } + }); + } +} diff --git a/src/app/collections/collections-routing.module.ts b/src/app/collections/collections-routing.module.ts index 93d1871c6..f78e7f791 100644 --- a/src/app/collections/collections-routing.module.ts +++ b/src/app/collections/collections-routing.module.ts @@ -7,6 +7,7 @@ import { Route } from '../core/route/route.service'; /** Custom Components */ import { IndividualCollectionSheetComponent } from './individual-collection-sheet/individual-collection-sheet.component'; import { OfficesResolver } from 'app/organization/offices/common-resolvers/offices.resolver'; +import { CollectionSheetComponent } from './collection-sheet/collection-sheet.component'; const routes: Routes = [ Route.withShell([ @@ -24,6 +25,18 @@ const routes: Routes = [ resolve: { officesData: OfficesResolver } + }, + { + path: 'collection-sheet', + data: { + title: 'Collection Sheet', + breadcrumb: 'Collection Sheet', + routeParamBreadcrumb: false + }, + component: CollectionSheetComponent, + resolve: { + officesData: OfficesResolver + } } ] } diff --git a/src/app/collections/collections.service.ts b/src/app/collections/collections.service.ts index 5bdf76fdb..cbf471c27 100644 --- a/src/app/collections/collections.service.ts +++ b/src/app/collections/collections.service.ts @@ -14,22 +14,6 @@ import { Observable } from 'rxjs'; export class CollectionsService { constructor(private http: HttpClient) {} - /** - * Returns all the offices - */ - getOffices(): Observable { - return this.http.get(`/offices`); - } - - /** - * Returns the loan officer(staffs) for the particular office - * @param {officeId} OfficeId any - */ - getStaffs(officeId: any): Observable { - const httpParams = new HttpParams().set('officeId', officeId).set('status', 'all'); - return this.http.get(`/staff`, { params: httpParams }); - } - /** * Retrieves the Collection Sheet Data * @param {data} data any @@ -39,6 +23,11 @@ export class CollectionsService { return this.http.post(`/collectionsheet`, data, { params: httpParams }); } + generateCollectionSheetData(centerId: number, data: any): Observable { + const httpParams = new HttpParams().set('command', 'generateCollectionSheet'); + return this.http.post(`/centers/${centerId}`, data, { params: httpParams }); + } + /** * Executes the Save Collection Sheet Data * @param {data} data any diff --git a/src/app/collections/individual-collection-sheet/individual-collection-sheet.component.ts b/src/app/collections/individual-collection-sheet/individual-collection-sheet.component.ts index 13acdb6c7..7f06268af 100644 --- a/src/app/collections/individual-collection-sheet/individual-collection-sheet.component.ts +++ b/src/app/collections/individual-collection-sheet/individual-collection-sheet.component.ts @@ -16,8 +16,8 @@ import { MatRowDef, MatRow } from '@angular/material/table'; -import { UntypedFormGroup, UntypedFormBuilder, Validators, ReactiveFormsModule } from '@angular/forms'; -import { ActivatedRoute, Router, RouterLink } from '@angular/router'; +import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; /** Services Import */ import { CollectionsService } from '../collections.service'; @@ -35,6 +35,7 @@ import { SettingsService } from 'app/settings/settings.service'; import { Dates } from 'app/core/utils/dates'; import { FaIconComponent } from '@fortawesome/angular-fontawesome'; import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module'; +import { OrganizationService } from 'app/organization/organization.service'; /** * Individual Collection Sheet @@ -136,6 +137,7 @@ export class IndividualCollectionSheetComponent implements OnInit { constructor( private formBuilder: UntypedFormBuilder, private collectionsService: CollectionsService, + private organizationService: OrganizationService, private route: ActivatedRoute, private dateUtils: Dates, public dialog: MatDialog, @@ -182,7 +184,7 @@ export class IndividualCollectionSheetComponent implements OnInit { */ buildDependencies() { this.collectionSheetForm.get('officeId').valueChanges.subscribe((value: any) => { - this.collectionsService.getStaffs(value).subscribe((response: any) => { + this.organizationService.getStaffs(value).subscribe((response: any) => { this.loanOfficerData = response; }); }); diff --git a/src/app/collections/models/collection-sheet-data.model.ts b/src/app/collections/models/collection-sheet-data.model.ts new file mode 100644 index 000000000..c24e97a8d --- /dev/null +++ b/src/app/collections/models/collection-sheet-data.model.ts @@ -0,0 +1,57 @@ +import { PaymentTypeOption } from 'app/shared/models/general.model'; + +export interface CollectionSheetData { + staffId: number; + staffName: string; + meetingFallCenters: MeetingFallCenter[]; +} + +export interface MeetingFallCenter { + id: number; + accountNo: string; + name: string; + officeId: number; + staffId: number; + staffName: string; + hierarchy: string; + status: Status; + active: boolean; + activationDate: number[]; + collectionMeetingCalendar: CollectionMeetingCalendar; + totalCollected: number; + totalOverdue: number; + totaldue: number; + installmentDue: number; +} + +export interface CollectionMeetingCalendar { + id: number; + calendarInstanceId: number; + entityId: number; + entityType: Status; + title: string; + startDate: number[]; + repeating: boolean; + recurrence: string; +} + +export interface Status { + id: number; + code: string; + value: string; +} + +export interface JLGGroupData { + dueDate: number[]; + loanProducts: any[]; + savingsProducts: any[]; + groups: any[]; + attendanceTypeOptions: AttendanceTypeOption[]; + paymentTypeOptions: PaymentTypeOption[]; +} + +export interface AttendanceTypeOption { + id: number; + code: string; + value: string; +} diff --git a/src/app/core/shell/sidenav/sidenav.component.html b/src/app/core/shell/sidenav/sidenav.component.html index de7c2e3a6..1b24ee13f 100644 --- a/src/app/core/shell/sidenav/sidenav.component.html +++ b/src/app/core/shell/sidenav/sidenav.component.html @@ -94,6 +94,18 @@ {{ 'labels.menus.Checker Inbox and Tasks' | translate }} + + + + + {{ 'labels.menus.Collection Sheet' | translate }} + { + const httpParams = new HttpParams().set('officeId', officeId).set('status', 'all'); + return this.http.get(`/staff`, { params: httpParams }); + } + + getCenters(officeId: any): Observable { + const httpParams = new HttpParams().set('officeId', officeId).set('status', 'all'); + return this.http.get(`/centers`, { params: httpParams }); + } + + getGroups(officeId: any): Observable { + const httpParams = new HttpParams().set('officeId', officeId).set('status', 'all'); + return this.http.get(`/groups`, { params: httpParams }); + } + /* * @param {any} officeId ID of office to retrieve staff from. * @returns {Observable} Staff data. diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json index 4c9fc880e..55f7dfda8 100644 --- a/src/assets/translations/cs-CS.json +++ b/src/assets/translations/cs-CS.json @@ -459,6 +459,7 @@ "Previous": "Předchozí", "Print": "Tisk", "Proceed": "Pokračovat", + "Productive Collection Sheet": "Produktivní kolekce list", "Reactivate": "Znovu aktivujte", "Recapture": "Znovu zachytit", "Recreate": "Znovu vytvořit", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Znovu otevřeno dne", "Repaid every": "Splaceno každý", "Repay Every": "Splatit každý", + "Repayment Date": "Datum splacení", "Repayment Info": "Informace o splácení", "Repayment Schedule": "Splátkový kalendář", "Repayment Schedule Parameters": "Parametry splátkového kalendáře", @@ -2555,6 +2557,7 @@ "Clients": "klienti", "Close": "Zavřít", "Close (as Rescheduled)": "Zavřít (jako přeplánováno)", + "Collection Sheet": "Sbírkový list", "Configuration Wizard": "Průvodce konfigurací", "Contract Termination": "Ukončení smlouvy", "Create Guarantor": "Vytvořit garanta", diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json index 3c54f1975..e45b81b69 100644 --- a/src/assets/translations/de-DE.json +++ b/src/assets/translations/de-DE.json @@ -459,6 +459,7 @@ "Previous": "Vorherige", "Print": "Drucken", "Proceed": "Fortfahren", + "Productive Collection Sheet": "Produktives Sammlungsblatt", "Reactivate": "Reaktivieren", "Recapture": "Zurückerobern", "Recreate": "Neu erstellen", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Wiedereröffnet am Datum", "Repaid every": "Alle zurückgezahlt", "Repay Every": "Zahlen Sie alles zurück", + "Repayment Date": "Rückzahlungsdatum", "Repayment Info": "Rückzahlungsinformationen", "Repayment Schedule": "Rückzahlungsplan", "Repayment Schedule Parameters": "Parameter des Rückzahlungsplans", @@ -2555,6 +2557,7 @@ "Clients": "Kunden", "Close": "Schließen", "Close (as Rescheduled)": "Schließen (wie geplant)", + "Collection Sheet": "Kollektionsblatt", "Configuration Wizard": "Konfigurationsassistent", "Contract Termination": "Vertragsbeendigung", "Create Guarantor": "Bürgen erstellen", diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json index 8a3f92879..acfaf8ac4 100644 --- a/src/assets/translations/en-US.json +++ b/src/assets/translations/en-US.json @@ -460,6 +460,7 @@ "Previous": "Previous", "Print": "Print", "Proceed": "Proceed", + "Productive Collection Sheet": "Productive Collection Sheet", "Reactivate": "Reactivate", "Recapture": "Recapture", "Recreate": "Recreate", @@ -2174,6 +2175,7 @@ "Reopened On Date": "Reopened On Date", "Repaid every": "Repaid every", "Repay Every": "Repay Every", + "Repayment Date": "Repayment Date", "Repayment Info": "Repayment Info", "Repayment Schedule": "Repayment Schedule", "Repayment Schedule Parameters": "Repayment Schedule Parameters", @@ -2562,6 +2564,7 @@ "Clients": "Clients", "Close": "Close", "Close (as Rescheduled)": "Close (as Rescheduled)", + "Collection Sheet": "Collection Sheet", "Configuration Wizard": "Configuration Wizard", "Contract Termination": "Contract Termination", "Create Guarantor": "Create Guarantor", diff --git a/src/assets/translations/es-CL.json b/src/assets/translations/es-CL.json index e916cecf0..7ba5423b9 100644 --- a/src/assets/translations/es-CL.json +++ b/src/assets/translations/es-CL.json @@ -459,6 +459,7 @@ "Previous": "Anterior", "Print": "Imprimir", "Proceed": "Proceder", + "Productive Collection Sheet": "Hoja de Recolección Productiva", "Reactivate": "Reactivar", "Recapture": "Reconquista", "Recreate": "Recrear", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Reabierto en la fecha", "Repaid every": "Frecuencia de Pago", "Repay Every": "Paga cada", + "Repayment Date": "Fecha de reembolso", "Repayment Info": "Información de pago", "Repayment Schedule": "Calendario de pagos", "Repayment Schedule Parameters": "Parámetros del calendario de pagos", @@ -2555,6 +2557,7 @@ "Clients": "Clientes", "Close": "Cerrar", "Close (as Rescheduled)": "Cerrar (según reprogramado)", + "Collection Sheet": "Hoja de colección", "Configuration Wizard": "Asistente de configuración", "Contract Termination": "Terminación del contrato", "Create Guarantor": "Crear garante", diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json index 33ca8eb38..8d08a4528 100644 --- a/src/assets/translations/es-MX.json +++ b/src/assets/translations/es-MX.json @@ -459,6 +459,7 @@ "Previous": "Anterior", "Print": "Imprimir", "Proceed": "Proceder", + "Productive Collection Sheet": "Hoja de Recolección Productiva", "Reactivate": "Reactivar", "Recapture": "Reconquista", "Recreate": "Recrear", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Reabierto en la fecha", "Repaid every": "Frecuencia de Pago", "Repay Every": "Paga cada", + "Repayment Date": "Fecha de reembolso", "Repayment Info": "Información de pago", "Repayment Schedule": "Calendario de pagos", "Repayment Schedule Parameters": "Parámetros del calendario de pagos", @@ -2556,6 +2558,7 @@ "Clients": "Clientes", "Close": "Cerrar", "Close (as Rescheduled)": "Cerrar (según reprogramado)", + "Collection Sheet": "Hoja de colección", "Configuration Wizard": "Asistente de configuración", "Contract Termination": "Terminación del contrato", "Create Guarantor": "Crear garante", diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json index 7ff8cf9b8..863b4205b 100644 --- a/src/assets/translations/fr-FR.json +++ b/src/assets/translations/fr-FR.json @@ -459,6 +459,7 @@ "Previous": "Précédent", "Print": "Imprimer", "Proceed": "Procéder", + "Productive Collection Sheet": "Fiche de collecte productive", "Reactivate": "Réactiver", "Recapture": "Reprise", "Recreate": "Recréer", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Réouvert à la date", "Repaid every": "Remboursé tous les", "Repay Every": "Rembourser tous les", + "Repayment Date": "Date de remboursement", "Repayment Info": "Informations de remboursement", "Repayment Schedule": "Calendrier de remboursement", "Repayment Schedule Parameters": "Paramètres du calendrier de remboursement", @@ -2555,6 +2557,7 @@ "Clients": "Clientèle", "Close": "Fermer", "Close (as Rescheduled)": "Clôture (comme prévu)", + "Collection Sheet": "Fiche de collecte", "Configuration Wizard": "Assistant de configuration", "Contract Termination": "Résiliation du contrat", "Create Guarantor": "Créer un garant", diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json index d72e7ed61..79db65702 100644 --- a/src/assets/translations/it-IT.json +++ b/src/assets/translations/it-IT.json @@ -459,6 +459,7 @@ "Previous": "Precedente", "Print": "Stampa", "Proceed": "Procedere", + "Productive Collection Sheet": "Foglio di raccolta produttiva", "Reactivate": "Riattivare", "Recapture": "Riconquistare", "Recreate": "Ricreare", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Riaperto in data", "Repaid every": "Rimborsato ogni", "Repay Every": "Rimborsare ogni", + "Repayment Date": "Data di rimborso", "Repayment Info": "Informazioni sul rimborso", "Repayment Schedule": "Programma di rimborso", "Repayment Schedule Parameters": "Parametri del programma di rimborso", @@ -2555,6 +2557,7 @@ "Clients": "Clienti", "Close": "Vicino", "Close (as Rescheduled)": "Chiudi (come riprogrammato)", + "Collection Sheet": "Foglio di raccolta", "Configuration Wizard": "Procedura guidata di configurazione", "Contract Termination": "Risoluzione del contratto", "Create Guarantor": "Creare Garante", diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json index 93dfa6cff..275284e57 100644 --- a/src/assets/translations/ko-KO.json +++ b/src/assets/translations/ko-KO.json @@ -459,6 +459,7 @@ "Previous": "이전의", "Print": "인쇄", "Proceed": "진행하다", + "Productive Collection Sheet": "생산적인 컬렉션 시트", "Reactivate": "재활성화", "Recapture": "탈환", "Recreate": "재창조", @@ -2168,6 +2169,7 @@ "Reopened On Date": "재개장 날짜", "Repaid every": "마다 상환", "Repay Every": "매일 상환", + "Repayment Date": "상환일", "Repayment Info": "상환정보", "Repayment Schedule": "상환 일정", "Repayment Schedule Parameters": "상환 일정 매개변수", @@ -2556,6 +2558,7 @@ "Clients": "클라이언트", "Close": "닫다", "Close (as Rescheduled)": "마감(일정 변경됨)", + "Collection Sheet": "수집 시트", "Configuration Wizard": "구성 마법사", "Contract Termination": "계약 종료", "Create Guarantor": "보증인 만들기", diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json index 96dff844d..233f70ece 100644 --- a/src/assets/translations/lt-LT.json +++ b/src/assets/translations/lt-LT.json @@ -459,6 +459,7 @@ "Previous": "Ankstesnis", "Print": "Spausdinti", "Proceed": "Tęskite", + "Productive Collection Sheet": "Produktyvus surinkimo lapas", "Reactivate": "Iš naujo suaktyvinkite", "Recapture": "Susigrąžinti", "Recreate": "Atkurti", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Iš naujo atidaryta datą", "Repaid every": "Atlygino kiekvieną", "Repay Every": "Atlyginkite kiekvieną", + "Repayment Date": "Grąžinimo data", "Repayment Info": "Informacija apie grąžinimą", "Repayment Schedule": "Grąžinimo grafikas", "Repayment Schedule Parameters": "Grąžinimo grafiko parametrai", @@ -2555,6 +2557,7 @@ "Clients": "Klientai", "Close": "Uždaryti", "Close (as Rescheduled)": "Uždaryti (kaip suplanuota)", + "Collection Sheet": "Kolekcijos lapas", "Configuration Wizard": "Konfigūracijos vedlys", "Contract Termination": "Sutarties nutraukimas", "Create Guarantor": "Sukurti garantą", diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json index 1cca10de4..a71500aee 100644 --- a/src/assets/translations/lv-LV.json +++ b/src/assets/translations/lv-LV.json @@ -459,6 +459,7 @@ "Previous": "Iepriekšējais", "Print": "Drukāt", "Proceed": "Turpināt", + "Productive Collection Sheet": "Produktīva kolekcijas lapa", "Reactivate": "Atkārtoti aktivizēt", "Recapture": "Atgūšana", "Recreate": "Atjaunot", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Atkārtoti atvērts datumā", "Repaid every": "Atmaksāja katru", "Repay Every": "Atmaksāt katru", + "Repayment Date": "Atmaksas datums", "Repayment Info": "Informācija par atmaksu", "Repayment Schedule": "Atmaksas grafiks", "Repayment Schedule Parameters": "Atmaksas grafika parametri", @@ -2555,6 +2557,7 @@ "Clients": "Klienti", "Close": "Aizvērt", "Close (as Rescheduled)": "Aizvērt (kā pārplānots)", + "Collection Sheet": "Kolekcijas lapa", "Configuration Wizard": "Konfigurācijas vednis", "Contract Termination": "Līguma laušana", "Create Guarantor": "Izveidojiet galvotāju", diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json index dce3e86fc..0f33fdf6d 100644 --- a/src/assets/translations/ne-NE.json +++ b/src/assets/translations/ne-NE.json @@ -459,6 +459,7 @@ "Previous": "अघिल्लो", "Print": "छाप्नुहोस्", "Proceed": "अगाडि बढ्नुहोस्", + "Productive Collection Sheet": "उत्पादक संग्रह पाना", "Reactivate": "पुन: सक्रिय गर्नुहोस्", "Recapture": "पुन: कब्जा", "Recreate": "पुन: सिर्जना गर्नुहोस्", @@ -2167,6 +2168,7 @@ "Reopened On Date": "मितिमा पुन: खोलियो", "Repaid every": "प्रत्येक चुक्ता", "Repay Every": "प्रत्येक तिर्नुहोस्", + "Repayment Date": "भुक्तानी मिति", "Repayment Info": "भुक्तानी जानकारी", "Repayment Schedule": "पुन: भुक्तानी तालिका", "Repayment Schedule Parameters": "भुक्तानी तालिका प्यारामिटरहरू", @@ -2555,6 +2557,7 @@ "Clients": "ग्राहकहरु", "Close": "बन्द गर्नुहोस्", "Close (as Rescheduled)": "बन्द (पुन: तालिका अनुसार)", + "Collection Sheet": "संग्रह पाना", "Configuration Wizard": "कन्फिगरेसन विजार्ड", "Contract Termination": "सम्झौता समाप्ति", "Create Guarantor": "ग्यारेन्टर सिर्जना गर्नुहोस्", diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json index 7cfbeade6..4bd399133 100644 --- a/src/assets/translations/pt-PT.json +++ b/src/assets/translations/pt-PT.json @@ -459,6 +459,7 @@ "Previous": "Anterior", "Print": "Imprimir", "Proceed": "Continuar", + "Productive Collection Sheet": "Folha de Coleta Produtiva", "Reactivate": "Reativar", "Recapture": "Recaptura", "Recreate": "Recriar", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Reaberto na data", "Repaid every": "Reembolsado a cada", "Repay Every": "Reembolsar cada", + "Repayment Date": "Data de reembolso", "Repayment Info": "Informações de reembolso", "Repayment Schedule": "Cronograma de Reembolso", "Repayment Schedule Parameters": "Parâmetros do Cronograma de Reembolso", @@ -2555,6 +2557,7 @@ "Clients": "Clientes", "Close": "Fechar", "Close (as Rescheduled)": "Fechar (conforme reprogramado)", + "Collection Sheet": "Folha de coleta", "Configuration Wizard": "Assistente de configuração", "Contract Termination": "Rescisão de contrato", "Create Guarantor": "Criar fiador", diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json index 408fc4007..9e8ebaef1 100644 --- a/src/assets/translations/sw-SW.json +++ b/src/assets/translations/sw-SW.json @@ -459,6 +459,7 @@ "Previous": "Iliyotangulia", "Print": "Chapisha", "Proceed": "Endelea", + "Productive Collection Sheet": "Karatasi ya Ukusanyaji Yenye Tija", "Reactivate": "Anzisha tena", "Recapture": "Kukamata tena", "Recreate": "Unda upya", @@ -2167,6 +2168,7 @@ "Reopened On Date": "Ilifunguliwa tena Tarehe", "Repaid every": "Kulipwa kila", "Repay Every": "Rejesha Kila", + "Repayment Date": "Tarehe ya Marejesho", "Repayment Info": "Taarifa za Urejeshaji", "Repayment Schedule": "Ratiba ya Marejesho", "Repayment Schedule Parameters": "Vigezo vya Ratiba ya Marejesho", @@ -2556,6 +2558,7 @@ "Close": "Funga", "Close (as Rescheduled)": "Funga (Kama Ilivyoratibiwa Upya)", "Configuration Wizard": "Mchawi wa Usanidi", + "Collection Sheet": "Karatasi ya Mkusanyiko", "Contract Termination": "Kusitishwa kwa Mkataba", "Create Guarantor": "Unda Mdhamini", "Create Journal Entry": "Unda Ingizo la Jarida",