diff --git a/app/src/main/assets/pages/Policy.html b/app/src/main/assets/pages/Policy.html
index 2ab6b509..0830d98b 100644
--- a/app/src/main/assets/pages/Policy.html
+++ b/app/src/main/assets/pages/Policy.html
@@ -30,12 +30,15 @@
-
+
+
-
+
-
diff --git a/app/src/main/assets/pages/Policy.js b/app/src/main/assets/pages/Policy.js
index 4f7f30ba..8f33528d 100644
--- a/app/src/main/assets/pages/Policy.js
+++ b/app/src/main/assets/pages/Policy.js
@@ -5,6 +5,8 @@ $(document).ready(function () {
$('#ControlNumber').hide();
}
+ $("#dialog-confirm").attr("title", Android.getString('Confirm'));
+
var LocationId = parseInt(queryString("l"));
var FamilyId = parseInt(queryString("f"));
var strOfficerLocation = Android.getOfficerLocation();
@@ -45,9 +47,9 @@ $(document).ready(function () {
if(Android.IsBulkCNUsed()) {
if($Policy[0]["ControlNumber"]) {
- $('#AssignedControlNumber').val($Policy[0]["ControlNumber"]).prop('readonly', true);
+ $('#AssignedControlNumber').val($Policy[0]["ControlNumber"]);
} else {
- $('#AssignedControlNumber').val('').prop('readonly', false);
+ $('#AssignedControlNumber').val('');
}
}
@@ -92,33 +94,57 @@ $(document).ready(function () {
if(Android.IsBulkCNUsed()) {
var productId = $('#ddlProduct').val();
if(productId == '0') {
- $('#AssignedControlNumber').val('').prop('readonly', false);
+ $('#AssignedControlNumber').val('');
return;
}
var controlNumber = Android.GetNextBulkCn(productId);
if(typeof controlNumber === 'undefined') {
Android.ShowDialog(Android.getString('noBulkCNAvailable'));
- $('#AssignedControlNumber').val('').prop('readonly', false);
+ $('#AssignedControlNumber').val('');
} else {
- $('#AssignedControlNumber').val(controlNumber).prop('readonly', true);
+ $('#AssignedControlNumber').val(controlNumber);
}
}
});
+ function savePolicy() {
+ var jsonPolicy = createJSONString();
+ var PPolicyId = Android.SavePolicy(jsonPolicy, parseInt(FamilyId), parseInt(policyId));
+ window.open('FamilyPolicies.html?f=' + FamilyId + '&l=' + LocationId + '&r=' + RegionId + '&d=' + DistrictId, "_self");
+ $('#btnSave').attr("disabled", "disabled")
+ }
+
$('#btnSave').click(function () {
var passed = isFormValidated();
- var jsonPolicy = createJSONString();
if (passed == true) {
if(Android.IsBulkCNUsed() && !$('#AssignedControlNumber').val()) {
Android.ShowDialog(Android.getString('noBulkCNAssigned'));
- $('#AssignedControlNumber').val('').prop('readonly', false);
+ $('#AssignedControlNumber').val('');
return;
}
- var PPolicyId = Android.SavePolicy(jsonPolicy, parseInt(FamilyId), parseInt(policyId));
- window.open('FamilyPolicies.html?f=' + FamilyId + '&l=' + LocationId + '&r=' + RegionId + '&d=' + DistrictId, "_self");
- $('#btnSave').attr("disabled", "disabled")
+ if(Android.IsBulkCNUsed() && !Android.isFetchedControlNumber($('#AssignedControlNumber').val())) {
+ $("#msgAlert").text(Android.getStringWithArgument('ConfirmControlNumber', $('#AssignedControlNumber').val()));
+ $("#dialog-confirm").dialog({
+ resizable: false,
+ height: "auto",
+ width: 300,
+ modal: true,
+ buttons: {
+ Yes: function () {
+ savePolicy();
+ $(this).dialog("close");
+ },
+ No: function () {
+ $(this).dialog("close");
+ }
+ }
+ });
+ }
+ else {
+ savePolicy()
+ }
}
else {
Android.ShowDialog(Android.getString('FieldRequired'));
diff --git a/app/src/main/java/org/openimis/imispolicies/ClientAndroidInterface.java b/app/src/main/java/org/openimis/imispolicies/ClientAndroidInterface.java
index 07f7583e..3d978127 100644
--- a/app/src/main/java/org/openimis/imispolicies/ClientAndroidInterface.java
+++ b/app/src/main/java/org/openimis/imispolicies/ClientAndroidInterface.java
@@ -312,6 +312,17 @@ public String getString(String str) {
return "";
}
+ @JavascriptInterface
+ public String getStringWithArgument(String str, String arg) {
+ try {
+ Resources resources = mContext.getResources();
+ return resources.getString(resources.getIdentifier(str, "string", mContext.getPackageName()), arg);
+ } catch (Resources.NotFoundException e) {
+ Log.e("RESOURCES", String.format("Resource \"%s\" not found", str), e);
+ }
+ return "";
+ }
+
@JavascriptInterface
public boolean isValidInsuranceNumber(String InsuranceNumber) {
@@ -1788,6 +1799,11 @@ public void deleteBulkCn(String controlNumber) {
sqlHandler.deleteData("tblBulkControlNumbers", "ControlNumber = ?", new String[]{controlNumber});
}
+ @JavascriptInterface
+ public boolean isFetchedControlNumber(String controlNumber) {
+ return sqlHandler.isFetchedControlNumber(controlNumber);
+ }
+
@JavascriptInterface
public int SavePolicy(String PolicyData, int FamilyId, int PolicyId) throws Exception {
inProgress = true;
diff --git a/app/src/main/java/org/openimis/imispolicies/Renewal.java b/app/src/main/java/org/openimis/imispolicies/Renewal.java
index e62e6a47..7ac7fa72 100644
--- a/app/src/main/java/org/openimis/imispolicies/Renewal.java
+++ b/app/src/main/java/org/openimis/imispolicies/Renewal.java
@@ -57,7 +57,6 @@
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -172,8 +171,6 @@ protected void onCreate(Bundle savedInstanceState) {
btnSubmit.setOnClickListener(v -> {
if (!chkDiscontinue.isChecked()) {
-
- pd = ProgressDialog.show(Renewal.this, "", getResources().getString(R.string.Uploading));
final String[] renewal = {null};
if (getIntent().getStringExtra("CHFID").equals(getResources().getString(R.string.UnlistedRenewalPolicies))) {
@@ -185,36 +182,24 @@ protected void onCreate(Bundle savedInstanceState) {
return;
}
- new Thread(() -> {
+ Runnable saveRenewal = () -> new Thread(() -> {
renewal[0] = WriteJSON();
WriteXML();
- result = 3;
runOnUiThread(() -> {
+ UpdateRow(RenewalId);
+ Toast.makeText(getApplicationContext(), getResources().getString(R.string.SavedOnSDCard), Toast.LENGTH_LONG).show();
- switch (result) {
- case 1:
- DeleteRow(RenewalId);
- Toast.makeText(getApplicationContext(), getResources().getString(R.string.UploadedSuccessfully), Toast.LENGTH_LONG).show();
- break;
- case 2:
- DeleteRow(RenewalId);
- Toast.makeText(getApplicationContext(), getResources().getString(R.string.ServerRejected), Toast.LENGTH_LONG).show();
- break;
- case 3:
- UpdateRow(RenewalId);
- Toast.makeText(getApplicationContext(), getResources().getString(R.string.SavedOnSDCard), Toast.LENGTH_LONG).show();
- break;
- case -1:
- Toast.makeText(getApplicationContext(), getResources().getString(R.string.RenewalNotUploaded), Toast.LENGTH_LONG).show();
- break;
- }
//Go back to the previous activity.
finish();
});
-
- pd.dismiss();
}).start();
+
+ if (ca.IsBulkCNUsed() && !ca.isFetchedControlNumber(etControlNumber.getText().toString())) {
+ ConfirmControlNumber(saveRenewal);
+ } else {
+ saveRenewal.run();
+ }
}
});
@@ -427,6 +412,15 @@ private void DiscontinuePolicy() {
.setNegativeButton(R.string.No, (dialog, which) -> chkDiscontinue.setChecked(false)).show();
}
+ private void ConfirmControlNumber(Runnable onConfirmed) {
+ String message = getResources().getString(R.string.ConfirmControlNumber, etControlNumber.getText().toString());
+ new AlertDialog.Builder(this)
+ .setMessage(message)
+ .setPositiveButton(R.string.Yes, (dialog, which) -> onConfirmed.run())
+ .setNegativeButton(R.string.No, (dialog, which) -> {
+ }).show();
+ }
+
private void UpdateRow(int RenewalId) {
if (RenewalId != 0) {
ca.UpdateRenewTable(RenewalId);
@@ -647,15 +641,12 @@ private void assignNextFreeCn(String productCode) {
String controlNumber = sqlHandler.getNextFreeCn(etOfficer.getText().toString(), productCode);
if (controlNumber != null) {
etControlNumber.setText(controlNumber);
- setEditable(etControlNumber, false);
} else {
showInfoDialog(R.string.noBulkCNAvailable);
etControlNumber.setText("");
- setEditable(etControlNumber, true);
}
} else {
etControlNumber.setText("");
- setEditable(etControlNumber, true);
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5c20f30c..0d2d354f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -435,4 +435,5 @@
Control number error
Unexpected exception
Invalid renewal file
+ Control number \"%1$s\" is not present in phone memory. Please confirm that this control number is correct.