return response;
}
- public Object createHold(Integer recordID, Integer pickup_lib, boolean email_notify, boolean phone_notify, String phone, boolean suspendHold, String expire_time,String thaw_date){
+ public String[] createHold(Integer recordID, Integer pickup_lib, boolean email_notify, boolean phone_notify, String phone, boolean suspendHold, String expire_time,String thaw_date){
OSRFObject ahr = new OSRFObject("ahr");
ahr.put("target", recordID);
ahr.put("requestor", userID);
//TODO
- //do not set hold type, the systems knows the hold type
- ahr.put("hold_type", null);
+ //only gold type 'T' for now
+ ahr.put("hold_type", "T");
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)
Object response = Utils.doRequest(conn,SERVICE_CIRC, METHOD_CREATE_HOLD, new Object[]{authToken,ahr});
- return response;
+ String[] resp = new String[3];
+ //if we can get hold ID then we return true
+ try{
+
+ List<Integer> list= (List<Integer>)response;
+ if(list.get(0)>-1)
+ resp[0] = "true";
+
+
+ }catch(Exception e){
+
+ List<?> respErrorMessage = (List<?>) response;
+
+ Object map = respErrorMessage.get(0);
+ resp[0]="false";
+
+ resp[1] = ((Map<String,String>)map).get("textcode");
+ resp[2] = ((Map<String,String>)map).get("desc");
+ };
+
+ System.out.println("Result " + resp[1] + " " + resp[2]);
+
+ //else we return false
+ return resp;
}
// ?? return boolean
public Object isHoldPossible(Integer pickup_lib,Integer recordID){
import android.app.Activity;
import android.app.DatePickerDialog;
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.graphics.Color;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.View;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
+import android.widget.Toast;
public class PlaceHold extends Activity{
private Date thaw_date = null;
+ private Runnable placeHoldRunnable;
+
private GlobalConfigs globalConfigs = null;
private int selectedOrgPos = 0;
+
+ private ProgressDialog progressDialog;
+
+ private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
globalConfigs = GlobalConfigs.getGlobalConfigs(this);
RecordInfo record = (RecordInfo) getIntent().getSerializableExtra("recordInfo");
+ context = this;
+
accountAccess = AccountAccess.getAccountAccess();
recipient = (TextView) findViewById(R.id.hold_recipient);
final Integer record_id = record.doc_id;
- placeHold.setOnClickListener(new OnClickListener() {
+ placeHoldRunnable = new Runnable() {
+
@Override
- public void onClick(View v) {
+ public void run() {
+
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ progressDialog = ProgressDialog.show(context, "Please wait", "Placing hold");
+ }
+ });
accountAccess.getHoldPreCreateInfo(record_id, 4);
accountAccess.isHoldPossible(4, record_id);
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);
+
+ final String[] holdPlaced = accountAccess.createHold(record_id,selectedOrgID,email_notification.isChecked(),phone_notification.isChecked(),phone_number.getText().toString(),suspendHold.isChecked(),expire_date_s,thaw_date_s);
+
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ progressDialog.dismiss();
+
+ if(holdPlaced[0].equals("true")){
+ Toast.makeText(context, "Hold Succesfully placed", Toast.LENGTH_LONG).show();
+ finish();
+ }
+ else
+ Toast.makeText(context, "Error in placing hold : " + holdPlaced[2], Toast.LENGTH_LONG).show();
+
+
+ }
+ });
+ }
+ };
+
+ placeHold.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ Thread placeholdThread = new Thread(placeHoldRunnable);
+ placeholdThread.start();
}
});
}
});
}
-
public void disableView(View view){
//view.setFocusable(false);
+ view.setFocusable(false);
- view.setVisibility(View.INVISIBLE);
+ view.setBackgroundColor(Color.argb(255, 100, 100, 100));
+ //view.setVisibility(View.INVISIBLE);
}
public void enableView(View view){
- view.setVisibility(View.VISIBLE);
+ //view.setVisibility(View.VISIBLE);
+
+ view.setFocusableInTouchMode(true);
+
+ view.setBackgroundColor(Color.argb(255, 255,255,255));
}
}