Merge pull request #2627 from alberto-art3ch/feature/collection-sheet
WEB-277: Collection sheet and Productive collection sheet part I
This commit is contained in:
+1
-1
@@ -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 });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -282,4 +282,16 @@ export class CentersService {
|
||||
executeEditCenter(centerId: string, data: any): Observable<any> {
|
||||
return this.http.put(`/groups/${centerId}`, data);
|
||||
}
|
||||
|
||||
getAllMeetingFallCenters(
|
||||
officeId: number,
|
||||
staffId: number,
|
||||
meetingDate: string,
|
||||
dateFormat: string,
|
||||
locale: string
|
||||
): Observable<any> {
|
||||
return this.http.get(
|
||||
`/centers?dateFormat=${dateFormat}&locale=${locale}&meetingDate=${meetingDate}&officeId=${officeId}&staffId=${staffId}`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ export class CenterActionsResolver {
|
||||
* @returns {Observable<any>}
|
||||
*/
|
||||
resolve(route: ActivatedRouteSnapshot): Observable<any> {
|
||||
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':
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
<mat-card class="container">
|
||||
<form [formGroup]="collectionSheetForm" (ngSubmit)="previewCollectionSheet()">
|
||||
<div class="layout-row-wrap gap-2percent responsive-column align-start-center">
|
||||
<mat-form-field class="flex-98">
|
||||
<mat-label>{{ 'labels.inputs.Branch Office' | translate }}</mat-label>
|
||||
<mat-select formControlName="officeId" required>
|
||||
<mat-option *ngFor="let office of officesData" [value]="office.id">
|
||||
{{ office.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="collectionSheetForm.controls.officeId.hasError('required')">
|
||||
{{ 'labels.inputs.Branch Office' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="flex-98" (click)="meetingDatePicker.open()" *ngIf="officeId !== null">
|
||||
<mat-label>{{ 'labels.inputs.Meeting Date' | translate }}</mat-label>
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
[matDatepicker]="meetingDatePicker"
|
||||
required
|
||||
formControlName="meetingDate"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="meetingDatePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #meetingDatePicker></mat-datepicker>
|
||||
<mat-error *ngIf="collectionSheetForm.controls.meetingDate.hasError('required')">
|
||||
{{ 'labels.inputs.Meeting Date' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="flex-98" *ngIf="officeId !== null">
|
||||
<mat-label>{{ 'labels.inputs.Staff' | translate }}</mat-label>
|
||||
<mat-select formControlName="staffId">
|
||||
<mat-option *ngFor="let loanOfficer of loanOfficerData" [value]="loanOfficer.id">
|
||||
{{ loanOfficer.displayName }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="flex-98" *ngIf="officeId !== null">
|
||||
<mat-label>{{ 'labels.inputs.Group' | translate }}</mat-label>
|
||||
<mat-select formControlName="groupId">
|
||||
<mat-option *ngFor="let group of groupsData" [value]="group.id">
|
||||
{{ group.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="flex-98" *ngIf="officeId !== null">
|
||||
<mat-label>{{ 'labels.inputs.Center' | translate }}</mat-label>
|
||||
<mat-select formControlName="centerId">
|
||||
<mat-option *ngFor="let center of centersData" [value]="center.id">
|
||||
{{ center.name }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
|
||||
<button type="button" mat-raised-button [routerLink]="['../']">{{ 'labels.buttons.Cancel' | translate }}</button>
|
||||
<button mat-raised-button color="primary" [disabled]="!collectionSheetForm.valid">
|
||||
<fa-icon icon="download" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Productive Collection Sheet' | translate }}
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
</form>
|
||||
</mat-card>
|
||||
@@ -0,0 +1,15 @@
|
||||
.container {
|
||||
max-width: 37em;
|
||||
|
||||
.margin-v {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.margin-b {
|
||||
margin: 0 0 1em;
|
||||
}
|
||||
|
||||
.margin-t {
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -14,22 +14,6 @@ import { Observable } from 'rxjs';
|
||||
export class CollectionsService {
|
||||
constructor(private http: HttpClient) {}
|
||||
|
||||
/**
|
||||
* Returns all the offices
|
||||
*/
|
||||
getOffices(): Observable<any> {
|
||||
return this.http.get(`/offices`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the loan officer(staffs) for the particular office
|
||||
* @param {officeId} OfficeId any
|
||||
*/
|
||||
getStaffs(officeId: any): Observable<any> {
|
||||
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<any> {
|
||||
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
|
||||
|
||||
+5
-3
@@ -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;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -94,6 +94,18 @@
|
||||
</mat-icon>
|
||||
<a matLine>{{ 'labels.menus.Checker Inbox and Tasks' | translate }}</a>
|
||||
</mat-list-item>
|
||||
<mat-list-item
|
||||
[routerLink]="['/collections/collection-sheet']"
|
||||
[matTooltipPosition]="tooltipPosition"
|
||||
matTooltip="{{ 'tooltips.Collection Sheet' | translate }}"
|
||||
routerLinkActive="active-menu"
|
||||
[routerLinkActiveOptions]="{ exact: false }"
|
||||
>
|
||||
<mat-icon matListIcon>
|
||||
<i class="fa fa-tasks"></i>
|
||||
</mat-icon>
|
||||
<a matLine>{{ 'labels.menus.Collection Sheet' | translate }}</a>
|
||||
</mat-list-item>
|
||||
<mat-list-item
|
||||
[routerLink]="['/collections/individual-collection-sheet']"
|
||||
[matTooltipPosition]="tooltipPosition"
|
||||
|
||||
@@ -702,6 +702,21 @@ export class OrganizationService {
|
||||
return this.http.put(`/funds/${fundId}`, fundData);
|
||||
}
|
||||
|
||||
getStaffs(officeId: any): Observable<any> {
|
||||
const httpParams = new HttpParams().set('officeId', officeId).set('status', 'all');
|
||||
return this.http.get(`/staff`, { params: httpParams });
|
||||
}
|
||||
|
||||
getCenters(officeId: any): Observable<any> {
|
||||
const httpParams = new HttpParams().set('officeId', officeId).set('status', 'all');
|
||||
return this.http.get(`/centers`, { params: httpParams });
|
||||
}
|
||||
|
||||
getGroups(officeId: any): Observable<any> {
|
||||
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<any>} Staff data.
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "보증인 만들기",
|
||||
|
||||
@@ -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ą",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "ग्यारेन्टर सिर्जना गर्नुहोस्",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user