From d502e77df91a3d3ea4546c76e9f22a3f4a04b30a Mon Sep 17 00:00:00 2001 From: upendrak Date: Fri, 31 Jan 2020 18:24:23 +0530 Subject: [PATCH] usk_promotion --- .idea/codeStyles/Project.xml | 116 +++ .idea/gradle.xml | 4 + .idea/misc.xml | 2 +- GSKMTOrange/build.gradle | 10 +- GSKMTOrange/src/main/AndroidManifest.xml | 7 + .../com/gskmtorange/Database/GSKOrangeDB.java | 280 +++++- .../cpm/com/gskmtorange/LoginActivity.java | 12 +- .../gskmtorange/SelectLanguageActivity.java | 4 - .../gskmtorange/constant/CommonFunctions.java | 4 - .../gskmtorange/constant/CommonString.java | 68 +- .../dailyentry/CompetitionPromoActivity.java | 809 ++++++++++++++++++ .../CounterfeitProductsActivity.java | 1 - .../dailyentry/StoreListActivity.java | 2 +- .../download/DownloadActivity.java | 64 +- .../gsk_dailyentry/CategoryListActivity.java | 19 + .../CategoryWisePerformanceActivity.java | 7 +- .../gsk_dailyentry/DailyDataMenuActivity.java | 27 + .../StoreWisePerformanceActivity.java | 7 +- .../upload/PreviousDataUploadActivity.java | 72 ++ .../gskmtorange/upload/UploadActivity.java | 72 ++ .../upload/UploadImageWithRetrofit.java | 2 +- .../BrandMasterGetterSetter.java | 10 + .../CompetitonPromoGetterSetter.java | 105 +++ .../PROMOTION_TYPE_MASTERGetterSetter.java | 35 + .../STORE_PERFORMANCE_MasterGetterSetter.java | 9 - .../xmlGetterSetter/TableBean.java | 9 + .../gskmtorange/xmlHandlers/XMLHandlers.java | 37 +- .../res/layout/activity_compition_promo.xml | 33 + .../content_category_wise_performance.xml | 16 +- .../res/layout/content_compition_promo.xml | 299 +++++++ .../layout/content_store_wise_performance.xml | 17 +- .../layout/item_category_wise_performance.xml | 17 +- .../res/layout/item_competition_promo.xml | 62 ++ .../layout/item_store_wise_performance.xml | 17 +- .../src/main/res/mipmap-hdpi/competition.png | Bin 0 -> 17492 bytes .../main/res/mipmap-hdpi/competition_done.png | Bin 0 -> 27861 bytes .../src/main/res/values-ar-rAE/string.xml | 8 + .../src/main/res/values-ar-rEG/string.xml | 13 +- .../src/main/res/values-ar-rSA/string.xml | 7 + GSKMTOrange/src/main/res/values-ar/string.xml | 7 + GSKMTOrange/src/main/res/values-tr/string.xml | 7 + GSKMTOrange/src/main/res/values/strings.xml | 55 +- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- .../multispinnerfilter/BuildConfig.java | 5 + .../logs/manifest-merger-debug-report.txt | 60 +- 46 files changed, 2213 insertions(+), 210 deletions(-) create mode 100644 .idea/codeStyles/Project.xml create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CompetitionPromoActivity.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CompetitonPromoGetterSetter.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PROMOTION_TYPE_MASTERGetterSetter.java create mode 100644 GSKMTOrange/src/main/res/layout/activity_compition_promo.xml create mode 100644 GSKMTOrange/src/main/res/layout/content_compition_promo.xml create mode 100644 GSKMTOrange/src/main/res/layout/item_competition_promo.xml create mode 100644 GSKMTOrange/src/main/res/mipmap-hdpi/competition.png create mode 100644 GSKMTOrange/src/main/res/mipmap-hdpi/competition_done.png diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..681f41a --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,116 @@ + + + + + + + +
+ + + + xmlns:android + + ^$ + + + +
+
+ + + + xmlns:.* + + ^$ + + + BY_NAME + +
+
+ + + + .*:id + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + .*:name + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + name + + ^$ + + + +
+
+ + + + style + + ^$ + + + +
+
+ + + + .* + + ^$ + + + BY_NAME + +
+
+ + + + .* + + http://schemas.android.com/apk/res/android + + + ANDROID_ATTRIBUTE_ORDER + +
+
+ + + + .* + + .* + + + BY_NAME + +
+
+
+
+
+
\ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index e4e2330..865d964 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -3,6 +3,9 @@ diff --git a/.idea/misc.xml b/.idea/misc.xml index d1a5190..6229e93 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,7 +42,7 @@ - + diff --git a/GSKMTOrange/build.gradle b/GSKMTOrange/build.gradle index fda9071..b200704 100644 --- a/GSKMTOrange/build.gradle +++ b/GSKMTOrange/build.gradle @@ -21,15 +21,15 @@ android { targetSdkVersion 26 //For Egypt - /*versionCode 27 - versionName "3.9"*/ + versionCode 28 + versionName "4.0" //For UAE /*versionCode 24 versionName "3.6"*/ //For Turkey - /*versionCode 23 + /* versionCode 23 versionName "3.5"*/ //For KSA @@ -37,8 +37,8 @@ android { versionName "3.7"*/ //For SA - versionCode 26 - versionName "3.7" + /* versionCode 26 + versionName "3.7"*/ multiDexEnabled true diff --git a/GSKMTOrange/src/main/AndroidManifest.xml b/GSKMTOrange/src/main/AndroidManifest.xml index 6d7d3fc..d274fc3 100644 --- a/GSKMTOrange/src/main/AndroidManifest.xml +++ b/GSKMTOrange/src/main/AndroidManifest.xml @@ -358,6 +358,13 @@ android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustPan" /> + counterfeitProductListData, String category_id, String store_id, boolean exists) { + + try { + db.delete(CommonString.TABLE_INSERT_COMPETIOTIONN_PROMO, "STORE_ID = '"+ store_id +"' AND CATEGORY_ID ='"+ category_id +"'", null); + db.delete(CommonString.TABLE_INSERT_COMPETIOTIONN_PROMO_EXISTS, "STORE_ID = '"+ store_id +"' AND CATEGORY_ID ='"+ category_id +"'", null); + + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + int existexist_int = 0; + + if(exists){ + existexist_int = 1; + } + + values1.put("STORE_ID", Integer.parseInt(store_id)); + values1.put("CATEGORY_ID", Integer.parseInt(category_id)); + values1.put("Existss", existexist_int); + + long id = db.insert(CommonString.TABLE_INSERT_COMPETIOTIONN_PROMO_EXISTS, null, values1); + + + db.beginTransaction(); + for (int i = 0; i < counterfeitProductListData.size(); i++) { + CompetitonPromoGetterSetter data = counterfeitProductListData.get(i); + + values.put("STORE_ID", Integer.parseInt(store_id)); + values.put("CATEGORY_ID", Integer.parseInt(category_id)); + values.put("BRAND_ID", data.getBrandId()); + values.put("BRAND", data.getBrand()); + values.put("PROMOTION_ID", data.getPromotion_id()); + values.put("PROMOTION", data.getPromotion()); + values.put("SKU", data.getSkuName()); + values.put("IMAGE", data.getImgStr()); + values.put("IMAGE1", data.getImgStr1()); + values.put("IMAGE2", data.getImgStr2()); + values.put("COMMON_ID", id); + + db.insert(CommonString.TABLE_INSERT_COMPETIOTIONN_PROMO, null, values); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", "Counterfeit Data " + ex.toString()); + } + } + + public ArrayList getCompetitionPromoExistsAfterData(String store_id, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if(category_id==null){ + dbcursor = db.rawQuery("Select * from COMPETIOTIONN_PROMO_EXISTS " + + "where STORE_ID='" + store_id + "'", null); + } + else { + dbcursor = db.rawQuery("Select * from COMPETIOTIONN_PROMO_EXISTS " + + "where STORE_ID='" + store_id + "' AND CATEGORY_ID='" + category_id + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CompetitonPromoGetterSetter cd = new CompetitonPromoGetterSetter(); + + cd.setExists(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Existss")).equals("1")); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.set_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("KEY_ID"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getCounterfeitAfterData!" + e.toString()); + return list; + } + return list; + } + + + public ArrayList getCometionPromoAfterData(String store_id, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if(category_id==null){ + + dbcursor = db.rawQuery("Select * from COMPETIOTIONN_PROMO " + + "where COMMON_ID='" + store_id + "'", null); + } + else { + dbcursor = db.rawQuery("Select * from COMPETIOTIONN_PROMO " + + "where STORE_ID='" + store_id + "' AND CATEGORY_ID='" + category_id + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CompetitonPromoGetterSetter cd = new CompetitonPromoGetterSetter(); + + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.setSkuName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setBrandId(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("BRAND_ID"))); + cd.setBrand(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND"))); + cd.setPromotion_id(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("PROMOTION_ID"))); + cd.setPromotion(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMOTION"))); + cd.setImgStr(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE"))); + cd.setImgStr1(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE1"))); + cd.setImgStr2(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE2"))); + + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuwiseAfterData!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getCompetionData(String keyaccountId, String storetypeid,String classid,String categoryid,int subcategoryId) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + cursordata = db.rawQuery("Select DISTINCT bm.BRAND_ID,bm.BRAND from MAPPING_STOCK ms inner join SKU_MASTER sm on sm.SKU_ID=ms.SKU_ID " + + "inner join BRAND_MASTER bm on bm.BRAND_ID=sm.BRAND_ID " + + "inner join SUB_CATEGORY_MASTER cm on cm.SUB_CATEGORY_ID=bm.SUB_CATEGORY_ID " + + "WHERE ms.KEYACCOUNT_ID = '" + keyaccountId + "' AND ms.STORETYPE_ID='" + storetypeid +"' AND ms.CLASS_ID='" + classid +"' AND cm.CATEGORY_ID='" + categoryid +"'AND cm.SUB_CATEGORY_ID='" + subcategoryId +"' AND bm.COMPANY_ID<>1 ", null); + + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + BrandMasterGetterSetter sb = new BrandMasterGetterSetter(); + + sb.setBRAND_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("BRAND_ID"))); + sb.setBRAND(cursordata.getString(cursordata.getColumnIndexOrThrow("BRAND"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return Data; + + } + + public ArrayList getSubcategoryData(String keyaccountId, String storetypeid,String classid,String categoryid) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + cursordata = db.rawQuery("Select DISTINCT cm.SUB_CATEGORY_ID,cm.SUB_CATEGORY from MAPPING_STOCK ms inner join SKU_MASTER sm on sm.SKU_ID=ms.SKU_ID " + + "inner join BRAND_MASTER bm on bm.BRAND_ID=sm.BRAND_ID " + + "inner join SUB_CATEGORY_MASTER cm on cm.SUB_CATEGORY_ID=bm.SUB_CATEGORY_ID " + + "WHERE ms.KEYACCOUNT_ID = '" + keyaccountId + "' AND ms.STORETYPE_ID='" + storetypeid +"' AND ms.CLASS_ID='" + classid +"' AND cm.CATEGORY_ID='" + categoryid +"' AND bm.COMPANY_ID<>1 ", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + BrandMasterGetterSetter sb = new BrandMasterGetterSetter(); + + sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + sb.setSUB_CATEGORY(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + Log.d("Exception ", "getPromoComplianceSkuwiseAfterData!" + ex.toString()); + } + return Data; + + } + + + public ArrayList getPromotionTypeData() { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT * FROM PROMOTION_TYPE_MASTER", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + PROMOTION_TYPE_MASTERGetterSetter sb = new PROMOTION_TYPE_MASTERGetterSetter(); + + sb.setPROMOTION_TYPE_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("PROMOTION_TYPE_ID"))); + sb.setPROMOTION_TYPE(cursordata.getString(cursordata.getColumnIndexOrThrow("PROMOTION_TYPE"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return Data; + + } + + + public void InsertPROMOTION_TYPE_MASTER(PROMOTION_TYPE_MASTERGetterSetter data) { + db.delete("PROMOTION_TYPE_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getPROMOTION_TYPE_ID().size(); i++) { + + values.put("PROMOTION_TYPE_ID", data.getPROMOTION_TYPE_ID().get(i)); + values.put("PROMOTION_TYPE", data.getPROMOTION_TYPE().get(i)); + db.insert("PROMOTION_TYPE_MASTER", null, values); + + } + + } catch (Exception ex) { + + } + } + + + } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java index 98991f7..90ce71c 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java @@ -193,9 +193,9 @@ public class LoginActivity extends AppCompatActivity implements GoogleApiClient. //populateAutoComplete(); mPasswordView = (EditText) findViewById(R.id.password); - /* museridView.setText("testmer"); - mPasswordView.setText("cpm123"); -*/ + // museridView.setText("egypt.1"); + // museridView.setText("DSR_Alex_61"); + // mPasswordView.setText("cpm123"); mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) { @@ -686,16 +686,14 @@ public class LoginActivity extends AppCompatActivity implements GoogleApiClient. if (result.equals(CommonString.KEY_SUCCESS)) { //set true for South Africa - boolean forSA = true; + boolean forSA = false; // database.open(); if(forSA){ //For SA Only if (preferences.getString(CommonString.KEY_LANGUAGE, "").equals("")) { - Intent intent = new Intent(getBaseContext(), - SelectLanguageActivity.class); - + Intent intent = new Intent(getBaseContext(), SelectLanguageActivity.class); intent.putExtra(CommonString.KEY_LOGIN_DATA, lgs); startActivity(intent); diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java index 8ce7469..f334d10 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java @@ -99,14 +99,10 @@ public class SelectLanguageActivity extends AppCompatActivity implements View.On switch (id) { case R.id.btn_language_one: - selected_flag = true; - CommonFunctions.updateLangResources(getApplicationContext(), language.get(0)); - btn_lang_1.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); btn_lang_2.setBackgroundColor(getResources().getColor(R.color.grey_background)); - editor.putString(CommonString.KEY_LANGUAGE, language.get(0)); editor.putString(CommonString.KEY_CULTURE_ID, culture_id.get(0)); editor.putString(CommonString.KEY_NOTICE_BOARD_LINK, login_data.getNOTICE_URL().get(0)); diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java index d07798f..0ac4735 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java @@ -29,16 +29,12 @@ public class CommonFunctions { public static boolean updateLangResources(Context context, String language) { String lang; - if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ENGLISH)) { lang = CommonString.KEY_RETURE_LANGUAGE_ENGLISH; - } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA; - } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_TURKISH)) { lang = CommonString.KEY_RETURE_LANGUAGE_TURKISH; - } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { lang = CommonString.KEY_RETURE_LANGUAGE_UAE_ARABIC; }else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_OMAN)) { 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 da4f061..ead4732 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java @@ -1087,7 +1087,7 @@ public class CommonString { public static String TABLE_MAPPING_PLANOGRAM_ADHOC = "MAPPING_PLANOGRAM_ADHOC"; public static String TABLE_MAPPING_SOS_TARGET_ADHOC = "MAPPING_SOS_TARGET_ADHOC"; public static String TABLE_NO_CAMERA_LAST_VISIT_DATA_ADHOC = "NO_CAMERA_LAST_VISIT_DATA_ADHOC"; - public static String TABLE_STORE_PERFORMANCE_NEW_ADHOC = "STORE_PERFORMANCE_NEW_ADHOC"; + public static String TABLE_STORE_PERFORMANCE_NEW_ADHOC = "STORE_PERFORMANCE_NEW_ADHOC_REVISED"; public static final String TABLE_IS_ADHOC_SAVED = "IS_ADHOC_SAVED"; public static final String CREATE_ABLE_IS_ADHOC_SAVED = "CREATE TABLE IF NOT EXISTS " @@ -1269,4 +1269,70 @@ public class CommonString { + KEY_SKU + " VARCHAR," + KEY_IMAGE + " VARCHAR," + KEY_PRESENT + " INTEGER)"; + + //usk + public static final String TABLE_INSERT_COMPETIOTIONN_PROMO = "COMPETIOTIONN_PROMO"; + + public static final String CREATE_TABLE_INSERT_COMPETIOTIONN_PROMO = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_COMPETIOTIONN_PROMO + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " INTEGER," + + + "COMMON_ID" + + " INTEGER," + + + "SKU" + + " VARCHAR," + + + "BRAND_ID" + + " INTEGER," + + + "BRAND" + + " VARCHAR," + + + "PROMOTION_ID" + + " INTEGER," + + + "PROMOTION" + + " VARCHAR," + + + "STOCK" + + " INTEGER," + + + "IMAGE" + + " VARCHAR," + + + "IMAGE1" + + " VARCHAR," + + + "IMAGE2" + + " VARCHAR" + + + ")"; + + public static final String TABLE_INSERT_COMPETIOTIONN_PROMO_EXISTS = "COMPETIOTIONN_PROMO_EXISTS"; + + public static final String CREATE_TABLE_INSERT_COMPETIOTIONN_PROMO_EXISTS = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_COMPETIOTIONN_PROMO_EXISTS + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " INTEGER," + + + "Existss" + + " INTEGER" + + + ")"; } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CompetitionPromoActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CompetitionPromoActivity.java new file mode 100644 index 0000000..adc066e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CompetitionPromoActivity.java @@ -0,0 +1,809 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Activity; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v4.content.FileProvider; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.ToggleButton; + +import java.io.File; +import java.util.ArrayList; +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.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CompetitonPromoGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PROMOTION_TYPE_MASTERGetterSetter; + +public class CompetitionPromoActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener, View.OnClickListener { + + ToggleButton btntoggle; + boolean isDataAdded = false, isExists = true, is_camera_compulsory = false; + LinearLayout lin_parent; + GSKOrangeDB db; + private SharedPreferences preferences; + Spinner spinner_brand_list,sp_promotion_typ,sp_subcategory; + String store_id, visit_date, username, country_id,keyAccount_id,class_id,storeType_id; + String categoryName, categoryId; + ArrayList brand_list = new ArrayList<>(); + ArrayList subcategory_list = new ArrayList<>(); + ArrayList promotion_list = new ArrayList<>(); + String brand = "",subcategory="", _path = ""; + String promotion = ""; + EditText et_sku_name; + FloatingActionButton fab_save, fab_add; + ImageView imgCam, imgCam1, imgCam2; + String img_str = "", img_str1 = "", img_str2 = ""; + String _pathforcheck, _pathforcheck1, _pathforcheck2; + Uri outputFileUri; + String gallery_package = ""; + boolean editFlag = false, isdata_added = false; + String str, skuName; + int brand_id = 0; + int subcategoryId = 0; + int promotion_id = 0; + RecyclerView rec_added_counterfeit_product; + ArrayList addedCounterfeitProducts = new ArrayList<>(); + ArrayList exists_data = new ArrayList<>(); + private LinearLayout lay_competitor_name; + + ProductAdapter productAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_compition_promo); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + btntoggle = (ToggleButton) findViewById(R.id.btntoggle); + lin_parent = (LinearLayout) findViewById(R.id.lin_parent_promo); + et_sku_name = (EditText) findViewById(R.id.et_sku_name); + sp_subcategory = (Spinner) findViewById(R.id.sp_subcategory); + spinner_brand_list = (Spinner) findViewById(R.id.sp_brand); + sp_promotion_typ = (Spinner) findViewById(R.id.sp_promotion_typ); + lay_competitor_name = (LinearLayout) findViewById(R.id.lay_competitor_name); + rec_added_counterfeit_product = (RecyclerView) findViewById(R.id.rec_added_counterfeit_product); + + //fab + fab_save = findViewById(R.id.fab); + fab_add = findViewById(R.id.fab_add); + + //camera Images + imgCam = (ImageView) findViewById(R.id.img_cam); + imgCam1 = (ImageView) findViewById(R.id.img_cam1); + imgCam2 = (ImageView) findViewById(R.id.img_cam2); + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + username = preferences.getString(CommonString.KEY_USERNAME, null); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null); + + + keyAccount_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, ""); + class_id = preferences.getString(CommonString.KEY_CLASS_ID, ""); + storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, ""); + + + CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, "")); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + db = new GSKOrangeDB(CompetitionPromoActivity.this); + db.open(); + + btntoggle.setOnClickListener(this); + fab_save.setOnClickListener(this); + fab_add.setOnClickListener(this); + imgCam.setOnClickListener(this); + imgCam1.setOnClickListener(this); + imgCam2.setOnClickListener(this); + + promotion_list = db.getPromotionTypeData(); + subcategory_list = db.getSubcategoryData(keyAccount_id, storeType_id,class_id,categoryId); + + //subcategory data + BrandMasterGetterSetter subcategory_select = new BrandMasterGetterSetter(); + String subcat_select = getResources().getString(R.string.select); + subcategory_select.setSUB_CATEGORY(subcat_select); + subcategory_select.setSUB_CATEGORY_ID("0"); + subcategory_list.add(0, subcategory_select); + CustomSubcategoryAdapter subcat_adapter = new CustomSubcategoryAdapter(CompetitionPromoActivity.this, R.layout.custom_spinner_item, subcategory_list); + sp_subcategory.setAdapter(subcat_adapter); + sp_subcategory.setOnItemSelectedListener(this); + + + /*//brand data + BrandMasterGetterSetter brand_select = new BrandMasterGetterSetter(); + String select = getResources().getString(R.string.select); + brand_select.setBRAND(select); + brand_select.setBRAND_ID("0"); + brand_list.add(0, brand_select); + CustomBrandAdapter adapter = new CustomBrandAdapter(CompetitionPromoActivity.this, R.layout.custom_spinner_item, brand_list); + spinner_brand_list.setAdapter(adapter); + spinner_brand_list.setOnItemSelectedListener(this);*/ + + //competitor + PROMOTION_TYPE_MASTERGetterSetter promoType_select = new PROMOTION_TYPE_MASTERGetterSetter(); + String selectcomp = getResources().getString(R.string.select); + promoType_select.setPROMOTION_TYPE(selectcomp); + promoType_select.setPROMOTION_TYPE_ID("0"); + promotion_list.add(0, promoType_select); + CustomPromotionTypeAdapter comp_adapter = new CustomPromotionTypeAdapter(CompetitionPromoActivity.this, R.layout.custom_spinner_item, promotion_list); + sp_promotion_typ.setAdapter(comp_adapter); + sp_promotion_typ.setOnItemSelectedListener(this); + + + + + //Product List + exists_data = db.getCompetitionPromoExistsAfterData(store_id, categoryId); + + if(exists_data.size()>0){ + isExists = exists_data.get(0).isExists(); + if(exists_data.get(0).isExists()){ + addedCounterfeitProducts = db.getCometionPromoAfterData(store_id, categoryId); + if(addedCounterfeitProducts.size()>0){ + rec_added_counterfeit_product.setLayoutManager(new LinearLayoutManager(getApplicationContext())); + productAdapter = new ProductAdapter(addedCounterfeitProducts); + rec_added_counterfeit_product.setAdapter(productAdapter); + } + } + else { + //fab_add.hide();//.setVisibility(View.GONE); + addedCounterfeitProducts.clear(); + lin_parent.setVisibility(View.GONE); + } + } + + btntoggle.setChecked(isExists); + + str = CommonString.FILE_PATH; + } + + @Override + public void onClick(View v) { + int id = v.getId(); + + switch (id) { + case R.id.btntoggle: + isExists = btntoggle.isChecked(); + + if (isExists) { + lin_parent.setVisibility(View.VISIBLE); + isdata_added = true; + } else { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(CompetitionPromoActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + lin_parent.setVisibility(View.GONE); + + brand = ""; + subcategory = ""; + promotion = ""; + brand_id = 0; + subcategoryId = 0; + promotion_id = 0; + skuName = ""; + img_str = ""; + img_str1 = ""; + img_str2 = ""; + et_sku_name.setText(""); + sp_subcategory.setSelection(0); + spinner_brand_list.setSelection(0); + sp_promotion_typ.setSelection(0); + + addedCounterfeitProducts.clear(); + isdata_added = true; + } + }) + .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //checkBox.setChecked(true); + btntoggle.setChecked(true); + } + }); + android.app.AlertDialog alert = builder.create(); + alert.show(); + } + break; + + case R.id.fab_add: + + skuName = et_sku_name.getText().toString().replaceAll("[&^<>{}'$]", "").replaceFirst("^0+(?!$)", ""); + + if (promotion.equals("")) { + Snackbar.make(rec_added_counterfeit_product, R.string.pls_select_promo_type, Snackbar.LENGTH_SHORT).show(); + } else if (subcategory.equals("")) { + Snackbar.make(rec_added_counterfeit_product, R.string.pls_select_sub_category, Snackbar.LENGTH_SHORT).show(); + }else if (brand.equals("")) { + Snackbar.make(rec_added_counterfeit_product, R.string.pls_select_competitor, Snackbar.LENGTH_SHORT).show(); + } else if (skuName.equals("")) { + Snackbar.make(rec_added_counterfeit_product, R.string.pls_enter_comment, Snackbar.LENGTH_SHORT).show(); + } /*else if (img_str.equals("") && img_str1.equals("") && img_str2.equals("")) { + Snackbar.make(rec_added_counterfeit_product, R.string.click_image, Snackbar.LENGTH_SHORT).show(); + }*/ else { + CompetitonPromoGetterSetter product = new CompetitonPromoGetterSetter(); + product.setBrand(brand); + product.setPromotion(promotion); + product.setBrandId(brand_id); + product.setPromotion_id(promotion_id); + product.setSkuName(skuName); + product.setImgStr(img_str); + product.setImgStr1(img_str1); + product.setImgStr2(img_str2); + + addedCounterfeitProducts.add(product); + + rec_added_counterfeit_product.setLayoutManager(new LinearLayoutManager(getApplicationContext())); + productAdapter = new ProductAdapter(addedCounterfeitProducts); + rec_added_counterfeit_product.setAdapter(productAdapter); + + subcategory = ""; + brand = ""; + promotion = ""; + subcategoryId = 0; + brand_id = 0; + promotion_id = 0; + skuName = ""; + img_str = ""; + img_str1 = ""; + img_str2 = ""; + et_sku_name.setText(""); + sp_subcategory.setSelection(0); + spinner_brand_list.setSelection(0); + sp_promotion_typ.setSelection(0); + //clearBrandSpinner(); + + imgCam.setBackgroundResource(R.mipmap.camera_orange); + imgCam1.setBackgroundResource(R.mipmap.camera_orange); + imgCam2.setBackgroundResource(R.mipmap.camera_orange); + + isdata_added = true; + } + + break; + + case R.id.fab: + if(isExists && addedCounterfeitProducts.size()==0){ + Snackbar.make(rec_added_counterfeit_product, R.string.title_activity_Want_add,Snackbar.LENGTH_SHORT).show(); + } + else { + db.InsertComptionPromotData(addedCounterfeitProducts, categoryId, store_id, isExists); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + break; + + case R.id.img_cam: + _pathforcheck = store_id + "CounterfeitProductImg1" + categoryId + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + _path = CommonString.FILE_PATH + _pathforcheck; + startCameraActivity(); + break; + + case R.id.img_cam1: + _pathforcheck1 = store_id + "CounterfeitProductImg2" + categoryId + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + _path = CommonString.FILE_PATH + _pathforcheck1; + startCameraActivity(); + break; + + case R.id.img_cam2: + _pathforcheck2 = store_id + "CounterfeitProductImg3" + categoryId + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + _path = CommonString.FILE_PATH + _pathforcheck2; + startCameraActivity(); + break; + } + + } + + void clearBrandSpinner() { + brand_list.clear(); + + BrandMasterGetterSetter brand_select = new BrandMasterGetterSetter(); + String str = getResources().getString(R.string.select); + brand_select.setBRAND(str); + brand_select.setBRAND_ID("0"); + brand_list.add(0, brand_select); + CustomBrandAdapter adapter = new CustomBrandAdapter(CompetitionPromoActivity.this, R.layout.custom_spinner_item, brand_list); + + spinner_brand_list.setAdapter(adapter); + spinner_brand_list.setOnItemSelectedListener(this); + } + + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + switch (parent.getId()) { + case R.id.sp_subcategory: + if (position != 0) { + subcategory = subcategory_list.get(position).getSUB_CATEGORY().get(0); + subcategoryId = Integer.parseInt(subcategory_list.get(position).getSUB_CATEGORY_ID().get(0)); + + brand_list = db.getCompetionData(keyAccount_id, storeType_id,class_id,categoryId,subcategoryId); + //brand data + BrandMasterGetterSetter brand_select = new BrandMasterGetterSetter(); + String select = getResources().getString(R.string.select); + brand_select.setBRAND(select); + brand_select.setBRAND_ID("0"); + brand_list.add(0, brand_select); + CustomBrandAdapter adapter = new CustomBrandAdapter(CompetitionPromoActivity.this, R.layout.custom_spinner_item, brand_list); + spinner_brand_list.setAdapter(adapter); + spinner_brand_list.setOnItemSelectedListener(this); + + lay_competitor_name.setVisibility(View.VISIBLE); + } else { + subcategory = ""; + subcategoryId = 0; + lay_competitor_name.setVisibility(View.GONE); + } + break; + + case R.id.sp_brand: + + if (position != 0) { + brand = brand_list.get(position).getBRAND().get(0); + brand_id = Integer.parseInt(brand_list.get(position).getBRAND_ID().get(0)); + } else { + brand = ""; + brand_id = 0; + } + + break; + case R.id.sp_promotion_typ: + + if (position != 0) { + promotion = promotion_list.get(position).getPROMOTION_TYPE().get(0); + promotion_id = Integer.parseInt(promotion_list.get(position).getPROMOTION_TYPE_ID().get(0)); + } else { + promotion = ""; + promotion_id = 0; + + } + + break; + + + } + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + + //subcategory data + public class CustomSubcategoryAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + BrandMasterGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomSubcategoryAdapter Constructor + *****************/ + public CustomSubcategoryAdapter( + CompetitionPromoActivity activitySpinner, + int textViewResourceId, + ArrayList objects + + ) { + super(activitySpinner, textViewResourceId, objects); + + /********** Take passed values **********/ + activity = activitySpinner; + data = objects; + /*********** Layout inflator to call external xml layout () **********************/ + inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + return getCustomView(position, convertView, parent); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + return getCustomView(position, convertView, parent); + } + + // This funtion called for each row ( Called data.size() times ) + public View getCustomView(int position, View convertView, ViewGroup parent) { + + /********** Inflate spinner_rows.xml file for each row ( Defined below ) ************/ + View row = inflater.inflate(R.layout.custom_spinner_item, parent, false); + + /***** Get each Model object from Arraylist ********/ + tempValues = null; + tempValues = (BrandMasterGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getResources().getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getSUB_CATEGORY().get(0)); + } + + return row; + } + } + + + + public class CustomBrandAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + BrandMasterGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomBrandAdapter Constructor + *****************/ + public CustomBrandAdapter( + CompetitionPromoActivity activitySpinner, + int textViewResourceId, + ArrayList objects + + ) { + super(activitySpinner, textViewResourceId, objects); + + /********** Take passed values **********/ + activity = activitySpinner; + data = objects; + /*********** Layout inflator to call external xml layout () **********************/ + inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + return getCustomView(position, convertView, parent); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + return getCustomView(position, convertView, parent); + } + + // This funtion called for each row ( Called data.size() times ) + public View getCustomView(int position, View convertView, ViewGroup parent) { + + /********** Inflate spinner_rows.xml file for each row ( Defined below ) ************/ + View row = inflater.inflate(R.layout.custom_spinner_item, parent, false); + + /***** Get each Model object from Arraylist ********/ + tempValues = null; + tempValues = (BrandMasterGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getResources().getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getBRAND().get(0)); + } + + return row; + } + } + + + public class CustomPromotionTypeAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + PROMOTION_TYPE_MASTERGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomPromotionTypeAdapter Constructor + *****************/ + public CustomPromotionTypeAdapter( + CompetitionPromoActivity activitySpinner, + int textViewResourceId, + ArrayList objects + + ) { + super(activitySpinner, textViewResourceId, objects); + + /********** Take passed values **********/ + activity = activitySpinner; + data = objects; + /*********** Layout inflator to call external xml layout () **********************/ + inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + return getCustomView(position, convertView, parent); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + return getCustomView(position, convertView, parent); + } + + // This funtion called for each row ( Called data.size() times ) + public View getCustomView(int position, View convertView, ViewGroup parent) { + + /********** Inflate spinner_rows.xml file for each row ( Defined below ) ************/ + View row = inflater.inflate(R.layout.custom_spinner_item, parent, false); + + /***** Get each Model object from Arraylist ********/ + tempValues = null; + tempValues = (PROMOTION_TYPE_MASTERGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getResources().getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getPROMOTION_TYPE().get(0)); + } + + return row; + } + } + + protected void startCameraActivity() { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(getApplicationContext(), "cpm.com.gskmtorange.fileprovider", file); + + String defaultCameraPackage = ""; + final PackageManager packageManager = getPackageManager(); + List list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); + for (int n = 0; n < list.size(); n++) { + if ((list.get(n).flags & ApplicationInfo.FLAG_SYSTEM) == 1) { + Log.e("TAG", "Installed Applications : " + list.get(n).loadLabel(packageManager).toString()); + Log.e("TAG", "package name : " + list.get(n).packageName); + + //temp value in case camera is gallery app above jellybean + String packag = list.get(n).loadLabel(packageManager).toString(); + if (packag.equalsIgnoreCase("Gallery") || packag.equalsIgnoreCase("Galeri") || packag.equalsIgnoreCase("الاستوديو")) { + gallery_package = list.get(n).packageName; + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera") || packag.equalsIgnoreCase("الكاميرا")) { + defaultCameraPackage = list.get(n).packageName; + break; + } + } else { + + if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera") || packag.equalsIgnoreCase("الكاميرا")) { + + defaultCameraPackage = list.get(n).packageName; + break; + } + } + } + } + + //com.android.gallery3d + + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + startActivityForResult(intent, 0); + } catch (ActivityNotFoundException e) { + e.printStackTrace(); + + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(gallery_package); + startActivityForResult(intent, 0); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + + Log.i("MakeMachine", "resultCode: " + resultCode); + switch (resultCode) { + case 0: + Log.i("MakeMachine", "User cancelled"); + break; + + case -1: + + editFlag = true; + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + imgCam.setBackgroundResource(R.mipmap.camera_green); + + img_str = _pathforcheck; + _pathforcheck = ""; + } + } + + if (_pathforcheck1 != null && !_pathforcheck1.equals("")) { + if (new File(str + _pathforcheck1).exists()) { + + imgCam1.setBackgroundResource(R.mipmap.camera_green); + + img_str1 = _pathforcheck1; + _pathforcheck1 = ""; + } + } + if (_pathforcheck2 != null && !_pathforcheck2.equals("")) { + if (new File(str + _pathforcheck2).exists()) { + + imgCam2.setBackgroundResource(R.mipmap.camera_green); + + img_str2 = _pathforcheck2; + _pathforcheck2 = ""; + } + } + + + break; + } + + super.onActivityResult(requestCode, resultCode, data); + } + + public class ProductAdapter extends RecyclerView.Adapter { + + private ArrayList list; + + public ProductAdapter(ArrayList promoList) { + list = promoList; + } + + @Override + public ProductAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.item_competition_promo, parent, false); + return new ProductAdapter.ViewHolder(view); + } + + @Override + public void onBindViewHolder(final ProductAdapter.ViewHolder holder, int position) { + + final CompetitonPromoGetterSetter mItem = list.get(position); + holder.tv_brand.setText(getString(R.string.promotion_type) + " - " + mItem.getPromotion()); + holder.tv_competitor.setText(getString(R.string.competitor) + " - " + mItem.getBrand()); + holder.tv_sku_name.setText(getString(R.string.comment) + " - " + mItem.getSkuName()); + + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final TextView tv_brand, tv_competitor,tv_sku_name; + + public ViewHolder(View view) { + super(view); + + mView = view; + tv_brand = (TextView) mView.findViewById(R.id.tv_brand); + tv_sku_name = (TextView) mView.findViewById(R.id.tv_sku_name); + tv_competitor = (TextView) mView.findViewById(R.id.tv_competitor); + + } + + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + if (id == android.R.id.home) { + ischanged(); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + void ischanged(){ + if(isdata_added){ + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(CompetitionPromoActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + }) + .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + android.app.AlertDialog alert = builder.create(); + alert.show(); + } + else { + super.onBackPressed(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public void onBackPressed() { + ischanged(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitProductsActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitProductsActivity.java index a764cf7..6827a49 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitProductsActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitProductsActivity.java @@ -72,7 +72,6 @@ public class CounterfeitProductsActivity extends AppCompatActivity implements Ad RecyclerView rec_added_counterfeit_product; ArrayList addedCounterfeitProducts = new ArrayList<>(); ArrayList exists_data = new ArrayList<>(); - ProductAdapter productAdapter; @Override diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java index 3ee992f..5656222 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java @@ -1704,7 +1704,7 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli //STORE_PERFORMANCE_NEW_ADHOC request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); request.addProperty("UserName", storeId); - request.addProperty("Type", "STORE_PERFORMANCE_NEW_ADHOC"); + request.addProperty("Type", "STORE_PERFORMANCE_NEW_ADHOC_REVISED"); request.addProperty("cultureid", culture_id); envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java index 07f998e..e7bf179 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java @@ -70,6 +70,7 @@ import cpm.com.gskmtorange.xmlGetterSetter.NonT2pReasonGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingSubReasonGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.POGQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PROMOTION_TYPE_MASTERGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.STORE_PERFORMANCE_MasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.SkuGroupMasterGetterSetter; @@ -127,6 +128,7 @@ public class DownloadActivity extends AppCompatActivity { JourneyPlanGetterSetter pharmaJcpGetterSetter; MappingPharmaQuestionGetterSetter mappingPharmaQuestionGetterSetter; MappingPharmaMSLGetterSetter mappingPharmaMSLGetterSetter; + PROMOTION_TYPE_MASTERGetterSetter promotion_type_masterGetterSetter; private Dialog dialog; private ProgressBar pb; @@ -308,8 +310,7 @@ public class DownloadActivity extends AppCompatActivity { if (additionalJcpGetterSetter.getSTORE_ID().size() > 0) { resultHttp = CommonString.KEY_SUCCESS; - } - else { + } else { no_addtional_jcp_flag = true; @@ -342,8 +343,7 @@ public class DownloadActivity extends AppCompatActivity { if (additionalAdhocJcpGetterSetter.getSTORE_ID().size() > 0) { resultHttp = CommonString.KEY_SUCCESS; - } - else { + } else { if (no_jcp_flag && no_adhoc_flag && no_addtional_jcp_flag) { return "JOURNEY_PLAN"; @@ -905,7 +905,7 @@ public class DownloadActivity extends AppCompatActivity { //STORE_PERFORMANCE request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); request.addProperty("UserName", userId); - request.addProperty("Type", "STORE_PERFORMANCE_NEW"); + request.addProperty("Type", "STORE_PERFORMANCE_REVISED"); request.addProperty("cultureid", culture_id); envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); @@ -1518,7 +1518,7 @@ public class DownloadActivity extends AppCompatActivity { result = envelope.getResponse(); if (result.toString() != null) { - xpp.setInput(new StringReader(result.toString())); + xpp.setInput(new StringReader(result.toString())); xpp.next(); eventType = xpp.getEventType(); pharmaJcpGetterSetter = XMLHandlers.JCPXMLHandler(xpp, eventType); @@ -1595,6 +1595,47 @@ public class DownloadActivity extends AppCompatActivity { } } + + + //usk + // MAPPING_PHARMA_MSL + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "PROMOTION_TYPE_MASTER"); + request.addProperty("cultureid", culture_id); + + envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope); + + result = envelope.getResponse(); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + + promotion_type_masterGetterSetter = XMLHandlers.mappingPROMOTION_TYPE_MASTERXMLHandler(xpp, eventType); + + String stocktable = promotion_type_masterGetterSetter.getTable_PROMOTION_TYPE_MASTER(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_PROMOTION_TYPE_MASTER(stocktable); + } + + if (mappingPharmaMSLGetterSetter.getSKU_ID().size() > 0) { + data.value = 99; + data.name = "PROMOTION_TYPE_MASTER " + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_PHARMA_MSL"; + } + + } + + publishProgress(data); /* //MAPPING_COUNTRYWISE_PLANOGRAM @@ -1654,7 +1695,7 @@ public class DownloadActivity extends AppCompatActivity { file.mkdir(); } - if(!new File(PATH + image_name).exists()){ + if (!new File(PATH + image_name).exists()) { if (!image_name.equalsIgnoreCase("NA") && !image_name.equalsIgnoreCase("")) { URL url = new URL(path + "/" + image_name); HttpURLConnection c = (HttpURLConnection) url.openConnection(); @@ -1780,7 +1821,7 @@ public class DownloadActivity extends AppCompatActivity { file.mkdir(); } - if(!new File(PATH + image_name).exists()){ + if (!new File(PATH + image_name).exists()) { if (!image_name.equalsIgnoreCase("NA") && !image_name.equalsIgnoreCase("")) { URL url = new URL(path + "/" + image_name); HttpURLConnection c = (HttpURLConnection) url.openConnection(); @@ -1953,8 +1994,8 @@ public class DownloadActivity extends AppCompatActivity { //NON_WORKING_SUB_REASON added - 26.09.2018 db.insertNonWorkingSubreasonData(nonWorkingSubReasonGetterSetter); - - db.InsertSTORE_PERFORMANCE(store_performance_masterGetterSetter, "STORE_PERFORMANCE_NEW"); + //usk + db.InsertSTORE_PERFORMANCE(store_performance_masterGetterSetter, "STORE_PERFORMANCE_REVISED"); db.InsertMAPPING_PLANOGRAM(mapping_planogram_masterGetterSetter, "MAPPING_PLANOGRAM"); db.InsertADDITIONAL_DISPLAY(additional_display_getter_setter); db.InsertMAPPING_SOS_TARGET(mapping_sos_target_masterGetterSetter, "MAPPING_SOS_TARGET"); @@ -1968,7 +2009,7 @@ public class DownloadActivity extends AppCompatActivity { db.InsertPOGQUESTION(pogQuestionGetterSetter); db.InsertNON_T2P_REASON(nonT2pReasonGetterSetter); db.InsertCONFIGURATION_COUNTRY_WISE(configurationContrywiseGetterSetter); - db.InsertNO_CAMERA_LAST_VISIT_DATA(noCameraLastVisitGetterSetter,"NO_CAMERA_LAST_VISIT_DATA"); + db.InsertNO_CAMERA_LAST_VISIT_DATA(noCameraLastVisitGetterSetter, "NO_CAMERA_LAST_VISIT_DATA"); db.insertSUPERVISOR_LIST_DATA(supervisorListGetterSetter); db.InsertGeoTag_DATA(geoFencingGetterSetter); db.InsertCONFIGURATION_MASTER(configurationMasterGetterSetter); @@ -1980,6 +2021,7 @@ public class DownloadActivity extends AppCompatActivity { db.InsertPharmaJCP(pharmaJcpGetterSetter); db.InsertMAPPING_PHARMA_MSL(mappingPharmaMSLGetterSetter); db.InsertAdditionalAdhocJCP(additionalAdhocJcpGetterSetter); + db.InsertPROMOTION_TYPE_MASTER(promotion_type_masterGetterSetter); } catch (MalformedURLException e) { diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java index be2b549..04420a0 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java @@ -271,6 +271,16 @@ public class CategoryListActivity extends AppCompatActivity { } } + //usk + if(country_id.equals("6")&& category_id.equals("2")){ + + if (db.getCompetitionPromoExistsAfterData(store_id, category_id).size() == 0) { + flag = false; + } + + } + + } flag_filled = flag; @@ -656,6 +666,15 @@ public class CategoryListActivity extends AppCompatActivity { break; } + } + //usk + if(country_id.equals("6")&& category_id.equals("2")){ + + if (db.getCompetitionPromoExistsAfterData(store_id, category_id).size() == 0) { + flag_filled = false; + break; + } + } flag_filled = true; diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java index 035a92e..381de67 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java @@ -107,7 +107,7 @@ public class CategoryWisePerformanceActivity extends AppCompatActivity { categoryWisePerformanceList = db.getCategoryWisePerformance(store_id, categoryId, CommonString.TABLE_STORE_PERFORMANCE_NEW_ADHOC); } else { - categoryWisePerformanceList = db.getCategoryWisePerformance(store_id, categoryId, "STORE_PERFORMANCE_NEW"); + categoryWisePerformanceList = db.getCategoryWisePerformance(store_id, categoryId, "STORE_PERFORMANCE_REVISED"); } @@ -180,7 +180,7 @@ public class CategoryWisePerformanceActivity extends AppCompatActivity { holder.txt_sos.setText(categoryData.getSos()); holder.txt_t2p.setText(categoryData.getT2p()); holder.txt_promo.setText(categoryData.getPromo()); - holder.txt_oss.setText(categoryData.getOss()); + holder.txt_planogram.setText(categoryData.getPLANOGRAM()); } @@ -191,7 +191,7 @@ public class CategoryWisePerformanceActivity extends AppCompatActivity { } class MyViewHolder extends RecyclerView.ViewHolder { - TextView txt_period, txt_sos, txt_t2p, txt_promo, txt_msl_availability, txt_oss,txt_planogram; + TextView txt_period, txt_sos, txt_t2p, txt_promo, txt_msl_availability,txt_planogram; LinearLayout lay_menu; public MyViewHolder(View itemView) { @@ -202,7 +202,6 @@ public class CategoryWisePerformanceActivity extends AppCompatActivity { txt_t2p = (TextView) itemView.findViewById(R.id.txt_t2p); txt_promo = (TextView) itemView.findViewById(R.id.txt_promo); txt_msl_availability = (TextView) itemView.findViewById(R.id.txt_msl_availability); - txt_oss = (TextView) itemView.findViewById(R.id.txt_oss); txt_planogram = (TextView) itemView.findViewById(R.id.txt_planogram); } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java index e8b7752..ac2ab93 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java @@ -36,6 +36,7 @@ import cpm.com.gskmtorange.dailyentry.AdditionalPromoSKUwiseActivity; import cpm.com.gskmtorange.dailyentry.AdditionalVisibility; import cpm.com.gskmtorange.dailyentry.AuditActivity; import cpm.com.gskmtorange.dailyentry.CategoryPicture; +import cpm.com.gskmtorange.dailyentry.CompetitionPromoActivity; import cpm.com.gskmtorange.dailyentry.CounterfeitProductsActivity; import cpm.com.gskmtorange.dailyentry.CreateSelfActivity; import cpm.com.gskmtorange.dailyentry.POGQuestionsActivity; @@ -342,6 +343,24 @@ public class DailyDataMenuActivity extends AppCompatActivity { categoryList.add(data); } + //usk + //Cometition promo Option - Egypt + if (categoryId.equals("2")){ + if(country_id.equals("6")){ + data = new DailyDataMenuGetterSetter(); + + if (db.getCompetitionPromoExistsAfterData(store_id, categoryId).size() > 0) { + data.setCategory_img(R.mipmap.competition_done); + } else { + data.setCategory_img(R.mipmap.competition); + } + + data.setCategory_name(getString(R.string.title_activity_competition_promo)); + categoryList.add(data); + } + + } + //Stock Pricing Option - Turkey /*if(country_id.equals("4")){ data = new DailyDataMenuGetterSetter(); @@ -727,8 +746,16 @@ public class DailyDataMenuActivity extends AppCompatActivity { intent.putExtra("categoryId", categoryId); startActivity(intent); overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.title_activity_competition_promo))) { + Intent intent = new Intent(DailyDataMenuActivity.this, CompetitionPromoActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + intent.putExtra("categoryId", categoryId); + startActivity(intent); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); } + + } }); } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java index 7b1d4c9..ecaa86d 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java @@ -136,7 +136,8 @@ public class StoreWisePerformanceActivity extends AppCompatActivity { storeWisePerformanceList = db.getStoreWisePerformance(store_id, CommonString.TABLE_STORE_PERFORMANCE_NEW_ADHOC); } else { - storeWisePerformanceList = db.getStoreWisePerformance(store_id, "STORE_PERFORMANCE_NEW"); + storeWisePerformanceList = db.getStoreWisePerformance(store_id, "STORE_PERFORMANCE_REVISED"); + } @@ -208,7 +209,6 @@ public class StoreWisePerformanceActivity extends AppCompatActivity { holder.txt_sos.setText(categoryData.getSos()); holder.txt_t2p.setText(categoryData.getT2p()); holder.txt_promo.setText(categoryData.getPromo()); - holder.txt_oss.setText(categoryData.getOss()); holder.txt_planogram.setText(categoryData.getPLANOGRAM()); } @@ -219,7 +219,7 @@ public class StoreWisePerformanceActivity extends AppCompatActivity { } class MyViewHolder extends RecyclerView.ViewHolder { - TextView txt_period, txt_sos, txt_t2p, txt_promo, txt_msl_availability, txt_oss,txt_planogram; + TextView txt_period, txt_sos, txt_t2p, txt_promo, txt_msl_availability,txt_planogram; LinearLayout lay_menu; public MyViewHolder(View itemView) { @@ -230,7 +230,6 @@ public class StoreWisePerformanceActivity extends AppCompatActivity { txt_t2p = (TextView) itemView.findViewById(R.id.txt_t2p); txt_promo = (TextView) itemView.findViewById(R.id.txt_promo); txt_msl_availability = (TextView) itemView.findViewById(R.id.txt_msl_availability); - txt_oss = (TextView) itemView.findViewById(R.id.txt_oss); txt_planogram = (TextView) itemView.findViewById(R.id.txt_planogram); diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java index bddaff6..9f7869e 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java @@ -47,6 +47,7 @@ import cpm.com.gskmtorange.R; import cpm.com.gskmtorange.constant.CommonFunctions; import cpm.com.gskmtorange.constant.CommonString; import cpm.com.gskmtorange.xmlGetterSetter.AuditDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CompetitonPromoGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.CounterfeitProductGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.GapsChecklistGetterSetter; @@ -105,6 +106,7 @@ public class PreviousDataUploadActivity extends AppCompatActivity { ArrayList promoComplianceSkuwiseGetterSetters, promoComplianceSkuwiseExistsGetterSetters; ArrayList counterfeitProductGetterSetters, counterfeitProductExistsGetterSetters; + ArrayList competitonGetterSetters, competitonExistsGetterSetters; @Override protected void onCreate(Bundle savedInstanceState) { @@ -1470,6 +1472,76 @@ public class PreviousDataUploadActivity extends AppCompatActivity { data.value = 65; data.name = getString(R.string.title_activity_counterfeit_products); publishProgress(data); + + //usk upload + //Competitomn promo - Country Id - 6 (egipt) + String competiton_data_xml = "", add_competiton_data_xml = "", competiton_exists_xml = "", competiton_add_xml = ""; + + db.open(); + competitonExistsGetterSetters = db.getCompetitionPromoExistsAfterData(coverageList.get(i).getStoreId(), null); + if (competitonExistsGetterSetters.size() > 0) { + + for (int l = 0; l < competitonExistsGetterSetters.size(); l++) { + + add_competiton_data_xml = ""; + + competitonGetterSetters = db.getCometionPromoAfterData(competitonExistsGetterSetters.get(l).get_id(), null); + + for (int i1 = 0; i1 < competitonGetterSetters.size(); i1++) { + if (!competitonGetterSetters.get(i1).getCategory_id().equals("0")) { + + competiton_add_xml = "[COMPETITION_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(competitonGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[COMMENT]" + competitonGetterSetters.get(i1).getSkuName() + "[/COMMENT]" + + "[BRAND_ID]" + competitonGetterSetters.get(i1).getBrandId() + "[/BRAND_ID]" + + "[IMAGE1]" + competitonGetterSetters.get(i1).getImgStr() + "[/IMAGE1]" + + "[PROMO_TYPE]" + competitonGetterSetters.get(i1).getPromotion_id() + "[/PROMO_TYPE]" + + "[/COMPETITION_DATA]"; + + add_competiton_data_xml = add_competiton_data_xml + competiton_add_xml; + } + } + + int exists = 0; + if (competitonExistsGetterSetters.get(l).isExists()) { + exists = 1; + } + + competiton_exists_xml = "[COMPETITION_PROMOTION_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(competitonExistsGetterSetters.get(l).getCategory_id()) + "[/CATEGORY_ID]" + + "[IS_EXISTS]" + exists + "[/IS_EXISTS]" + + "[COMPETITION_DATA]" + add_competiton_data_xml + "[/COMPETITION_DATA]" + + "[/COMPETITION_PROMOTION_DATA]"; + + competiton_data_xml = competiton_data_xml + competiton_exists_xml; + + } + + final String sos_xml = "[DATA]" + competiton_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "COMPETITION_PROMOTION_DATA"); + request.addProperty("USERNAME", userId); + request.addProperty("MID", mid); + + envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_STOCK_XML_DATA, envelope); + + result = envelope.getResponse(); + } + + data.value = 68; + data.name = getString(R.string.title_activity_competition_promo); + publishProgress(data); } //----------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java index 3b709c8..ba054ef 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java @@ -63,6 +63,7 @@ import cpm.com.gskmtorange.constant.CommonString; import cpm.com.gskmtorange.retrofit.PostApiForFile; import cpm.com.gskmtorange.retrofit.StringConverterFactory; import cpm.com.gskmtorange.xmlGetterSetter.AuditDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CompetitonPromoGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.CounterfeitProductGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.GapsChecklistGetterSetter; @@ -120,6 +121,7 @@ public class UploadActivity extends AppCompatActivity { ArrayList storeWiseCameraDataGetterSetters; ArrayList promoComplianceSkuwiseGetterSetters, promoComplianceSkuwiseExistsGetterSetters; ArrayList counterfeitProductGetterSetters, counterfeitProductExistsGetterSetters; + ArrayList competitonGetterSetters, competitonExistsGetterSetters; RequestBody body1; private Retrofit adapter; @@ -1650,6 +1652,76 @@ public class UploadActivity extends AppCompatActivity { data.value = 65; data.name = getString(R.string.title_activity_counterfeit_products); publishProgress(data); + + //usk upload + //Competion promo - Country Id - 6 (egipt) + String competiton_data_xml = "", add_competiton_data_xml = "", competiton_exists_xml = "", competiton_add_xml = ""; + + db.open(); + competitonExistsGetterSetters = db.getCompetitionPromoExistsAfterData(coverageList.get(i).getStoreId(), null); + if (competitonExistsGetterSetters.size() > 0) { + + for (int l = 0; l < competitonExistsGetterSetters.size(); l++) { + + add_competiton_data_xml = ""; + + competitonGetterSetters = db.getCometionPromoAfterData(competitonExistsGetterSetters.get(l).get_id(), null); + + for (int i1 = 0; i1 < competitonGetterSetters.size(); i1++) { + if (!competitonGetterSetters.get(i1).getCategory_id().equals("0")) { + + competiton_add_xml = "[COMPETITION_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(competitonGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[COMMENT]" + competitonGetterSetters.get(i1).getSkuName() + "[/COMMENT]" + + "[BRAND_ID]" + competitonGetterSetters.get(i1).getBrandId() + "[/BRAND_ID]" + + "[IMAGE1]" + competitonGetterSetters.get(i1).getImgStr() + "[/IMAGE1]" + + "[PROMO_TYPE]" + competitonGetterSetters.get(i1).getPromotion_id() + "[/PROMO_TYPE]" + + "[/COMPETITION_DATA]"; + + add_competiton_data_xml = add_competiton_data_xml + competiton_add_xml; + } + } + + int exists = 0; + if (competitonExistsGetterSetters.get(l).isExists()) { + exists = 1; + } + + competiton_exists_xml = "[COMPETITION_PROMOTION_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(competitonExistsGetterSetters.get(l).getCategory_id()) + "[/CATEGORY_ID]" + + "[IS_EXISTS]" + exists + "[/IS_EXISTS]" + + "[COMPETITION_DATA]" + add_competiton_data_xml + "[/COMPETITION_DATA]" + + "[/COMPETITION_PROMOTION_DATA]"; + + competiton_data_xml = competiton_data_xml + competiton_exists_xml; + + } + + final String sos_xml = "[DATA]" + competiton_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "COMPETITION_PROMOTION_DATA"); + request.addProperty("USERNAME", userId); + request.addProperty("MID", mid); + + envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_STOCK_XML_DATA, envelope); + + result = envelope.getResponse(); + } + + data.value = 68; + data.name = getString(R.string.title_activity_competition_promo); + publishProgress(data); } 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 0297821..758476a 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java @@ -331,7 +331,7 @@ public class UploadImageWithRetrofit { } - public void UploadDeliveryImageRecursive(final Context context, final ArrayList file_list, final int index) { + public void UploadDeliveryImageRecursive(final Context context, final ArrayList file_list, final int index) { try { final int[] _index = {index}; status = 0; diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/BrandMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/BrandMasterGetterSetter.java index 26cfda9..3b1bbc1 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/BrandMasterGetterSetter.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/BrandMasterGetterSetter.java @@ -13,6 +13,16 @@ public class BrandMasterGetterSetter { ArrayList BRAND_ID = new ArrayList<>(); ArrayList BRAND = new ArrayList<>(); ArrayList SUB_CATEGORY_ID = new ArrayList<>(); + + public ArrayList getSUB_CATEGORY() { + return SUB_CATEGORY; + } + + public void setSUB_CATEGORY(String SUB_CATEGORY) { + this.SUB_CATEGORY.add(SUB_CATEGORY); + } + + ArrayList SUB_CATEGORY = new ArrayList<>(); ArrayList COMPANY_ID = new ArrayList<>(); ArrayList BRAND_SEQUENCE = new ArrayList<>(); ArrayList BRAND_SEQUENCE_SA = new ArrayList<>(); diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CompetitonPromoGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CompetitonPromoGetterSetter.java new file mode 100644 index 0000000..3b9d34b --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CompetitonPromoGetterSetter.java @@ -0,0 +1,105 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +public class CompetitonPromoGetterSetter { + + String skuName; + String imgStr; + String imgStr1; + String imgStr2; + String brand; + String _id; + String category_id; + int brandId; + String promotion; + int promotion_id; + + public String getPromotion() { + return promotion; + } + + public void setPromotion(String promotion) { + this.promotion = promotion; + } + + public int getPromotion_id() { + return promotion_id; + } + + public void setPromotion_id(int promotion_id) { + this.promotion_id = promotion_id; + } + + boolean isExists = true; + + public String getSkuName() { + return skuName; + } + + public void setSkuName(String skuName) { + this.skuName = skuName; + } + + public String getImgStr() { + return imgStr; + } + + public void setImgStr(String imgStr) { + this.imgStr = imgStr; + } + + public String getImgStr1() { + return imgStr1; + } + + public void setImgStr1(String imgStr1) { + this.imgStr1 = imgStr1; + } + + public String getImgStr2() { + return imgStr2; + } + + public void setImgStr2(String imgStr2) { + this.imgStr2 = imgStr2; + } + + public int getBrandId() { + return brandId; + } + + public void setBrandId(int brandId) { + this.brandId = brandId; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String get_id() { + return _id; + } + + public void set_id(String _id) { + this._id = _id; + } + + public boolean isExists() { + return isExists; + } + + public void setExists(boolean exists) { + isExists = exists; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PROMOTION_TYPE_MASTERGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PROMOTION_TYPE_MASTERGetterSetter.java new file mode 100644 index 0000000..31d8a8f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PROMOTION_TYPE_MASTERGetterSetter.java @@ -0,0 +1,35 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class PROMOTION_TYPE_MASTERGetterSetter { + + String table_PROMOTION_TYPE_MASTER; + + ArrayList PROMOTION_TYPE_ID = new ArrayList<>(); + ArrayList PROMOTION_TYPE = new ArrayList<>(); + + public String getTable_PROMOTION_TYPE_MASTER() { + return table_PROMOTION_TYPE_MASTER; + } + + public void setTable_PROMOTION_TYPE_MASTER(String table_PROMOTION_TYPE_MASTER) { + this.table_PROMOTION_TYPE_MASTER = table_PROMOTION_TYPE_MASTER; + } + + public ArrayList getPROMOTION_TYPE_ID() { + return PROMOTION_TYPE_ID; + } + + public void setPROMOTION_TYPE_ID(String PROMOTION_TYPE_ID) { + this.PROMOTION_TYPE_ID.add(PROMOTION_TYPE_ID); + } + + public ArrayList getPROMOTION_TYPE() { + return PROMOTION_TYPE; + } + + public void setPROMOTION_TYPE(String PROMOTION_TYPE) { + this.PROMOTION_TYPE.add(PROMOTION_TYPE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/STORE_PERFORMANCE_MasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/STORE_PERFORMANCE_MasterGetterSetter.java index 1114991..96317c6 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/STORE_PERFORMANCE_MasterGetterSetter.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/STORE_PERFORMANCE_MasterGetterSetter.java @@ -16,7 +16,6 @@ public class STORE_PERFORMANCE_MasterGetterSetter { ArrayList T2P = new ArrayList<>(); ArrayList PROMO = new ArrayList<>(); ArrayList MSL_AVAILABILITY = new ArrayList<>(); - ArrayList OSS = new ArrayList<>(); ArrayList ORDERID = new ArrayList<>(); ArrayList PLANOGRAM = new ArrayList<>(); public ArrayList getPLANOGRAM() { @@ -95,14 +94,6 @@ public class STORE_PERFORMANCE_MasterGetterSetter { this.MSL_AVAILABILITY.add(MSL_AVAILABILITY); } - public ArrayList getOSS() { - return OSS; - } - - public void setOSS(String OSS) { - this.OSS.add(OSS); - } - public ArrayList getORDERID() { return ORDERID; } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/TableBean.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/TableBean.java index a7e104e..d21927b 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/TableBean.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/TableBean.java @@ -43,6 +43,15 @@ public class TableBean { public static String Table_CONFIGURATION_MASTER; public static String Table_MAPPING_STOCK_STOREWISE; public static String Table_MAPPING_PLANOGRAM_STORE_WISE; + public static String Table_PROMOTION_TYPE_MASTER; + + public static String getTable_PROMOTION_TYPE_MASTER() { + return Table_PROMOTION_TYPE_MASTER; + } + + public static void setTable_PROMOTION_TYPE_MASTER(String table_PROMOTION_TYPE_MASTER) { + Table_PROMOTION_TYPE_MASTER = table_PROMOTION_TYPE_MASTER; + } public static String getTable_MAPPING_PHARMA_MSL() { return Table_MAPPING_PHARMA_MSL; diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java index d35864f..c5f80fd 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java @@ -38,6 +38,7 @@ import cpm.com.gskmtorange.xmlGetterSetter.NonT2pReasonGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingSubReasonGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.POGQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PROMOTION_TYPE_MASTERGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.STORE_PERFORMANCE_MasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.SkuGroupMasterGetterSetter; @@ -771,9 +772,6 @@ public class XMLHandlers { if (xpp.getName().equals("MSL")) { st.setMSL_AVAILABILITY(xpp.nextText()); } - if (xpp.getName().equals("OSS")) { - st.setOSS(xpp.nextText()); - } if (xpp.getName().equals("ORDERID")) { st.setORDERID(xpp.nextText()); } @@ -1590,4 +1588,37 @@ public class XMLHandlers { } return stock; } + + + + public static PROMOTION_TYPE_MASTERGetterSetter mappingPROMOTION_TYPE_MASTERXMLHandler(XmlPullParser xpp, + int eventType) { + PROMOTION_TYPE_MASTERGetterSetter stock = new PROMOTION_TYPE_MASTERGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + stock.setTable_PROMOTION_TYPE_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("PROMOTION_TYPE_ID")) { + stock.setPROMOTION_TYPE_ID(xpp.nextText()); + } + if (xpp.getName().equals("PROMOTION_TYPE")) { + stock.setPROMOTION_TYPE(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return stock; + } + } diff --git a/GSKMTOrange/src/main/res/layout/activity_compition_promo.xml b/GSKMTOrange/src/main/res/layout/activity_compition_promo.xml new file mode 100644 index 0000000..8d1f6fd --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_compition_promo.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/content_category_wise_performance.xml b/GSKMTOrange/src/main/res/layout/content_category_wise_performance.xml index 73411db..f94c503 100644 --- a/GSKMTOrange/src/main/res/layout/content_category_wise_performance.xml +++ b/GSKMTOrange/src/main/res/layout/content_category_wise_performance.xml @@ -41,7 +41,7 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" - android:weightSum="28"> + android:weightSum="24"> - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +//SUB CATEGORY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/content_store_wise_performance.xml b/GSKMTOrange/src/main/res/layout/content_store_wise_performance.xml index 0165cfa..1a8bc92 100644 --- a/GSKMTOrange/src/main/res/layout/content_store_wise_performance.xml +++ b/GSKMTOrange/src/main/res/layout/content_store_wise_performance.xml @@ -41,7 +41,7 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" - android:weightSum="28"> + android:weightSum="24"> - - - - + android:weightSum="24"> - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/item_store_wise_performance.xml b/GSKMTOrange/src/main/res/layout/item_store_wise_performance.xml index 7bce5c2..5a9c05e 100644 --- a/GSKMTOrange/src/main/res/layout/item_store_wise_performance.xml +++ b/GSKMTOrange/src/main/res/layout/item_store_wise_performance.xml @@ -14,7 +14,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" - android:weightSum="28"> + android:weightSum="24"> - - - X{-!?n{R17~&LDLspL@;%dR`7L z&L++dPQkuC&MH6;LATrH{^mCgA&x#?QVx_hQbAr1fZiaGidxVE2S*QQe}Q|>E^gjX z!L^nSK>;@>sGym`O_`eyG@V`DZXn^#rbwgPjz|wjB_}~ORRNVC2*AM0+227R$jj5) z4-y0w{KXdnJX6Thf&#yq_B+g9^I(`#*q4O9uu9N(IVG z`M_PIWtEhaC_LokB!L!^e!<@U4ndOMenS7`pyll62zPtn@8;tzK;h_c&j;ZT6$B*x zk12RP_|4Ya?;kJ$fJp~AJdl=^lA%oLpAB!`{I8pOdHrtf=WpWtFM0nhW53(M51ge< zoc(+da7SR_?h8?ddH~UcJ3ILMz;FBbc>WW`TdqF-K7Ot~4+Jz#uL@i;bMtoc3G@^D z)&Ay9h@Q8fzk|1*E)6kT^c2!Q{ikzaXtgN=Wx}1`%mV$=7jJ&*} zl7_bCKl^I=I3m29z5V~$*Xdt~`g>Wf{B2)pKp1Jt!v1dy{ZA60J(S1aY74ylR(xk~K-=MfTJN>?u7N<;yY;lx zZwHO9OfkN3HnR{tL@a;J(Z9TPTkrCgp$4_Eu%VuSz+(ovSbl~&!NhBb3CSXE5=>27 z{XNxD9d9QUk>f3gC+$<%^+k0C;p+l4jEs7h9nX|3g{}2j7B3fd-|8AW$eSgj^2kjJ z(|%+Kex>#VbyMEY&yNlSdMO=$g$e``hy=E#1_KBb!A1=NF#x;%*V}(ZrZoCDt$&k$ z_x<(oKPLZX`Rm~~li%e3$8!DW$^E}3*Z)`I{zl;c!uT7Cf1?b)*YSV6yq!UoWsF6W z&hq1+D3|++$5YeodmLwGQ7V~D!6Uj8l7GIMdoi)3lsoo#Cvz)3;$XwwhZRg4(bg6; z;I|Zqxws`&BAYC~fM4i`ndwe_$!ko6Wm|skt_;+j z`ueC>plb3@gx3KS*ejiUJ$%VWg)9jW6~ZoNu7JhkmC#_R!9<7Eoq+8W39mcj`IVk0 zUo#^&7_%?%7{^=Mxew}`idP@h51ab@s5@%s;E;4i@{Kh=!W1VdiSZnI4S?TyWD~>^ z#pLXI?ah;}Yr4-PMDk+?b9CrbQ%$2V zN^{i}JRgVYE3Amy*I^Rkwu)J*9c8@EK*i+{oeud#$ix&D7{x&#gqJ&ky6NM?Z?~Te zn*?~t9Z?aNV`0TQ&>EbB&8T*$Bq19%`W)i4ETT@!rU5E49hl(yGWpEaLBh4SO}wMx1g;9R5j7!Cjd83+7Z<_p2m`=2F96zF-dxnY9RsYtRkYqk-&0L<=ZkNvef18YInI5f;91L*=0 zU)R2i)98qfAq*V;-b4apQG6SIH3DwM8Se;xG!f7+ky2|JbUUAE}8j&e0 z7cA}uNQ9*zG?;{&n!k=@F#=QnI9S7>ns?iMO_!ymH!nHonrDp?lh<+0XC;0yvr&j5 zfeE&ju#Yzpt(-VyqqNsrwGD&e3dcutXlj!0J4Dj-^xkbcdw*5e?*tp=L?2K1%_RcA+Z0xW4y%41BXG7N3yK z+^^&djs9a1KBN@AM1;)@U7>(w$>}vl^K47a)|~Kd--0Sq_G+g1Gb-VX^l1)~F$xf~Zu;Fr8APpcED9M$MsEA{6W%d;cM-=T?{}&an{K1%dA$odFiDDteP;jSiM9jwozs{U*1_yXtk{mMz#2 z_XI8V161{$8B6_fqZM(lB=rkFU%g3cCrvN;28)F?C#fH!97o3!L01Gwt5|9X6WiWgpMFXRn)^PGig0jO3Atf`h^ z=m9#VZYAb`<*nnFJJUT)-~*3yz;^nkpsNFg5WuiL1^SirkindhM~6?dXaMczJG4f) zmT2mIecsGd*(6YfI#udi?&TmnV;XgZ8UW|0dt-U*z}FY|C5vW9KPtt*l1)~TVnJ4Q zD;86;%WZBGE~|CsDVMcn@SUyK_oDzBs;oj-!OX=eH&!*m8NOD-SQ8-{zkUg{;y`GW z7;I(HQ+LS@Pn(Hqmw)B~uzTR6n+5?N-MUGoiMUac%}F>z70DKnJFm5E8gG;5@NGw| zUUdG_O)9`wksF$EO5g+6(_BafrGhpr2xurG`ig&C>Up|53)f%H#5RO^^>-Qok`Udf zq{&Pfv-glUxY#Y_E+wN*-tjJ41QknYAAD8eE^VTWW=lgC+{M2c0H1b@l zANg?F9}voLugUEs!1p=(aK-?WXy=1RVQy>Xjs-^EYf7VZl;25oCad!*Tyf5=5PzX) zd)}dGk5bxD0Pdor$+`j?9^#xeUGAylG-6xB5b6w@Mub~Nm)6~SnIEeX{+t?j>&WBh z))Xks$2?2shW%n<^p-xCha~fIBO;cmDRgM${CWy|+>!cAk3Bx+_BQ-|1$tm!!y(?| z#c8wP&uwoHZZZH!*%JnhvlVEz@702+8Ni)&eetiHv#5~uT5Oab$EBmvIW?` zPNdQUa+IVw4x722`Z*GJPXR(12xlK`+oGr$et#V0UGG6dA$@rk0Ithtqi%~%IT}Z? zy)^w8MqMc4lQdtIvXFIeWs;Bd0#jPBDyF>1<>^!Z#%9GkHp`>K7Uv!?J(Ce^hqp}I z@!1@;D!lr9+%doirO zg{ke<9;#$@K!yb(nW+uk!t+lQGg7DiKm_5$3&X~TW&U_9@Ux8`U~)UFC7J1tPG3K4 zxuBhmq*gG!1sYtSISN~Mv9cs4DHm3dZ&M=kt|}Xb3wn=VK5)c&6i(lEPkyfvb%)!M zg&f-0k75N>nd|(8tJ7ShC=(R_CYda;KKQ&VIvwc_XckDMkG|kog|G!v)S7y&2ck4? z;PECMV~iUsmDU{N?^6L-*?*Js54lWuOk6foUE@|bddkh#*dLilJBsBof%vnrUr%MlQ3^J`4=3QrOzy2787XhMGc zt;m8hY`{vocURqPuqp1uj4+uzA&T*G(Vr5hU4sGwd|PJfQWnde z%@}dEm93XsxK=7EYH@%OS~1z;)K(nmy4EtbGriSL11N^ObW~1$l&EOFPj2U2ujBal zC0>HU!*x~)w)AH?HNJ-eFoW7;l>**uOU(Xy`Huq(ApC!S_%V$6kOhhW2btqc3mbHf z?&3sl{(_>4$W4mDFct94v{xh}O>t+k=mFyv;b8t}y@rOo6GT{r1 zQ^)2UVmtJ(r60z9g_D9XN|009;sU}G_W?HO1)hKSNsGvjXj!Cau6-acCrKVQ=>7Iy zfZ{tQiUzFIaB8&)5@Ilq3+@s>p5(?`7Bf--`@mOzIBqs`>d8*X4P1QTKpf;1&Nc;# z7IjjQ+@v6Moz1}k`0RwJSt;wv&@Ab0b%2nnKEPmx z^`}OK@F)rX&AEQ}&FU+~jKAj9)5NRPO6cUcZp(*ok4_#nThrQE^(1YxC`5XWGE?k` zJf~*YmL`m|9#m5ljh!g#!OBH^k_I|wHpjneZE3q{%G@txMRGPZPEPeR-r3k@fyRLR z2O?GNZ)`B6fF zh(TFUPAgTWVSpiE3V?M4v>Zg~_3Hr`6hu+CX2oyyVYc zNSQOt0MhKrZ=LBwmFzzXIt8y zJVp~;_={F7dZv?C=*EVI4+2oANoQha^R+zSU1cq3k##W3BUyR5oTB&slG3-f1`c9j zy1KmV2sn;WGNR0z^J6XRt$2~`wr2NtNiM!jDHJf;`s}M4aMMXE+T9M;q|9!ZQQILX<%WLDvMWT z&-pAyV4WU1L?&B9F9W2cW&wg2j8(dRw2Rh>!ZB(!0b@`&kOWb1zgePLK?|%aKol`+ zhBQA(iZ9@^A-vyOct>BAaX&{l%H7)*@TLjn)?Wy|Fyk1cR!JX`?|T7N(T{uS8_Wm} zD!_Amv^2WXQH2ZU-y_M~q&9Wb1N1N3*8B6MW~v|gKHb^t3=TXCi+*Es8=p+@;q$#_ z2Ob=mm-|r297))+0{IqmRD&dk1_&JKo9ZBh4+$~GHKBK+%Dzg-AUq`??dtDSBmfqk z^Pl7I!0_5_0)!2i!9+fl44M-~W z2(5?3mo!#@q(KjVGx7?(6VZyn?eQBZFj3aX<^pXBKE0Wyd72dj3W$|GSc!dHz&AnN ztwaqZZGhj$6$#HwqU{%W0Cz?UikNb^#?d0ASOclW-Kmn2IwHm~gF0!yu)kaF25shG zqM52d?9NrX-8=Ux*A8^>)U6}57l z-p>nKciqlK#3GDwQ$%rKzK^uu>%s2I z67q(5KKuFsB(Kbib(3dlRs%p)H32TSFBBgv07{jj(UpQcQ_O>NtrF3zO!X4(9wl9M z4RuUoFIc49@#BM4bt9iz(;Y1y;}LX@TNF)>WXxNr$>1Hs|5mvyTCiq za+Hw1v!>4ApgvE#ZOyp+4x<@=k(;XM!=ZygLh@nGbmhp)QTOA?45ISU-eU0V+&;zw z2tArr2;%4+%*tW-b%s}_V@z;QTn{WdtyzPkb5*95hU03=N}Tlr5q#`?cXW>Nvo=99 z?NA}WYe##AqMxKnW}OE|N-a!P=41xJa3$0XRnZNkpn)M%CX|#Kp4Bx?vzgC?Fu$_` zZjvGl!}#4CgiltkDqdjI_(>o=K$f%=x-h&L5$@#sDbK|Pq3vQ4worO4uB$PBvuEXE z@NL|ASbofYqX|m?Dmkc@3LGhx(kHtpQzk#I$6#-~ji3=)>-HX*{2ZGm8RN8|@@06u zQtghrv|dF8!sCnlBer+8y)CiPy1YvWsugtmBXv9OpKt5>?hNyN)wtnpe>j2()DC^Q zlKI|y6QaR@5=N;5(YhY&z?H>b+H+;eH~pHOx->k-S!yZYfCH_+PgTfP4TsKV^Xw}$%iz8m?8Jn?CTXxQ7+GZn z_epWopAwtWGPbvtiYrT^JL)4(^#)8;{WU_su%?g81LuvFl}?NTnx&7Li*qru^PQcV z_2)-7q)6FJrp#AW0Bt)+6OC`pe%e))J_`mQ}SE0c$UI_XQPbXZ7QC zmaTzVi>9{@Ne$h6&l+`X(7|jPnc+3v-=A{-!8cC=ftZ)}1@X~2?Dcjf+?nl4?luSY z7el@z5`{N%Th5O;H}@`6fw&5Iyq;zYs7Vv(4W>?A2hA!^?r~_yMb6(U8_A*panNNYaHNS@jXAL%1oG$6 zg4gU17w}m~Wm};2BH4<}Sg^etSyl>kpwF*}MC2S8J;2%{P@`4L05&Wh1MD=Yxqb1| z`P!r-Baqm_GmN}ojKs*5;hy)~OX*ZjFJw-Gw(T26&cZl#r_LhGs-t7r-u+S1g2wZK z#oJgw5qt~vx)qs-Kpbae%F;Z`?shNRGx2*1@2f2OsX*JpmCA6}y92Dj)=i#^^Or^i zH5g2{C-J#4p_IOK4{qV+3iHk(9&n@IK9^y3L7s_nboPm9VV&w7x$Z4pKe3m$bMW>u z*urYOBin1O=b|(A&DbHrXxwT#EH}KP%={K8qUQ|@kXQQx%fEz3>K5r2j0B94(*xg9 zQKuj|YtNYRZ`9aD%;0m#A}I?41RYZ!ISgwS$Nglv1RLSgYpfE%(U|8)mJdGJsok6I zkgueV@J-7{V4p*D=l9`bpXwJz{QR=C860Xfy9@3%tC3ZMmRBQ;up)v*~@mEO8Pg`@~IwmAMo9);h;4C;hJ2uCnG zX+-8oL-4HAw+ab_!qdhKNTq1ttI&J6CRlO$xD_?1P|7FEIr(IdxV6o$0f6pLn^Gb5 ztoUNcp)>9z*3yhn^_MaVxe_vPwXt{BZY_4-siX~T0l0KuAa4hf>4me*Q^7n8So)hi z@7n~ECZWJAs8)$xFrS2d6I_Nt?v2LJatR?VclLE~x(3AQu;3DI&9|>FFpJZDv>Px5 zk~bqYt1$v_bQ4&EA=RVee2WN5`PdAXU8pMeL(OCL`av~jP&*WjTVTz%B*0@nW1G-} z0@Mi|t*=tVouO?whki3oac4%bVVPHX&;vWy*|{^$tsnpLc7MB+Zz&KQfP0c>Br;#? zTpIsJ=B3BExWO1?KAAjUY*aLCJyvb}WIE*_;{X++LP&#kz&-}nSP$F@4#o8WCnonw z7Jp}LASywvOqMq}6wKS2W3_p`w=}?!JuHIM-JyN4Gm2VAzPMU_qFyGgohNqd0H%n_ zdJ!?mftSft0aAvx1VXamrLO9t>?7gTnNfY>QIN}6b>W`yUYbetj|JI^b$=Qe4Hgfu za7KHFsh^<;6udqKUwv<^(^iVRQ!KJ!UW>3kG*^liZD!K|+E)heR`Y2b(zLG+5@M_vLyQfk5yKzBKMpo!oEKj6j0~>w=vl*h#hdUqRpNVHqB$Kpf`YLQmO;{k*%+n@gBt`DR+-#HPis(o(9e|4thE4YYaIX1vm>e$>Oylx(Yh9ob>Dh4JTt-->r z3A^9g$5-|-gUG!qda8y>HhA%3RP0qQSd~wcr%q)n8?~dTv2{2%;wEcyn!)K~{9P>T zMrgX9ZrCM4c-^hx(GT+(Z6V+K$>R^9s?$%ictlhqSM17C6rLJO7(UKPIsSqeXA zT^_7n(k5V2b~$bCUj7(0kZ$%xh?)It?(K`7N`VGeChohV+7=^+nu5dgInPd5nZNMp z7@W0Q4&2|$ecV48dT7%=!&lfdW}q}E!1<#)TZ-FiYRY}9bs2qr%XZj8N$cm!fC|Oi z80C1&3F+*>cHsO|ox(53f9dFx*PFU7klajo;{F5W3aRLfDRvSm;NhE^%$Ea?`_eqa zuFK05$k~_0H_H+xV2#h4sU4ygtqj^=X|r=X9Qs%5PZZ5fLW4`+iXfY!Ka880L9C|+ zQk9$nZkDw98(i75?HkM;E8x^(cqsdv^RtiCR5I@%Ywil2Qbn|5ulLegJPgtt0u*$HkAUFrv?!CxfTUdTq}`gkrZL703eq|!F?;g$rL z_M^V7%FKAz+`MqtW6t$!@)11e5MI$lSHDa4x94RhI>ZsCpGrmNGgV;(g3SdTTNA=P zQIUJ{8$IVl?o5ld6wP6~mF4ki&3YpmJ+tm;J=#zOu0#TEvu$#>it1_v&LOBK%;H~&{6l@0i9eT+;Ohq?Ar}e z{^*11EnY-w12#4l3T{N~9{CL>SljxNsQF!X9<9u51i$-y(;mDa@>q?NWMv9(RkAp8 z(YLwB70JdWpKZ`6j&@>DLgS`J+Il5Ey0X`&prNRRVJ9orV2wJ1V48)rZ-p5Oqn7No8CEAP^T-uwYr=e zdoM>ZRf6VS7_hr%r4X5^a}AAap`RF9li|~SiM-J%KmzZjOECKqf;WHWqdH&sz!N11 z;me0JPQaXkMRkv&F~;e$z%}TKKpsB>r?#Zk_qk89LpH0?&+xI2fxfy*&v!_$lM1o+ zIeGLzY)^1Zv>OZ1*UO_&D*Msg3i8_BJW;s3R^Uv8s%Px}4JPn}0``RT5L2uREqNpM zp7sHZYEGKG{uBNo6Ns-veo}?*y5lO(A84$sh{Js1o7GK$^je_+mMO3)a_%j9Ak?=V z)SRw(`?v(>P^Zz|wh(-L1k3;W2au1|=u?i$C#)afLo#ahd81cCsQkSiG=|3)y)ib^ zZ9`|44bsYp(tex(?jygw}t?tgHP1Z<5-yJbI76piHV{cv?|ob zjIg@UWa!Nj-J7j8V;zz2>rvvTIn7SekiGyUhF>`~9yUS_kN4C=;_jb9rj#CrR^WoY zLwlepMn1Dbq9OV0^+ivT54I99fjVu{ge;6lq4(;B%YbbPDs497EJq-6na1yI*Pg@steWfqk(pV z;2zjy-&;6mSVnsDk2{=j*<}92{bLN8m(L)oKIdhg!Jj@`n?U|z^3xxIu#Yz@a`U-^ zL+fy8!4|j{&M{su`MR377^3iHUNXEog-Bx@w+(Uq6@FK*s3#7HK%J< z+1_cM>0So1dY>n+8?Sngq#YIHSvK>FC_JzQP6h`7yIf8Bca7#duzmDEYOc2Y=SN;q zrBl1*Xz%%vg{|~9{*31kQQDWueiJ10gz~-;{X9KVrN}z;N_1%M%!bP@!gNz<6)+_Z zkLH7hB+D1CV7vQze)1>p_w(^B|G;2f;V(t)BoV3aD$3%JAteW>?WIf%lk(y57&~0^ zfPka}M^>X8QJTrotp=IPgW)aFSfqN1V=>i!ia}za((6l{W7k5dl05D(srEsb!K2TY zxRMqq#Ysp*yP+T;j2N6vPm2s)Ld>eF-Xl4 z@t6K$YcdPD@75&K7wGoWy3!X}#d^74qm;Kr2Hhqm_Ew$`O{HMyQ`^Awh(j*!wn*S2 z!2u{Fm`Oys9LNxddNKKlmW5*v^A_fb*2qIE^bU{21rvszi{XCJ+qzQUs~4(yzHK

*&h z*Z~l(!<@{AfMoo~*lX;t$qw(X0(n`6gmj)qDShk5510gP`Zk7)labGg=((DC^jmzz<^pwPK*s|Ec8|=IqJ<(s zsJUK@UDCd%adL)oVMmquGtQUGY;aTE8D${Ry4i8}g9gB(`wXly9vNty+z26v7V?!Y zQ9)9f5`k-QbW(e`k&fCcb0-Es7Mih}CkL?bso}YW=&!6g&_>*u(^Nk{7MbApY{tHj z2cb8lVk|34&T2$VJxv{);UNJxX}W8c(~`<+gfz6&62tYt)ywswPFA`z;o3N0WDSNY zWjJw{taGG;ON2u2SG?TZg6X=3MGP!hr$_^H@N=8qii2u!nSMO`?%nR~l9uOoR)jaR z6})VuzfABC&GqPBT5%UnpC!Eo1l@TwuWF1`=dwa-ybRAzMh4@~L+MfuQ;<41gAjYF zZ9y|gh!rj>sr@7jEmf;pOcB)Pskp;}No)SnhU{SC{tLj5f_{FLgoU3cJz?RWdyZKX z3((hPpbB`~SYT^Pn5u5)VJF355#X1uC(o_v z2cjM^&o4%Dx(5Ks`CLY?sRO4H)WeWAELP<*L9uWEcL>Vey6Eg}-j+izEErsY>{~!mF(LM6}hkz+o6~m7zDVdyA>^@&u`eE6C^VfXyA|JnZFM>xUD$F9;M1BrD8ojQ#`Is<5eEioS zJ7QIBGvOY+O~l?;?IS;BQT+6uO=B}P0n?L~K!T)c=f$;M>sDDpvk9K$AGm(+?0E!stDgU)KK7v1NizLCUwJjcf`uV&cMfy>KC%cG7!^?Y70!UQJI4(358 zPQ(biVqwSDrG`JXFUhC`M@x)GpVSXc88s>QNf8VRY|qz!GzG2O)X+O_aUD%EW+}{Ud-n~cBIHO95F|FGZ6f(H!ly+33VmvbOT?1GXj~il31(C)v>lJ_2i?=u zi0FBmeReVDovFf;>D=w}+oMFmcm03>g;f{@g|l>XqgVu#?(X6XjW+%OC6wnJ z0M}_vut7=03(}n|Itrhr$vHdSBjl2g;&x6KLcOHaCwEQ^#N|P+(WpS1)G;>cJM6&jZjSo!A7cT1>4H`Y&wtf*uFt03XaQhiBvv>C0ReO z?Nt3KS+a>SRj1Y)RYG7vJ0HTgq^o8}5|POPgd1(vUsSIg1B&>m?K)ik9Uj=!u}`~@ ze!*mE-J@V-?1?>-(A7o99~YA7TF4JK=wWM8M`yb90q;rU{U^vU=TM^O$<2!R{ZtGP zfPe4F%{m39kIgw-kg9o(U^R(qr|>`^4t=vLofow42|^UAI?8&=Fpn9B&gmIi0q_o z5g{O8{3{!>$zllU6j6_`h*!ONk!Ktaw`RCV6R*erk`KZlJ!S4^&$saahx|SBsb1&^^CJ z2OOpZ7c7b4miuiUJ9CneWx!lD8;fw@o6_F1_k5Xnln2j`?TLK0=Q2B$!E-tddUmw2 z8A2$P#B784@ohwT!f1#sAhQ!t>#(LhH8khgehF|CEMEZgV*V$>v$XALn^>SWkc2h` z%I|=f^@B+Uj%Yc}gR;WWp}jo;L+|L8^Y!Lhmu?~8GROJ&x2n-bVQMB@GzqOVR%e{J z-UtH)9X{T#UN1AQE5VKuf%*boBJzo^^F7GzCXR#f_~shGril_xBuN8*g62f=>41U5 zQf%^rN(HFOs;)k<2?(94>&i#!`lj5%+i`g*s`FDh^=PRN2bcO;WzKGf5)qJWm@C{EAristnXRf+vfvkHFNzD$W3wQH7V2>{d4BbF=Rqx#Ic?S%wZl?BSt^yUJ^o#GkToSCaw8rdGq_6bT^T z$dE6IFxfp1Rb4E!1S#F#qA`3j$t;`kCDam|oXUNvVt6uv`yf)r3m!OO%|U()Rr6-~ zuusN#=;wm+1FKF=^|i=<@owlMdmT$mObphRuY9|BjbD1SK&|ABFI80w{@B34281rv z8(B+2>XpRj0axilmjcyK>M`Nw5!f(0T=BT}(f$qs#&munaHC61Q)6|%rKT`nHaxGK z=rS?+&Lm)?GG>2z2i!c=$6()BQEQY4X~JdO+Za|H>)=LUcsFn0BnJ(K9a+JA#F=Wp z?h?yC!YTxJzT8U;h=4v##pQF8_D#s-pYLv>r?ucV*l#j*kK7mq_~Vd{IGZfTMrYPf z?H_uDfl3rqmGouA!)Fzfw?2|}IDwsBrd$}NM)-QKun_vxt3i8$YUSxg7&gNjCFU*R zT?3Bn?Cy~wOj>-^(M1jXNd%z)cQUr2bj7E^YX}Fd1d<=rXQQ=-;HIu}*%3#e%PO3t zW7;%;BQmY@OU{;*Q}z$%6RQ+>Z37oVQWCQ+fN6D-_n1KvuNBZOJxfY>-!>5)pq|6N z{jq_KSSb?{=m`StO7$tXuJ)d1CN8`;uP!+Qs$zpLyqoM=@*|QDp7U;zSJxgPt4wCn z1Jv_5ceXOl4)(Uag1Zjw!B~?m6$G)_?AR7dv@FW}e%osbKR)xQCzINT!;&hW(s`kD ztXGnKifld&emWp;Nv}3GM)<*S(%QKYpkqr`V12^sFxT@1R?p{aGaohv#To-siA^?7^SvnD7TpY%5gz4Y>(Ke z3lAKyd5yV#bf2F{kspi?NgX#zugl)&YHr1yp=*I($DNiIjRfj;MaqfHQ?wr?BPV%D zB^+8DCaT9)`hi>Or@+7nz}l-nPBZ-$8qDcidmj`f(S;=pP5ouGT%gK>pyWhUk6V;k zz`At}Kv=BvX$T09?Qs?AED}>Yb&I`L8PeZn@2~Ib%OTsHEj<8hdbX=tp=JJR($0D>R=B+uMNWeazi}h0L=Ik)+2(srzM6>A z*SK6g?c15M;PTl5U9o~oQ}Jo5#5q_n%@)GKf$W$>?jw-gnNe}z(u_n^6{MfE)y-$S zws+0IGFvKdw7m<1MxTJ4Yqtj2MLAnGsJqhe4NQebgx$jsKiouN#oFF3aIu@8-h9O; z1Agi2S@vVgFYI!!L_tN$kw#tFkWr)XV4yUk!bFaNK6pjR&|}%VuIszeCwtxLx4p0n zs_FG>(4Vs3RNwFLhUDi6gay)z?r1w>A3T(lTwfXHlTKdy;#{*Y$inWrC+x1y4&l`jq-A%AiqmT<2odpK%v0s6ovAW3Xt_`n5*gwgQ~epBMC- zGx6!_m&vqyBNz|l8=1jZ=B(nW9dhYxfP*x^U*p3L{WyYqt#e?5EEr)r1x0J~7U-N+QgMh59N; z67$FWCzb?0fqd5)d^TDtU?{`de?d<&0WfNys_dl1W?@3A^BZxHYRU@Lo_i@-E7zQG zIS#0DhJ4=)9@QJGeJW1x?Tv88xlEk2p{T~i&BQ~rWdC3Siks|{7p4vk3W3X%L5-PJ z_g6n^iR7lq{a&Ekge5~$@wPmU@RsL1sSwQqlXKvv^k7}sY%)&R4{7;kcVog*=7M&g zmHh#q^o5TvVwXUjm%3kR4<})-w6srB4rh;`?xU+Whr+t}far_3qF%CHR&w~!;wYH}X|Lm#;MZg-a z5b*lE&#s(NG?tGjOWYsBm3 zW<`{aEoXfgb@J9Lbj9hN`FqYXl!-lk;Ljv@;l{BD;W0bhx=FD&wIED};4A6+5LiPQ zL6&%=8&0zTD9-400xlcN}oVRtEa zgHok_s!rN#@&v_#Ffqbk7_#c+;)TUIDh+5FvyaPLExL$2svZV}1 zR{-BvbQLBgL#_}acF3xZHbAHZ0+~v5b;XunZH%ZcfAUn>3N(fb%kOA!Icj;qp>Y?; z-noAsmSYg4uYXxs3}kyj5eM~kE8o~;Xx`6e(eBsZVE^C0%A>3UWy}5R(>=-vzdqgj z&*Wck|7YvpWJ>)hsL<)3AMx?_f>EiU~q>|)0ixJf;Eh>45M1@i8#{8Z` za5OeGxweFNupk&aG_q0VIx<4nZ>=mkSv~CQk1*=?+fn7Ud+FtkUug=)FZrtGy;VXT zyWBFv*1pbV=Rkz0EKh9V7B)Qd166E7io87r`_gy#`Ui)zCs0d#8Qwsh1G~oN%}{OJ zK_QEm&-zW`qxDP-4WzZZ4NPd>$&6QK20v!4Q^}*5(DVDYWq*HS!+N4i`@q_xvapcF zyCZM;d+P&J+z7EC)D4T3A5Ox5-Z7t0zLv*4KI6&>v*9LjtsF_zZr}ywU}Jpj%nLK;4?Y!WBiYo0ZCS0-fl2^ z*UayIp8zg8-fqmh42}n=*n}Q0Y)pQWLbkNJ@=rQhO!!vy4h}C*_|?Ceo3r?m$y4` zl-@u#HiLrwh=Sx*jvp8gBtpk^N741(Tg47ln(>nx)2)p^74WIsw%;agUTIV znVf8m^&q%zwZ>Pi7ca7FuMOR9@w|UbKmWaAyI{ymao2ju1yS*0Xo`2_$+bK=hr#4I zUlrw)?8(yMXrs*-NuS{_8Jy zDaPX0e*2rf`ZwhNZVUfcJNp+)iq-hdG`#*}mDRsmDmP|2S z|EBeC@^6;E9{$JV-zoPc7DVq|)P!iGMT>42ohZ>ol!+EWB%(wZb@Y}fF(OKo z(MfdCdl}5{@_C-``~2~Herx^KyVkp2i!=A$xo7Wvc0YR`v5$4s$Zy=a0Rn-@AE_(r zfk61Iz#oK|5P0&i($x_7p!ZTS_R@zv_wu!Z+kq5pVb*q#N3K@(c6xSJw*DU7cGAEM zHpi#NUdGy5k~T0`eyhuO`2Aenf!QFCw49&2m5sBV7sT4m-qB5lZL6`B4dQ4k!)7F+ z{XpAY$@`l^Rj~Yxw^P{O8UvLUBQ(Et}h=8 zutBa~@p6`7`-doF?Z*%$7~Bpb!Y|Bc^FUA#A}Y!+_)tVtRFD@U^gvKZ-~sR}$|v|x zQbbfzNDT6?A2t9R-1fPop0et{Z~=ERYz|&t?vermzP`TvzQX)4xV?a&goMN;3?U&t z;0-=ce>X2HKR!24_J2cAw)3=sJGy&0!rUO25Us3X-d-|n0Hyyd!PWhLz`A+m0>pCu6Ax- z|DJ36zvhbl*SVLf;OY)wRpAA-a1J*5df+k+Q;5zlrr}qO4m7CtW-C zhxeHXlnMTbmvrHU#aM4~8r}-jb$MbFd#7p4df04ujOvqPTE~jq{ddYX!^YNIxq2hY zn>TM!<{j}!;g;(&hDh~F*MF}644x?)ooDi!+LWDKYTV;VSZla;X@ORceqDV=fG_X< z86gpu*Z+(lR)Wi${~U<{Hvj_tGs+X=0oVVGAVuQKFaC1`D_%bNXAA{jBKl|i7oz`r zk^biz|BtQo|8}JRDb4>qng0J+>BDqg(o4NL<_YS)XECnd;O&rf)9s~~*U+E>qlcNA zoV#kqB*fRazy0F&j@CXT%eH9d^zQ_3WilvH93 z<<8f%&;EWI(RXG?&Kct1Muux!nT4~xzfKj4HE^Z(H_(M|(u#yxQvdFc+_AqRSAKUt zdv5<8+_rB1$Kx&pU#Etxvz&{vT?R%OSt}yaWMaxA5YmE_O1#qZj-MZ5bu4R*Yjk5> z1WI2Ieyworu=oWx2O_lCYj@Wn*++oQ)#n zSXk1=i0?$(^(?mdf12jJG8G6LexXF>a(!h^R6@`}Vq>hBJ$pB;^SQ>~g(dp-X_bFo zdUnn&$+Q<|my^OX>%lbMPf4Hh3Hf%pU@_WYaWm&1oKfU&*Z2E%yFcEMyg4YhS@i7_ zzWK?-xsYz3*(lZ5D>xq_H44P@6WHfb-~Y1smd`sjRQlWzwon&H4R`kOGNQUP?NGyV zVP^k(5*G8{1>cFQ4k8TwKR1{qXcpqcysk7PR3t^qBS1WXv1pdL(DG=Y>|Vp5s^iJ# zYxt4Hm7^#pG}Z9^il|JFN*F>VB-O0TCsb#cHfj(Ci4K}8TzQw_=la>byL^5zSp^}y zAK5d~X(fsqex92T^`Q){vOjb=SH^7rEW8mu`#P*bKvY=22- zlCVpu+I`N#SRVU0cGCgG0B;e0`ldGZumm;WltMcgwqI7M1i#Fhy)CaSSyAq`(%^Pl zx<6cINqIHfAzwdRX1_<}Boba;-e!<@V>h4l$|J_w7MqbvYb3ZU^HZzUd}24rwP=}< z$(Fd3tGep(+m%}>w|YoUH~f&uRdvIn;`dxkgY#2_So|xhz|Q#s5}j_k5=!`J&eJYD zFAg4U*bT@P_d5*#Iu<(o21&H9@}*0#ov)}L!c{C>FYK?lHb)~{AQ8z~`l8l0^voDn zN6!@d5+yx;miUtd@W=AfZCwQ1WqDdUR7SyU31oTf6@p~}sr#CVUTg0z!h|oWLkDmU zWhrUaAaYh~mB!}TEzA(JA{77Nwyjps&(3C2b5oC9*E){LrwOQ?u2{0Xl6aE$9ba*Q z6b6w{MjbKh4I|+nQxaDM+ad=kvN!c0>CPYtOPsN~nzd`+pk2JuO2nl-gq9=+ba%6i znfCeISa3SG5s;(`Sw&^Z!BCC1uDHaJ3VITHS*1QQ@L7IfMeXLi7)YujE-vE-6&?kJ`H& zq3g#8ExKBc&?_|t*D2^{QSa%&tAZN^r`7Ko1xwn*1UhSmWL+)pSz8x}eNwW3uf)Ca z95)WhP_s{X3*5*P?t2YDvK*?V0T{SOp(LFXD5E5VBb37^oG{4~${E-`2afbZ7?8F2mE!t1 zN@JhgJzA-49Ek70W)62d3P&}@P3&o2c`S$Ir$0P2xO$E{5t;jmOsnd-e3&tJ4*>M0 z)|t?iB0*gTlncxBIgT7a5}|G!Sv-jkhkH~++Nb-44|uLzg@ZXLV~KG!=1jG9Lq+UO zmdpZqt-^OB3UABq{jKLYmuUk^eXBOR)LgQABZ0keFuucSAV32jjWn>^BvmlKGC&3| z?H`Dpd6gUc$nFYn8m2&e#{lk~)~CC{*Eq&QANAclIobUXY^otfWgm$tb~L)U=e?_b zP_w!IK_Cg>@bN^14WootXbiK1A8Y%yDBOrif2$`6tGxC2U?YB4H)jI-=qd~8iaOh{ zQ!~HgN%|UEQzW4&li$<1z3CdDA?PR6{XVu1VhCx{+r3m#Ls7FT#CUItwr&;bMyH%T z89R`^Fv}>z1u3>(1dUVq2XE?Z4&E)h>8S{UsPW7*3D2CZ#b!$)xjFelN=j3?huEhZT$) z^iaI9alt`mlq5L|pf&R^l++tRVCtJTNRaL0)m!$?hWvvU#YoAtdDbTSy@&6+v?~M;Z3%4i&^&wm znGUu*eF|<xh}zJWCRQ%}5NC!vm^BjDJ}(}T zf3s8+_BjPmsbQjRf^#4C21F`teW{uGUg}iF%rvq;l|h^Mk^tqS!TUR{6ED3GhIBhz zFMM`zE(Ytk7h=el7yV+Wd3d`dHI*St)y836Z)tL~W#7;j40L@K#?zVk5V{;voi9vx zs*r!L{O9PqRUAFBdH2I*E$umW%ihh;%ZzB{r{ zrj(1HIwu*j$a#%@bNYz$%wEhC=7pI#A>)%i9vC?Yq!CUyZY$>F$9znhLi?o0U z?Lfpz5CQ(ZHmbN2rDt+{cWA=G8Rcg$yY3R*i@TerO&l6Y&X9Hx>1VGxGZJ9hWMwM) zy7+w+yF)AxwZoYTJ>Gb7Hy{jThb6sLGq89_NCdFwdYHZyO(wPXWRoaKa4!4&nFxJE z_fnMBP=Nj#-%j7_r_Ou>5Ix<%a(*Dw*@|OteFICwQ}dC|;W;3AVczf)na>mf1}lb^ zS>n#hL~Ct)kwMi_abid9hOL#H-ufsKRwt;3bF80I^~`91>Y7T0KSvhjw>yA$xtGB! zH)K@Rv!Y7tk*}Il!u^!o!}1gT+ILx25F8N%HO{S0_2V&%-)VJYn=Ns;9ucf{ZzhYK z^s9Cpi!r$y83#?D+8yODj?{Npcy*;zIQ17~&kv1(^)aUfNEAEOHO3g0u-GfYnd}vl z0$-hNSG4-s%ejoDW}lQBl=>+`GRGKD$S-z8!Zq*ubl^s@sO#BsEqJCv#mT?qarasKZ(?Tvi%}lr}V|+{lK#Z1k=M8Q<)a`moe)rrFjfj zK=`Tx%Pnh;qP1o1Y3MuRBcGd!PDI_BfDdLmfc?$F(R3)T6Af+&cD<9`lyV~V8smJt z1tPLmwg}MIhMN=XWHG%s@kh>iEV9IqnBo+cFRql=O`#16;W12aCxlvFP-PB-ghs}d z62~raPZ}H@*M3AB04H*AmP(}Ch`uWScDhlw1OAK=55Ffb} zN8VrLPCVL82C?aMl*U&Cb>Gw#jd9Thb^j!#2XVx2xVgA^^)1o9Zi66btcdycY9KG z?di@^=ssnXC2M`6Zy<}nh@@&04a!L*M$2xoZx#}7VYKaYs!O?@Pf%A07`w zrwV4N)^0>^n1$`YIz`EEB6uQ2UPAol*oxZj}z_TquQ~gw82NyrwZl$p0q(^ zGb=H9N<`Qfz&#PyT*RG#9fx>@b?`f5}-kRz?#fS7lf;`Q`}jny4XPJ}Uzei+eT zySrl;v!)2{-USKiY|_FcJe2Rqbr_~eJ;6tNKVX*uXkM*Gp_=D0SgL8_)g54G-jNa?!jkL# zxC*3q_vdxI-Lqvy-yP9alyIcd_|FHV`05!`YM|~{AiaFtczr<@P#wYxC2#dPpxWY% z;nS2f9wT8gPQH$yLQbPp(D`|zTu4$aKoO#PLgLB)PBV~)U&mg1}i6MvivSB zxHMV^5-C#a_Ohs0v66_L4f&phll}~N#UB$IoePu=dg~*T%eYXJ9b8PQypk={%-mq< zeR|7;_E7xF>;N8w-{pEqc4sE3H5Rh1aATlt{uxffra#*WnK7C2!)UdKF{47yc5l*L z^48ON{RH8G$(SUA^4wGm0o)Bp?8Q)Qffgws2*2pago;c36NL2y9_p2hebk9Uu)Y+< zn?W4e=4UngJF4QsRK}osB`K^-17%Tw7+>K}$mLe&19_PNL!4MjUXEYS4!nZ^r8DGY zf`9(Ny1%HY;6Y_Cgq(ezDMS8t_uDu3;Bh{CjFOZ^P@{#qFYu#&R2ZO!NINC9jrFeg z(9B;qKbZ4ItS=HF%A)P05`y4Bb+kym-7ic%FjdFXZCHSAFjgH2AA&0zWJtXLE@=Bkv$^qOdiGv9t1dvJ^|M>p;+908jSu@_m~4|wa`kpeakH8jbqR*IOrvc;;rK!;?C7Jlt>PI~&RzM@KdO!=?Yir?q#Ow3*8IPmLQ?N4T`M}d< z;*DP{5fqwi6cFL)df2ZkTGO?aXQ5+@^k|gMTsFz->|n@%xTW&#-0Ffi_xf5U;)x>v z;<76JSvhxmxjrDDx8{A_;VNxK8Er-&fNlO8 zAaB8#PK8J7+a}KC9~{8td%;Ic?|^bms8%^UeI~xOr-F+CZL?^1L@a+Xe{$}UB#ea!d!^~vVn57!8FnnaD$y8&w-m+dC_H&Doht?>VwOY{c@GJdHcSPj zU8*1?X0+hu#kVKi7R90R_#tYzdW>LlzX-Ndbg$X!g;1FKWvMA{p*De?Xtz98tCh^N4ACQp}^GA4X=Qv-_2rd=bBVcm|srA$jm#!wv8vAkl*o%R!Ezb*Le8|W{2}>=MPaxg@ZGKAg-S^(C!cf-U zzUb5K$FWH~%Ye>@6i@L-Fo}gb%L_hlQg=8$cNfcUz^H8^yMx*f&Iv{=@w8! z$#;qgl*zta)Y~%MY7`!^it7NLZSMo?z*oGDkic;D?x*(d!7b9PGZ8_`)bg81`uphv zmmAE8&YMxM9Pq(k!pg(dxn-KldfIx)iGaqH4q}6b~KhuT0l7Qfh^HSjQJ+wdeTukUwXwV{?y1n z)1091#n>Cg@Ets8%a_e+?@I!m&&F2vyrGzu!|K&B&(DSG@S)vg~^0)2w*5 zDIyxE6hjA;)QxZwx5rb*3ZB~TP_&2qrFi!@tIq<0IQ>$paP#w>)nEl4xRNX%D9LWU zosxl8Pm9Oe9sv}Hb*o+OsthrPqbyG@Jf3Gi?2|eV=rk;DdXBSv7vz0Tg|lDB1|VtX zvIQAFR$oW<69>+Cr+~Q&%XnhEM%4O##4)Y9dy0F$(JYh*bOO~UN6Xt9s)sWQIe*3q zUMXKn7sS6UW1_A+_7jWa__uZ`C@w|AcW@L}t4OhNKNIOzwUm>2(HAJ^)FP>`PwaT( z!5l6GTU(R0ejllg`tEFwo=&3FR(Oy~E^w_g05)pzSN)InH$ueAp{(9LGk;|PRA{t3 z$KL~*KX1Q$+|0b<%M<5|Rk6w;Y2T_FQ!Uo5xQ9^g0Hq%n?5<*>dv&au5Qj# z79P)l%W7o%n4`K9o-3cI_g5rlf#{a9hMZT!G7Xygj(ou2PK?F6`AIMk!C1W5jh?_3Z{Ag#yDL;3cNDX(2sv~u{?niY^-p%xP zbi5eq{cbCNJ|FrNB4iPcCg-DIV`$y7r6pKZk_dwIiA7V95#)Sp|-fU17E&=d7pQ;y_}>_bKp~Eg0}XP9Xm{!^@tWgb(;b zwO*5X?<^)jc}*}jIFjeXhJrFqAIGk?3o{D=-;?;_K~vDa0<{&8l`G=+WhtOO&Y>W3 zzymE1n2!J8n%~U#evMHg0CTX$EG)(jBkfOSUM4e_AT zNG~9=UAMF&f4(g^c!^PLV|sHuRmEdw%u%^M2rCU(jn?r!AF@0M@%d94-|;imQR2n- zO@4bbAS{71=Si^7gcBie1U0Dw8eO*DEKW7k2hJ>>^viIUihW47!1nX|+~Lk`1nQ6% zBWY9BlMNpxnz14gtIFc>= zd$%_b6X5BpY|}|;$C+Ujnm-< z`ljHXBSEW8MJ|u$BoaGKnd2(21jZj(%yqI?stvGdfXlAa`GY<+dL(BU3}-xD=po%J55AXglI zO@r@RYA*T#-%faizsA0ZFjeBYYTHWu3AfNY9okq-^kTaMl;kaChJzw?uG+NlwlHgi zr%!sfH)F5z;?cyq9cAk$6RGT%jjh2eYM$I3{#z*W*x3?!j#B+aOAzZ1LBNOD3ZGJV$mP>q z_Qu;V2F0xyerOHvUkhj^a&g(I+Hip1_QsxkZUO`jRQS6bFNqH=ADiQ>p)`vHc6Mr5 zR@b z_|c_^lQbDylj!~VR+b+l^{b;C$!WKE)lEIPINs}x?>9BNyq1&Eaf|M8AD+0EV zGJ3Ask^>t2OTIv@J{k_yxtUt~+9O>%CP&+s0&m$L@9sMIYf;EmedV6cANBsUkT}JJ z_^i_ihe~c#-VwUwlTTGWlW3C@yIklCOXoF^fIvwV^`VKYj4w=8Nj)zoqzrQ$a8bHD z<7Dk}%ZWibq3E73-Ic5sgb49%`?{fl$9Q>`w~2&N(rI{k{wi|~PvE26(+trhZ0khw zQ2t+_UD2zh@w1SP7f$k$W=Ke#(xe%%nkV$itaeOi?m(zwL&%ewnaA|{mfT_%-se0v z*t~e93enP9!B0Z6a`2f5sWO@L$g1-ckkcn8{Phmc2@iaeq z)cg3zPVyhCq}L=>;h!;?dB*sd18*Vn9m%fnzrML=l#mwv-1kkN7n_%5y*FI%)G57_ z@ygEY=VKM%+wyaHe2=wi?8`6Y0e+`OV(XNE{! z4Ui~(uI9@*4ZuK?71H2l$#+i0@hqYkzHN}~iXztz>w-a#BE3xU2poL4ADK&OFy~TJ zHa%&8Kk9wpd*c$dLrx0rt+oh{J>Tr|iCp?JO9v*}eR{p}73#({Ne7tZ1528=4Uf?} znIaIZ-wE09JOnoDJ3680%x;Cg3l5y`LTmQiSW#Lr^KT0HJjGcOd0mlsz>TRo;Fzc= z8zt%BeOR1~!)3PA-allSw<246giRmSFV3_*q<$d4jCi? z2qmw2Ciu9iiphueThyPFlaSgX%jU?B5+E??kt?5lYjefxT1O3XJ(qG66QckmdMyi2jO5gfzFiXSMb)mL!oY=WqFFDWPQyP~YXY#H2 zouH_%Kv}iILQeu)D*Gbd1YLuGv-6_M1W?lZUD3O|{<_O}XDMXthtaenDVR@c&*Se* z1__JvUL&bpc4WdrZ4Sh0??#F3loLvq(1m@9EToXG$F=Pnvd zulJ&tj|$KP*)|?4AKD>uh`+VvqAoUZP1#hGFM)Ofwyo18F! zZ`iX>m(_7wQ!7J7IM#Lm$K-j=V7W(GI%@N$>OpdEKasfbKxeK(8_D zuF}8f$Fc5+Wzn97V$q)-3#o&S zeaK85xTJ?}=j7hGU3y3gT3nKne>8Q{DXKwW2(Y)L9+x}TA$&4Zh^^S#z50#wKLd9l z4WPf4#iwFLwbdxHBDbbTG{9t-{aj>XQEIuT!LWcdp7dZwV4X(&A7I@t8pDAz~f1P1iA!j0)y@l2I(gBmXO5O8e1 zRL{A0ld#H1$HXL5$s+54iT%AM*Saa4OvM&`vwENB^-{4wb{u9FoHh0=F{t`*;LhEj z_;_q$pNi3@L2tY>nfX$wb;s3apg%9Dt*S=%rEv!rre#}3>yZ8u>putO`hPm!jll7* zcwdr(c?l(oMLM;cfFV3tEk;7H(aa#*eFPDjPPp;GGH)1U7dao+O7TX?at5`7e>bAA zhLx`{U#-FWN&cv|zVq|gtfU9~tZj#ra35U(TF0Jey!?#-`YJM9IreX*) zSQ{N}ub`!gH51dg&) ze-xIv-2YV9rBnfR&cIbaSyZq04HoRW!CI&gWyQ+4neNln(nA4IQQUx&;~>%9X2LbT+emz6oXOl)``iepvGdmkWR4VA|u6LsK?;qjU4! z1FdNk)mBHo3(w^oYv)tE1 z78IEAUY6rqn0j@{`rRLfdM!Hmzx{-9-w;=04%#+ZEt@^G>`%;p7fG=b9-aLSYFj@| z!R~C>{8Zd~xA%sF=(<}fVe&(Bz|o9%So{uf9$&H&y_ennQJ(f>I%%r0w$vsD;hCeR^}N{x$96fK-kLD7GyadF zZ6u4<`WhU`87$I^&6qsiqv@jx1G>a$t{U+r!#Tb#DfK4ZPLOS^5q4>5qbAY4jDgd4 z{D=S{KSuA49Vi+l!3t7v42KKGWNW>xz|w}Q zXWq<7AMf-tz4P4V8+|6XH9L!oY_|(g3;TjviV?G2qn67mwy=ZzE}jc{K6OB#{7u=15H6it5k)cg6a@0brGhQtL{Oq%}sT+J>@W}+f z+AH4sxpb}vRU5<*tJXh;EzFr9YnPFSK`H2aP&&sT%cl6(jhd0kg`GUq(D-oehpTKe z;1WKRNlb=F2f3*)+>nw0@aU3p?~1X4taeh*#~5D7K=Au0bLZxjB}|_UqG$yTWi<687qq(jDBE_El}UG6<~Lbn;5gO z3GbXddw^6}FgTY?w0lt@`hxIHPZQ^XOIQYZd!}f3WCR6n zZMb<=;jPYz`a;s*thyo}Eh|qg-_eH0O{~z&l^w#aOi09U(;H`?!7>w|kEr#I0}23=6Jue0y{knOv=N3)XRcTkdv3>LjC_-xy(}jK4H! zyiC6t4S!#RwB}Aals2Pi!LjL0$;-V(v6K?Mr+KtEW1=P1QciwT&B1%*OZtsvyz_<+ zJAsA+VeVWJ;JF~Em5rFxo*$^va$GTBfL0VQaGBl2yIqvi>`@GP?^_8r_T@z{QWsRD zYnY4XF|$AoIp|V$4@p@?Z^bR{hu$8ux+&vO9I3)qxSrftJKNUf{mG9p;)F2ph;(0} z>5s|eDeHoKk^9?xAOPJlA*R1O^Mw{vIW=&y|3SvZvqcK-W$?M`@b?A95VB0@tc>0? z*7GgKagJ}chbRXU@xg;L&P|#&)Nc$9UUTKGh z#bn1x89S?yvt>Jy0BKH7AMK=HZvYgpWBE7XhVN7`8|f?0E7q zD~tAA^A3It+5)QdFy_|a9U!W1`>8hlF_yj=dRyWJp$s~L=7g<_^NdUZs)X@x^stQ1 zS87IgvH<#t-V2W*zd5Df^ZsS#FIr$`Y^`a-2Ib(BF&2WDRN;bO;adK+zLnfxW+lz? zX8r`2Z0e6pJ#)mnamE_oC)YBn)%D{+Ceww~CC}SLui76d52T}cs?7{=fb%iKW2(6;= zmD4y~qNc_hJzJv=qyD}++qF9#Ae5;-#GED=3WTH(!U@{l;YLI5yiyEpg%sZ^N90|s zM(m))=W=35DrOopUvjq{hGGVs_(Md!EB>4 z6C_Sw+m*Hu6wdcY(Q{ODCYRD-$m4VKn~mIq8jLm402K)iTZm372siDEu-!IRb&kYn z$hi+YX%D|EG5B;~P=%`B6F%E#Ny@cvuCSko5o>A=lH3o-d73AP-~NMZf^<`@u11mq7Z z$0A*{;06V=_5lkr{d`~tf%*BJZscc3WmP=J9l3$>0mIB(m!BVTA35F>xA}rLU)*O+ zW}Y!ykP=~Q>`mBm_45%t^Mj1L64WEW99e5D;-7-{A3p|; zOX;r7LTf_5kXJc5(CP?n*Z}bnDB4>jZYVb9VAPSwPASu{2&q*YMRl;wq-oAiia0Mz zrq(sL_8)zA{OS&UnY@EGB0&z^*nyvY$6LQ!b6T{CFV**&`eUN*dMeq?(EvT?mwxSE z(jvS|SZ5v!@Gx8)lwhRhvdJqd?I?6}<}IRQwO;=@OPVx( zBlb{*oQgcdrVt2)2Jtb_5<6UMhQ zcxFuAK7zK6O6srOM+(&Sym3BL4gg1}T%09|SM<_t{kDl7klyB```xHo#-!aLcg=nGV69F!|83&Xs`4h~sEf z@CWZ^%-U3H_h7YQ-jT*BIA#7QzRSH$C`jVF0moy*J&-YN4A@9?e6BByCISmQ-@bx0M5N7OC3UQ)FZH1KUaL`HWe6MLW6 zsHIr#$H6|Uybqym5{8Scn=Jw|t`GsLOt7KYS@Iv7dc|J-UIV@HZf^FyrL*8$2ZU(VR6ab0^S4ADdzw z&K;L0*_bkv+g_{M&+}vR05B^2W_Jr+cp*^?FW>JLl6KiDu%<=mKnD9R?~`7z zC>L1|UzvY9Gv%GhCU^acUQ(W{n_7>#BS4Q1Q!%~J#27IGp7b%UXtC2jq=G)*9|nM< z<`1ch;*O_1Q<-zmtqG1)Zi_jIma8m#>t0r){Y5>zlD)3 zv9@MdBn5;p$CFn3zWt#NS1HA_!XLpdvl)Uh*w&Rq6J+3j6x>u)P<}Nzy@> zqQ_)$z^$wT3QCqwv~j+)5%UJX^xL8*XY@#W$Ie>mF9+9LW6IWMbBU}nrXMX_Aln+7 zlE>dZxFus4$7rU_QW<(3Jjs)n1e}Bj%{x|JQ`q6kpAQ+&O5*O2(vP@(=bUq%w$1Cn z0THS4&9aZExoIH$w+s+F(Nv-Wd70&otgHm;F_Ck8ojuE)YloG7_R3)WLY+b)E6Ifq zzXj%R^@T;ueZ7Ntsky3@R_-^eRxI3A(w(eJniOs^*kGAEPSGLTySgZMbmLs^XrOYV z-zECcSMq|J@==nz`uL{smo+24OE? z(2+TE#ErmKi%F>t+7~i0(b{J&O?r8zt`CdF7Vk5p+3gX#$SM?MH%gt8xA)IJv)|{n z-D!*w1=v(qWo6tSea5)<#k-D4%^`m3Yk#^JcIKk@QLsaU?ixPwL2Yi81Z#423%izJ zO#a&JEeV*|DYzi~CZ&InVw5FHl+Gku4Hk|uP{KaJ-D6DU`q7wv0C0 zgOT{Q9f3(t)mB)mK&W6th{7u)5F zTo|pZTefebh4&$vCdcK!@H;OX_8kbmRa~xLdt96G$#fs1SuWrUZ|`u8ELQJGI0-b> z*sL!?Tj^jgT#RL~W@|yrvOvvaGOeo`$J;&dpiZi%84~tvqqNM+lsA`R{8W!? zCMJwu@6WaiVBHlq0%jD>BN6T`&&hPjB-utwX@{D+_TTxqonR@6>iD8} zc=Fd+?)TK+*;2^(4fCAc?O1_HndZ+gC9YdxQJH9AeC0z}*YAF3HUC0(%97$)%37tM zd7`I>AA2-f(@qQ~*ZqpZad*rX(#a|RuC`)?pWYR}*LtLKam336bTh2mXOt~c+?Pbx z8J>Y0H}#N4=aV!G+d`(x_ECPBk`q+1SvL|tzB+1RRU{sjXpGYeDR(XA;~P<$CaTGc zR#xuc+Lhdbg_o^;`ogAVhX&obZwJ&CX9n2 zwwC3ok>pG%BrJl}fQ@df5L$B|^A{x0e(jucZUdhxt^G`_@dMw$sd`(+KqAQNGadao zXHZOAagfT)cwMS)oi(D6aIo=1DsO68i&S$bUY^K$`$sv4Y_1uqy zG)%t$D5bop1WSn)vaV!zxrQXNcVbaIy!eVYSVbAF-aWV}h6&!iDHHSK5w^xHvN+D? zqrFw#nK`{F_)Lw57MFtoVrvs7vD$(PHbVmSZTgYn2gKi7^1Ejm@Y@x-JFe5oALLZV zO^bOKEGF#6|C%yfe<4vLF-+H%kz_m>@KH>G=})n?e`8VYN=)@9G*8f~$$(ELpTOq1 z$$V48hw;EfnLQV`TvzeHGK|Sw?;18KFt>Bd`(EqqG!FmPHxo7AfVO-Of`6ala3y_gEQfiz3Q{NR^>*9VBtg!KwI@6d`HjjwQFiBAO`M}Si|>JdUr-FS zt)Qt$yZ(ayQwIYr&2>{QcnnSi4X%6_t#>xAR}mPj!;&kco0A`6+0WBSA2|5wgKJ)y zEuGezxKDNK)xodySAz=RX{$ zv`bh7AffCyVBu6!}vb@K;&Qw9*hanV7zdJ?NG53(%=X0Nu>7e&z7w|i^PT_fQPh4yt? zQA(j*EByD64FINy285;xEQeaiwAtiVz=wJJ$H z4<_~pTTHg4Zv?C=HU=^IiF5YYQLict^N*V>0Kt=Bv!n>VSkUun+C^kKO|#64ZY^YM zsM4Q}r;Z!Q&*s`KzJ{A64a;WVPgzMPH(Q#;K-vxIto%EaSIZLLZSpoT-ov`Tkicic z&;MhS5tX!-+mbWcq-B%ujN9izw%*Xp2Ts;?L|u<4y_j!;gr{!dbg~rSULRN{8O1BxE2xe(9ASrdV7}>O%3nI?2HSopd@79gJ1tTXmJCQCy5HYsFThqm74ZnOL@^Q2J= zk4@E|hOxYTvY@cNT+Bx(mXzfNE1vjg&|LrFwlUT3t^PeFVpsr)7mzB3E=c5QFwY$F zWFW{#^JP8DvT__`3PdskZv&n8@vq-WiRvS41a_8MwgV9I=1wY6{e=|j32Z?kXTPv; zGf^`-hFF6aHc`PQ`Oal~I7~odAU!bg2{sYasL+z*Oim4B6e^=5F*qTVk%wmqYL_Mi zJepa$m)9wkU#nG(VW(QR=8(Vpmik)9WF{0wbc}Ts^P8k;5k~5iBI#aveX*}M?y%fS z)eAhlb>hf?J6VE;cQOP|m^W!d#ej2QVAv7dlxs9fX*^mk$Mr$DI6ZS0bQPl+xtAM! zRDyXlH4jAMm{-|pIJU2|Fj$A_ucd{?RT1DAPa#E2t>$bxwPcOkBa2D=qMsBjqJIJ- z4CUlrlxU`6KEXr*XAs?n&)8MSo318FJ4C zR~eVm?TFgGJUc?u3w?}~b0c+gDe=z3&_fpocbgulubBZSO$r>&dnh=E^2aqI56w<9 zRZ~1NT0YK`@8j)wcQy)P z98F%;jEZKiJ(nuNP2pPjx|C=^J_8MUYe!J-SG7r9qwMA1Wo{Xl)K&=!Y}exf#~gB> z70%NU0!&p8BiBZM8ma$NQnU}+LCx}>EZ?*geV^*k?U5K%ZtZM1?p}~U-*7`TuV*RO zY=sE%Vd$F~lDlsC^0XKiL-0WsrX+NB*+uObK9MaYIU2k2k`c^v{q&VFV8bJAEVYl8 zYaKVNaZiQBU{eW&|4)108P-(SEE*K)Qlu#$RX{ax!B7OH6FQ-z(xi7p z2%t16p$Gx#3J3^NLJuuUF+d1Nml8Oe_r2Hmo_n9~yZ1Tg@BNjXd1lR?J!{RZS!-s^ za^`$>aYWX<%sdF1Cmj$D?{LSoQ3B)QEf^-u|NCND-RKiB0!N2OOH`I2IGLSX)J6U} zHZcdn3^|IfpEss=zLg+}iobp{vHg3_`#QRS1yb+nPgTz~fNzRo*Z9rE@48llDz3F) zg_ZQ=?Tk(7zTSE5sg)k>T>A#h&FQ~vvrC@xG>|$Z&}ma3g_SH2b?AhsKtVrc)EMB6 zk&t*(z{#P%&HlnWoJ;+MZ47E%waIe?A%;HR*>RAv7%M6wN4in!od^%$3b(EuXE6BT zMfpp@`PLJ2y%z}=l_-?gZc`MyFLXw*%a`7{_5G-SAb5>`E}MQa4{aIEwAmYaQ`-L3 zH-#UJ2ddN|Ge1K)*yqP;MChF-Cum99A_seu_TA%6DR?yL+4UhfR_)`bidnHI>EmK5 zAIlX`K7~sSgsJ*vk`L3r_m@5%rxTJ#&75GHd;1h4ASB}4G0{iBw(c}-ftg-~zDZC@ ze;NM!F`j2L{VB~Gq<7mLkwF(5J8=*@#%c6%=11(et{@3WI}7G|%y&m0R~j(0-b3!T zSt*enALqgFACEXHflV)Qot@|ejoK5A_62Kv)LePe)2$uCiO$|d<@8o}=!wOG9!}&b z;}>#uH)9vd?@5r3^UXBoMgcdvg#qoNXcvZr3`017Eln2d)O9Jy738BE*7D+Sdby!= zE}x_s)z9ZTv;V+D_Lan%hEaZ(gyBX&?hf}zY3({a>_RFxMo@AO-5Mc&Q-qVUKSN8D!_~JnYxlB z&&dPu-$M!{z2%;gG49|)MJ)Z&-F%pwCgFuWO?A}IbVGB5JPa4f z)pZ{^I8kOCe^=K->i6B4LhyhO|>@Y<7jJH>f zer{UXom3n*c_lr#u@D;EMo^YeFMF*)4Oloxhd{1ko_8g@DWAL_EHbU^)C|{_J%Fp2bssrY{rVU}YwSRuQUSN?K5=j`+*s5T<5Jj4P|hLquf79sOI3Qa7h z687#M@Qt5Wt6D$t<#mndzd-4slqu3L2btspb}c~2Uls7C)IlcLjN6dEJ(Pb=p5DYj zxoPqdaa#~gPU>abVqn`XQ{8r@?)@)D$mca6ygg|~KaG1;!wrly`)WE=Yvt}kO_I*J z0@?}LIO&_Vy)r2>>@Td24;t>x(3r3Mx>e$3O1g8@6kY#KRkaW2A*10RDliVIZjSfS<-L2IsnCN|k4GV{apc{b_9Wx*?I}Kz9yc1AnD^+LY zZ$*2eP-kE55;e2 zpaZ2A-H}ZwmPmMJe(k^ro8}Qi!8@{~k)jdu+QEjDmKNnFY)W&NV5kn^+o7aHSy&e1 zdM6**{X~6g4>rcB7yI$>fahTi1d|Y?rG45+aM+LGeYN%32yh+&c8|4dBX-JeUZm~l zU3$Omf&3?3N(JTtmP71@!_s_>2!EiP9)HPX)T8T7$gC zfdtZ>?hoEvcp&Qde7x;=!ZzUb)Uyz^6MWG{(z5MSa2w|6olBy+CbPHF;K*K8gK1PN>fhWI~E zZz84*&4t~3FjKs%V}4Ryw%K{$caNc|y;^cw3RiGDl1qrA?Ai`DlhV&gLE8jJ;x{@z z>ng+1fLFTFOe@{c(D#pbp0}2`36YA7-hYWFkyLHEEB6vz6ePFC(;`$VV0>3D%GV@_ zJl>R&_kKqvJ-4TclLCP}QQWkht-||xl`S8yN!^1*C588a$#*bA=X~4f50#y*vrY<& z5^1e-FO;~gHBJdd)<;Ws(}gA86VL_`>=*}K3RCeYFx93<)2n*E!;_f{J!GtbuTd$n zNorCMq{g`Av(w#L>qpvnmDUHaONRrHHoj0GBc;G2+^-;0!VIsDtYUpr3u=!D>tV|h zW05J323rwNj-7Spu3b&4kd8c&a>!zs%5F#c6`XY!Nfp@A0b00Q3NI@U`y$0BuhD#e zMQQx*sVZ!Y&&s6^QlK$Gz2H77C%jg3hk4-2d{Ev~Y75+^y>jv`K~j6JtiWIt+*8?6 zwRxsGn8KP@_QOEvQ(nP9UJtI^g(o5^In=`y^b)^v62XC$ZfmGxCJ|~Let9iG)2qNf z;~hUkXV^VJ)z$5$jxJxIq0Zjx*OD}})Y4gpsRL~$#O_H!bBGf)?j4Ej_lDD+lhMhI zR96FGk^C>_&sroCE-g|;*pRr`7&3DW9X7!Gwjy=|QJ^Pfu(ca+$l|w^9g$w51Uz(C@mpnBPKYaFF^KU!S9=NVSsy8bAQQM7R!MY$+USZ9u);+a{Jm1r;qEv#+&TppQ-UgYb`2_O%`MIKB0!mRPqu{VVw zhcB0WHd*9(8qcQbr0{qu$Q?>VL_4@2Xv;zl1&y%-h(g`j;-R&7H57@2Vn|Yq{K?<%U^qR_rr3 z_+oRVZ#Y#%*R(PjJjmqF&l8&UJH#qFL5p^MIn{v4p#e{c%(^x+vd|RmtJRvl$4414 z$SUJS7Swacw1qD@V@Z-@ZMEMl^{Hv;us7<22b=xe4j}_9y*Zw!RtX%!&W-Va1zi?O z=TRCTQkKIk4Ui5Vd!Q@r$1cjs&-Y*$O&H6aY{EiIw;|1O= z!>Cl`0KNGmt`CK?$%G3R&?_b0&8nc6v0)49VU}(cowpsVZV`4ef6$3Splgne;-npB zU-ab96AXdLJCw8x-Drj{q!;rH1&lF==24Q7ogTwVOEUNx0+pMy z+;Xrll+!p3$Qp0+^WwSjXp8Z;6#La<^G&^w$X$j^LUup|TzgX@g!R=}!yHi8As?}< zmOQ)ZF%B(^tBr{EjhH68;4{uTH4pYnPNynv#o%4%*klUl=)}v|Oe>?)p}ytAV~J?^y4T-lv=1Ke>soFj3r$xQ$qi zj0se9E0-~~?WcSGCc^!W{iEu)4}1jXJ=;oAC;2}Lz^Ud|8HPXPH`+9avHR3#8&3`T zcvFaFI6Sl19#J`#wa3RgdG~u6c3j*ek8{?2PRu7f(pk1wsKty8r$ckeXans;%g=sauzH8>IRMYx;^z_q+1+1WRv+x&GSYdCl@ z*?L)Qv+O$>$)fAwJ+1To3uU8?dL5tjAfLHR{TRnK#@>9{qykcy zk1?Vs#c?W6<*y8Ju*Y+PPD%p}zk`xE*MbwThXjIgt{!$s1Zn`?_|W;IY50g(SYMEC zv*bSDKU9x?H?63db*N<8(9yiSHo|dqjQ~0Ar|!A0;HVb-nM@4Nwx9YI>gQa(YZ}W|JCy}w?&TRL%Glf=%i)c%>UWtL>E%`drXOmnoJL4 zZ*|$vP_V_>v*ViP81(skzQl*L(&1-|VL}%qeuXIQ|03;K%Vn;EuIKx{o8J}ESK~_bv{04nk*6CU&3V%m z^SBPt)xJdx`w-$U`h~LmI*$Erb8=Hm`@JTF&>*E5^UDxzAbWx)j2W#%)m9NRecXRZ zDSagvZjXb$r#nPFS3SO`dr^!0DebIb#y%0L*+RBV? zGn~EDPx@QFp~BP8&rV<}&SVC*?UX56X(uGBPw84$FF$7eqw@kYq2|{7Vr|B8|HH#~ zmd67Gh9j3DIy%p_5R2G)aKlos+Evymb6KXSr(Vx3HUi+ug8030xdlQ`CLVs z*t|EOSR}FQjaw2H*Y4=O=5^mb=RDI#oDDV}qt zh&{v!_5n>QYSiU`ai^8E-(0y8Y2iI(d}t+@kQ*b+rMmsKF0PS{htz+A+Ugs(fBg}C zqYyTIH<}9{X|XLhp|MtNrnpw1kZ*RQEIp99lLjbJv;3K4NB+FSvZCMI=hxF8{Cfi` z(Bw_rxfF8OyUbBtP(N_gmt+Q&Jo3yz5b-yE+TM)kZ2Fj_#eRO2TFRj{>s6**fnuCY z0^aMaj@P&3K=bjkiV3=w?+D?Y&#seVZ_++Ey72>RO3<@u^3y&?9Z!O8S^1;7tS+JW zrmdS-H)w;tsJeibsV&>M=T`)mBO4M0M-d-9#zS0MtA!OiO185yI>!$J4BHk9YkTto z3TW2sMEP=ryT<~ZhO0~B@1rylylisrS~#V31%^Kz6=Xhp73Rame&(e8t7T%11eY5E z-*SmRJZY&9Zp=@l{t{<1uVkv_5@6KL$VG&N{4C27CBb1zz=^9-oGV?&M%$3SWiaoX zr=h^URwyPN7m@90--$X}jdA_TM@%s>J{UW2?7mpCKA9BKfOv8r-yv7s)dR;*?ciDz zhU5HNyH3?xo_b}dZ9Lw5e)WkS1t@4KhSfwyc+h9@>+<&Mj&B)FHkZ%A4uY0D?&~t5 z5HnE#xynd@2;W&33*!z`f^Een&f?{|sr=Pxxp5)Jie64QMR(&dUHLW1?5(PxomlAM zY*yd*kP1F0TGa+tuJ<3~S`0wtlDu`p^k4@H zjKsrh7ZO)ip#BU_hEV8>p2xk@r}gipxe6FnzELUzLu}McCLED5$P3{}%h~?Pb&q4$ zllZ_TG%@~lWkbcPfXDAi;kueqL$Fo7z*G~P60gA2eu3htE~bTi>OfS>_~K)yAxeT`!r#d{K;r(Mfr(UvcXQlZHQH~wO-58>cS&m)k{PDw~d8Z18g#?|n{|dZS zV12{|#ir>l*-T3sTuo1q9I3ggR7aN7G?L3&(Ad%k%><`ymedl*jO!)ldh4HDz5AU@ z+f;=tkr@^?WIb83J+&fOC@cHMSWET?cfA6(=uQJ8aY%-7#E%zdxAdL^%#x0sJzzoP zd^sT;=g2Dux`dxU(sYJ)d3aLFYxnMX9OYbj8B`QUl86&8pTWMQ@ts&P^&vQG%;|uY zcYX&Ra}eDERKK_c36BXHAlPQjdiPF@a_@Uvv)1jtuy=K0-`NBTL+l`q!?!;ed;%Q} zPw>VEKV>6{{?;UQ-CiU6*Fpu%$FH;yJ+o)leeY=QG7Q1oZ=7M8N*MbfI>u^944PW+ zDpio4>s4O=^3c_R-3sX@oNh}AQaCD1CqrlCPSX@&!mAH`f7%x8<4ZWr+T008!@00m z&*HmU9@^!Y(;6IPa&u`-Hx*KoT*F51rd~cys}4IWfagD*+|Q7aZP)psW-Ddc5-jbc zxkT@w!)7$N0Tk^q71$y)*cCNawzGg!SE1-{0-)>Rx?475R`0%BXT_HBajx~L; ze@niTwaZQZ#w`3PD3kHrCnf(?C`0aVpHB1KLNU&P7q@Lsi0nA$?Sru8Tj*~WR|aBJ zU+ulQ3|qoQE|OpQNx7&W{j;v9xH}$d)-!ne@#dDK5^sf28%}U#-)9@0>4#2ZO%*>Y z@URoT;Q9)_F~$($7u)*#DcJuYyDhA{$X}0&46A$o00qU&-;=W>X|UFgs~6Q%q>FpT z{H0s1M)vz;th+($ha^+l8Kcz@1LWiu)(5{kaC@#-TTK4WOmsMKYQ1G;S26k{%(_!B z=e-zbZ+l790xah!BWcyIq?MyTEqwirz2XCvFVPY`gMCP`oLhQtgm@M|i_SXkx^W^_ z?$V1$Es8s@C4v~LU%E6VKJ`k$`@;8lE5}! zp8itt%aFbKAI?W$I(7M_iku)n8Mr*pSin0ofs9R)){FSTe7_vPT?P#e=A4W~X%EJ{ zmbM*ya)N{HeCa!0FoJ2F|D~qNspN6AEuXp2@sbiKgKH&z(~`Y@jmSHlj5ELv7F^{6?7f zl0|5?LaMf?83a$<+@`$H7lMde+hflIwGAv9_eYJi$+lif&-oi1Zu6n#sXKeE z&M3#u1?hG^#qFLJ?7k8np$MK;YUb~&CryfK(>lM0<;?r#ZdE!_)P_h})}D+YkTZW z@ejUA`0kofrA`_cx_LQ(0~m&2KA+|rHM@|BcdNf}(hklTYNaKF-yHERkUniP{8ARpVstmN*jVEWAnF7@LP z1_myfM&HWVMbK75CEc-kGETQyz^>ECuIMwdtvJ`WNZcbNAtFJeKyhD;WOdO7Wpq1iP7VcPWzr@4w7`2m9hqo~cruAl=$_V6d)Zf@|2 z{FrU2?u}HP{)fvweR$F93rJP1M~5Ru8dEW`rV)r&D;>hv`&A7_=Dwh{=0L|izk0R6 zQ%?rgAenjTVA=i38;UqvpjL!V8%zJHfv_Pod9~K4yGUHzbO9k)B&#r{RwAms``k!l z(lgf7jlVPVf*lL!*%#}5wZNbAQ5RRTc3-ISg5f%yhoZrKKgTKuP8~a2*&`2KdaP}% zOPXg0Z%ZtaRt0ZFl?#1d9DZ$InX@aBP`@Qbr|)e1EuVhO*!sIEzi%o4Fdql0{UMAuHVFCKR_ zwWH&0p~vqY5}VSnq$6z*=Fy4FX^;yQS61(L>BvMiv`*N@V}}*eq#*4f_rkL}$;%>r zQumry4~wQ89yQ5cw64@vofM{x`rT{8w{B5OJoV{YXrEAPUMz~jofJ@VZ_i|ZkYh=W zzQj#C#1B}YPfAXxtg>qj9`E7UvHsH>yIH+>XXu`9?d)jO%12w_B1=vy=;L0#}w6u=RqxODguVOD^xsTpD`uV=O{o!9pA`-ZyDMTsbvBwRc2;5-W)pz zV~;36fBJ%y8wS*H^byogIJfu|We7(bHqA((sbKs76!GEh1t+ zBR4an@wxO0I(FrBkCgx=5^12$qmeDCk z&36;|`$9^HU26tB$iYy0sz&2rxEzynaY=F_Zf|j+ zx0n}Xc;()htG>^J((}D`mFfZOy52UJNSyCm1@cs>G5bOLgY2cf8N-tX;|7JJjKP_9 zs-r(P_j$RnBE?dSVqd& zZ)DrbeDtX5#TM6R>^oX4?cEe2V9Ekno^4C|!u(+487IBncsT>4P&c`-KhXW5B_5!Y zXQgRN-126$*JHHD?)IT&Qa)60*b3y&VcwcJbUc!=AE+G7@o`q@v#3!(1o>Dy48G7J zyt+cbJZ@0PpRO$)&+}Au7%UR4wNu7~I6^5MGL+Y+F3mgD+XXwfTrzM{`fcSf*!5nH z(%V)&z>(HX&JH8}w`}fX64ZrIb{^^hQ)vm9ZLNSVp*lN9^?)Mb4OPkgTy!*HC9qh} z`v(#D8Q8n*;or6CLW~W)YkaQfO_j>Hk^^d*MT5<80hwu;h^QInd$=zFmusw%H5Fb( zJVeCob%wSmPUS01=VULd2S6T%aAxoA1P92vl)4ne5LWg#M)zW|O#~eBDkE9>nVNla z74QO-=}bcb*X8dUNPwO3|MBnNfd4}JTc!V3>_6atNS+b-e+T~|dG_!Rkw4(SxcoPK z(W?Niz&~d0k3IXxUi>$#%RfZ^*rGpn>|fZ~KMef!@CW-3_#cx0MZW%xG5m-2|H{1?0TFCx3dT+n%t@T9ElE>9}~ QP-D=2HNATkDpoK41FfY;kpKVy literal 0 HcmV?d00001 diff --git a/GSKMTOrange/src/main/res/values-ar-rAE/string.xml b/GSKMTOrange/src/main/res/values-ar-rAE/string.xml index 7602de1..4eec9bb 100644 --- a/GSKMTOrange/src/main/res/values-ar-rAE/string.xml +++ b/GSKMTOrange/src/main/res/values-ar-rAE/string.xml @@ -231,4 +231,12 @@ المخزون لا يمكن ان يكون مساوي او اكثر من الكميات التي يجب توافرها من الصنف MBQ المواجهه لا يمكن ان تكون اكثر من او مساويه للكميه الواجب توافرها MBQ + + + + نوع العرض الترويجى + اسم المنافس + تعليق + تعليق + التواجد diff --git a/GSKMTOrange/src/main/res/values-ar-rEG/string.xml b/GSKMTOrange/src/main/res/values-ar-rEG/string.xml index 7602de1..0f7ee1f 100644 --- a/GSKMTOrange/src/main/res/values-ar-rEG/string.xml +++ b/GSKMTOrange/src/main/res/values-ar-rEG/string.xml @@ -200,28 +200,22 @@ تحميل صور جغرافية هل ترغب في الاستمرار؟ سيتم حذف البيانات الغير المحفوظة نعم - تحميل بيانات البلانوجرام الخاص بالمخزون - صور الفئة صور الفئة - رجاء املأ بيانات عدم امكانية التصوير الرف الموقع موجود بالفعل رجاء اختيار صنف واحد على الأقل أضف صنف لا يمكن ترك الرف فارغا - الرف/ الموقع موجود بالفعل - إضافة الرف الصنف إضافة إضافة منتج إلى الجرف صورة مقطعية المقتفي موقف بشأن الجرف - صوره الخروج من المتجر انقر فوق الصورة الامامية لمخزن الصورة @@ -229,6 +223,11 @@ -برجاء تعبئه المخزون بقيمه عدد او صفر أول تعبئة لقيمة المخزون المخزون لا يمكن ان يكون مساوي او اكثر من الكميات التي يجب توافرها من الصنف MBQ - المواجهه لا يمكن ان تكون اكثر من او مساويه للكميه الواجب توافرها MBQ + + نوع العرض الترويجى + اسم المنافس + تعليق + تعليق + التواجد diff --git a/GSKMTOrange/src/main/res/values-ar-rSA/string.xml b/GSKMTOrange/src/main/res/values-ar-rSA/string.xml index 7602de1..3547085 100644 --- a/GSKMTOrange/src/main/res/values-ar-rSA/string.xml +++ b/GSKMTOrange/src/main/res/values-ar-rSA/string.xml @@ -231,4 +231,11 @@ المخزون لا يمكن ان يكون مساوي او اكثر من الكميات التي يجب توافرها من الصنف MBQ المواجهه لا يمكن ان تكون اكثر من او مساويه للكميه الواجب توافرها MBQ + + + نوع العرض الترويجى + اسم المنافس + تعليق + تعليق + التواجد diff --git a/GSKMTOrange/src/main/res/values-ar/string.xml b/GSKMTOrange/src/main/res/values-ar/string.xml index 986222d..be964a7 100644 --- a/GSKMTOrange/src/main/res/values-ar/string.xml +++ b/GSKMTOrange/src/main/res/values-ar/string.xml @@ -335,4 +335,11 @@ زيارات التحصيل الغير مخطط لها + + نوع العرض الترويجى + اسم المنافس + تعليق + تعليق + التواجد + diff --git a/GSKMTOrange/src/main/res/values-tr/string.xml b/GSKMTOrange/src/main/res/values-tr/string.xml index 1a608b5..c7097c0 100644 --- a/GSKMTOrange/src/main/res/values-tr/string.xml +++ b/GSKMTOrange/src/main/res/values-tr/string.xml @@ -317,6 +317,13 @@ Giriş/Çıkış yapmak için mağazada olmalısınız Mağazadan uzaklık + + نوع العرض الترويجى + اسم المنافس + تعليق + تعليق + التواجد + diff --git a/GSKMTOrange/src/main/res/values/strings.xml b/GSKMTOrange/src/main/res/values/strings.xml index 8e84e07..1b73dc0 100644 --- a/GSKMTOrange/src/main/res/values/strings.xml +++ b/GSKMTOrange/src/main/res/values/strings.xml @@ -1,10 +1,8 @@ GSK MT Orange GSK Orange Stores - Open navigation drawer Close navigation drawer - Settings Sign in @@ -44,27 +42,19 @@ Delete Store Visited GSK MT ORANGE STORE - Click Store Front Image - Please select language Select Language - Store List - Geo Tag - - Daily Route Plan Daily Data Download Upload Data Geo Tag Data Export - Exit Settings Services - Visibility/T2P @@ -73,7 +63,6 @@ Daily Data Menu SKU Availability Stock and Facing - SKU Availability Stock and Facing Visibility/T2P @@ -81,11 +70,9 @@ Promo Compliance Competition Visibility Competition Promo - SKU Name MBQ Availability - Reference Image SKU Name Stock @@ -97,21 +84,16 @@ Store Uploaded Store Geo Data Uploaded Store Already Geotagged - Store Already Uploaded Store Data Uploaded Store Already Checkout Please Upload data again Store Closed Store Already Closed - Please checkout from current store Data already filled - Please Download Data First - Enter the values - Upload Data No Data For Upload First checkout of store @@ -127,7 +109,6 @@ Promo Announcer Running on POS Add - Period MSL SOS @@ -138,7 +119,6 @@ LTM MTD LSV - Store wise Performance @@ -147,7 +127,6 @@ Display Photo Additional Visibility - Are you sure you want to save Please Add Data Are you sure you want to add @@ -157,11 +136,9 @@ Click Yes To Delete! Please Select dropdown Please Take a image - Please fill sku data Please enter Quantity Do you want to save the data - Please click the image GPS IS DISABLED... Click ok to enable GPS. @@ -174,19 +151,15 @@ success Are you sure you want to Checkout No Network Connection. Please Check Your Internet Connection - Non Working Reason Close - Please click image Please fill SKU data Please fill GAP data Do you Want to proceed? Unsaved Data will be deleted. - Downloading Data Store Visited Click Store Front Image - Store Front Image Reason Select Reason @@ -195,7 +168,6 @@ Reference Image Settings - OK Are you sure you want to save Data has been saved @@ -211,36 +183,24 @@ Hello blank fragment Checkout Activity Checkout Success - Network Error , Data Not Uploaded , Display Name Click Yes To Add Data Remark Please fill Remark - Service - Data downloaded successfully Export Database Database Exported Successfully - Database Exported And Uploaded Successfully - Data Uploaded Successfully - Uploaded Data - Please Upload Previous Data First - This username is incorrect - Error Uploading - - Gallery Camera - Saved data will be lost - Do you want to continue? No data available Please download data @@ -389,6 +349,7 @@ Discount Percentage Please select Sub category Please select Brand + Please select Promotion Type Please select SKU Please enter discount percentage Please enter price @@ -396,7 +357,6 @@ Exists Price flasher available? Change Password - Do you want to download data Do you want to upload data Do you want to exit @@ -422,9 +382,12 @@ Incorrect MPin limit reached Need to reset MPin Counterfeit Products + Competition Promo Is there counterfeit products in Store? Please enter SKU name + Please enter comment Please enter Stock + Please select Competitor Forgot MPin @@ -442,16 +405,20 @@ Store Detail Additional Stores GSK - Competitor SOS Detail Stock Pricing - Price Please fill Stock Count Counterfeit Indicators - Additional Stores - Adhoc + + Promo Type + Competitor Name + Comment + Competition Promotion + + diff --git a/build.gradle b/build.gradle index 5bdf6a7..976b7df 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.3.1' + classpath 'com.android.tools.build:gradle:3.5.0' // Add dependency classpath 'io.fabric.tools:gradle:1.26.1' // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c5a25c6..11cf18c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue May 28 18:51:36 IST 2019 +#Tue Jan 07 11:36:04 IST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/library/build/generated/source/buildConfig/debug/com/androidbuts/multispinnerfilter/BuildConfig.java b/library/build/generated/source/buildConfig/debug/com/androidbuts/multispinnerfilter/BuildConfig.java index ff998d8..2a42394 100644 --- a/library/build/generated/source/buildConfig/debug/com/androidbuts/multispinnerfilter/BuildConfig.java +++ b/library/build/generated/source/buildConfig/debug/com/androidbuts/multispinnerfilter/BuildConfig.java @@ -5,6 +5,11 @@ package com.androidbuts.multispinnerfilter; public final class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); + public static final String LIBRARY_PACKAGE_NAME = "com.androidbuts.multispinnerfilter"; + /** + * @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME + */ + @Deprecated public static final String APPLICATION_ID = "com.androidbuts.multispinnerfilter"; public static final String BUILD_TYPE = "debug"; public static final String FLAVOR = ""; diff --git a/library/build/outputs/logs/manifest-merger-debug-report.txt b/library/build/outputs/logs/manifest-merger-debug-report.txt index 0fddadd..d643700 100644 --- a/library/build/outputs/logs/manifest-merger-debug-report.txt +++ b/library/build/outputs/logs/manifest-merger-debug-report.txt @@ -1,41 +1,41 @@ -- Merging decision tree log --- manifest -ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 +ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 package - ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:3:5-49 - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml + ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:3:5-49 + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml android:versionName - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml - ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml + ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml android:versionCode - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml - ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml + ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:1-9:12 + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml xmlns:android - ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:11-69 + ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:2:11-69 application -ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:5:5-7:19 +ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:5:5-7:19 android:allowBackup - ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml:5:18-44 + ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml:5:18-44 uses-sdk -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml reason: use-sdk injection requested -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml -INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml reason: use-sdk injection requested +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml +INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml android:targetSdkVersion - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml - ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml + ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml android:minSdkVersion - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml - ADDED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml - INJECTED from D:\GITHub\GSKORANGEV2\library\src\main\AndroidManifest.xml + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml + ADDED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml + INJECTED from F:\AndroidStudioProject\GSKORANGEV2\library\src\main\AndroidManifest.xml