From 231648cb7ac82b6fb6e70f93e8a1da7b96a8d19b Mon Sep 17 00:00:00 2001 From: vaneck237 Date: Thu, 11 Jun 2026 12:09:27 +0100 Subject: [PATCH] fix min length for chfid & cheque number --- .../openimis/imisclaims/ClaimActivity.java | 51 ++++++++++++++++++- .../src/main/res/layout/activity_claim.xml | 14 ++--- .../src/main/res/values-fr/strings.xml | 2 + .../src/main/res/values/strings.xml | 2 + 4 files changed, 62 insertions(+), 7 deletions(-) diff --git a/claimManagement/src/main/java/org/openimis/imisclaims/ClaimActivity.java b/claimManagement/src/main/java/org/openimis/imisclaims/ClaimActivity.java index 92a2f948..64be75c9 100644 --- a/claimManagement/src/main/java/org/openimis/imisclaims/ClaimActivity.java +++ b/claimManagement/src/main/java/org/openimis/imisclaims/ClaimActivity.java @@ -10,7 +10,9 @@ import android.database.Cursor; import android.inputmethodservice.Keyboard; import android.os.Bundle; +import android.text.Editable; import android.text.InputType; +import android.text.TextWatcher; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -93,7 +95,7 @@ public static Intent newIntent(@NonNull Context context, @NonNull String claimUU RadioButton rbEmergency, rbReferral, rbOther, rbPositive, rbNegative; ImageButton btnScan; LinearLayout llFagepFields; - TextInputLayout ettClaimPrefix, ettGuaranteeNo; + TextInputLayout ettClaimPrefix, ettGuaranteeNo, tilCHFID; @Override protected void onCreate(Bundle savedInstanceState) { @@ -140,6 +142,7 @@ protected void onCreate(Bundle savedInstanceState) { etVisitType = findViewById(R.id.etVisitType); ettClaimPrefix = findViewById(R.id.ettClaimPrefix); ettGuaranteeNo = findViewById(R.id.ettGuaranteeNo); + tilCHFID = findViewById(R.id.tilCHFID); String[] visitTypes = getResources().getStringArray(R.array.visitType); ArrayAdapter visitTypeAdapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, visitTypes); @@ -340,6 +343,45 @@ public void onItemClick(AdapterView adapterView, View view, int position, lon } }); } + + etInsureeNumber.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) {} + + @Override + public void afterTextChanged(Editable s) { + int length = s != null ? s.length() : 0; + if (length > 0 && length < 12) { + tilCHFID.setError(getResources().getString(R.string.minChfIdRequired)); + } else { + tilCHFID.setError(null); + } + } + }); + + etClaimPrefix.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {} + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {} + + @Override + public void afterTextChanged(Editable s) { + String program = etProgram.getText().toString(); + if(program.equals("Cheque Santé") || program.equals("Chèque Santé")){ + int length = s != null ? s.length() : 0; + if (length > 0 && length < 6) { + ettClaimPrefix.setError(getResources().getString(R.string.minChequeNumberRequired)); + } else { + ettClaimPrefix.setError(null); + } + } + } + }); } private boolean isIntentReadonly() { @@ -776,6 +818,9 @@ private boolean isValidData() { if (etInsureeNumber.getText().length() == 0) { showValidationDialog(etInsureeNumber, getResources().getString(R.string.MissingCHFID)); return false; + } else if(etInsureeNumber.getText().length() < 12){ + showValidationDialog(etInsureeNumber, getResources().getString(R.string.minChfIdRequired)); + return false; } /*if (!etProgram.getText().toString().equals("VIH")) { @@ -832,9 +877,13 @@ private boolean isValidData() { return false; } + String program = etProgram.getText().toString(); if(etClaimPrefix.getText().length() == 0){ showValidationDialog(etClaimPrefix, getResources().getString(R.string.MissingChequeNumber)); return false; + } else if((program.equals("Cheque Santé") || program.equals("Chèque Santé")) && etClaimPrefix.length() < 6){ + showValidationDialog(etClaimPrefix, getResources().getString(R.string.minChequeNumberRequired)); + return false; } if(etClaimCode.getText().length() > 7){ diff --git a/claimManagement/src/main/res/layout/activity_claim.xml b/claimManagement/src/main/res/layout/activity_claim.xml index fe5f75c1..7d4d8c23 100644 --- a/claimManagement/src/main/res/layout/activity_claim.xml +++ b/claimManagement/src/main/res/layout/activity_claim.xml @@ -75,11 +75,13 @@ android:orientation="horizontal"> - + + android:maxLength="20"/> - + style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" + app:errorEnabled="true"> Mise à jour disponible Vous avez la dernière version Nouvelle version + Le numéro d\'assuré doit contenir minimum 12 caractères + Le numéro de chèque doit contenir minimum 6 caractères \ No newline at end of file diff --git a/claimManagement/src/main/res/values/strings.xml b/claimManagement/src/main/res/values/strings.xml index b0a9e031..0129dc24 100644 --- a/claimManagement/src/main/res/values/strings.xml +++ b/claimManagement/src/main/res/values/strings.xml @@ -249,4 +249,6 @@ Update available You have the last version New version + The insuree number must contain at least 12 characters + The cheque number must contain at least 6 characters