diff --git a/GSKMTOrange/src/main/AndroidManifest.xml b/GSKMTOrange/src/main/AndroidManifest.xml index a05bad0..c041dde 100644 --- a/GSKMTOrange/src/main/AndroidManifest.xml +++ b/GSKMTOrange/src/main/AndroidManifest.xml @@ -193,6 +193,13 @@ android:label="@string/title_activity_store_checkout_image" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" /> + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java index fe1bdc8..8f21e88 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java @@ -1,5 +1,6 @@ package cpm.com.gskmtorange.Database; +import android.annotation.SuppressLint; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; @@ -13,6 +14,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import cpm.com.gskmtorange.GetterSetter.AdditionalDialogGetterSetter; import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; import cpm.com.gskmtorange.GetterSetter.BrandAvabilityGetterSetter; import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; @@ -20,35 +22,34 @@ import cpm.com.gskmtorange.GetterSetter.CoverageBean; import cpm.com.gskmtorange.GetterSetter.GeotaggingBeans; import cpm.com.gskmtorange.GetterSetter.StoreBean; import cpm.com.gskmtorange.R; -import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter; -import cpm.com.gskmtorange.xmlGetterSetter.CategoryWisePerformaceGetterSetter; -import cpm.com.gskmtorange.GetterSetter.AdditionalDialogGetterSetter; - -import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; -import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_MasterGetterSetter; -import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SOS_TARGET_MasterGetterSetter; -import cpm.com.gskmtorange.xmlGetterSetter.MappingSubCategoryImageAllowGetterSetter; -import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter; import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.CategoryGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.CategoryMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryWisePerformaceGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.DisplayChecklistMasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.DisplayMasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.GapsChecklistGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.JourneyPlanGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.MAPPINGT2PGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SOS_TARGET_MasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.MappingDisplayChecklistGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.MappingPromotionGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.MappingStockGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingSubCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.Promo_Compliance_DataGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.STORE_PERFORMANCE_MasterGetterSetter; -import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.SkuMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.Stock_FacingGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.StoreWisePerformaceGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.Store_wise_camera_DataGetterSetter; @@ -150,6 +151,9 @@ public class GSKOrangeDB extends SQLiteOpenHelper { db.execSQL(TableBean.getMappingSubCategoryImageAllow()); + //15-03-2017 + db.execSQL(CommonString.CREATE_TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING); + } catch (SQLException e) { e.printStackTrace(); Toast.makeText(context, "Error -" + e.toString(), Toast.LENGTH_SHORT).show(); @@ -4717,4 +4721,301 @@ public class GSKOrangeDB extends SQLiteOpenHelper { Log.d("Exception ", " in MAPPING_SUB_CATEGORY_IMAGE_ALLOW " + ex.toString()); } } + + + //14-03-2017 + //MSL_Availability_StockFacing + public ArrayList getMSL_Availability_StockFacingHeaderData( + String category_id, String keyAccount_id, String storeType_id, String class_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("Select DISTINCT SB.SUB_CATEGORY_ID,SB.SUB_CATEGORY,BR.BRAND_ID,BR.BRAND,BR.COMPANY_ID ," + + " (SELECT SUM(SOS_TARGET) FROM MAPPING_SOS_TARGET WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from MAPPING_STOCK M " + + "inner join SKU_MASTER SK " + + "on M.SKU_ID=SK.SKU_ID " + + "inner join BRAND_MASTER BR " + + "on SK.BRAND_ID=BR.BRAND_ID " + + "inner join SUB_CATEGORY_MASTER SB " + + "on BR.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID " + + "inner join CATEGORY_MASTER CA " + + "on SB.CATEGORY_ID=CA.CATEGORY_ID " + + "where CA.CATEGORY_ID='" + category_id + "' AND M.KEYACCOUNT_ID = '" + keyAccount_id + + "' AND M.STORETYPE_ID = '" + storeType_id + "' AND M.CLASS_ID = '" + class_id + "'" + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND", null); + + /*dbcursor = db.rawQuery("Select DISTINCT SB.SUB_CATEGORY_ID,SB.SUB_CATEGORY,BR.BRAND_ID,BR.BRAND " + + "from MAPPING_STOCK M " + + "inner join SKU_MASTER SK " + + "on M.SKU_ID=SK.SKU_ID " + + "inner join BRAND_MASTER BR " + + "on SK.BRAND_ID=BR.BRAND_ID " + + "inner join SUB_CATEGORY_MASTER SB " + + "on BR.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID " + + "inner join CATEGORY_MASTER CA " + + "on SB.CATEGORY_ID=CA.CATEGORY_ID " + + "where M.MUST_HAVE=1 AND CA.CATEGORY_ID='" + category_id + + "' AND M.KEYACCOUNT_ID = '" + keyAccount_id + + "' AND M.STORETYPE_ID = '" + storeType_id + "' AND M.CLASS_ID = '" + class_id + "'" + + "order by SB.SUB_CATEGORY,BR.BRAND", null);*/ + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MSL_AvailabilityStockFacingGetterSetter cd = new MSL_AvailabilityStockFacingGetterSetter(); + + cd.setSub_category_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + cd.setSub_category(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY"))); + cd.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND_ID"))); + cd.setBrand(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND"))); + cd.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getMSL_Availability_StockFacingSKUData( + String category_id, String brand_id, String keyAccount_id, String storeType_id, String class_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID " + + "from MAPPING_STOCK M " + + "inner join SKU_MASTER SK " + + "on M.SKU_ID=SK.SKU_ID " + + "inner join BRAND_MASTER BR " + + "on SK.BRAND_ID=BR.BRAND_ID " + + "inner join SUB_CATEGORY_MASTER SB " + + "on BR.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID " + + "inner join CATEGORY_MASTER CA " + + "on SB.CATEGORY_ID=CA.CATEGORY_ID " + + "where CA.CATEGORY_ID='" + category_id + "' AND BR.BRAND_ID='" + brand_id + + "' AND M.KEYACCOUNT_ID = '" + keyAccount_id + "' AND M.STORETYPE_ID = '" + storeType_id + + "' AND M.CLASS_ID = '" + class_id + "'", null); + + /*dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ " + + "from MAPPING_STOCK M " + + "inner join SKU_MASTER SK " + + "on M.SKU_ID=SK.SKU_ID " + + "inner join BRAND_MASTER BR " + + "on SK.BRAND_ID=BR.BRAND_ID " + + "inner join SUB_CATEGORY_MASTER SB " + + "on BR.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID " + + "inner join CATEGORY_MASTER CA " + + "on SB.CATEGORY_ID=CA.CATEGORY_ID " + + "where M.MUST_HAVE=1 AND " + + "CA.CATEGORY_ID='" + category_id + "' AND BR.BRAND_ID='" + brand_id + + "' AND M.KEYACCOUNT_ID = '" + keyAccount_id + "' AND M.STORETYPE_ID = '" + storeType_id + + "' AND M.CLASS_ID = '" + class_id + "'", null);*/ + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MSL_AvailabilityStockFacingGetterSetter cd = new MSL_AvailabilityStockFacingGetterSetter(); + + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setMrp(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MRP"))); + cd.setSku_sequence(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_SEQUENCE"))); + cd.setMbq(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MBQ"))); + cd.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + cd.setToggleValue("1"); + cd.setFacing(""); + cd.setStock(""); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getMSL_Availability_StockFacingSKU_AfterSaveData( + String category_id, String brand_id, String store_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Msl_Availability_Stock_Facing_Data " + + "where category_id='" + category_id + "' and Brand_Id='" + brand_id + "' AND Store_Id='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MSL_AvailabilityStockFacingGetterSetter cd = new MSL_AvailabilityStockFacingGetterSetter(); + + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setSku_sequence(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_SEQUENCE"))); + cd.setMbq(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MBQ"))); + cd.setToggleValue(dbcursor.getString(dbcursor.getColumnIndexOrThrow("TOGGLE_VALUE"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FACING"))); + cd.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK"))); + cd.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_Availability Sku After Save Data!" + e.toString()); + return list; + } + return list; + } + + public void InsertMSL_Availability_StockFacing( + String storeId, String categoryId, List hashMapListHeaderData, + HashMap> hashMapListChildData) { + ContentValues values = new ContentValues(); + + try { + db.beginTransaction(); + for (int i = 0; i < hashMapListHeaderData.size(); i++) { + + for (int j = 0; j < hashMapListChildData.get(hashMapListHeaderData.get(i)).size(); j++) { + MSL_AvailabilityStockFacingGetterSetter data = hashMapListChildData.get(hashMapListHeaderData.get(i)).get(j); + + values.put("Store_Id", storeId); + values.put("Category_Id", categoryId); + values.put("Brand_Id", hashMapListHeaderData.get(i).getBrand_id()); + values.put("SKU_ID", data.getSku_id()); + values.put("SKU", data.getSku()); + values.put("SKU_SEQUENCE", data.getSku_sequence()); + values.put("MBQ", data.getMbq()); + values.put("TOGGLE_VALUE", data.getToggleValue()); + values.put("FACING", data.getFacing()); + values.put("STOCK", data.getStock()); + values.put("COMPANY_ID", data.getCompany_id()); + + db.insert(CommonString.TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert MSL_Availability_StockFacing " + ex.toString()); + } + } + + public void updateMSL_Availability_StockFacing( + String storeId, String categoryId, List hashMapListHeaderData, + HashMap> hashMapListChildData) { + + ContentValues values = new ContentValues(); + + try { + db.beginTransaction(); + for (int i = 0; i < hashMapListHeaderData.size(); i++) { + + for (int j = 0; j < hashMapListChildData.get(hashMapListHeaderData.get(i)).size(); j++) { + MSL_AvailabilityStockFacingGetterSetter data = hashMapListChildData.get(hashMapListHeaderData.get(i)).get(j); + + values.put("TOGGLE_VALUE", data.getToggleValue()); + values.put("FACING", data.getFacing()); + values.put("STOCK", data.getStock()); + + db.update(CommonString.TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING, values, + "Brand_Id ='" + hashMapListHeaderData.get(i).getBrand_id() + "' AND SKU_ID ='" + data.getSku_id() + + "' AND Category_Id='" + categoryId + "' AND Store_Id='" + storeId + "'", null); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert MSL_Availability_StockFacing " + ex.toString()); + } + } + + @SuppressLint("LongLogTag") + public boolean checkMsl_Availability_StockFacingData(String store_id, String category_id) { + Log.d("MSL_Availability ", "Stock data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Msl_Availability_Stock_Facing_Data " + + "where category_id='" + category_id + "' and Store_Id='" + store_id + "'", null); + + if (dbcursor != null) { + if (dbcursor.moveToFirst()) { + do { + MSL_AvailabilityStockFacingGetterSetter sb = new MSL_AvailabilityStockFacingGetterSetter(); + + sb.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + list.add(sb); + } while (dbcursor.moveToNext()); + } + dbcursor.close(); + + return list.size() > 0; + } + } catch (Exception e) { + Log.d("Exception ", "when fetching Records!!!!!!!!!!!!!!!!!!!!!" + e.toString()); + return false; + } + + Log.d("MSL_Availability_StockFacing ", "midday---------------------->Stop<-----------"); + return false; + } + + //MSL_Availability_StockFacing Server Upload Data + public ArrayList getMSL_Availability_StockFacing_UploadServerData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Msl_Availability_Stock_Facing_Data " + + "where Store_Id='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MSL_AvailabilityStockFacingGetterSetter cd = new MSL_AvailabilityStockFacingGetterSetter(); + + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Category_Id"))); + cd.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Brand_Id"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setSku_sequence(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_SEQUENCE"))); + cd.setMbq(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MBQ"))); + cd.setToggleValue(dbcursor.getString(dbcursor.getColumnIndexOrThrow("TOGGLE_VALUE"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_Availability server upload Data!" + e.toString()); + return list; + } + return list; + } } 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 113cc16..ad52f70 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java @@ -759,4 +759,46 @@ public class CommonString { public static final String KEY_LANGUAGE_OMAN = "English"; public static final String KEY_RETURE_LANGUAGE_OMAN = "EN"; + public static final String TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING = "Msl_Availability_Stock_Facing_Data"; + + public static final String CREATE_TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "Store_Id" + + " VARCHAR," + + + "Category_Id" + + " VARCHAR," + + + "Brand_Id" + + " VARCHAR," + + + "SKU_ID" + + " VARCHAR," + + + "SKU" + + " VARCHAR," + + + "SKU_SEQUENCE" + + " VARCHAR," + + + "MBQ" + + " VARCHAR," + + + "COMPANY_ID" + + " VARCHAR," + + + "FACING" + + " VARCHAR," + + + "STOCK" + + " VARCHAR," + + + "TOGGLE_VALUE" + + " VARCHAR" + + + ")"; } 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 c956995..a6106e5 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 @@ -122,6 +122,14 @@ public class CategoryListActivity extends AppCompatActivity { } } + //New MSL_Availability_StockFacing + /*if (db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id)) { + if (!db.checkMsl_Availability_StockFacingData(store_id, category_id)) { + flag_filled = false; + break; + } + }*/ + //Promo Compliance if (flag) { if (db.isMappingPromotionData(store_id, category_id)) { @@ -279,7 +287,7 @@ public class CategoryListActivity extends AppCompatActivity { } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_OMAN)) { lang = CommonString.KEY_RETURE_LANGUAGE_OMAN; - }else{ + } else { lang = CommonString.KEY_RETURN_LANGUAGE_DEFAULT; } @@ -333,6 +341,14 @@ public class CategoryListActivity extends AppCompatActivity { } } + //New MSL_Availability_StockFacing + /*if (db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id)) { + if (!db.checkMsl_Availability_StockFacingData(store_id, category_id)) { + flag_filled = false; + break; + } + }*/ + if (db.isMappingPromotionData(store_id, category_id)) { if (!db.checkPromoComplianceData(store_id, category_id)) { flag_filled = false; 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 efeb49e..8a93719 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 @@ -41,7 +41,7 @@ public class DailyDataMenuActivity extends AppCompatActivity { GSKOrangeDB db; String categoryName = "", categoryId; - String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id,camera_allow; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow; private SharedPreferences preferences; @Override @@ -118,6 +118,7 @@ public class DailyDataMenuActivity extends AppCompatActivity { } categoryList.add(data); + data = new DailyDataMenuGetterSetter(); //data.setCategory_name("Stock & Facing"); data.setCategory_name(getResources().getString(R.string.daily_data_menu_stock_facing)); @@ -145,10 +146,10 @@ public class DailyDataMenuActivity extends AppCompatActivity { } else { data.setCategory_img(R.mipmap.t2pcompliance_grey); } - categoryList.add(data); - //T2p added + + //T2p added data = new DailyDataMenuGetterSetter(); //data.setCategory_name("Additional Visibility"); data.setCategory_name(getResources().getString(R.string.daily_data_menu_additional_visibility)); @@ -157,9 +158,9 @@ public class DailyDataMenuActivity extends AppCompatActivity { } else { data.setCategory_img(R.mipmap.additional_visibility); } - categoryList.add(data); + data = new DailyDataMenuGetterSetter(); //data.setCategory_name("Promo Compliance"); data.setCategory_name(getResources().getString(R.string.daily_data_menu_promo_compliance)); @@ -178,23 +179,35 @@ public class DailyDataMenuActivity extends AppCompatActivity { //Category Pictures - data = new DailyDataMenuGetterSetter(); //data.setCategory_name("Additional Visibility"); data.setCategory_name(getResources().getString(R.string.daily_data_menu_category_picture)); - if(camera_allow.equalsIgnoreCase("1")){ + if (camera_allow.equalsIgnoreCase("1")) { - if (db.isCategoryPictureData(store_id, categoryId)) { - data.setCategory_img(R.mipmap.picturecatogory_done); + if (db.isCategoryPictureData(store_id, categoryId)) { + data.setCategory_img(R.mipmap.picturecatogory_done); + } else { + data.setCategory_img(R.mipmap.picturecatogory); + } } else { - data.setCategory_img(R.mipmap.picturecatogory); - } - } - else{ data.setCategory_img(R.mipmap.picturecatogory_grey); } + categoryList.add(data); + + //Temperory Add + data = new DailyDataMenuGetterSetter(); + data.setCategory_name("MSL and Stock Facing"); + if (db.isMappingStockDataStockFacing(categoryId, keyAccount_id, storeType_id, class_id)) { + if (db.checkMsl_Availability_StockFacingData(store_id, categoryId)) { + data.setCategory_img(R.mipmap.msl_availability_done); + } else { + data.setCategory_img(R.mipmap.msl_availability); + } + } else { + data.setCategory_img(R.mipmap.msl_availability_grey); + } categoryList.add(data); @@ -295,10 +308,8 @@ public class DailyDataMenuActivity extends AppCompatActivity { holder.categoryName.setTextColor(getResources().getColor(R.color.grey_background)); } - } - - else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_category_picture)))) { - if(camera_allow.equalsIgnoreCase("1")){ + } else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_category_picture)))) { + if (camera_allow.equalsIgnoreCase("1")) { holder.categoryName.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); } else { holder.categoryName.setTextColor(getResources().getColor(R.color.grey_background)); @@ -317,6 +328,7 @@ public class DailyDataMenuActivity extends AppCompatActivity { intent.putExtra("categoryId", categoryId); startActivity(intent); } + } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.daily_data_menu_stock_facing))) { if (db.isMappingStockDataStockFacing(categoryId, keyAccount_id, storeType_id, class_id)) { Intent intent = new Intent(DailyDataMenuActivity.this, Stock_FacingActivity.class); @@ -324,14 +336,15 @@ public class DailyDataMenuActivity extends AppCompatActivity { intent.putExtra("categoryId", categoryId); startActivity(intent); } - } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.daily_data_menu_promo_compliance))) { + } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.daily_data_menu_promo_compliance))) { if (db.isMappingPromotionData(store_id, categoryId) || db.isMappingAdditionalPromotionData(store_id, categoryId)) { Intent intent = new Intent(DailyDataMenuActivity.this, PromoComplianceActivity.class); intent.putExtra("categoryName", dailyData.getCategory_name()); intent.putExtra("categoryId", categoryId); startActivity(intent); } + } else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_t2p)))) { if (db.isMappingT2PData(store_id, categoryId)) { Intent intent = new Intent(DailyDataMenuActivity.this, T2PComplianceActivity.class); @@ -340,6 +353,7 @@ public class DailyDataMenuActivity extends AppCompatActivity { startActivity(intent); overridePendingTransition(R.anim.activity_in, R.anim.activity_out); } + } else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.title_activity_Additional_visibility)))) { Intent intent = new Intent(DailyDataMenuActivity.this, AdditionalVisibility.class); intent.putExtra("categoryName", dailyData.getCategory_name()); @@ -347,22 +361,23 @@ public class DailyDataMenuActivity extends AppCompatActivity { startActivity(intent); overridePendingTransition(R.anim.activity_in, R.anim.activity_out); - } - else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_category_picture)))) { - - if(camera_allow.equalsIgnoreCase("1")){ - + } else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_category_picture)))) { + if (camera_allow.equalsIgnoreCase("1")) { Intent intent = new Intent(DailyDataMenuActivity.this, CategoryPicture.class); intent.putExtra("categoryName", dailyData.getCategory_name()); intent.putExtra("categoryId", categoryId); startActivity(intent); overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } /*else { + }*/ + } else if (dailyData.getCategory_name().equalsIgnoreCase("MSL and Stock Facing")) { + if (db.isMappingStockDataMSL_Availability(categoryId, keyAccount_id, storeType_id, class_id)) { + Intent intent = new Intent(DailyDataMenuActivity.this, MSL_Availability_StockFacingActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + intent.putExtra("categoryId", categoryId); + startActivity(intent); } - else{ - - } - } @@ -414,7 +429,7 @@ public class DailyDataMenuActivity extends AppCompatActivity { } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_OMAN)) { lang = CommonString.KEY_RETURE_LANGUAGE_OMAN; - }else{ + } else { lang = CommonString.KEY_RETURN_LANGUAGE_DEFAULT; } diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_Availability_StockFacingActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_Availability_StockFacingActivity.java new file mode 100644 index 0000000..bd5e3eb --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_Availability_StockFacingActivity.java @@ -0,0 +1,706 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Typeface; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.CardView; +import android.support.v7.widget.Toolbar; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.inputmethod.InputMethodManager; +import android.widget.AbsListView; +import android.widget.BaseExpandableListAdapter; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.ExpandableListView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.ToggleButton; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; + +public class MSL_Availability_StockFacingActivity extends AppCompatActivity { + ExpandableListView expandableListView; + TextView txt_mslAvailabilityName; + + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + + ExpandableListAdapter adapter; + + GSKOrangeDB db; + + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id; + boolean isDialogOpen = true; + private SharedPreferences preferences; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_msl__availability_stock_facing); + + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + txt_mslAvailabilityName = (TextView) findViewById(R.id.txt_mslAvailabilityName); + + db = new GSKOrangeDB(this); + db.open(); + + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + updateResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + date = preferences.getString(CommonString.KEY_DATE, null); + username = preferences.getString(CommonString.KEY_USERNAME, null); + intime = preferences.getString(CommonString.KEY_STORE_IN_TIME, ""); + keyAccount_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, ""); + class_id = preferences.getString(CommonString.KEY_CLASS_ID, ""); + storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, ""); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + //txt_mslAvailabilityName.setText(getResources().getString(R.string.title_activity_msl__availability)); + toolbar.setTitle(getResources().getString(R.string.title_activity_msl__availability)); + setSupportActionBar(toolbar); + getSupportActionBar().setHomeButtonEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + prepareList(); + + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View view) { + + if (validateData(hashMapListHeaderData, hashMapListChildData)) { + AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this); + builder.setMessage(getResources().getString(R.string.check_save_message)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + db.open(); + + if (db.checkMsl_Availability_StockFacingData(store_id, categoryId)) { + db.updateMSL_Availability_StockFacing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(view, getResources().getString(R.string.update_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else { + db.InsertMSL_Availability_StockFacing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(view, getResources().getString(R.string.save_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this); + builder.setMessage("Fill the value or fill 0 ") + .setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + } + }); + + expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.setVisibility(View.INVISIBLE); + } else { + fab.setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) getApplicationContext() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + + //expandableListView.invalidateViews(); + } + }); + + // Listview Group click listener + expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { + @Override + public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { + return false; + } + }); + + // Listview Group expanded listener + expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { + @Override + public void onGroupExpand(int groupPosition) { + InputMethodManager inputManager = (InputMethodManager) getApplicationContext() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + } + }); + + // Listview Group collasped listener + expandableListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { + @Override + public void onGroupCollapse(int groupPosition) { + InputMethodManager inputManager = (InputMethodManager) getApplicationContext() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + } + }); + + // Listview on child click listener + expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { + @Override + public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, + int childPosition, long id) { + return false; + } + }); + } catch (Resources.NotFoundException e) { + e.printStackTrace(); + } + } + + @Override + protected void onResume() { + super.onResume(); + updateResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id); + + if (headerDataList.size() > 0) { + for (int i = 0; i < headerDataList.size(); i++) { + hashMapListHeaderData.add(headerDataList.get(i)); + + //childDataList = new ArrayList<>(); + childDataList = db.getMSL_Availability_StockFacingSKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + if (!(childDataList.size() > 0)) { + childDataList = db.getMSL_Availability_StockFacingSKUData(categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id); + } + + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + } catch (Exception e) { + e.printStackTrace(); + } + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true; + checkHeaderArray.clear(); + + for (int i = 0; i < listDataHeader.size(); i++) { + + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + MSL_AvailabilityStockFacingGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j); + + String stock = data.getStock(); + String faceup = data.getFacing(); + + //Company_id + if (listDataChild.get(listDataHeader.get(i)).get(j).getCompany_id().equals("1")) { + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + break; + } else { + if (data.getToggleValue().equals("0")) { + + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + flag = false; + Error_Message = getResources().getString(R.string.stock_value); + break; + } + } + } + } else { + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + break; + } + } + } + + if (flag == false) { + checkflag = false; + break; + } else { + checkflag = true; + } + } + + adapter.notifyDataSetChanged(); + + return checkflag; + } + + @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) { + AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this); + builder.setTitle(getResources().getString(R.string.dialog_title)); + builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false) + .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finish(); + } + }) + .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + //finish(); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + //super.onBackPressed(); + + AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this); + builder.setTitle(getResources().getString(R.string.dialog_title)); + builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false) + .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finish(); + } + }) + .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + public class ExpandableListAdapter extends BaseExpandableListAdapter { + private Context _context; + private List _listDataHeader; + private HashMap> _listDataChild; + + public ExpandableListAdapter(Context context, List listDataHeader, + HashMap> listChildData) { + this._context = context; + this._listDataHeader = listDataHeader; + this._listDataChild = listChildData; + } + + @Override + public Object getGroup(int groupPosition) { + return this._listDataHeader.get(groupPosition); + } + + @Override + public int getGroupCount() { + return this._listDataHeader.size(); + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { + MSL_AvailabilityStockFacingGetterSetter headerTitle = (MSL_AvailabilityStockFacingGetterSetter) getGroup(groupPosition); + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_msl_availability_stock_facing_header, null, false); + } + + TextView txt_categoryHeader = (TextView) convertView.findViewById(R.id.txt_categoryHeader); + RelativeLayout rel_header = (RelativeLayout) convertView.findViewById(R.id.rel_categoryHeader); + ImageView img_camera = (ImageView) convertView.findViewById(R.id.img_camera); + + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + if (headerTitle.getCompany_id().equals("1")) { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.black)); + } + txt_categoryHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + + //empty check color change + if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + txt_categoryHeader.setTextColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); + } + } + } else { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + txt_categoryHeader.setTextColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.black)); + } + } + } + + return convertView; + } + + @Override + public Object getChild(int groupPosition, int childPosititon) { + return this._listDataChild.get(this._listDataHeader.get(groupPosition)).get(childPosititon); + } + + @Override + public int getChildrenCount(int groupPosition) { + return this._listDataChild.get(this._listDataHeader.get(groupPosition)).size(); + } + + @Override + public long getChildId(int groupPosition, int childPosition) { + return childPosition; + } + + @Override + public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, + View convertView, ViewGroup parent) { + + final MSL_AvailabilityStockFacingGetterSetter childData = + (MSL_AvailabilityStockFacingGetterSetter) getChild(groupPosition, childPosition); + ViewHolder holder = null; + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_msl_availability_stock_facing_child, null, false); + + holder = new ViewHolder(); + holder.cardView = (CardView) convertView.findViewById(R.id.card_view); + holder.lin_category = (LinearLayout) convertView.findViewById(R.id.lin_category); + + holder.txt_skuName = (TextView) convertView.findViewById(R.id.txt_skuName); + holder.txt_mbq = (TextView) convertView.findViewById(R.id.txt_mbq); + holder.toggle_available = (ToggleButton) convertView.findViewById(R.id.toggle_available); + + holder.facing = (EditText) convertView.findViewById(R.id.ed_facing); + holder.stock = (EditText) convertView.findViewById(R.id.ed_stock); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.txt_skuName.setText(childData.getSku()); + holder.txt_mbq.setText(childData.getMbq()); + + if (childData.getCompany_id().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + holder.txt_mbq.setVisibility(View.VISIBLE); + holder.toggle_available.setVisibility(View.VISIBLE); + holder.facing.setVisibility(View.VISIBLE); + + if (childData.getToggleValue().equals("1")) { + holder.stock.setVisibility(View.GONE); + } else { + holder.stock.setVisibility(View.VISIBLE); + } + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + holder.txt_mbq.setVisibility(View.GONE); + holder.toggle_available.setVisibility(View.GONE); + holder.facing.setVisibility(View.VISIBLE); + holder.stock.setVisibility(View.GONE); + } + + final ViewHolder finalHolder = holder; + holder.toggle_available.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + childData.setToggleValue("1"); + finalHolder.stock.setVisibility(View.GONE); + childData.setStock(""); + } else { + childData.setToggleValue("0"); + finalHolder.stock.setVisibility(View.VISIBLE); + } + + expandableListView.invalidateViews(); + } + }); + + if (childData.getToggleValue().equals("1")) { + holder.toggle_available.setChecked(true); + finalHolder.stock.setVisibility(View.GONE); + } else { + holder.toggle_available.setChecked(false); + finalHolder.stock.setVisibility(View.VISIBLE); + } + + holder.facing.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + final String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + if (!edFaceup.equals("")) { + String faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + childData.setFacing(faceup); + } else { + childData.setFacing(""); + } + } + }); + + holder.facing.setText(childData.getFacing()); + + + holder.stock.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edStock = caption.getText().toString(); + + if (!edStock.equals("")) { + String stock = edStock.replaceFirst("^0+(?!$)", ""); + + if (Integer.parseInt(stock) >= 0 && Integer.parseInt(stock) < Integer.parseInt(childData.getMbq())) { + childData.setStock(stock); + } else { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this); + builder.setMessage(getString(R.string.check_stock)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } else { + childData.setStock(""); + } + } + }); + + holder.stock.setText(childData.getStock()); + + + //empty check color change + if (!checkflag) { + boolean tempflag = false; + + if (childData.getCompany_id().equals("1")) { + if (childData.getToggleValue().equals("0")) { + if (holder.stock.getText().toString().equals("")) { + holder.stock.setBackgroundColor(getResources().getColor(R.color.white)); + holder.stock.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.stock.setHint(getString(R.string.empty)); + tempflag = true; + } + + if (holder.facing.getText().toString().equals("")) { + holder.facing.setBackgroundColor(getResources().getColor(R.color.white)); + holder.facing.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.facing.setHint(getString(R.string.empty)); + tempflag = true; + } + } else { + if (holder.facing.getText().toString().equals("")) { + holder.facing.setBackgroundColor(getResources().getColor(R.color.white)); + holder.facing.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.facing.setHint(getString(R.string.empty)); + tempflag = true; + } + } + + if (tempflag) { + holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + } + } else { + if (holder.facing.getText().toString().equals("")) { + holder.facing.setBackgroundColor(getResources().getColor(R.color.white)); + holder.facing.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.facing.setHint(getString(R.string.empty)); + tempflag = true; + } + + if (tempflag) { + holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + } + } + } + + return convertView; + } + + @Override + public boolean hasStableIds() { + return false; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + } + + public class ViewHolder { + CardView cardView; + TextView txt_skuName, txt_mbq; + ToggleButton toggle_available; + LinearLayout lin_category; + EditText facing, stock; + } + + private static boolean updateResources(Context context, String language) { + + /*String lang; + + if (language.equalsIgnoreCase("English")) { + lang = "EN"; + } else if (language.equalsIgnoreCase("ARABIC-KSA")) { + lang = "AR"; + } else { + lang = "TR"; + }*/ + + 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_OMAN)) { + lang = CommonString.KEY_RETURE_LANGUAGE_OMAN; + } else { + lang = CommonString.KEY_RETURN_LANGUAGE_DEFAULT; + } + + Locale locale = new Locale(lang); + Locale.setDefault(locale); + + Resources resources = context.getResources(); + + Configuration configuration = resources.getConfiguration(); + configuration.locale = locale; + + resources.updateConfiguration(configuration, resources.getDisplayMetrics()); + + return true; + } + +} 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 05f6f83..923b18a 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.constant.CommonString; import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.GapsChecklistGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.Promo_Compliance_DataGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; @@ -73,6 +74,8 @@ public class PreviousDataUploadActivity extends AppCompatActivity { ArrayList t2PGetterSetters; ArrayList additionalVisibilityList; ArrayList additionalVisibilitySkuList; + ArrayList msl_availabilityStockFacingList; + private Dialog dialog; private ProgressBar pb; private TextView percentage, message; @@ -354,6 +357,67 @@ public class PreviousDataUploadActivity extends AppCompatActivity { publishProgress(data); + + //MSL_Availability_StockFacing + /*String mslAvailability_stockFacing_xml = ""; + onXML = ""; + msl_availabilityStockFacingList = db.getMSL_Availability_StockFacing_UploadServerData(coverageList.get(i).getStoreId()); + + if (msl_availabilityStockFacingList.size() > 0) { + for (int j = 0; j < msl_availabilityStockFacingList.size(); j++) { + if (!msl_availabilityStockFacingList.get(j).getSku_id().equals("0")) { + + onXML = "[MSL_AVAILABILITY_STOCK_FACING_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getCategory_id()) + "[/CATEGORY_ID]" + + "[BRAND_ID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getBrand_id()) + "[/BRAND_ID]" + + "[SKU_ID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SKU_ID]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[TOGGLE_VALUE]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getToggleValue()) + "[/TOGGLE_VALUE]" + + "[FACING]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getFacing()) + "[/FACING]" + + "[STOCK]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getStock()) + "[/STOCK]" + + "[/MSL_AVAILABILITY_STOCK_FACING_DATA]"; + + mslAvailability_stockFacing_xml = mslAvailability_stockFacing_xml + onXML; + } + } + + final String sos_xml = "[DATA]" + mslAvailability_stockFacing_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "MSL_AVAILABILITY_STOCK_FACING_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(); + + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + + if (result.toString().equalsIgnoreCase(CommonString.KEY_NO_DATA)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + + if (result.toString().equalsIgnoreCase(CommonString.KEY_FAILURE)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + } + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data);*/ + + + //Stock and Facing /*String stock_facing_xml = ""; onXML = ""; 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 d54af91..0ec1d26 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java @@ -10,9 +10,9 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; +import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.WindowManager; import android.widget.ProgressBar; @@ -46,10 +46,10 @@ import cpm.com.gskmtorange.GetterSetter.CoverageBean; import cpm.com.gskmtorange.GetterSetter.StoreBean; import cpm.com.gskmtorange.R; import cpm.com.gskmtorange.constant.CommonString; -import cpm.com.gskmtorange.download.DownloadActivity; import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.GapsChecklistGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.Promo_Compliance_DataGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; @@ -76,6 +76,8 @@ public class UploadActivity extends AppCompatActivity { ArrayList t2PGetterSetters; ArrayList additionalVisibilityList; ArrayList additionalVisibilitySkuList; + ArrayList msl_availabilityStockFacingList; + private Dialog dialog; private ProgressBar pb; private TextView percentage, message; @@ -358,6 +360,65 @@ public class UploadActivity extends AppCompatActivity { publishProgress(data); + //MSL_Availability_StockFacing + /*String mslAvailability_stockFacing_xml = ""; + onXML = ""; + msl_availabilityStockFacingList = db.getMSL_Availability_StockFacing_UploadServerData(coverageList.get(i).getStoreId()); + + if (msl_availabilityStockFacingList.size() > 0) { + for (int j = 0; j < msl_availabilityStockFacingList.size(); j++) { + if (!msl_availabilityStockFacingList.get(j).getSku_id().equals("0")) { + + onXML = "[MSL_AVAILABILITY_STOCK_FACING_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getCategory_id()) + "[/CATEGORY_ID]" + + "[BRAND_ID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getBrand_id()) + "[/BRAND_ID]" + + "[SKU_ID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SKU_ID]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[TOGGLE_VALUE]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getToggleValue()) + "[/TOGGLE_VALUE]" + + "[FACING]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getFacing()) + "[/FACING]" + + "[STOCK]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getStock()) + "[/STOCK]" + + "[/MSL_AVAILABILITY_STOCK_FACING_DATA]"; + + mslAvailability_stockFacing_xml = mslAvailability_stockFacing_xml + onXML; + } + } + + final String sos_xml = "[DATA]" + mslAvailability_stockFacing_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "MSL_AVAILABILITY_STOCK_FACING_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(); + + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + + if (result.toString().equalsIgnoreCase(CommonString.KEY_NO_DATA)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + + if (result.toString().equalsIgnoreCase(CommonString.KEY_FAILURE)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + } + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data);*/ + + //Stock and Facing /*String stock_facing_xml = ""; onXML = ""; diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MSL_AvailabilityStockFacingGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MSL_AvailabilityStockFacingGetterSetter.java new file mode 100644 index 0000000..434aff7 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MSL_AvailabilityStockFacingGetterSetter.java @@ -0,0 +1,122 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 23-12-2016. + */ + +public class MSL_AvailabilityStockFacingGetterSetter { + String sub_category_id, sub_category, brand_id, brand, + sku_id, sku, mrp, sku_sequence, toggleValue, mbq, category_id, facing, stock,company_id; + + public String getSub_category_id() { + return sub_category_id; + } + + public void setSub_category_id(String sub_category_id) { + this.sub_category_id = sub_category_id; + } + + public String getSub_category() { + return sub_category; + } + + public void setSub_category(String sub_category) { + this.sub_category = sub_category; + } + + public String getBrand_id() { + return brand_id; + } + + public void setBrand_id(String brand_id) { + this.brand_id = brand_id; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getSku_id() { + return sku_id; + } + + public void setSku_id(String sku_id) { + this.sku_id = sku_id; + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public String getMrp() { + return mrp; + } + + public void setMrp(String mrp) { + this.mrp = mrp; + } + + public String getSku_sequence() { + return sku_sequence; + } + + public void setSku_sequence(String sku_sequence) { + this.sku_sequence = sku_sequence; + } + + public String getToggleValue() { + return toggleValue; + } + + public void setToggleValue(String toggleValue) { + this.toggleValue = toggleValue; + } + + public String getMbq() { + return mbq; + } + + public void setMbq(String mbq) { + this.mbq = mbq; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getFacing() { + return facing; + } + + public void setFacing(String facing) { + this.facing = facing; + } + + public String getStock() { + return stock; + } + + public void setStock(String stock) { + this.stock = stock; + } + + public String getCompany_id() { + return company_id; + } + + public void setCompany_id(String company_id) { + this.company_id = company_id; + } +} diff --git a/GSKMTOrange/src/main/res/layout/activity_msl__availability_stock_facing.xml b/GSKMTOrange/src/main/res/layout/activity_msl__availability_stock_facing.xml new file mode 100644 index 0000000..a181118 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_msl__availability_stock_facing.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/content_msl__availability_stock_facing.xml b/GSKMTOrange/src/main/res/layout/content_msl__availability_stock_facing.xml new file mode 100644 index 0000000..32fd60f --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/content_msl__availability_stock_facing.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/item_msl_availability_stock_facing_child.xml b/GSKMTOrange/src/main/res/layout/item_msl_availability_stock_facing_child.xml new file mode 100644 index 0000000..a4f5c07 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/item_msl_availability_stock_facing_child.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/item_msl_availability_stock_facing_header.xml b/GSKMTOrange/src/main/res/layout/item_msl_availability_stock_facing_header.xml new file mode 100644 index 0000000..a7fbe99 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/item_msl_availability_stock_facing_header.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/values/strings.xml b/GSKMTOrange/src/main/res/values/strings.xml index 9498fa8..7d23139 100644 --- a/GSKMTOrange/src/main/res/values/strings.xml +++ b/GSKMTOrange/src/main/res/values/strings.xml @@ -297,4 +297,7 @@ Store Check out Image Click Store CheckOut Image + Please fill faceup value or fill 0 + Please fill stock value or fill 0 + Stock can not be greater equal than MBQ value