Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"build:prod": "node version.js && node --max-old-space-size=16384 ./node_modules/@angular/cli/bin/ng build --configuration production --output-hashing=none --base-href=/web-app/",
"start": "npm run env -s && ng serve --proxy-config proxy.conf.js",
"serve:dev": "npm run env -s && ng serve --source-map",
"serve:sw": "npm run build -s && npx http-server ./dist -p 4200",
"serve:sw": "npm run build -s && npx http-server ./dist/web-app/browser -p 4200",
"lint": "eslint . && stylelint \"src/**/*.scss\" && prettier . --check && htmlhint \"src\" --config .htmlhintrc",
"test": "jest --config jest.config.ts",
"test:watch": "jest --config jest.config.ts --watch",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!--
Copyright since 2025 Mifos Initiative

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->

<h2 mat-dialog-title>{{ 'labels.heading.Loan Delinquency Actions' | translate }}</h2>

<div mat-dialog-content [formGroup]="delinquencyActionForm">
<div class="layout-column">
<mat-checkbox class="flex-98" formControlName="startNewPeriod">
<p>{{ 'labels.inputs.Start new period' | translate }}</p>
</mat-checkbox>
</div>
</div>

<mat-dialog-actions class="layout-row layout-xs-column layout-align-center gap-2percent">
<button mat-raised-button mat-dialog-close>{{ 'labels.buttons.Cancel' | translate }}</button>
<button
mat-raised-button
color="primary"
[mat-dialog-close]="{ data: delinquencyActionForm }"
>
{{ 'labels.buttons.Reset' | translate }}
</button>
</mat-dialog-actions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/**
* Copyright since 2025 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/**
* Copyright since 2025 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators, ReactiveFormsModule } from '@angular/forms';
import {
MAT_DIALOG_DATA,
MatDialogRef,
MatDialogTitle,
MatDialogContent,
MatDialogActions,
MatDialogClose
} from '@angular/material/dialog';
import { CdkScrollable } from '@angular/cdk/scrolling';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
import { MatTooltip } from '@angular/material/tooltip';
import { StringEnumOptionData } from 'app/shared/models/option-data.model';

@Component({
selector: 'mifosx-loan-delinquency-action-reset-dialog',
templateUrl: './loan-delinquency-action-reset-dialog.component.html',
styleUrl: './loan-delinquency-action-reset-dialog.component.scss',
imports: [
...STANDALONE_SHARED_IMPORTS,
MatDialogTitle,
MatDialogContent,
MatDialogActions,
MatDialogClose
],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class LoanDelinquencyActionResetDialogComponent {
dialogRef = inject<MatDialogRef<LoanDelinquencyActionResetDialogComponent>>(MatDialogRef);
data = inject(MAT_DIALOG_DATA);
private formBuilder = inject(UntypedFormBuilder);

delinquencyActionForm: UntypedFormGroup;

constructor() {
this.createDelinquencyActionForm();
}

createDelinquencyActionForm() {
this.delinquencyActionForm = this.formBuilder.group({
startNewPeriod: [
false
]
});
}
Comment on lines +40 to +54

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Use strongly typed forms instead of untyped forms.

As per coding guidelines, use strict typing conventions. UntypedFormBuilder and UntypedFormGroup bypass compile-time type safety. Prefer strongly typed FormBuilder and FormGroup for the reactive form.

♻️ Proposed refactor

Update your imports to replace UntypedFormBuilder and UntypedFormGroup with FormBuilder, FormGroup, and FormControl, then apply this strongly-typed pattern:

-  private formBuilder = inject(UntypedFormBuilder);
+  private formBuilder = inject(FormBuilder);
 
-  delinquencyActionForm: UntypedFormGroup;
+  delinquencyActionForm: FormGroup;
 
   constructor() {
     this.createDelinquencyActionForm();
   }
 
   createDelinquencyActionForm() {
     this.delinquencyActionForm = this.formBuilder.group({
-      startNewPeriod: [
-        false
-      ]
+      startNewPeriod: [false]
     });
   }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/app/loans/custom-dialog/loan-delinquency-action-reset-dialog/loan-delinquency-action-reset-dialog.component.ts`
around lines 40 - 54, Replace UntypedFormBuilder and UntypedFormGroup in the
delinquencyActionForm setup with FormBuilder and a strongly typed FormGroup
containing a FormControl<boolean> for startNewPeriod. Update the imports and the
createDelinquencyActionForm method while preserving the existing default value
of false.

Source: Coding guidelines

}
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,22 @@ <h3>{{ 'labels.heading.Loan Delinquency Installment Tags' | translate }}</h3>
>
<fa-icon icon="calendar" class="m-r-10"></fa-icon>{{ 'labels.buttons.Reschedule' | translate }}
</button>
<button
mat-raised-button
color="primary"
(click)="createDelinquencyActionReset()"
*mifosxHasPermission="'CREATE_WC_DELINQUENCY_RESET'"
>
<fa-icon icon="calendar" class="m-r-10"></fa-icon>{{ 'labels.buttons.Reset' | translate }}
</button>
<button
mat-raised-button
color="primary"
(click)="createDelinquencyActionUndoReset()"
*mifosxHasPermission="'CREATE_WC_DELINQUENCY_UNDO_RESET'"
>
<fa-icon icon="calendar" class="m-r-10"></fa-icon>{{ 'labels.buttons.Undo Reset' | translate }}
</button>
Comment on lines +166 to +181

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Align margin utility classes with the 8px grid system.

As per coding guidelines, visual design and spacing must stick to the 8px grid system. The m-r-10 class introduces a 10px margin, which violates this rule. Please replace m-r-10 with an 8px-aligned utility class (e.g., m-r-8) or an appropriate SCSS variable.

♻️ Proposed fix
       <button
         mat-raised-button
         color="primary"
         (click)="createDelinquencyActionReset()"
         *mifosxHasPermission="'CREATE_WC_DELINQUENCY_RESET'"
       >
-        <fa-icon icon="calendar" class="m-r-10"></fa-icon>{{ 'labels.buttons.Reset' | translate }}
+        <fa-icon icon="calendar" class="m-r-8"></fa-icon>{{ 'labels.buttons.Reset' | translate }}
       </button>
       <button
         mat-raised-button
         color="primary"
         (click)="createDelinquencyActionUndoReset()"
         *mifosxHasPermission="'CREATE_WC_DELINQUENCY_UNDO_RESET'"
       >
-        <fa-icon icon="calendar" class="m-r-10"></fa-icon>{{ 'labels.buttons.Undo Reset' | translate }}
+        <fa-icon icon="calendar" class="m-r-8"></fa-icon>{{ 'labels.buttons.Undo Reset' | translate }}
       </button>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<button
mat-raised-button
color="primary"
(click)="createDelinquencyActionReset()"
*mifosxHasPermission="'CREATE_WC_DELINQUENCY_RESET'"
>
<fa-icon icon="calendar" class="m-r-10"></fa-icon>{{ 'labels.buttons.Reset' | translate }}
</button>
<button
mat-raised-button
color="primary"
(click)="createDelinquencyActionUndoReset()"
*mifosxHasPermission="'CREATE_WC_DELINQUENCY_UNDO_RESET'"
>
<fa-icon icon="calendar" class="m-r-10"></fa-icon>{{ 'labels.buttons.Undo Reset' | translate }}
</button>
<button
mat-raised-button
color="primary"
(click)="createDelinquencyActionReset()"
*mifosxHasPermission="'CREATE_WC_DELINQUENCY_RESET'"
>
<fa-icon icon="calendar" class="m-r-8"></fa-icon>{{ 'labels.buttons.Reset' | translate }}
</button>
<button
mat-raised-button
color="primary"
(click)="createDelinquencyActionUndoReset()"
*mifosxHasPermission="'CREATE_WC_DELINQUENCY_UNDO_RESET'"
>
<fa-icon icon="calendar" class="m-r-8"></fa-icon>{{ 'labels.buttons.Undo Reset' | translate }}
</button>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/app/loans/loans-view/loan-delinquency-tags-tab/loan-delinquency-tags-tab.component.html`
around lines 166 - 181, Replace the m-r-10 class on the calendar icons in
createDelinquencyActionReset and createDelinquencyActionUndoReset with the
existing 8px-aligned margin utility, such as m-r-8, while preserving the
buttons’ behavior and styling.

Source: Coding guidelines

}
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ import { LoanProductBaseComponent } from 'app/products/loan-products/common/loan
import { LoanDelinquencyActionRescheduleDialogComponent } from 'app/loans/custom-dialog/loan-delinquency-action-reschedule-dialog/loan-delinquency-action-reschedule-dialog.component';
import { StringEnumOptionData } from 'app/shared/models/option-data.model';
import { ProductsService } from 'app/products/products.service';
import {
LoanDelinquencyActionResetDialogComponent
} from 'app/loans/custom-dialog/loan-delinquency-action-reset-dialog/loan-delinquency-action-reset-dialog.component';

type DelinquencyActionStatus = 'active' | 'scheduled' | 'expired';

Expand Down Expand Up @@ -293,7 +296,7 @@ export class LoanDelinquencyTagsTabComponent extends LoanProductBaseComponent im
const startDate: Date = response.data.value.startDate;
const endDate: Date = response.data.value.endDate;

this.sendDelinquencyAction(action, startDate, endDate, null, null, null, null);
this.sendDelinquencyAction(action, startDate, endDate, null, null, null, null, null);
});
}

Expand All @@ -312,7 +315,36 @@ export class LoanDelinquencyTagsTabComponent extends LoanProductBaseComponent im
const frequency: number = response.data.value.frequency;
const frequencyType: string = response.data.value.frequencyType;

this.sendDelinquencyAction(action, null, null, minimumPayment, minimumPaymentType, frequency, frequencyType);
this.sendDelinquencyAction(action, null, null, minimumPayment, minimumPaymentType, frequency, frequencyType, null);
});
}

createDelinquencyActionReset(): void {
const action = 'reset';
const loanDelinquencyActionDialogRef = this.dialog.open(LoanDelinquencyActionResetDialogComponent, {
data: {
action: action,
startNewPeriod: false
}
});
loanDelinquencyActionDialogRef.afterClosed().subscribe((response: { data: any }) => {
const startNewPeriod: boolean = response.data.value.startNewPeriod;

this.sendDelinquencyAction(action, null, null, null, null, null, null, startNewPeriod);
});
Comment on lines +330 to +334

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🔴 Critical | ⚡ Quick win

Null pointer exception on dialog cancellation.

Both afterClosed() subscriptions lack a null check for response. If the user cancels the dialog (e.g., by clicking the backdrop or pressing ESC), response will be undefined, causing a runtime crash (TypeError) when accessing its properties.

  • src/app/loans/loans-view/loan-delinquency-tags-tab/loan-delinquency-tags-tab.component.ts#L330-L334: Add a guard (e.g., if (!response) return;) before accessing response.data.value.startNewPeriod.
  • src/app/loans/loans-view/loan-delinquency-tags-tab/loan-delinquency-tags-tab.component.ts#L344-L348: Use optional chaining (if (response?.confirm)) before evaluating the confirmation check.
📍 Affects 1 file
  • src/app/loans/loans-view/loan-delinquency-tags-tab/loan-delinquency-tags-tab.component.ts#L330-L334 (this comment)
  • src/app/loans/loans-view/loan-delinquency-tags-tab/loan-delinquency-tags-tab.component.ts#L344-L348
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/app/loans/loans-view/loan-delinquency-tags-tab/loan-delinquency-tags-tab.component.ts`
around lines 330 - 334, Prevent cancelled dialogs from causing null-pointer
errors in both afterClosed subscriptions: in the loanDelinquencyActionDialogRef
handler at
src/app/loans/loans-view/loan-delinquency-tags-tab/loan-delinquency-tags-tab.component.ts:330-334,
return before accessing response.data.value.startNewPeriod when response is
absent; in the confirmation handler at the same file:344-348, use optional
chaining when checking response.confirm.

}
createDelinquencyActionUndoReset(): void {
const action = 'undo_reset';
const loanDelinquencyActionDialogRef = this.dialog.open(ConfirmationDialogComponent, {
data: {
heading: this.translateService.instant('labels.heading.Undo Reset'),
dialogContext: this.translateService.instant('labels.dialogContext.Are you sure you want to undo last reset action')
}
});
loanDelinquencyActionDialogRef.afterClosed().subscribe((response: { confirm: any }) => {
if (response.confirm) {
this.sendDelinquencyAction(action, null, null, null, null, null, null, null);
}
});
}

Expand All @@ -330,7 +362,7 @@ export class LoanDelinquencyTagsTabComponent extends LoanProductBaseComponent im
removePauseDialogRef.afterClosed().subscribe((response: any) => {
if (response.confirm) {
if (this.loanProductService.isLoanProduct) {
this.sendDelinquencyAction('resume', null, null, null, null, null, null);
this.sendDelinquencyAction('resume', null, null, null, null, null, null, null);
} else {
this.sendDelinquencyAction(
'resume',
Expand All @@ -339,6 +371,7 @@ export class LoanDelinquencyTagsTabComponent extends LoanProductBaseComponent im
null,
null,
null,
null,
null
);
}
Expand All @@ -353,7 +386,8 @@ export class LoanDelinquencyTagsTabComponent extends LoanProductBaseComponent im
minimumPayment: number | null,
minimumPaymentType: string | null,
frequency: number | null,
frequencyType: string | null
frequencyType: string | null,
startNewPeriod: boolean | null
): void {
let payload: any = {
action,
Expand All @@ -378,6 +412,12 @@ export class LoanDelinquencyTagsTabComponent extends LoanProductBaseComponent im
frequency,
frequencyType
};
} else if (action === 'reset') {
payload = {
action,
locale: this.locale,
startNewPeriod,
}
}

this.loansServices
Expand Down
4 changes: 4 additions & 0 deletions src/assets/translations/cs-CS.json
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,7 @@
"Unassign Staff": "Zrušit přidělení personálu",
"Undo": "vrátit",
"Undo Rejection": "Zrušit odmítnutí",
"Undo Reset": "Vrátit reset",
"Undo Transfer": "Vrátit zpět převod",
"Unpin": "Odepnout",
"Update Default Savings": "Aktualizovat výchozí úspory",
Expand Down Expand Up @@ -1562,6 +1563,7 @@
"Unassign Role": "Zrušit přiřazení role",
"Unassign Staff": "Zrušit přidělení personálu",
"Undo": "vrátit",
"Undo Reset": "Vrátit reset",
"Undo Transaction": "Vrátit zpět transakci",
"Upcoming Charges": "Nadcházející poplatky",
"Upload": "nahrát",
Expand Down Expand Up @@ -2929,6 +2931,7 @@
"Standing Instruction Type": "Typ trvalého pokynu",
"Standing Instructions": "Stálé instrukce",
"Start Date": "Datum zahájení",
"Start new period": "Zahájit nové období",
"Start Time": "Doba spuštění",
"Started On": "Zahájeno dne",
"Starting date": "Počáteční datum",
Expand Down Expand Up @@ -3362,6 +3365,7 @@
"Are you sure you want to waive charge with id:": "Určitě se chcete vzdát poplatku s ID:",
"Are you sure you want to waive charges": "Opravdu chcete odpustit {{ count }} poplatků",
"Are you sure you want to undo this transaction ?": "Jste si jisti, že chcete tuto transakci vrátit zpět?",
"Are you sure you want to undo last reset action": "Opravdu chcete vrátit poslední akci resetu?",
"Are you sure you want recover from Guarantor": "Jste si jisti, že se chcete zotavit z ručitele",
"Are you sure you want recover the Original Schedule": "Jste si jisti, že chcete obnovit původní rozvrh",
"Are you sure you want resume the Delinquency Classification for Loan": "Jste si jisti, že chcete pokračovat v klasifikaci delikvence pro půjčku",
Expand Down
4 changes: 4 additions & 0 deletions src/assets/translations/de-DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -745,6 +745,7 @@
"Unassign Staff": "Personalzuweisung aufheben",
"Undo": "Rückgängig machen",
"Undo Rejection": "Ablehnung rückgängig machen",
"Undo Reset": "Zurücksetzen rückgängig machen",
"Undo Transfer": "Übertragung rückgängig machen",
"Unpin": "Lösen",
"Update Default Savings": "Standardeinsparungen aktualisieren",
Expand Down Expand Up @@ -1564,6 +1565,7 @@
"Unassign Role": "Rollenzuweisung aufheben",
"Unassign Staff": "Personalzuweisung aufheben",
"Undo": "Rückgängig machen",
"Undo Reset": "Zurücksetzen rückgängig machen",
"Undo Transaction": "Transaktion rückgängig machen",
"Upcoming Charges": "Kommende Anklagen",
"Upload": "Hochladen",
Expand Down Expand Up @@ -2931,6 +2933,7 @@
"Standing Instruction Type": "Ständiger Instruktionstyp",
"Standing Instructions": "Ständige Anweisungen",
"Start Date": "Startdatum",
"Start new period": "Neue Periode starten",
"Start Time": "Startzeit",
"Started On": "Begann am",
"Starting date": "Anfangsdatum",
Expand Down Expand Up @@ -3364,6 +3367,7 @@
"Are you sure you want to waive charge with id:": "Sind Sie sicher, dass Sie die Gebühr mit der ID erlassen möchten:",
"Are you sure you want to waive charges": "Sind Sie sicher, dass Sie {{ count }} Gebühren verzichten möchten",
"Are you sure you want to undo this transaction ?": "Sind Sie sicher, dass Sie diese Transaktion rückgängig machen möchten ?",
"Are you sure you want to undo last reset action": "Sind Sie sicher, dass Sie die letzte Zurücksetzung rückgängig machen möchten?",
"Are you sure you want recover from Guarantor": "Sind Sie sicher, dass Sie sich vom Bürgen erholen möchten",
"Are you sure you want recover the Original Schedule": "Sind Sie sicher, dass Sie den Originalzeitplan wiederherstellen möchten",
"Are you sure you want resume the Delinquency Classification for Loan": "Sind Sie sicher, dass Sie die Delinquenzklassifizierung für das Darlehen fortsetzen möchten",
Expand Down
4 changes: 4 additions & 0 deletions src/assets/translations/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -746,6 +746,7 @@
"Unassign Staff": "Unassign Staff",
"Undo": "Undo",
"Undo Rejection": "Undo Rejection",
"Undo Reset": "Undo Reset",
"Undo Transfer": "Undo Transfer",
"Unpin": "Unpin",
"Update Default Savings": "Update Default Savings",
Expand Down Expand Up @@ -1570,6 +1571,7 @@
"Unassign Staff": "Unassign Staff",
"Undo": "Undo",
"Undo Transaction": "Undo Transaction",
"Undo Reset": "Undo Reset",
"Upcoming Charges": "Upcoming Charges",
"Upload": "Upload",
"Upload Client Image": "Upload Client Image",
Expand Down Expand Up @@ -2932,6 +2934,7 @@
"Standing Instruction Type": "Standing Instruction Type",
"Standing Instructions": "Standing Instructions",
"Start Date": "Start Date",
"Start new period": "Start New Period",
"Start Time": "Start Time",
"Started On": "Started On",
"Starting Date": "Starting Date",
Expand Down Expand Up @@ -3388,6 +3391,7 @@
"Are you sure you want to delete checker": "Are you sure you want to delete checker",
"Are you sure you want to Approve Loan": "Are you sure you want to Approve Loan",
"Are you sure you want to Disburse Loan": "Are you sure you want to Disburse Loan",
"Are you sure you want to undo last reset action": "Are you sure you want to undo last reset action",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Polish the undo-reset confirmation text.

Use “Are you sure you want to undo the last reset action?” and keep the translation key unchanged.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/assets/translations/en-US.json` at line 3393, Update the translation
value for the existing “Are you sure you want to undo last reset action” key to
“Are you sure you want to undo the last reset action?” while keeping the key
unchanged.

"undo_account_transfer": "Are you sure you want to undo this account transfer?",
"Are you sure you want to": "Are you sure you want to ",
"the productmix component with id": "the productmix component with id",
Expand Down
4 changes: 4 additions & 0 deletions src/assets/translations/es-CL.json
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,7 @@
"Unassign Staff": "Desasignar Asesor",
"Undo": "Deshacer",
"Undo Rejection": "Deshacer rechazo",
"Undo Reset": "Deshacer reinicio",
"Undo Transfer": "Deshacer transferencia",
"Unpin": "Desanclar",
"Update Default Savings": "Actualizar ahorros predeterminados",
Expand Down Expand Up @@ -1562,6 +1563,7 @@
"Unassign Role": "Desasignar rol",
"Unassign Staff": "Desasignar Asesor",
"Undo": "Deshacer",
"Undo Reset": "Deshacer reinicio",
"Undo Transaction": "Deshacer transacción",
"Upcoming Charges": "Próximos cargos",
"Upload": "Subir",
Expand Down Expand Up @@ -2930,6 +2932,7 @@
"Standing Instruction Type": "Tipo de instrucción permanente",
"Standing Instructions": "Instrucciones permanentes",
"Start Date": "Fecha de inicio",
"Start new period": "Iniciar nuevo período",
"Start Time": "Hora de inicio",
"Started On": "Iniciado en",
"Starting date": "Fecha de inicio",
Expand Down Expand Up @@ -3362,6 +3365,7 @@
"Disable withhold tax for this account ?": "¿Quieres deshabilitar la retención de impuestos para esta cuenta?",
"Are you sure you want to waive charge with id:": "¿Estás seguro de que deseas eximir el cargo con ID:",
"Are you sure you want to waive charges": "¿Está seguro de que desea renunciar a {{ count }} comisiones",
"Are you sure you want to undo last reset action": "¿Está seguro de que desea deshacer la última acción de reinicio?",
"Are you sure you want to undo this transaction ?": "¿Estás seguro de que deseas deshacer esta transacción?",
"Are you sure you want recover from Guarantor": "¿Estás seguro de que deseas recuperar del garante?",
"Are you sure you want recover the Original Schedule": "¿Estás seguro de que deseas recuperar el Calendario Original?",
Expand Down
4 changes: 4 additions & 0 deletions src/assets/translations/es-MX.json
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,7 @@
"Unassign Staff": "Desasignar Asesor",
"Undo": "Reversar",
"Undo Rejection": "Reversar rechazo",
"Undo Reset": "Deshacer reinicio",
"Undo Transfer": "Reversar transferencia",
"Unpin": "Desanclar",
"Update Default Savings": "Actualizar ahorros predeterminados",
Expand Down Expand Up @@ -1566,6 +1567,7 @@
"Unassign Role": "Desasignar rol",
"Unassign Staff": "Desasignar Asesor",
"Undo": "Reversar",
"Undo Reset": "Deshacer reinicio",
"Undo Transaction": "Reversar transacción",
"Upcoming Charges": "Próximos cargos",
"Upload": "Subir",
Expand Down Expand Up @@ -2934,6 +2936,7 @@
"Standing Instruction Type": "Tipo de instrucción permanente",
"Standing Instructions": "Instrucciones permanentes",
"Start Date": "Fecha de inicio",
"Start new period": "Iniciar nuevo período",
"Start Time": "Hora de inicio",
"Started On": "Iniciado en",
"Starting date": "Fecha de inicio",
Expand Down Expand Up @@ -3365,6 +3368,7 @@
"Disable withhold tax for this account ?": "¿Quieres deshabilitar la retención de impuestos para esta cuenta?",
"Are you sure you want to waive charge with id:": "¿Estás seguro de que deseas eximir el cargo con ID:",
"Are you sure you want to waive charges": "¿Está seguro de que desea renunciar a {{ count }} cargos",
"Are you sure you want to undo last reset action": "¿Está seguro de que desea deshacer la última acción de reinicio?",
"Are you sure you want to undo this transaction ?": "¿Estás seguro de que deseas reversar esta transacción?",
"Are you sure you want recover from Guarantor": "¿Estás seguro de que deseas recuperar del aval?",
"Are you sure you want recover the Original Schedule": "¿Estás seguro de que deseas recuperar el Calendario Original?",
Expand Down
Loading
Loading