From 199998ae7720a0a9a35f588d5fafd223ea4105e7 Mon Sep 17 00:00:00 2001 From: drizea Date: Fri, 6 Jul 2012 01:56:04 +0300 Subject: [PATCH] Fines partial info view added (no UI design, only info) --- Open-ILS/src/Android/AndroidManifest.xml | 7 ++- Open-ILS/src/Android/res/layout/fines.xml | 71 ++++++++++++++++++++++ .../src/Android/res/layout/search_result_item.xml | 2 +- Open-ILS/src/Android/res/values/strings.xml | 7 +++ .../android/accountAccess/AccountAccess.java | 28 ++++++--- .../accountAccess/{ => checkout}/CircRecord.java | 2 +- .../{ => checkout}/ItemsCheckOutListView.java | 4 +- .../android/accountAccess/fines/FinesActivity.java | 69 +++++++++++++++++++++ .../android/accountAccess/holds/PlaceHold.java | 48 ++++++++++----- .../evergreen/android/globals/GlobalConfigs.java | 2 +- .../android/views/AccountScreenDashboard.java | 5 +- 11 files changed, 215 insertions(+), 30 deletions(-) create mode 100644 Open-ILS/src/Android/res/layout/fines.xml rename Open-ILS/src/Android/src/org/evergreen/android/accountAccess/{ => checkout}/CircRecord.java (97%) rename Open-ILS/src/Android/src/org/evergreen/android/accountAccess/{ => checkout}/ItemsCheckOutListView.java (97%) create mode 100644 Open-ILS/src/Android/src/org/evergreen/android/accountAccess/fines/FinesActivity.java diff --git a/Open-ILS/src/Android/AndroidManifest.xml b/Open-ILS/src/Android/AndroidManifest.xml index cdda9c9763..10fe06fef7 100644 --- a/Open-ILS/src/Android/AndroidManifest.xml +++ b/Open-ILS/src/Android/AndroidManifest.xml @@ -39,18 +39,23 @@ - + + + + + + \ No newline at end of file diff --git a/Open-ILS/src/Android/res/layout/fines.xml b/Open-ILS/src/Android/res/layout/fines.xml new file mode 100644 index 0000000000..6be2116cfa --- /dev/null +++ b/Open-ILS/src/Android/res/layout/fines.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Open-ILS/src/Android/res/layout/search_result_item.xml b/Open-ILS/src/Android/res/layout/search_result_item.xml index aba6b727fc..045d5402e6 100644 --- a/Open-ILS/src/Android/res/layout/search_result_item.xml +++ b/Open-ILS/src/Android/res/layout/search_result_item.xml @@ -1,6 +1,6 @@ Update Hold Are you sure you want to cancel this hold? Automatically activate hold one + + + + Total Owned + Total Paid + Balance Owed + \ No newline at end of file diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java index 15e05fa22d..cbd6ec3655 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java @@ -8,6 +8,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.evergreen.android.accountAccess.checkout.CircRecord; import org.evergreen.android.accountAccess.holds.HoldRecord; import org.evergreen.android.globals.Utils; import org.evergreen.android.searchCatalog.RecordInfo; @@ -824,16 +825,17 @@ public class AccountAccess { ahr.put("usr", userID); ahr.put("requestor", userID); + //TODO //do not set hold type, the systems knows the hold type - //ahr.put("hold_type", "T"); + ahr.put("hold_type", null); ahr.put("pickup_lib", pickup_lib); //pick-up lib - ahr.put("phone_notify", phone); - ahr.put("email_notify", email_notify); - ahr.put("expire_time",expire_time); + //ahr.put("phone_notify", phone); + //ahr.put("email_notify", email_notify); + //ahr.put("expire_time",expire_time); //frozen set, what this means ? ahr.put("frozen", suspendHold); //only if it is frozen - ahr.put("thaw_date",thaw_date); + //ahr.put("thaw_date",thaw_date); //extra parameters (not mandatory for hold creation) @@ -894,11 +896,21 @@ public class AccountAccess { //----------------------------Fines Summary------------------------------------// - public OSRFObject getFinesSummary(){ + public float[] getFinesSummary(){ + //mous object OSRFObject finesSummary = (OSRFObject) Utils.doRequest(conn,SERVICE_ACTOR, METHOD_FETCH_FINES_SUMMARY, new Object[]{authToken,userID}); - return finesSummary; + float fines[] = new float[3]; + try{ + fines[0] = Float.parseFloat(finesSummary.getString("total_owed")); + fines[1] = Float.parseFloat(finesSummary.getString("total_paid")); + fines[2] = Float.parseFloat(finesSummary.getString("balance_owed")); + }catch(Exception e){ + System.err.println("Exception in parsing fines " + e.getMessage()); + } + + return fines; } private Object getTransactions(){ @@ -908,6 +920,8 @@ public class AccountAccess { return transactions; } + //---------------------------------------Book bags-----------------------------------// + public Object getBookbags(){ Object response = Utils.doRequest(conn,SERVICE_ACTOR, METHOD_FLESH_CONTAINERS, new Object[]{authToken,userID,"biblio","bookbag"}); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/CircRecord.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/CircRecord.java similarity index 97% rename from Open-ILS/src/Android/src/org/evergreen/android/accountAccess/CircRecord.java rename to Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/CircRecord.java index e606cb68c0..6293396745 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/CircRecord.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/CircRecord.java @@ -1,4 +1,4 @@ -package org.evergreen.android.accountAccess; +package org.evergreen.android.accountAccess.checkout; import java.text.ParseException; import java.text.SimpleDateFormat; diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/ItemsCheckOutListView.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java similarity index 97% rename from Open-ILS/src/Android/src/org/evergreen/android/accountAccess/ItemsCheckOutListView.java rename to Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java index b6fa40b2ac..390fdb25da 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/ItemsCheckOutListView.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java @@ -1,9 +1,11 @@ -package org.evergreen.android.accountAccess; +package org.evergreen.android.accountAccess.checkout; import java.util.ArrayList; import java.util.List; import org.evergreen.android.R; +import org.evergreen.android.accountAccess.AccountAccess; +import org.evergreen.android.accountAccess.MaxRenewalsException; import android.app.Activity; import android.app.ProgressDialog; diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/fines/FinesActivity.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/fines/FinesActivity.java new file mode 100644 index 0000000000..94148b621e --- /dev/null +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/fines/FinesActivity.java @@ -0,0 +1,69 @@ +package org.evergreen.android.accountAccess.fines; + +import org.evergreen.android.R; +import org.evergreen.android.accountAccess.AccountAccess; + +import android.app.Activity; +import android.app.ProgressDialog; +import android.content.Context; +import android.os.Bundle; +import android.widget.ListView; +import android.widget.TextView; + +public class FinesActivity extends Activity{ + + + private TextView total_owned; + + private TextView total_paid; + + private TextView balance_owed; + + private ListView overdue_materials; + + private Runnable getFinesInfo; + + private AccountAccess ac; + + private ProgressDialog progressDialog; + + private Context context; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.fines); + + total_owned = (TextView) findViewById(R.id.fines_total_owned); + total_paid = (TextView) findViewById(R.id.fines_total_paid); + balance_owed = (TextView) findViewById(R.id.fined_balance_owed); + context = this; + + ac = AccountAccess.getAccountAccess(); + + + progressDialog = ProgressDialog.show(this, null, "Retrieving fines"); + + getFinesInfo = new Runnable() { + @Override + public void run() { + + final float[] fines = ac.getFinesSummary(); + + runOnUiThread(new Runnable() { + @Override + public void run() { + + total_owned.setText(fines[0]+""); + total_paid.setText(fines[1]+""); + balance_owed.setText(fines[2]+""); + progressDialog.dismiss(); + } + }); + } + }; + + Thread getFinesTh = new Thread(getFinesInfo); + getFinesTh.start(); + } +} diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java index 11eb9c954a..86d9333ca0 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java @@ -1,5 +1,6 @@ package org.evergreen.android.accountAccess.holds; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -67,12 +68,15 @@ public class PlaceHold extends Activity{ private Date thaw_date = null; + private GlobalConfigs globalConfigs = null; + + private int selectedOrgPos = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.place_hold); - + globalConfigs = GlobalConfigs.getGlobalConfigs(this); RecordInfo record = (RecordInfo) getIntent().getSerializableExtra("recordInfo"); accountAccess = AccountAccess.getAccountAccess(); @@ -115,11 +119,10 @@ public class PlaceHold extends Activity{ @Override public void onClick(View v) { - - accountAccess.getHoldPreCreateInfo(record_id, 4); accountAccess.isHoldPossible(4, record_id); + String expire_date_s = null; String thaw_date_s = null; if(expire_date != null) @@ -127,11 +130,14 @@ public class PlaceHold extends Activity{ if(thaw_date != null) thaw_date_s = GlobalConfigs.getStringDate(thaw_date); - accountAccess.createHold(record_id,4,email_notification.isChecked(),phone_notification.isChecked(),phone_number.getText().toString(),suspendHold.isChecked(),expire_date_s,thaw_date_s); + System.out.println("date expire: " + expire_date_s + " " + expire_date); + int selectedOrgID = -1; + if(globalConfigs.organisations.size() > selectedOrgPos) + selectedOrgID = globalConfigs.organisations.get(selectedOrgPos).id; + accountAccess.createHold(record_id,selectedOrgID,email_notification.isChecked(),phone_notification.isChecked(),phone_number.getText().toString(),suspendHold.isChecked(),expire_date_s,thaw_date_s); } }); - phone_notification.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override @@ -168,8 +174,8 @@ public class PlaceHold extends Activity{ int monthOfYear, int dayOfMonth) { - - Date chosenDate = new Date(year, monthOfYear,dayOfMonth); + + Date chosenDate = new Date(year-1900, monthOfYear,dayOfMonth); expire_date = chosenDate; CharSequence strDate = DateFormat.format("MMMM dd, yyyy", chosenDate); expiration_date.setText(strDate); @@ -190,11 +196,11 @@ public class PlaceHold extends Activity{ int monthOfYear, int dayOfMonth) { - - Date chosenDate = new Date(year, monthOfYear,dayOfMonth); + + Date chosenDate = new Date(year-1900, monthOfYear,dayOfMonth); thaw_date = chosenDate; CharSequence strDate = DateFormat.format("MMMM dd, yyyy", chosenDate); - expiration_date.setText(strDate); + thaw_date_edittext.setText(strDate); //set current date }}, cal.get(Calendar.YEAR),cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); @@ -206,20 +212,30 @@ public class PlaceHold extends Activity{ } }); - + ArrayList list = new ArrayList(); + for(int i=0;i adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,list); orgSelector.setAdapter(adapter); - - orgSelector.setSelection(); - orgSelectorn.setOnItemSelectedListener(new OnItemSelectedListener() { + orgSelector.setSelection(selectedOrgPos); + + orgSelector.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView arg0, View arg1, int ID, long arg3) { - //select the specific organization - search.selectOrganisation(globalConfigs.organisations.get(ID)); + + selectedOrgPos = ID; } + + public void onNothingSelected(android.widget.AdapterView arg0) { + } + }); } public void disableView(View view){ diff --git a/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java b/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java index 8fe52100a9..a681d895ef 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java @@ -33,7 +33,7 @@ public class GlobalConfigs { //to parse date from requests public static final String datePattern = "yyyy-MM-dd'T'hh:mm:ssZ"; - + /** The locale. */ public String locale = "en-US"; diff --git a/Open-ILS/src/Android/src/org/evergreen/android/views/AccountScreenDashboard.java b/Open-ILS/src/Android/src/org/evergreen/android/views/AccountScreenDashboard.java index 86dc83a4cd..fae20d0866 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/views/AccountScreenDashboard.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/views/AccountScreenDashboard.java @@ -2,7 +2,8 @@ package org.evergreen.android.views; import org.evergreen.android.R; -import org.evergreen.android.accountAccess.ItemsCheckOutListView; +import org.evergreen.android.accountAccess.checkout.ItemsCheckOutListView; +import org.evergreen.android.accountAccess.fines.FinesActivity; import org.evergreen.android.accountAccess.holds.HoldsListView; import android.app.Activity; @@ -118,7 +119,7 @@ public class AccountScreenDashboard extends Activity { startActivity (new Intent(getApplicationContext(), HoldsListView.class)); break; case R.id.account_btn_fines : - //startActivity (new Intent(getApplicationContext(), F5Activity.class)); + startActivity (new Intent(getApplicationContext(), FinesActivity.class)); break; case R.id.account_btn_book_bags : //startActivity (new Intent(getApplicationContext(), F6Activity.class)); -- 2.11.0