diff --git a/package-lock.json b/package-lock.json
index c21b6e4f1..52ed90e45 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -44,6 +44,7 @@
"moment": "^2.29.4",
"ngx-mat-select-search": "^8.0.2",
"rxjs": "^7.8.2",
+ "signature_pad": "^5.1.3",
"tinymce": "^8.2.2",
"tslib": "^2.8.1",
"vkbeautify": "^0.99.3",
@@ -21912,6 +21913,12 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/signature_pad": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-5.1.3.tgz",
+ "integrity": "sha512-zyxW5vuJVnQdGcU+kAj9FYl7WaAunY3kA5S7mPg0xJiujL9+sPAWfSQHS5tXaJXDUa4FuZeKhfdCDQ6K3wfkpQ==",
+ "license": "MIT"
+ },
"node_modules/sigstore": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz",
diff --git a/package.json b/package.json
index 99d874ad5..9372d57bf 100644
--- a/package.json
+++ b/package.json
@@ -71,6 +71,7 @@
"moment": "^2.29.4",
"ngx-mat-select-search": "^8.0.2",
"rxjs": "^7.8.2",
+ "signature_pad": "^5.1.3",
"tinymce": "^8.2.2",
"tslib": "^2.8.1",
"vkbeautify": "^0.99.3",
diff --git a/src/app/clients/clients-view/clients-view.component.ts b/src/app/clients/clients-view/clients-view.component.ts
index 2df575ceb..3c640346b 100644
--- a/src/app/clients/clients-view/clients-view.component.ts
+++ b/src/app/clients/clients-view/clients-view.component.ts
@@ -18,6 +18,7 @@ import { UnassignStaffDialogComponent } from './custom-dialogs/unassign-staff-di
import { UploadSignatureDialogComponent } from './custom-dialogs/upload-signature-dialog/upload-signature-dialog.component';
import { ViewSignatureDialogComponent } from './custom-dialogs/view-signature-dialog/view-signature-dialog.component';
import { DeleteSignatureDialogComponent } from './custom-dialogs/delete-signature-dialog/delete-signature-dialog.component';
+import { DrawSignatureDialogComponent } from './custom-dialogs/draw-signature-dialog/draw-signature-dialog.component';
import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component';
import { UploadImageDialogComponent } from './custom-dialogs/upload-image-dialog/upload-image-dialog.component';
import { CaptureImageDialogComponent } from './custom-dialogs/capture-image-dialog/capture-image-dialog.component';
@@ -313,6 +314,8 @@ export class ClientsViewComponent implements OnInit {
viewSignatureDialogRef.afterClosed().subscribe((response: any) => {
if (response.upload) {
this.uploadSignature();
+ } else if (response.draw) {
+ this.drawSignature();
} else if (response.delete) {
this.deleteSignature();
}
@@ -334,6 +337,20 @@ export class ClientsViewComponent implements OnInit {
});
}
+ /**
+ * Opens draw pad for client signature
+ */
+ private drawSignature() {
+ const drawSignatureDialogRef = this.dialog.open(DrawSignatureDialogComponent);
+ drawSignatureDialogRef.afterClosed().subscribe((signature: File) => {
+ if (signature) {
+ this.clientsService.uploadClientSignatureImage(this.clientViewData.id, signature).subscribe(() => {
+ this.reload();
+ });
+ }
+ });
+ }
+
/**
* Deletes client signature
*/
diff --git a/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.html b/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.html
new file mode 100644
index 000000000..181ffb8bc
--- /dev/null
+++ b/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.html
@@ -0,0 +1,28 @@
+
+
+
+
{{ 'labels.heading.Draw Client Signature' | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.scss b/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.scss
new file mode 100644
index 000000000..1a432c32c
--- /dev/null
+++ b/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.scss
@@ -0,0 +1,21 @@
+/**
+ * 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/.
+ */
+
+.signature-canvas-container {
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ margin: 0 auto;
+ width: 100%;
+ max-width: 500px;
+}
+
+.signature-canvas {
+ width: 100%;
+ height: 200px;
+ display: block;
+}
diff --git a/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.ts b/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.ts
new file mode 100644
index 000000000..debc9700b
--- /dev/null
+++ b/src/app/clients/clients-view/custom-dialogs/draw-signature-dialog/draw-signature-dialog.component.ts
@@ -0,0 +1,90 @@
+/**
+ * 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/.
+ */
+
+/** Angular Imports */
+import { Component, ViewChild, ElementRef, AfterViewInit, OnDestroy, inject } from '@angular/core';
+import { MatDialogRef, MatDialogTitle, MatDialogActions, MatDialogClose } from '@angular/material/dialog';
+import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
+
+/** External Imports */
+import SignaturePad from 'signature_pad';
+
+/**
+ * Draw signature dialog component.
+ */
+@Component({
+ selector: 'mifosx-draw-signature-dialog',
+ templateUrl: './draw-signature-dialog.component.html',
+ styleUrls: ['./draw-signature-dialog.component.scss'],
+ imports: [
+ ...STANDALONE_SHARED_IMPORTS,
+ MatDialogTitle,
+ MatDialogActions,
+ MatDialogClose
+ ]
+})
+export class DrawSignatureDialogComponent implements AfterViewInit, OnDestroy {
+ dialogRef = inject>(MatDialogRef);
+
+ /** Canvas element reference */
+ @ViewChild('signatureCanvas', { static: true }) signatureCanvas: ElementRef;
+
+ /** Signature pad instance */
+ private signaturePad: SignaturePad;
+
+ /** Whether the pad has content */
+ isEmpty = true;
+
+ ngAfterViewInit() {
+ const canvas = this.signatureCanvas.nativeElement;
+ this.signaturePad = new SignaturePad(canvas, {
+ backgroundColor: 'rgb(255, 255, 255)'
+ });
+
+ this.signaturePad.addEventListener('endStroke', () => {
+ this.isEmpty = this.signaturePad.isEmpty();
+ });
+
+ this.resizeCanvas();
+ }
+
+ ngOnDestroy() {
+ if (this.signaturePad) {
+ this.signaturePad.off();
+ }
+ }
+
+ /** Resizes canvas to match its display size for crisp rendering */
+ private resizeCanvas() {
+ const canvas = this.signatureCanvas.nativeElement;
+ const ratio = Math.max(window.devicePixelRatio || 1, 1);
+ canvas.width = canvas.offsetWidth * ratio;
+ canvas.height = canvas.offsetHeight * ratio;
+ canvas.getContext('2d').scale(ratio, ratio);
+ this.signaturePad.clear();
+ }
+
+ /** Clears the signature pad */
+ clear() {
+ this.signaturePad.clear();
+ this.isEmpty = true;
+ }
+
+ /** Converts the drawn signature to a File and closes the dialog */
+ confirm() {
+ if (this.signaturePad.isEmpty()) {
+ return;
+ }
+
+ const canvas = this.signatureCanvas.nativeElement;
+ canvas.toBlob((blob: Blob) => {
+ const file = new File([blob], 'clientSignature.png', { type: 'image/png' });
+ this.dialogRef.close(file);
+ }, 'image/png');
+ }
+}
diff --git a/src/app/clients/clients-view/custom-dialogs/view-signature-dialog/view-signature-dialog.component.html b/src/app/clients/clients-view/custom-dialogs/view-signature-dialog/view-signature-dialog.component.html
index 9c7eb41f3..c70c76d4b 100644
--- a/src/app/clients/clients-view/custom-dialogs/view-signature-dialog/view-signature-dialog.component.html
+++ b/src/app/clients/clients-view/custom-dialogs/view-signature-dialog/view-signature-dialog.component.html
@@ -31,5 +31,8 @@
+
}
diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json
index 9532f8fcb..de1b3e338 100644
--- a/src/assets/translations/cs-CS.json
+++ b/src/assets/translations/cs-CS.json
@@ -359,6 +359,7 @@
"Change Password": "Změnit heslo",
"Chargeback": "Zpětné zúčtování",
"Charges Overview": "Přehled poplatků",
+ "Clear": "Vymazat",
"Client Screen Reports": "Zprávy na obrazovce klienta",
"Close": "Zavřít",
"Close Config. Wizard": "Zavřete Config. kouzelník",
@@ -424,6 +425,7 @@
"Dividends": "Dividendy",
"Download": "Stažení",
"Download CSV": "Stáhnout CSV",
+ "Draw": "Kreslit",
"Edit": "Upravit",
"Edit Code": "Upravit kód",
"Edit Criteria Definition": "Upravit definici kritérií",
@@ -1014,6 +1016,7 @@
"Disable Withhold Tax": "Zakázat zadržení daně",
"Documents": "Dokumenty",
"Down Payment": "Záloha",
+ "Draw Client Signature": "Nakreslit podpis",
"Due Collections": "Splatné sbírky",
"Due Savings Collections": "Splatné spořící sbírky",
"Edit": "Upravit",
diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json
index 8b591a221..f3751090b 100644
--- a/src/assets/translations/de-DE.json
+++ b/src/assets/translations/de-DE.json
@@ -359,6 +359,7 @@
"Change Password": "Kennwort ändern",
"Chargeback": "Rückbuchung",
"Charges Overview": "Gebührenübersicht",
+ "Clear": "Löschen",
"Client Screen Reports": "Kundenbildschirmberichte",
"Close": "Schließen",
"Close Config. Wizard": "Konfiguration schließen. Magier",
@@ -424,6 +425,7 @@
"Dividends": "Dividenden",
"Download": "Herunterladen",
"Download CSV": "CSV herunterladen",
+ "Draw": "Zeichnen",
"Edit": "Bearbeiten",
"Edit Code": "Code bearbeiten",
"Edit Criteria Definition": "Kriteriendefinition bearbeiten",
@@ -1015,6 +1017,7 @@
"Disable Withhold Tax": "Deaktivieren Sie die Quellensteuer",
"Documents": "Unterlagen",
"Down Payment": "Anzahlung",
+ "Draw Client Signature": "Unterschrift zeichnen",
"Due Collections": "Fällige Sammlungen",
"Due Savings Collections": "Fällige Spareinzüge",
"Edit": "Bearbeiten",
diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json
index 92a84ddc3..160fad453 100644
--- a/src/assets/translations/en-US.json
+++ b/src/assets/translations/en-US.json
@@ -397,6 +397,7 @@
"Change Password": "Change Password",
"Chargeback": "Chargeback",
"Charges Overview": "Charges Overview",
+ "Clear": "Clear",
"Client Screen Reports": "Client Screen Reports",
"Close": "Close",
"Close Config. Wizard": "Close Config. Wizard",
@@ -462,6 +463,7 @@
"Dividends": "Dividends",
"Download": "Download",
"Download CSV": "Download CSV",
+ "Draw": "Draw",
"Edit": "Edit",
"Edit Code": "Edit Code",
"Edit Criteria Definition": "Edit Criteria Definition",
@@ -1055,6 +1057,7 @@
"Disable Withhold Tax": "Disable Withhold Tax",
"Documents": "Documents",
"Down Payment": "Down Payment",
+ "Draw Client Signature": "Draw Signature",
"Due Collections": "Due Collections",
"Due Savings Collections": "Due Savings Collections",
"Edit": "Edit",
diff --git a/src/assets/translations/es-CL.json b/src/assets/translations/es-CL.json
index ec9cdf1ee..7a05222f7 100644
--- a/src/assets/translations/es-CL.json
+++ b/src/assets/translations/es-CL.json
@@ -359,6 +359,7 @@
"Change Password": "Cambiar la contraseña",
"Chargeback": "Contracargo",
"Charges Overview": "Resumen de cargos",
+ "Clear": "Borrar",
"Client Screen Reports": "Reportes de pantalla del cliente",
"Close": "Cerrar",
"Close Config. Wizard": "Cerrar",
@@ -424,6 +425,7 @@
"Dividends": "Dividendos",
"Download": "Descargar",
"Download CSV": "Descargar CSV",
+ "Draw": "Dibujar",
"Edit": "Editar",
"Edit Code": "Editar Código",
"Edit Criteria Definition": "Editar Definición de Criterios",
@@ -1014,6 +1016,7 @@
"Disable Withhold Tax": "Desactivar retención de impuestos",
"Documents": "Documentos",
"Down Payment": "Pago Inicial",
+ "Draw Client Signature": "Dibujar firma",
"Due Collections": "Cobros vencidos",
"Due Savings Collections": "Cobros de ahorros vencidos",
"Edit": "Editar",
diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json
index 7b87258e3..b659248ad 100644
--- a/src/assets/translations/es-MX.json
+++ b/src/assets/translations/es-MX.json
@@ -359,6 +359,7 @@
"Change Password": "Cambiar la contraseña",
"Chargeback": "Contracargo",
"Charges Overview": "Resumen de cargos",
+ "Clear": "Borrar",
"Client Screen Reports": "Reportes de pantalla del cliente",
"Close": "Cerrar",
"Close Config. Wizard": "Cerrar",
@@ -424,6 +425,7 @@
"Dividends": "Dividendos",
"Download": "Descargar",
"Download CSV": "Descargar CSV",
+ "Draw": "Dibujar",
"Edit": "Editar",
"Edit Code": "Editar Código",
"Edit Criteria Definition": "Editar Definición de Criterios",
@@ -1017,6 +1019,7 @@
"Disable Withhold Tax": "Desactivar retención de impuestos",
"Documents": "Documentos",
"Down Payment": "Pago Inicial",
+ "Draw Client Signature": "Dibujar firma",
"Due Collections": "Cobros vencidos",
"Due Savings Collections": "Cobros de ahorros vencidos",
"Edit": "Editar",
diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json
index 8c7257dae..5fecdb5c5 100644
--- a/src/assets/translations/fr-FR.json
+++ b/src/assets/translations/fr-FR.json
@@ -359,6 +359,7 @@
"Change Password": "Changer le mot de passe",
"Chargeback": "Rétrofacturation",
"Charges Overview": "Aperçu des frais",
+ "Clear": "Effacer",
"Client Screen Reports": "Rapports d'écran client",
"Close": "Fermer",
"Close Config. Wizard": "Fermez la configuration. Magicien",
@@ -424,6 +425,7 @@
"Dividends": "Dividendes",
"Download": "Télécharger",
"Download CSV": "Télécharger CSV",
+ "Draw": "Dessiner",
"Edit": "Modifier",
"Edit Code": "Modifier le code",
"Edit Criteria Definition": "Modifier la définition des critères",
@@ -1018,6 +1020,7 @@
"Disable Withhold Tax": "Désactiver la retenue des impôts",
"Documents": "Documents",
"Down Payment": "Acompte",
+ "Draw Client Signature": "Dessiner la signature",
"Due Collections": "Recouvrements dus",
"Due Savings Collections": "Recouvrement des économies dues",
"Edit": "Modifier",
diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json
index e8f01dff6..578e1a472 100644
--- a/src/assets/translations/it-IT.json
+++ b/src/assets/translations/it-IT.json
@@ -359,6 +359,7 @@
"Change Password": "Cambiare la password",
"Chargeback": "Riaddebito",
"Charges Overview": "Panoramica delle tariffe",
+ "Clear": "Cancella",
"Client Screen Reports": "Rapporti sullo schermo del cliente",
"Close": "Vicino",
"Close Config. Wizard": "Chiudi Config. Procedura guidata",
@@ -424,6 +425,7 @@
"Dividends": "Dividendi",
"Download": "Scaricamento",
"Download CSV": "Scarica CSV",
+ "Draw": "Disegna",
"Edit": "Modificare",
"Edit Code": "Modifica codice",
"Edit Criteria Definition": "Modifica Definizione Criteri",
@@ -1014,6 +1016,7 @@
"Disable Withhold Tax": "Disabilitare la ritenuta a trattenere l'imposta",
"Documents": "Documenti",
"Down Payment": "Acconto",
+ "Draw Client Signature": "Disegna firma",
"Due Collections": "Collezioni dovute",
"Due Savings Collections": "Collezioni di risparmio dovute",
"Edit": "Modificare",
diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json
index a2bba7e05..9a74fc5f0 100644
--- a/src/assets/translations/ko-KO.json
+++ b/src/assets/translations/ko-KO.json
@@ -359,6 +359,7 @@
"Change Password": "비밀번호 변경",
"Chargeback": "지불 거절",
"Charges Overview": "요금 개요",
+ "Clear": "지우기",
"Client Screen Reports": "클라이언트 화면 보고서",
"Close": "닫다",
"Close Config. Wizard": "구성을 닫습니다. 마법사",
@@ -424,6 +425,7 @@
"Dividends": "배당금",
"Download": "다운로드",
"Download CSV": "CSV 다운로드",
+ "Draw": "그리기",
"Edit": "편집하다",
"Edit Code": "코드 편집",
"Edit Criteria Definition": "기준 정의 편집",
@@ -1015,6 +1017,7 @@
"Disable Withhold Tax": "원천 징수 세금을 비활성화합니다",
"Documents": "서류",
"Down Payment": "계약금",
+ "Draw Client Signature": "서명 그리기",
"Due Collections": "만기 징수",
"Due Savings Collections": "미납액 징수",
"Edit": "편집하다",
diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json
index ec089bb73..42d1a2ce3 100644
--- a/src/assets/translations/lt-LT.json
+++ b/src/assets/translations/lt-LT.json
@@ -359,6 +359,7 @@
"Change Password": "Pakeisti slaptažodį",
"Chargeback": "Mokėjimo grąžinimas",
"Charges Overview": "Mokesčių apžvalga",
+ "Clear": "Išvalyti",
"Client Screen Reports": "Kliento ekrano ataskaitos",
"Close": "Uždaryti",
"Close Config. Wizard": "Uždaryti konfigūraciją. burtininkas",
@@ -424,6 +425,7 @@
"Dividends": "Dividendai",
"Download": "parsisiųsti",
"Download CSV": "Atsisiųskite CSV",
+ "Draw": "Piešti",
"Edit": "Redaguoti",
"Edit Code": "Redaguoti kodą",
"Edit Criteria Definition": "Redaguoti kriterijų apibrėžimą",
@@ -1013,6 +1015,7 @@
"Disable Withhold Tax": "Išjungti išskaičiavimo mokestį",
"Documents": "Dokumentai",
"Down Payment": "Pradinė įmoka",
+ "Draw Client Signature": "Nupiešti parašą",
"Due Collections": "Sumokėtos kolekcijos",
"Due Savings Collections": "Sumokėtos santaupų kolekcijos",
"Edit": "Redaguoti",
diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json
index 50173edcb..be77caacf 100644
--- a/src/assets/translations/lv-LV.json
+++ b/src/assets/translations/lv-LV.json
@@ -359,6 +359,7 @@
"Change Password": "Mainīt paroli",
"Chargeback": "Atmaksa",
"Charges Overview": "Izmaksu pārskats",
+ "Clear": "Notīrīt",
"Client Screen Reports": "Klienta ekrāna pārskati",
"Close": "Aizvērt",
"Close Config. Wizard": "Aizvērt konfigurāciju. Vednis",
@@ -424,6 +425,7 @@
"Dividends": "Dividendes",
"Download": "Lejupielādēt",
"Download CSV": "Lejupielādēt CSV",
+ "Draw": "Zīmēt",
"Edit": "Rediģēt",
"Edit Code": "Rediģēt kodu",
"Edit Criteria Definition": "Rediģēt kritēriju definīciju",
@@ -1015,6 +1017,7 @@
"Disable Withhold Tax": "Atspējot aizturēšanas nodokli",
"Documents": "Dokumenti",
"Down Payment": "Pirmā iemaksa",
+ "Draw Client Signature": "Zīmēt parakstu",
"Due Collections": "Pienākamās kolekcijas",
"Due Savings Collections": "Pienākamās ietaupījumu kolekcijas",
"Edit": "Rediģēt",
diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json
index df0cd7454..f5b5eb0c4 100644
--- a/src/assets/translations/ne-NE.json
+++ b/src/assets/translations/ne-NE.json
@@ -359,6 +359,7 @@
"Change Password": "पासवर्ड परिवर्तन गर्नुहोस्",
"Chargeback": "चार्जब्याक",
"Charges Overview": "शुल्क अवलोकन",
+ "Clear": "मेटाउनुहोस्",
"Client Screen Reports": "ग्राहक स्क्रिन रिपोर्टहरू",
"Close": "बन्द गर्नुहोस्",
"Close Config. Wizard": "कन्फिग बन्द गर्नुहोस्। जादूगर",
@@ -424,6 +425,7 @@
"Dividends": "लाभांश",
"Download": "डाउनलोड गर्नुहोस्",
"Download CSV": "CSV डाउनलोड गर्नुहोस्",
+ "Draw": "कोर्नुहोस्",
"Edit": "सम्पादन गर्नुहोस्",
"Edit Code": "कोड सम्पादन गर्नुहोस्",
"Edit Criteria Definition": "मापदण्ड परिभाषा सम्पादन गर्नुहोस्",
@@ -1013,6 +1015,7 @@
"Disable Withhold Tax": "प्रयोग गर्ने कर अक्षम गर्नुहोस्",
"Documents": "कागजातहरू",
"Down Payment": "डाउन पेमेन्ट",
+ "Draw Client Signature": "हस्ताक्षर कोर्नुहोस्",
"Due Collections": "बाँकी संग्रहहरू",
"Due Savings Collections": "देय बचत संग्रह",
"Edit": "सम्पादन गर्नुहोस्",
diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json
index abd0e163c..fadb975fc 100644
--- a/src/assets/translations/pt-PT.json
+++ b/src/assets/translations/pt-PT.json
@@ -359,6 +359,7 @@
"Change Password": "Alterar a senha",
"Chargeback": "Estorno",
"Charges Overview": "Visão geral das cobranças",
+ "Clear": "Limpar",
"Client Screen Reports": "Relatórios de tela do cliente",
"Close": "Fechar",
"Close Config. Wizard": "Feche a configuração. Mago",
@@ -424,6 +425,7 @@
"Dividends": "Dividendos",
"Download": "Download",
"Download CSV": "Baixar CSV",
+ "Draw": "Desenhar",
"Edit": "Editar",
"Edit Code": "Editar código",
"Edit Criteria Definition": "Editar Definição de Critérios",
@@ -1014,6 +1016,7 @@
"Disable Withhold Tax": "Desativar o imposto retido",
"Documents": "Documentos",
"Down Payment": "Pagamento inicial",
+ "Draw Client Signature": "Desenhar assinatura",
"Due Collections": "Cobranças devidas",
"Due Savings Collections": "Coleções de poupança devidas",
"Edit": "Editar",
diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json
index 1a9672473..8c1a769c2 100644
--- a/src/assets/translations/sw-SW.json
+++ b/src/assets/translations/sw-SW.json
@@ -359,6 +359,7 @@
"Change Password": "Badilisha neno la siri",
"Chargeback": "Urejeshaji malipo",
"Charges Overview": "Muhtasari wa Gharama",
+ "Clear": "Futa",
"Client Screen Reports": "Ripoti za Skrini ya Mteja",
"Close": "Funga",
"Close Config. Wizard": "Funga Usanidi. Mchawi",
@@ -424,6 +425,7 @@
"Dividends": "Gawio",
"Download": "Pakua",
"Download CSV": "Pakua CSV",
+ "Draw": "Chora",
"Edit": "Hariri",
"Edit Code": "Badilisha Msimbo",
"Edit Criteria Definition": "Hariri Ufafanuzi wa Vigezo",
@@ -1012,6 +1014,7 @@
"Disable Withhold Tax": "Lemaza Ushuru",
"Documents": "Nyaraka",
"Down Payment": "Malipo ya Chini",
+ "Draw Client Signature": "Chora saini",
"Due Collections": "Mikusanyiko Inastahili",
"Due Savings Collections": "Makusanyo ya Akiba Zinazodaiwa",
"Edit": "Hariri",