From 1defc05bf18c49a81deb116943acceda6119c4a1 Mon Sep 17 00:00:00 2001 From: yadavendras Date: Thu, 11 Oct 2018 18:42:13 +0530 Subject: [PATCH] YSY commit --- .../com/gskmtorange/Database/GSKOrangeDB.java | 101 ++++- .../cpm/com/gskmtorange/MainActivity.java | 21 +- .../gskmtorange/constant/CommonString.java | 4 +- .../dailyentry/DeliveryCallActivity.java | 379 +++++++++++++++++- .../DeliveryCallAddStoreActivity.java | 45 ++- .../upload/UploadImageWithRetrofit.java | 97 +++++ .../DeliveryCallsGetterSetter.java | 80 ++++ GSKMTOrange/src/main/res/drawable/upload.png | Bin 0 -> 5246 bytes .../res/layout/activity_delivery_call.xml | 12 +- .../activity_delivery_call_add_store.xml | 1 + .../main/res/layout/content_delivery_call.xml | 14 +- .../main/res/layout/delivery_calls_item.xml | 104 +++++ .../main/res/menu/activity_main_drawer.xml | 2 +- GSKMTOrange/src/main/res/values/strings.xml | 2 +- 14 files changed, 838 insertions(+), 24 deletions(-) create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DeliveryCallsGetterSetter.java create mode 100644 GSKMTOrange/src/main/res/drawable/upload.png create mode 100644 GSKMTOrange/src/main/res/layout/delivery_calls_item.xml 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 bd97dac..df278d0 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java @@ -36,6 +36,7 @@ import cpm.com.gskmtorange.xmlGetterSetter.CategoryWisePerformaceGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.ChatMessageDownloadGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationContrywiseGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DeliveryCallsGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.DisplayChecklistMasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.DisplayMasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.GapsChecklistGetterSetter; @@ -82,7 +83,7 @@ import cpm.com.gskmtorange.xmlGetterSetter.TableBean; */ public class GSKOrangeDB extends SQLiteOpenHelper { - public static final String DATABASE_NAME = "GSK_ORANGE_DB37"; + public static final String DATABASE_NAME = "GSK_ORANGE_DB38"; public static final int DATABASE_VERSION = 15; TableBean tableBean; private SQLiteDatabase db; @@ -190,6 +191,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper { db.execSQL(CommonString.CREATE_TABLE_AUDIT_DATA_SAVE); db.execSQL(CommonString.CREATE_TABLE_POG_DATA_SAVE); db.execSQL(CommonString.CREATE_TABLE_COACHING_VISIT); + db.execSQL(CommonString.CREATE_TABLE_DELIVERY_CALLS);//--Added 09.10.2018 } catch (SQLException e) { e.printStackTrace(); @@ -6693,4 +6695,101 @@ public class GSKOrangeDB extends SQLiteOpenHelper { } return list; } + + //DELIVERY_CALLS + public void InsertDeliveryCalls(DeliveryCallsGetterSetter data) { + //db.delete("DELIVERY_CALLS", null, null); + + ContentValues values = new ContentValues(); + try { + values.put(CommonString.KEY_STORE_NAME, data.getSTORE_NAME()); + values.put(CommonString.KEY_ADDRESS, data.getADDRESS()); + values.put(CommonString.KEY_IMAGE, data.getIN_TIME_IMAGE()); + values.put(CommonString.KEY_IMAGE1, data.getOUT_TIME_IMAGE()); + values.put(CommonString.KEY_UPLOAD_STATUS, data.getUPLOAD_STATUS()); + values.put(CommonString.KEY_VISIT_DATE, data.getVISIT_DATE()); + values.put(CommonString.KEY_IN_TIME, data.getIn_time()); + + db.insert("DELIVERY_CALLS", null, values); + + } catch (Exception ex) { + Log.d("Exception ", " in DELIVERY_CALLS " + ex.toString()); + } + } + + public void updateDeliveryCallsOut(DeliveryCallsGetterSetter deliveryCallData, String status, String out_time_image) { + + ContentValues values = new ContentValues(); + + try { + + values.put(CommonString.KEY_IMAGE1, out_time_image); + values.put(CommonString.KEY_UPLOAD_STATUS, status); + values.put(CommonString.KEY_OUT_TIME, deliveryCallData.getOut_time()); + + db.update(CommonString.TABLE_DELIVERY_CALLS, values, CommonString.KEY_ID + "='" + deliveryCallData.getId() + "'", null); + + } catch (Exception ex) { + + } + + } + + // get Delivery Calls data + public ArrayList getDeliveryCallsData(String visit_date) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + if(visit_date==null){ + dbcursor = db.rawQuery("SELECT * FROM DELIVERY_CALLS ", null); + } + else { + dbcursor = db.rawQuery("SELECT * FROM DELIVERY_CALLS WHERE VISIT_DATE='" + visit_date + "'", null); + } + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + DeliveryCallsGetterSetter msg = new DeliveryCallsGetterSetter(); + + msg.setADDRESS(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ADDRESS))); + msg.setSTORE_NAME(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORE_NAME))); + msg.setIN_TIME_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE))); + msg.setOUT_TIME_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE1))); + msg.setUPLOAD_STATUS(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_UPLOAD_STATUS))); + msg.setId(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ID))); + msg.setIn_time(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IN_TIME))); + msg.setOut_time(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_OUT_TIME))); + msg.setVISIT_DATE(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_VISIT_DATE))); + + list.add(msg); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Chat Message" + e.toString()); + } + return list; + } + + public void updateDeliveryCallsUploadStatus(String key_id) { + + ContentValues values = new ContentValues(); + + try { + values.put(CommonString.KEY_UPLOAD_STATUS, CommonString.KEY_U); + db.update(CommonString.TABLE_DELIVERY_CALLS, values, CommonString.KEY_ID + "='" + key_id + "'", null); + + } catch (Exception ex) { + + } + + } + } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java index ccede9b..0e89d7c 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java @@ -387,12 +387,25 @@ public class MainActivity extends AppCompatActivity } }else if(id == R.id.nav_deviation){ - Intent in = new Intent(this, StoreListActivity.class); - in.putExtra(CommonString.KEY_STORE_FLAG, CommonString.FROM_DEVIATION); - startActivity(in); + db.open(); + + if ( db.getSKUMasterData().size() == 0) { + + Snackbar.make(webView, R.string.title_store_list_download_data, Snackbar.LENGTH_SHORT) + .setAction("Action", null).show(); + + // Toast.makeText(getBaseContext(), "Please Download Data First", Toast.LENGTH_LONG).show(); + } else { + + Intent in = new Intent(this, StoreListActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, CommonString.FROM_DEVIATION); + + startActivity(in); + + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } - overridePendingTransition(R.anim.activity_in, R.anim.activity_out); }else if(id == R.id.nav_delivery_call){ Intent in = new Intent(this, DeliveryCallActivity.class); startActivity(in); diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java index 886af72..360cf92 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java @@ -236,10 +236,12 @@ public class CommonString { public static final String CREATE_TABLE_DELIVERY_CALLS= "CREATE TABLE IF NOT EXISTS " + TABLE_DELIVERY_CALLS + " (" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," - + KEY_STORE_NAME+ " INTEGER," + + KEY_STORE_NAME+ " VARCHAR," + KEY_ADDRESS + " VARCHAR," + KEY_IMAGE + " VARCHAR," + KEY_IMAGE1 + " VARCHAR," + + KEY_IN_TIME + " VARCHAR," + + KEY_OUT_TIME + " VARCHAR," + KEY_UPLOAD_STATUS + " VARCHAR," + KEY_VISIT_DATE + " VARCHAR)"; diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java index 9a29520..7ab5dd0 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java @@ -1,16 +1,60 @@ package cpm.com.gskmtorange.dailyentry; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; +import android.content.SharedPreferences; +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.CardView; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; +import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; +import com.crashlytics.android.Crashlytics; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.StoreBean; import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.upload.UploadActivity; +import cpm.com.gskmtorange.upload.UploadImageWithRetrofit; +import cpm.com.gskmtorange.xmlGetterSetter.DeliveryCallsGetterSetter; -public class DeliveryCallActivity extends AppCompatActivity { +public class DeliveryCallActivity extends AppCompatActivity implements View.OnClickListener { + + private SharedPreferences preferences; + private GSKOrangeDB database; + String visit_date, userId; + ArrayList deliveryCallsList; + RecyclerView recyclerView; + DeliveryAdapter deliveryAdapter; + FloatingActionButton fab_upload, fab; @Override protected void onCreate(Bundle savedInstanceState) { @@ -19,16 +63,331 @@ public class DeliveryCallActivity extends AppCompatActivity { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); - FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); - fab.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - Intent in = new Intent(getApplicationContext(), DeliveryCallAddStoreActivity.class); - startActivity(in); + recyclerView = (RecyclerView) findViewById(R.id.rec_delivery_calls); + fab = (FloatingActionButton) findViewById(R.id.fab); + fab_upload = (FloatingActionButton) findViewById(R.id.fab_upload); - overridePendingTransition(R.anim.activity_in, R.anim.activity_out); - } - }); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + userId = preferences.getString(CommonString.KEY_USERNAME, null); + + database = new GSKOrangeDB(this); + database.open(); + + fab.setOnClickListener(this); + fab_upload.setOnClickListener(this); } + @Override + public void onClick(View v) { + + int id = v.getId(); + + switch (id) { + + case R.id.fab_upload: + + new UploadTask().execute(); + break; + + case R.id.fab: + + if (isCheckedIn()) { + Snackbar.make(recyclerView, getString(R.string.title_store_list_checkout_current), Snackbar.LENGTH_SHORT).show(); + } else { + + Intent in = new Intent(getApplicationContext(), DeliveryCallAddStoreActivity.class); + startActivity(in); + + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + + break; + } + } + + class DeliveryAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + List data = Collections.emptyList(); + + public DeliveryAdapter(Context context, List data) { + + inflator = LayoutInflater.from(context); + this.data = data; + + } + + @Override + public DeliveryAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = inflator.inflate(R.layout.delivery_calls_item, parent, false); + + DeliveryAdapter.MyViewHolder holder = new DeliveryAdapter.MyViewHolder(view); + + return holder; + } + + @Override + public void onBindViewHolder(DeliveryAdapter.MyViewHolder holder, int position) { + final DeliveryCallsGetterSetter current = data.get(position); + holder.tv_store_name.setText(current.getSTORE_NAME()); + holder.tv_store_address.setText(current.getADDRESS()); + + if (current.getUPLOAD_STATUS().equals(CommonString.KEY_CHECK_IN)) { + holder.imageview.setVisibility(View.INVISIBLE); + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.green)); + } else if (current.getUPLOAD_STATUS().equals(CommonString.KEY_U)) { + holder.imageview.setVisibility(View.VISIBLE); + holder.imageview.setBackgroundResource(R.mipmap.tick); + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + }else if (current.getUPLOAD_STATUS().equals(CommonString.KEY_C)) { + holder.imageview.setVisibility(View.VISIBLE); + holder.imageview.setBackgroundResource(R.mipmap.exclamation); + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + holder.imageview.setVisibility(View.INVISIBLE); + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } + + holder.cardView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (current.getUPLOAD_STATUS().equals(CommonString.KEY_CHECK_IN)) { + + Intent in = new Intent(getApplicationContext(), DeliveryCallAddStoreActivity.class); + in.putExtra(CommonString.KEY_STORE_ID, current); + in.putExtra(CommonString.KEY_STORE_FLAG, false); + startActivity(in); + + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (current.getUPLOAD_STATUS().equals(CommonString.KEY_U)) { + Snackbar.make(v, R.string.title_store_list_activity_store_already_done, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else if (current.getUPLOAD_STATUS().equals(CommonString.KEY_C)) { + Snackbar.make(v, R.string.title_store_list_activity_store_already_checkout, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + } + }); + } + + @Override + public int getItemCount() { + return deliveryCallsList.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView tv_store_name, tv_store_address; + CardView cardView; + ImageView imageview; + + public MyViewHolder(View itemView) { + super(itemView); + + tv_store_name = (TextView) itemView.findViewById(R.id.tv_store_name); + tv_store_address = (TextView) itemView.findViewById(R.id.tv_store_address); + cardView = (CardView) itemView.findViewById(R.id.card_view); + imageview = (ImageView) itemView.findViewById(R.id.delivery_ico); + } + } + } + + @Override + protected void onResume() { + super.onResume(); + + deliveryCallsList = database.getDeliveryCallsData(visit_date); + + if (deliveryCallsList.size() > 0) { + //list.setAdapter(new MyAdaptor()); + deliveryAdapter = new DeliveryAdapter(getApplicationContext(), deliveryCallsList); + recyclerView.setAdapter(deliveryAdapter); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + + if (isCheckedIn()) { + fab_upload.setVisibility(View.GONE); + } else if (isUploadAble()) { + fab_upload.setVisibility(View.VISIBLE); + } + } + } + + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + Object result = ""; + + class Data { + int value; + String name; + } + + class UploadTask extends AsyncTask { + + @Override + protected void onPreExecute() { + super.onPreExecute(); + dialog = new Dialog(DeliveryCallActivity.this); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getString(R.string.uploaddata)); + 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); + ((TextView) dialog.findViewById(R.id.tv_title)).setText(getString(R.string.uploaddata)); + } + + @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 String doInBackground(Void... voids) { + try { + Data data = new Data(); + ArrayList _deliveryCallsList = database.getDeliveryCallsData(null); + for (int i = 0; i < _deliveryCallsList.size(); i++) { + + if (_deliveryCallsList.get(i).getUPLOAD_STATUS().equals(CommonString.KEY_C)) { + + data.value = 50; + data.name = getString(R.string.delivery_call); + publishProgress(data); + + String onXML = "[DELIVERY_CALLS_DATA]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[VISIT_DATE]" + _deliveryCallsList.get(i).getVISIT_DATE() + "[/VISIT_DATE]" + + "[STORE_NAME]" + _deliveryCallsList.get(i).getSTORE_NAME() + "[/STORE_NAME]" + + "[STORE_ADDRESS]" + _deliveryCallsList.get(i).getADDRESS() + "[/STORE_ADDRESS]" + + "[IN_TIME]" + _deliveryCallsList.get(i).getIn_time() + "[/IN_TIME]" + + "[OUT_TIME]" + _deliveryCallsList.get(i).getOut_time() + "[/OUT_TIME]" + + "[IN_TIME_IMAGE]" + _deliveryCallsList.get(i).getIN_TIME_IMAGE() + "[/IN_TIME_IMAGE]" + + "[OUT_TIME_IMAGE]" + _deliveryCallsList.get(i).getOUT_TIME_IMAGE()+ "[/OUT_TIME_IMAGE]" + + "[/DELIVERY_CALLS_DATA]"; + + final String delivery_xml = "[DATA]" + onXML + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", delivery_xml); + request.addProperty("KEYS", "DELIVERY_CALLS"); + request.addProperty("USERNAME", userId); + request.addProperty("MID", 0); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_STOCK_XML_DATA, envelope); + result = envelope.getResponse(); + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + else { + database.open(); + database.updateDeliveryCallsUploadStatus(_deliveryCallsList.get(i).getId()); + } + } + } + + return result.toString(); + + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + Crashlytics.logException(e.getCause()); + Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (Exception e) { + Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + Crashlytics.logException(e.getCause()); + Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } + + + return null; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + dialog.dismiss(); + if (result.contains(CommonString.KEY_SUCCESS)) { + //db.deleteAllTables(); + + File f = new File(CommonString.FILE_PATH); + File fileAll[] = f.listFiles(); + ArrayList file_list = new ArrayList<>(); + + for (int i = 0; i < fileAll.length; i++) { + String name = fileAll[i].getName(); + if(name.contains("CoachingVisit")){ + file_list.add(name); + } + } + + UploadImageWithRetrofit.uploadedFiles = 0; + UploadImageWithRetrofit.totalFiles = file_list.size(); + UploadImageWithRetrofit uploadImg = new UploadImageWithRetrofit(visit_date, userId, DeliveryCallActivity.this); + uploadImg.UploadDeliveryImageRecursive(DeliveryCallActivity.this, file_list, 0); + + } else { + showAlert(getString(R.string.error) + result.toString()); + } + } + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(DeliveryCallActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.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(); + } + + + boolean isCheckedIn() { + boolean flag = false; + for (int i = 0; i < deliveryCallsList.size(); i++) { + if (deliveryCallsList.get(i).getUPLOAD_STATUS().equals(CommonString.KEY_CHECK_IN)) { + flag = true; + break; + } + } + return flag; + } + + boolean isUploadAble() { + boolean flag = false; + for (int i = 0; i < deliveryCallsList.size(); i++) { + if (deliveryCallsList.get(i).getUPLOAD_STATUS().equals(CommonString.KEY_C)) { + flag = true; + break; + } + } + return flag; + } } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java index bd3e57a..5c9883f 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java @@ -25,9 +25,11 @@ import com.crashlytics.android.Crashlytics; import java.io.File; import java.util.List; +import cpm.com.gskmtorange.Database.GSKOrangeDB; import cpm.com.gskmtorange.R; import cpm.com.gskmtorange.constant.CommonFunctions; import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.DeliveryCallsGetterSetter; public class DeliveryCallAddStoreActivity extends AppCompatActivity implements View.OnClickListener{ @@ -35,10 +37,12 @@ public class DeliveryCallAddStoreActivity extends AppCompatActivity implements V ImageView img_checkin, img_checkout; String name, address, error_msg, img_checkin_path="", img_checkout_path=""; boolean checkin_flag = true; - protected String _pathforcheck = "", _path, str, visit_date; + protected String _pathforcheck = "", _path, str, visit_date, in_time, out_time; private SharedPreferences preferences; Uri outputFileUri; String gallery_package = ""; + private GSKOrangeDB database; + DeliveryCallsGetterSetter deliveryCallsData; @Override protected void onCreate(Bundle savedInstanceState) { @@ -47,6 +51,9 @@ public class DeliveryCallAddStoreActivity extends AppCompatActivity implements V Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); + database = new GSKOrangeDB(this); + database.open(); + et_customer = findViewById(R.id.et_customer_name); et_address = findViewById(R.id.et_address); img_checkin = findViewById(R.id.img_checkin); @@ -55,10 +62,18 @@ public class DeliveryCallAddStoreActivity extends AppCompatActivity implements V preferences = PreferenceManager.getDefaultSharedPreferences(this); visit_date = preferences.getString(CommonString.KEY_DATE, null); + checkin_flag = getIntent().getBooleanExtra(CommonString.KEY_STORE_FLAG, true); + deliveryCallsData = (DeliveryCallsGetterSetter) getIntent().getSerializableExtra(CommonString.KEY_STORE_ID); + if(checkin_flag){ img_checkin.setOnClickListener(this); } else { + et_customer.setText(deliveryCallsData.getSTORE_NAME()); + et_address.setText(deliveryCallsData.getADDRESS()); + et_customer.setEnabled(false); + et_address.setEnabled(false); + img_checkin.setImageDrawable(getResources().getDrawable(R.mipmap.camera_green)); img_checkout.setOnClickListener(this); } @@ -68,6 +83,27 @@ public class DeliveryCallAddStoreActivity extends AppCompatActivity implements V public void onClick(View view) { if(isValid()){ + if(checkin_flag){ + + DeliveryCallsGetterSetter deliveryCallsGetterSetter = new DeliveryCallsGetterSetter(); + deliveryCallsGetterSetter.setSTORE_NAME(name); + deliveryCallsGetterSetter.setADDRESS(address); + deliveryCallsGetterSetter.setIN_TIME_IMAGE(img_checkin_path); + deliveryCallsGetterSetter.setOUT_TIME_IMAGE(img_checkout_path); + deliveryCallsGetterSetter.setUPLOAD_STATUS(CommonString.KEY_CHECK_IN); + deliveryCallsGetterSetter.setVISIT_DATE(visit_date); + deliveryCallsGetterSetter.setIn_time(in_time); + + database.InsertDeliveryCalls(deliveryCallsGetterSetter); + } + else { + + deliveryCallsData.setOut_time(out_time); + database.updateDeliveryCallsOut(deliveryCallsData, CommonString.KEY_C, img_checkout_path); + } + + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); } else { Snackbar.make(et_customer,error_msg,Snackbar.LENGTH_SHORT).show(); @@ -110,6 +146,9 @@ public class DeliveryCallAddStoreActivity extends AppCompatActivity implements V public void onClick(View v) { switch (v.getId()){ case R.id.img_checkin: + + in_time = CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()); + _pathforcheck = "CoachingVisit" + visit_date.replace("/", "")+ "InTime" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; _path = CommonString.FILE_PATH + _pathforcheck; @@ -119,11 +158,13 @@ public class DeliveryCallAddStoreActivity extends AppCompatActivity implements V case R.id.img_checkout: + out_time = CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()); + _pathforcheck = "CoachingVisit" + visit_date.replace("/", "")+ "OutTime" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; _path = CommonString.FILE_PATH + _pathforcheck; - startCameraActivity(0); + startCameraActivity(1); break; } } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java index f4f2d02..83abdea 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java @@ -326,6 +326,103 @@ public class UploadImageWithRetrofit { } + public void UploadDeliveryImageRecursive(final Context context, final ArrayList file_list, final int index) { + try { + final int[] _index = {index}; + status = 0; + String filename = null, foldername = "DeliveryCallsImages"; + + if (_index[0] < file_list.size()) { + filename = file_list.get(_index[0]); + + pd.setMessage(context.getString(R.string.uploaddata)+" - " +context.getString(R.string.image) + " (" + uploadedFiles + "/" + totalFiles + ")"); + + File originalFile = new File(CommonString.FILE_PATH + filename); + final File finalFile = saveBitmapToFileSmaller(originalFile); + + OkHttpClient okHttpClient = new OkHttpClient(); + okHttpClient.setConnectTimeout(20, TimeUnit.SECONDS); + okHttpClient.setWriteTimeout(20, TimeUnit.SECONDS); + okHttpClient.setReadTimeout(20, TimeUnit.SECONDS); + + com.squareup.okhttp.RequestBody photo = com.squareup.okhttp.RequestBody.create(com.squareup.okhttp.MediaType.parse("application/octet-stream"), finalFile); + body1 = new MultipartBuilder() + .type(MultipartBuilder.FORM) + .addFormDataPart("file", finalFile.getName(), photo) + .addFormDataPart("FolderName", foldername) + .build(); + + adapter = new retrofit.Retrofit.Builder() + .baseUrl(CommonString.URL + "/") + .addConverterFactory(new StringConverterFactory()) + .build(); + PostApiForFile api = adapter.create(PostApiForFile.class); + + retrofit.Call call = api.getUploadImage(body1); + call.enqueue(new retrofit.Callback() { + @Override + public void onResponse(retrofit.Response response) { + if (response.isSuccess() && response.body().contains("Success")) { + finalFile.delete(); + status = 1; + uploadedFiles++; + } else { + status = 0; + //uploadedFiles = 0; + } + if (status == 0) { + pd.dismiss(); + if (!((Activity) context).isFinishing()) { + showAlert((Activity) context, context.getString(R.string.DataNot),false); + } + } else { + UploadDeliveryImageRecursive(context, file_list, ++_index[0]); + } + } + + @Override + public void onFailure(Throwable t) { + if (t instanceof IOException || t instanceof SocketTimeoutException || t instanceof SocketException) { + status = -1; + //uploadedFiles = 0; + pd.dismiss(); + // AlertandMessages.showAlert((Activity) context, "Network Error in upload", false); + if (!((Activity) context).isFinishing()) { + showAlert((Activity) context, context.getString(R.string.NetworkError),false); + } + } + } + }); + + + } else { + + pd.dismiss(); + if (totalFiles == uploadedFiles) { + //region Coverage upload status Data + /*db = new GSKOrangeDB(context); + db.open(); + db.updateDeliveryCallsUploadStatus();*/ + //endregion + //pd.cancel(); + //showAlert((Activity) context, context.getString(R.string.data_uploaded_successfully),true); + } + showAlert((Activity) context, context.getString(R.string.data_uploaded_successfully),true); + } + } catch (JsonSyntaxException e) { + e.printStackTrace(); + showAlert((Activity) context, "Invalid Json",false); + } catch (Exception e) { + e.printStackTrace(); + if (totalFiles == uploadedFiles) { + showAlert((Activity) context, context.getString(R.string.data_uploaded_successfully),true); + } else { + showAlert((Activity) context, CommonString.KEY_FAILURE,false); + } + } + + } + public File saveBitmapToFileSmaller(File file) { File file2 = file; try { diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DeliveryCallsGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DeliveryCallsGetterSetter.java new file mode 100644 index 0000000..d98bece --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DeliveryCallsGetterSetter.java @@ -0,0 +1,80 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.io.Serializable; + +public class DeliveryCallsGetterSetter implements Serializable{ + + String STORE_NAME, ADDRESS, IN_TIME_IMAGE, OUT_TIME_IMAGE, UPLOAD_STATUS, VISIT_DATE, id, in_time, out_time; + + public String getSTORE_NAME() { + return STORE_NAME; + } + + public void setSTORE_NAME(String STORE_NAME) { + this.STORE_NAME = STORE_NAME; + } + + public String getADDRESS() { + return ADDRESS; + } + + public void setADDRESS(String ADDRESS) { + this.ADDRESS = ADDRESS; + } + + public String getIN_TIME_IMAGE() { + return IN_TIME_IMAGE; + } + + public void setIN_TIME_IMAGE(String IN_TIME_IMAGE) { + this.IN_TIME_IMAGE = IN_TIME_IMAGE; + } + + public String getOUT_TIME_IMAGE() { + return OUT_TIME_IMAGE; + } + + public void setOUT_TIME_IMAGE(String OUT_TIME_IMAGE) { + this.OUT_TIME_IMAGE = OUT_TIME_IMAGE; + } + + public String getUPLOAD_STATUS() { + return UPLOAD_STATUS; + } + + public void setUPLOAD_STATUS(String UPLOAD_STATUS) { + this.UPLOAD_STATUS = UPLOAD_STATUS; + } + + public String getVISIT_DATE() { + return VISIT_DATE; + } + + public void setVISIT_DATE(String VISIT_DATE) { + this.VISIT_DATE = VISIT_DATE; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIn_time() { + return in_time; + } + + public void setIn_time(String in_time) { + this.in_time = in_time; + } + + public String getOut_time() { + return out_time; + } + + public void setOut_time(String out_time) { + this.out_time = out_time; + } +} diff --git a/GSKMTOrange/src/main/res/drawable/upload.png b/GSKMTOrange/src/main/res/drawable/upload.png new file mode 100644 index 0000000000000000000000000000000000000000..71ad55bf46d49b2d2bb1494db8c887774e9b8589 GIT binary patch literal 5246 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 literal 0 HcmV?d00001 diff --git a/GSKMTOrange/src/main/res/layout/activity_delivery_call.xml b/GSKMTOrange/src/main/res/layout/activity_delivery_call.xml index 19f47db..e0f1172 100644 --- a/GSKMTOrange/src/main/res/layout/activity_delivery_call.xml +++ b/GSKMTOrange/src/main/res/layout/activity_delivery_call.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".dailyentry.DeliveryCallActivity"> + app:srcCompat="@drawable/add" /> + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_delivery_call_add_store.xml b/GSKMTOrange/src/main/res/layout/activity_delivery_call_add_store.xml index 367d88f..bb59cb1 100644 --- a/GSKMTOrange/src/main/res/layout/activity_delivery_call_add_store.xml +++ b/GSKMTOrange/src/main/res/layout/activity_delivery_call_add_store.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".dailyentry.DeliveryCallAddStoreActivity"> - + tools:showIn="@layout/activity_delivery_call" + android:background="@color/grey_background"> - \ No newline at end of file + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/delivery_calls_item.xml b/GSKMTOrange/src/main/res/layout/delivery_calls_item.xml new file mode 100644 index 0000000..71d4da1 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/delivery_calls_item.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +