diff --git a/.idea/misc.xml b/.idea/misc.xml index b15ecee..b8dc4d6 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -41,7 +41,7 @@ - + diff --git a/GSKMTOrange/src/main/AndroidManifest.xml b/GSKMTOrange/src/main/AndroidManifest.xml index 9cc9aed..5543158 100644 --- a/GSKMTOrange/src/main/AndroidManifest.xml +++ b/GSKMTOrange/src/main/AndroidManifest.xml @@ -148,6 +148,10 @@ + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java index f4ae9ed..c0431c6 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java @@ -530,12 +530,15 @@ public class GSKOrangeDB extends SQLiteOpenHelper { public void updateCheckoutStatus(String id, String status) { ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); try { values.put("CHECKOUT_STATUS", status); + values1.put(CommonString.KEY_COVERAGE_STATUS, status); db.update(CommonString.KEY_JOURNEY_PLAN, values, CommonString.KEY_STORE_ID + "='" + id + "'", null); + db.update(CommonString.TABLE_COVERAGE_DATA, values1, CommonString.KEY_STORE_ID + "='" + id + "'", null); } catch (Exception ex) { @@ -2858,4 +2861,84 @@ public class GSKOrangeDB extends SQLiteOpenHelper { return false; } + public CoverageBean getCoverageSpecificData(String visitdate, String store_id) { + + CoverageBean sb = new CoverageBean(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_COVERAGE_DATA + " where " + + CommonString.KEY_VISIT_DATE + "='" + visitdate + "' AND " + CommonString.KEY_STORE_ID +" ='" + store_id +"'", + null); + + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + // CoverageBean sb = new CoverageBean(); + + sb.setStoreId(dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_STORE_ID))); + sb.setUserId((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_USER_ID)))); + sb.setInTime(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_IN_TIME))))); + sb.setOutTime(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_OUT_TIME))))); + sb.setVisitDate((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_VISIT_DATE)))))); + sb.setLatitude(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_LATITUDE))))); + sb.setLongitude(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_LONGITUDE))))); + sb.setStatus((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_STATUS)))))); + sb.setImage((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_IMAGE)))))); + sb.setReason((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_REASON)))))); + sb.setReasonid((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_REASON_ID)))))); + sb.setMID(Integer.parseInt(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_ID)))))); + if (dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)) == null) { + sb.setRemark(""); + } else { + sb.setRemark((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)))))); + } + + //list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return sb; + } + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return sb; + } + return sb; + } + + //update out time + public void updateCheckoutOuttime(String id, String out_time) { + + ContentValues values = new ContentValues(); + + try { + + values.put(CommonString.KEY_OUT_TIME, out_time); + + db.update(CommonString.KEY_JOURNEY_PLAN, values, CommonString.KEY_STORE_ID + "='" + id + "'", null); + + } catch (Exception ex) { + + } + + } + } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CheckoutActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CheckoutActivity.java new file mode 100644 index 0000000..93cf59e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CheckoutActivity.java @@ -0,0 +1,366 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.download.DownloadActivity; + +public class CheckoutActivity extends AppCompatActivity { + + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private String username, visit_date, store_id, store_intime;; + private Data data; + private SharedPreferences preferences = null; + + GSKOrangeDB db; + String userId, culture_id; + + CoverageBean coverageBean; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_checkout); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + db = new GSKOrangeDB(this); + db.open(); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + username = preferences.getString(CommonString.KEY_USERNAME, null); + + updateResources(getApplicationContext(),preferences.getString(CommonString.KEY_LANGUAGE, "")); + + String store_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + + coverageBean = db.getCoverageSpecificData(visit_date,store_id); + /* FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + });*/ + + new BackgroundTask(CheckoutActivity.this).execute(); + } + + private class BackgroundTask extends AsyncTask { + private Context context; + + BackgroundTask(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + // TODO Auto-generated method stub + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle("Sending Checkout Data"); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + + } + + @SuppressWarnings("deprecation") + @Override + protected String doInBackground(Void... params) { + // TODO Auto-generated method stub + + try { + + //String result = ""; + data = new Data(); + + data.value = 20; + data.name = "Checked out Data Uploading"; + publishProgress(data); + + String onXML = "[STORE_CHECK_OUT_STATUS][USER_ID]" + + username + + "[/USER_ID]" + "[STORE_ID]" + + store_id + + "[/STORE_ID][LATITUDE]" + + coverageBean.getLatitude() + + "[/LATITUDE][LOGITUDE]" + + coverageBean.getLongitude() + + "[/LOGITUDE][CHECKOUT_DATE]" + + visit_date + + "[/CHECKOUT_DATE][CHECK_OUTTIME]" + + getCurrentTime() + + "[/CHECK_OUTTIME][CHECK_INTIME]" + + store_intime + + "[/CHECK_INTIME][CREATED_BY]" + + username + + "[/CREATED_BY][/STORE_CHECK_OUT_STATUS]"; + + final String sos_xml = "[DATA]" + onXML + + "[/DATA]"; + + SoapObject request = new SoapObject( + CommonString.NAMESPACE, + "Upload_Store_ChecOut_Status"); + request.addProperty("onXML", sos_xml); + /*request.addProperty("KEYS", "CHECKOUT_STATUS"); + request.addProperty("USERNAME", username);*/ + //request.addProperty("MID", mid); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + + androidHttpTransport.call( + CommonString.SOAP_ACTION+"Upload_Store_ChecOut_Status", + envelope); + Object result = (Object) envelope.getResponse(); + + if (!result.toString().equalsIgnoreCase( + CommonString.KEY_SUCCESS)) { + return "Upload_Store_ChecOut_Status"; + } + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_NO_DATA)) { + return "Upload_Store_ChecOut_Status"; + } + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_FAILURE)) { + return "Upload_Store_ChecOut_Status"; + } + + + data.value = 100; + data.name = "Checkout Done"; + publishProgress(data); + + if (result.toString() + .equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + db.updateCheckoutOuttime(store_id, getCurrentTime()); + + SharedPreferences.Editor editor = preferences.edit(); + editor.putString(CommonString.KEY_STORE_ID, ""); + editor.putString(CommonString.KEY_STORE_NAME, ""); + editor.putString(CommonString.KEY_VISIT_DATE, ""); + editor.putString(CommonString.KEY_CAMERA_ALLOW, ""); + editor.putString(CommonString.KEY_CHECKOUT_STATUS, ""); + editor.putString(CommonString.KEY_CLASS_ID, ""); + editor.putString(CommonString.KEY_EMP_ID, ""); + editor.putString(CommonString.KEY_GEO_TAG, ""); + editor.putString(CommonString.KEY_KEYACCOUNT_ID, ""); + editor.putString(CommonString.KEY_STORETYPE_ID, ""); + editor.putString(CommonString.KEY_UPLOAD_STATUS, ""); + + editor.commit(); + + db.updateCheckoutStatus(store_id, CommonString.KEY_C); + + } else { + if (result.toString().equalsIgnoreCase( + CommonString.KEY_FALSE)) { + return "Upload_Store_ChecOut_Status"; + } + + + } + return CommonString.KEY_SUCCESS; + + } catch (MalformedURLException e) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + + } catch (IOException e) { + + // counter++; + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_SOCKETEXCEPTION); + // TODO Auto-generated method stub + /* + * if (counter < 10) { new + * BackgroundTask(CheckOutUploadActivity + * .this).execute(); } else { message.showMessage(); + * counter =1; } + */ + } + }); + } catch (Exception e) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + } + + return ""; + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + + } + + @Override + protected void onPostExecute(String result) { + // TODO Auto-generated method stub + super.onPostExecute(result); + + dialog.dismiss(); + + if (result.equals(CommonString.KEY_SUCCESS)) { + + showAlert(getString(R.string.checkout_successful)); + + finish(); + + } else if (!result.equals("")) { + /*AlertMessage message = new AlertMessage( + CheckOutStoreActivity.this, CommonString1.ERROR + result, "success", null); + message.showMessage();*/ + + Toast.makeText(getApplicationContext(), "Network Error Try Again", Toast.LENGTH_SHORT).show(); + finish(); + + } + + } + + } + + class Data { + int value; + String name; + } + + @Override + protected void onResume() { + super.onResume(); + updateResources(getApplicationContext(),preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + + private static boolean updateResources(Context context, String language) { + + String lang ; + + if(language.equalsIgnoreCase("English")){ + lang = "EN"; + } + else if(language.equalsIgnoreCase("UAE")) { + lang = "AR"; + } + else { + lang = "TR"; + } + + Locale locale = new Locale(lang); + Locale.setDefault(locale); + + Resources resources = context.getResources(); + + Configuration configuration = resources.getConfiguration(); + configuration.locale = locale; + + resources.updateConfiguration(configuration, resources.getDisplayMetrics()); + + return true; + } + + public String getCurrentTime() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + /* String intime = m_cal.get(Calendar.HOUR_OF_DAY) + ":" + + m_cal.get(Calendar.MINUTE) + ":" + m_cal.get(Calendar.SECOND);*/ + + return cdate; + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(CheckoutActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + /* Intent i = new Intent(activity, StorelistActivity.class); + activity.startActivity(i); + activity.finish();*/ + finish(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } +} diff --git a/GSKMTOrange/src/main/res/layout/activity_checkout.xml b/GSKMTOrange/src/main/res/layout/activity_checkout.xml new file mode 100644 index 0000000..f4f9108 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_checkout.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/content_checkout.xml b/GSKMTOrange/src/main/res/layout/content_checkout.xml new file mode 100644 index 0000000..2be6ee3 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/content_checkout.xml @@ -0,0 +1,16 @@ + + + + diff --git a/GSKMTOrange/src/main/res/values/strings.xml b/GSKMTOrange/src/main/res/values/strings.xml index ebcbf6f..01796e9 100644 --- a/GSKMTOrange/src/main/res/values/strings.xml +++ b/GSKMTOrange/src/main/res/values/strings.xml @@ -212,5 +212,7 @@ Hello blank fragment + CheckoutActivity + Checkout Success